ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnIGIvZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjg2OTA3NgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnCkBAIC0wLDAgKzEsNDU1IEBACisjCisjIFVTQiBTZXJpYWwgZGV2aWNlIGNvbmZpZ3VyYXRpb24KKyMKKworbWVudSAiVVNCIFNlcmlhbCBDb252ZXJ0ZXIgc3VwcG9ydCIKKwlkZXBlbmRzIG9uIFVTQiE9bgorCitjb25maWcgVVNCX1NFUklBTAorCXRyaXN0YXRlICJVU0IgU2VyaWFsIENvbnZlcnRlciBzdXBwb3J0IgorCWRlcGVuZHMgb24gVVNCCisJLS0taGVscC0tLQorCSAgU2F5IFkgaGVyZSBpZiB5b3UgaGF2ZSBhIFVTQiBkZXZpY2UgdGhhdCBwcm92aWRlcyBub3JtYWwgc2VyaWFsCisJICBwb3J0cywgb3IgYWN0cyBsaWtlIGEgc2VyaWFsIGRldmljZSwgYW5kIHlvdSB3YW50IHRvIGNvbm5lY3QgaXQgdG8KKwkgIHlvdXIgVVNCIGJ1cy4KKworCSAgUGxlYXNlIHJlYWQgPGZpbGU6RG9jdW1lbnRhdGlvbi91c2IvdXNiLXNlcmlhbC50eHQ+IGZvciBtb3JlCisJICBpbmZvcm1hdGlvbiBvbiB0aGUgc3BlY2lmaWNzIG9mIHRoZSBkaWZmZXJlbnQgZGV2aWNlcyB0aGF0IGFyZQorCSAgc3VwcG9ydGVkLCBhbmQgb24gaG93IHRvIHVzZSB0aGVtLgorCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKKwkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCB1c2JzZXJpYWwuCisKK2NvbmZpZyBVU0JfU0VSSUFMX0NPTlNPTEUKKwlib29sICJVU0IgU2VyaWFsIENvbnNvbGUgZGV2aWNlIHN1cHBvcnQgKEVYUEVSSU1FTlRBTCkiCisJZGVwZW5kcyBvbiBVU0JfU0VSSUFMPXkgJiYgRVhQRVJJTUVOVEFMCisJLS0taGVscC0tLQorCSAgSWYgeW91IHNheSBZIGhlcmUsIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gdXNlIGEgVVNCIHRvIHNlcmlhbAorCSAgY29udmVydGVyIHBvcnQgYXMgdGhlIHN5c3RlbSBjb25zb2xlICh0aGUgc3lzdGVtIGNvbnNvbGUgaXMgdGhlCisJICBkZXZpY2Ugd2hpY2ggcmVjZWl2ZXMgYWxsIGtlcm5lbCBtZXNzYWdlcyBhbmQgd2FybmluZ3MgYW5kIHdoaWNoCisJICBhbGxvd3MgbG9naW5zIGluIHNpbmdsZSB1c2VyIG1vZGUpLiBUaGlzIGNvdWxkIGJlIHVzZWZ1bCBpZiBzb21lCisJICB0ZXJtaW5hbCBvciBwcmludGVyIGlzIGNvbm5lY3RlZCB0byB0aGF0IHNlcmlhbCBwb3J0LgorCisJICBFdmVuIGlmIHlvdSBzYXkgWSBoZXJlLCB0aGUgY3VycmVudGx5IHZpc2libGUgdmlydHVhbCBjb25zb2xlCisJICAoL2Rldi90dHkwKSB3aWxsIHN0aWxsIGJlIHVzZWQgYXMgdGhlIHN5c3RlbSBjb25zb2xlIGJ5IGRlZmF1bHQsIGJ1dAorCSAgeW91IGNhbiBhbHRlciB0aGF0IHVzaW5nIGEga2VybmVsIGNvbW1hbmQgbGluZSBvcHRpb24gc3VjaCBhcworCSAgImNvbnNvbGU9dHR5VVNCMCIuIChUcnkgIm1hbiBib290cGFyYW0iIG9yIHNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZgorCSAgeW91ciBib290IGxvYWRlciAobGlsbyBvciBsb2FkbGluKSBhYm91dCBob3cgdG8gcGFzcyBvcHRpb25zIHRvIHRoZQorCSAga2VybmVsIGF0IGJvb3QgdGltZS4pCisKKwkgIElmIHlvdSBkb24ndCBoYXZlIGEgVkdBIGNhcmQgaW5zdGFsbGVkIGFuZCB5b3Ugc2F5IFkgaGVyZSwgdGhlCisJICBrZXJuZWwgd2lsbCBhdXRvbWF0aWNhbGx5IHVzZSB0aGUgZmlyc3QgVVNCIHRvIHNlcmlhbCBjb252ZXJ0ZXIKKwkgIHBvcnQsIC9kZXYvdHR5VVNCMCwgYXMgc3lzdGVtIGNvbnNvbGUuCisKKwkgIElmIHVuc3VyZSwgc2F5IE4uCisKK2NvbmZpZyBVU0JfU0VSSUFMX0dFTkVSSUMKKwlib29sICJVU0IgR2VuZXJpYyBTZXJpYWwgRHJpdmVyIgorCWRlcGVuZHMgb24gVVNCX1NFUklBTAorCWhlbHAKKwkgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBnZW5lcmljIFVTQiBzZXJpYWwgZHJpdmVyLiAgUGxlYXNlCisJICByZWFkIDxmaWxlOkRvY3VtZW50YXRpb24vdXNiL3VzYi1zZXJpYWwudHh0PiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbgorCSAgdXNpbmcgdGhpcyBkcml2ZXIuICBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IHRoZSAiVVNCIFNlcmlhbCBjb252ZXJ0ZXIKKwkgIHN1cHBvcnQiIGJlIGNvbXBpbGVkIGFzIGEgbW9kdWxlIGZvciB0aGlzIGRyaXZlciB0byBiZSB1c2VkCisJICBwcm9wZXJseS4KKworY29uZmlnIFVTQl9TRVJJQUxfQkVMS0lOCisJdHJpc3RhdGUgIlVTQiBCZWxraW4gYW5kIFBlcmFjb20gU2luZ2xlIFBvcnQgU2VyaWFsIERyaXZlciIKKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUwKKwloZWxwCisJICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSBhIEJlbGtpbiBVU0IgU2VyaWFsIHNpbmdsZSBwb3J0CisJICBhZGFwdG9yIChGNVUxMDMgaXMgb25lIG9mIHRoZSBtb2RlbCBudW1iZXJzKSBvciB0aGUgUGVyYWNvbSBzaW5nbGUKKwkgIHBvcnQgVVNCIHRvIHNlcmlhbCBhZGFwdGVyLgorCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKKwkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBiZWxraW5fc2EuCisKK2NvbmZpZyBVU0JfU0VSSUFMX1dISVRFSEVBVAorCXRyaXN0YXRlICJVU0IgQ29ubmVjdFRlY2ggV2hpdGVIRUFUIFNlcmlhbCBEcml2ZXIiCisJZGVwZW5kcyBvbiBVU0JfU0VSSUFMICYmIEJST0tFTl9PTl9TTVAKKwloZWxwCisJICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSBhIENvbm5lY3RUZWNoIFdoaXRlSEVBVCA0IHBvcnQKKwkgIFVTQiB0byBzZXJpYWwgY29udmVydGVyIGRldmljZS4KKworCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlCisJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgd2hpdGVoZWF0LgorCitjb25maWcgVVNCX1NFUklBTF9ESUdJX0FDQ0VMRVBPUlQKKwl0cmlzdGF0ZSAiVVNCIERpZ2kgSW50ZXJuYXRpb25hbCBBY2NlbGVQb3J0IFVTQiBTZXJpYWwgRHJpdmVyIgorCWRlcGVuZHMgb24gVVNCX1NFUklBTAorCS0tLWhlbHAtLS0KKwkgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdG8gdXNlIERpZ2kgQWNjZWxlUG9ydCBVU0IgMiBvciA0IGRldmljZXMsCisJICAyIHBvcnQgKHBsdXMgcGFyYWxsZWwgcG9ydCkgYW5kIDQgcG9ydCBVU0Igc2VyaWFsIGNvbnZlcnRlcnMuICBUaGUKKwkgIHBhcmFsbGVsIHBvcnQgb24gdGhlIFVTQiAyIGFwcGVhcnMgYXMgYSB0aGlyZCBzZXJpYWwgcG9ydCBvbiBMaW51eC4KKwkgIFRoZSBEaWdpIEFjY2VsZXBvcnQgVVNCIDggaXMgbm90IHlldCBzdXBwb3J0ZWQgYnkgdGhpcyBkcml2ZXIuCisKKwkgIFRoaXMgZHJpdmVyIHdvcmtzIHVuZGVyIFNNUCB3aXRoIHRoZSB1c2ItdWhjaSBkcml2ZXIuICBJdCBkb2VzIG5vdAorCSAgd29yayB1bmRlciBTTVAgd2l0aCB0aGUgdWhjaSBkcml2ZXIuCisKKwkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQorCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGRpZ2lfYWNjZWxlcG9ydC4KKworY29uZmlnIFVTQl9TRVJJQUxfQ1AyMTAxCisJdHJpc3RhdGUgIlVTQiBDUDIxMDEgVUFSVCBCcmlkZ2UgQ29udHJvbGxlciIKKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUwgJiYgRVhQRVJJTUVOVEFMCisJaGVscAorCSAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgYSBDUDIxMDEvQ1AyMTAyIGJhc2VkIFVTQiB0byBSUzIzMgorCSAgY29udmVydGVyLgorCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKKwkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBjcDIxMDEuCisKK2NvbmZpZyBVU0JfU0VSSUFMX0NZUFJFU1NfTTgKKwl0cmlzdGF0ZSAiVVNCIEN5cHJlc3MgTTggVVNCIFNlcmlhbCBEcml2ZXIiCisJZGVwZW5kcyBvbiBVU0JfU0VSSUFMICYmIEVYUEVSSU1FTlRBTAorCWhlbHAKKwkgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdG8gdXNlIGEgZGV2aWNlIHRoYXQgY29udGFpbnMgdGhlIEN5cHJlc3MKKwkgIFVTQiB0byBTZXJpYWwgbWljcm9jb250cm9sbGVyLCBzdWNoIGFzIHRoZSBEZUxvcm1lIEVhcnRobWF0ZSBHUFMuCisKKwkJQXR0ZW1wdGVkIFNNUCBzdXBwb3J0Li4uIHNlbmQgYnVnIHJlcG9ydHMhCisKKwkgIFN1cHBvcnRlZCBtaWNyb2NvbnRyb2xsZXJzIGluIHRoZSBDWTQ2MDEgZmFtaWx5IGFyZToKKwkJQ1k3QzYzNzQxIENZN0M2Mzc0MiBDWTdDNjM3NDMgQ1k3QzY0MDEzCisJCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKKwkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBjeXByZXNzX204LgorCitjb25maWcgVVNCX1NFUklBTF9FTVBFRworCXRyaXN0YXRlICJVU0IgRW1wZWcgZW1wZWctY2FyIE1hcmsgSS9JSSBEcml2ZXIiCisJZGVwZW5kcyBvbiBVU0JfU0VSSUFMCisJaGVscAorCSAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byBjb25uZWN0IHRvIHlvdXIgRW1wZWcgZW1wZWctY2FyIE1hcmsgSS9JSQorCSAgbXAzIHBsYXllciB2aWEgVVNCLiAgVGhlIGRyaXZlciB1c2VzIGEgc2luZ2xlIHR0eVVTQnswLDEsMiwuLi59CisJICBkZXZpY2Ugbm9kZS4gIFNlZSA8ZmlsZTpEb2N1bWVudGF0aW9uL3VzYi91c2Itc2VyaWFsLnR4dD4gZm9yIG1vcmUKKwkgIHRpZGJpdHMgb2YgaW5mb3JtYXRpb24uCisKKwkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQorCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGVtcGVnLgorCitjb25maWcgVVNCX1NFUklBTF9GVERJX1NJTworCXRyaXN0YXRlICJVU0IgRlRESSBTaW5nbGUgUG9ydCBTZXJpYWwgRHJpdmVyIChFWFBFUklNRU5UQUwpIgorCWRlcGVuZHMgb24gVVNCX1NFUklBTCAmJiBFWFBFUklNRU5UQUwKKwktLS1oZWxwLS0tCisJICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSBhIEZUREkgU0lPIHNpbmdsZSBwb3J0IFVTQiB0byBzZXJpYWwKKwkgIGNvbnZlcnRlciBkZXZpY2UuIFRoZSBpbXBsZW1lbnRhdGlvbiBJIGhhdmUgaXMgY2FsbGVkIHRoZSBVU0MtMTAwMC4KKwkgIFRoaXMgZHJpdmVyIGhhcyBhbHNvIGJlIHRlc3RlZCB3aXRoIHRoZSAyNDUgYW5kIDIzMiBkZXZpY2VzLgorCisJICBTZWUgPGh0dHA6Ly9mdGRpLXVzYi1zaW8uc291cmNlZm9yZ2UubmV0Lz4gZm9yIG1vcmUKKwkgIGluZm9ybWF0aW9uIG9uIHRoaXMgZHJpdmVyIGFuZCB0aGUgZGV2aWNlLgorCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKKwkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBmdGRpX3Npby4KKworY29uZmlnIFVTQl9TRVJJQUxfVklTT1IKKwl0cmlzdGF0ZSAiVVNCIEhhbmRzcHJpbmcgVmlzb3IgLyBQYWxtIG01MHggLyBTb255IENsaWUgRHJpdmVyIgorCWRlcGVuZHMgb24gVVNCX1NFUklBTAorCWhlbHAKKwkgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdG8gY29ubmVjdCB0byB5b3VyIEhhbmRTcHJpbmcgVmlzb3IsIFBhbG0KKwkgIG01MDAgb3IgbTUwNSB0aHJvdWdoIGl0cyBVU0IgZG9ja2luZyBzdGF0aW9uLiBTZWUKKwkgIDxodHRwOi8vdXNidmlzb3Iuc291cmNlZm9yZ2UubmV0Lz4gZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdXNpbmcgdGhpcworCSAgZHJpdmVyLgorCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKKwkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCB2aXNvci4KKworY29uZmlnIFVTQl9TRVJJQUxfSVBBUQorCXRyaXN0YXRlICJVU0IgUG9ja2V0UEMgUERBIERyaXZlciIKKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUwKKwloZWxwCisJICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIGNvbm5lY3QgdG8geW91ciBDb21wYXEgaVBBUSwgSFAgSm9ybmFkYQorCSAgb3IgYW55IG90aGVyIFBEQSBydW5uaW5nIFdpbmRvd3MgQ0UgMy4wIG9yIFBvY2tldFBDIDIwMDIKKwkgIHVzaW5nIGEgVVNCIGNyYWRsZS9jYWJsZS4gRm9yIGluZm9ybWF0aW9uIG9uIHVzaW5nIHRoZSBkcml2ZXIsCisJICByZWFkIDxmaWxlOkRvY3VtZW50YXRpb24vdXNiL3VzYi1zZXJpYWwudHh0Pi4KKworCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlCisJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgaXBhcS4KKworY29uZmlnIFVTQl9TRVJJQUxfSVIKKwl0cmlzdGF0ZSAiVVNCIElSIERvbmdsZSBTZXJpYWwgRHJpdmVyIChFWFBFUklNRU5UQUwpIgorCWRlcGVuZHMgb24gVVNCX1NFUklBTCAmJiBFWFBFUklNRU5UQUwKKwloZWxwCisJICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIGVuYWJsZSBzaW1wbGUgc2VyaWFsIHN1cHBvcnQgZm9yIFVTQiBJckRBCisJICBkZXZpY2VzLiAgVGhpcyBpcyB1c2VmdWwgaWYgeW91IGRvIG5vdCB3YW50IHRvIHVzZSB0aGUgZnVsbCBJckRBCisJICBzdGFjay4KKworCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlCisJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgaXItdXNiLgorCitjb25maWcgVVNCX1NFUklBTF9FREdFUE9SVAorCXRyaXN0YXRlICJVU0IgSW5zaWRlIE91dCBFZGdlcG9ydCBTZXJpYWwgRHJpdmVyIgorCWRlcGVuZHMgb24gVVNCX1NFUklBTAorCS0tLWhlbHAtLS0KKwkgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdG8gdXNlIGFueSBvZiB0aGUgZm9sbG93aW5nIGRldmljZXMgZnJvbQorCSAgSW5zaWRlIE91dCBOZXR3b3JrcyAoRGlnaSk6CisJICBFZGdlcG9ydC80CisJICBSYXBpZHBvcnQvNAorCSAgRWRnZXBvcnQvNHQKKwkgIEVkZ2Vwb3J0LzIKKwkgIEVkZ2Vwb3J0LzRpCisJICBFZGdlcG9ydC8yaQorCSAgRWRnZXBvcnQvNDIxCisJICBFZGdlcG9ydC8yMQorCSAgRWRnZXBvcnQvOAorCSAgRWRnZXBvcnQvOCBEdWFsCisJICBFZGdlcG9ydC8yRDgKKwkgIEVkZ2Vwb3J0LzREOAorCSAgRWRnZXBvcnQvOGkKKwkgIEVkZ2Vwb3J0LzIgRElOCisJICBFZGdlcG9ydC80IERJTgorCSAgRWRnZXBvcnQvMTYgRHVhbAorCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKKwkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBpb19lZGdlcG9ydC4KKworY29uZmlnIFVTQl9TRVJJQUxfRURHRVBPUlRfVEkKKwl0cmlzdGF0ZSAiVVNCIEluc2lkZSBPdXQgRWRnZXBvcnQgU2VyaWFsIERyaXZlciAoVEkgZGV2aWNlcykiCisJZGVwZW5kcyBvbiBVU0JfU0VSSUFMCisJaGVscAorCSAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgYW55IG9mIHRoZSBkZXZpY2VzIGZyb20gSW5zaWRlIE91dAorCSAgTmV0d29ya3MgKERpZ2kpIHRoYXQgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGlvX2VkZ2Vwb3J0IGRyaXZlci4KKwkgIFRoaXMgaW5jbHVkZXMgdGhlIEVkZ2Vwb3J0LzEgZGV2aWNlLgorCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKKwkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBpb190aS4KKworY29uZmlnIFVTQl9TRVJJQUxfR0FSTUlOCisgICAgICAgdHJpc3RhdGUgIlVTQiBHYXJtaW4gR1BTIGRyaXZlciIKKyAgICAgICBkZXBlbmRzIG9uIFVTQl9TRVJJQUwKKyAgICAgICBoZWxwCisgICAgICAgICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIGNvbm5lY3QgdG8geW91ciBHYXJtaW4gR1BTLgorICAgICAgICAgU2hvdWxkIHdvcmsgd2l0aCBtb3N0IEdhcm1pbiBHUFMgZGV2aWNlcyB3aGljaCBoYXZlIGEgbmF0aXZlIFVTQiBwb3J0LgorCisgICAgICAgICBTZWUgPGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvZ2FybWluLWdwcz4gZm9yIHRoZSBsYXRlc3QKKyAgICAgICAgIHZlcnNpb24gb2YgdGhlIGRyaXZlci4KKworICAgICAgICAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlCisgICAgICAgICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgZ2FybWluX2dwcy4KKworY29uZmlnIFVTQl9TRVJJQUxfSVBXCisgICAgICAgIHRyaXN0YXRlICJVU0IgSVBXaXJlbGVzcyAoM0cgVU1UUyBUREQpIERyaXZlciAoRVhQRVJJTUVOVEFMKSIKKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUwgJiYgRVhQRVJJTUVOVEFMCisJaGVscAorCSAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgYSBJUFdpcmVsZXNzIFVTQiBtb2RlbSBzdWNoIGFzCisJICB0aGUgb25lcyBzdXBwbGllZCBieSBBeGl0eTNHL1NlbnRlY2ggU291dGggQWZyaWNhLgorCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKKwkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBpcHcuCisKK2NvbmZpZyBVU0JfU0VSSUFMX0tFWVNQQU5fUERBCisJdHJpc3RhdGUgIlVTQiBLZXlzcGFuIFBEQSBTaW5nbGUgUG9ydCBTZXJpYWwgRHJpdmVyIgorCWRlcGVuZHMgb24gVVNCX1NFUklBTAorCWhlbHAKKwkgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdG8gdXNlIGEgS2V5c3BhbiBQREEgc2luZ2xlIHBvcnQgVVNCIHRvCisJICBzZXJpYWwgY29udmVydGVyIGRldmljZS4gIFRoaXMgZHJpdmVyIG1ha2VzIHVzZSBvZiBmaXJtd2FyZQorCSAgZGV2ZWxvcGVkIGZyb20gc2NyYXRjaCBieSBCcmlhbiBXYXJuZXIuCisKKwkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQorCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGtleXNwYW5fcGRhLgorCitjb25maWcgVVNCX1NFUklBTF9LRVlTUEFOCisJdHJpc3RhdGUgIlVTQiBLZXlzcGFuIFVTQS14eHggU2VyaWFsIERyaXZlciIKKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUwKKwktLS1oZWxwLS0tCisJICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSBLZXlzcGFuIFVTQiB0byBzZXJpYWwgY29udmVydGVyCisJICBkZXZpY2VzLiAgVGhpcyBkcml2ZXIgbWFrZXMgdXNlIG9mIEtleXNwYW4ncyBvZmZpY2lhbCBmaXJtd2FyZQorCSAgYW5kIHdhcyBkZXZlbG9wZWQgd2l0aCB0aGVpciBzdXBwb3J0LiAgWW91IG11c3QgYWxzbyBpbmNsdWRlCisJICBmaXJtd2FyZSB0byBzdXBwb3J0IHlvdXIgcGFydGljdWxhciBkZXZpY2UocykuCisKKwkgIFNlZSA8aHR0cDovL21pc2MubnUvaHVnaC9rZXlzcGFuLmh0bWw+IGZvciBtb3JlIGluZm9ybWF0aW9uLgorCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKKwkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBrZXlzcGFuLgorCitjb25maWcgVVNCX1NFUklBTF9LRVlTUEFOX01QUgorCWJvb2wgIlVTQiBLZXlzcGFuIE1QUiBGaXJtd2FyZSIKKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWhlbHAKKwkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIEtleXNwYW4gTVBSIGNvbnZlcnRlci4KKworY29uZmlnIFVTQl9TRVJJQUxfS0VZU1BBTl9VU0EyOAorCWJvb2wgIlVTQiBLZXlzcGFuIFVTQS0yOCBGaXJtd2FyZSIKKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWhlbHAKKwkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIFVTQS0yOCBjb252ZXJ0ZXIuCisKK2NvbmZpZyBVU0JfU0VSSUFMX0tFWVNQQU5fVVNBMjhYCisJYm9vbCAiVVNCIEtleXNwYW4gVVNBLTI4WCBGaXJtd2FyZSIKKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWhlbHAKKwkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIFVTQS0yOFggY29udmVydGVyLgorCSAgQmUgc3VyZSB5b3UgaGF2ZSBhIFVTQS0yOFgsIHRoZXJlIGFyZSBhbHNvIDI4WEEgYW5kIDI4WEIKKwkgIG1vZGVscywgdGhlIGxhYmVsIHVuZGVybmVhdGggaGFzIHRoZSBhY3R1YWwgcGFydCBudW1iZXIuCisKK2NvbmZpZyBVU0JfU0VSSUFMX0tFWVNQQU5fVVNBMjhYQQorCWJvb2wgIlVTQiBLZXlzcGFuIFVTQS0yOFhBIEZpcm13YXJlIgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOCisJaGVscAorCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIGZpcm13YXJlIGZvciB0aGUgVVNBLTI4WEEgY29udmVydGVyLgorCSAgQmUgc3VyZSB5b3UgaGF2ZSBhIFVTQS0yOFhBLCB0aGVyZSBhcmUgYWxzbyAyOFggYW5kIDI4WEIKKwkgIG1vZGVscywgdGhlIGxhYmVsIHVuZGVybmVhdGggaGFzIHRoZSBhY3R1YWwgcGFydCBudW1iZXIuCisKK2NvbmZpZyBVU0JfU0VSSUFMX0tFWVNQQU5fVVNBMjhYQgorCWJvb2wgIlVTQiBLZXlzcGFuIFVTQS0yOFhCIEZpcm13YXJlIgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOCisJaGVscAorCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIGZpcm13YXJlIGZvciB0aGUgVVNBLTI4WEIgY29udmVydGVyLgorCSAgQmUgc3VyZSB5b3UgaGF2ZSBhIFVTQS0yOFhCLCB0aGVyZSBhcmUgYWxzbyAyOFggYW5kIDI4WEEKKwkgIG1vZGVscywgdGhlIGxhYmVsIHVuZGVybmVhdGggaGFzIHRoZSBhY3R1YWwgcGFydCBudW1iZXIuCisKK2NvbmZpZyBVU0JfU0VSSUFMX0tFWVNQQU5fVVNBMTkKKwlib29sICJVU0IgS2V5c3BhbiBVU0EtMTkgRmlybXdhcmUiCisJZGVwZW5kcyBvbiBVU0JfU0VSSUFMX0tFWVNQQU4KKwloZWxwCisJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgZmlybXdhcmUgZm9yIHRoZSBVU0EtMTkgY29udmVydGVyLgorCitjb25maWcgVVNCX1NFUklBTF9LRVlTUEFOX1VTQTE4WAorCWJvb2wgIlVTQiBLZXlzcGFuIFVTQS0xOFggRmlybXdhcmUiCisJZGVwZW5kcyBvbiBVU0JfU0VSSUFMX0tFWVNQQU4KKwloZWxwCisJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgZmlybXdhcmUgZm9yIHRoZSBVU0EtMThYIGNvbnZlcnRlci4KKworY29uZmlnIFVTQl9TRVJJQUxfS0VZU1BBTl9VU0ExOVcKKwlib29sICJVU0IgS2V5c3BhbiBVU0EtMTlXIEZpcm13YXJlIgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOCisJaGVscAorCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIGZpcm13YXJlIGZvciB0aGUgVVNBLTE5VyBjb252ZXJ0ZXIuCisKK2NvbmZpZyBVU0JfU0VSSUFMX0tFWVNQQU5fVVNBMTlRVworCWJvb2wgIlVTQiBLZXlzcGFuIFVTQS0xOVFXIEZpcm13YXJlIgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOCisJaGVscAorCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIGZpcm13YXJlIGZvciB0aGUgVVNBLTE5UVcgY29udmVydGVyLgorCitjb25maWcgVVNCX1NFUklBTF9LRVlTUEFOX1VTQTE5UUkKKwlib29sICJVU0IgS2V5c3BhbiBVU0EtMTlRSSBGaXJtd2FyZSIKKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWhlbHAKKwkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIFVTQS0xOVFJIGNvbnZlcnRlci4KKworY29uZmlnIFVTQl9TRVJJQUxfS0VZU1BBTl9VU0E0OVcKKwlib29sICJVU0IgS2V5c3BhbiBVU0EtNDlXIEZpcm13YXJlIgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOCisJaGVscAorCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIGZpcm13YXJlIGZvciB0aGUgVVNBLTQ5VyBjb252ZXJ0ZXIuCisKK2NvbmZpZyBVU0JfU0VSSUFMX0tFWVNQQU5fVVNBNDlXTEMKKwlib29sICJVU0IgS2V5c3BhbiBVU0EtNDlXTEMgRmlybXdhcmUiCisJZGVwZW5kcyBvbiBVU0JfU0VSSUFMX0tFWVNQQU4KKwloZWxwCisJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgZmlybXdhcmUgZm9yIHRoZSBVU0EtNDlXTEMgY29udmVydGVyLgorCitjb25maWcgVVNCX1NFUklBTF9LTFNJCisJdHJpc3RhdGUgIlVTQiBLTDVLVVNCMTA1IChQYWxtY29ubmVjdCkgRHJpdmVyIChFWFBFUklNRU5UQUwpIgorCWRlcGVuZHMgb24gVVNCX1NFUklBTCAmJiBFWFBFUklNRU5UQUwKKwktLS1oZWxwLS0tCisJICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSBhIEtMNUtVU0IxMDUgLSBiYXNlZCBzaW5nbGUgcG9ydAorCSAgc2VyaWFsIGFkYXB0ZXIuIFRoZSBtb3N0IHdpZGVseSBrbm93biAtLSBhbmQgY3VycmVudGx5IHRoZSBvbmx5CisJICB0ZXN0ZWQgLS0gZGV2aWNlIGluIHRoaXMgY2F0ZWdvcnkgaXMgdGhlIFBhbG1Db25uZWN0IFVTQiBTZXJpYWwKKwkgIGFkYXB0ZXIgc29sZCBieSBQYWxtIEluYy4gZm9yIHVzZSB3aXRoIHRoZWlyIFBhbG0gSUlJIGFuZCBQYWxtIFYKKwkgIHNlcmllcyBQREFzLgorCisJICBQbGVhc2UgcmVhZCA8ZmlsZTpEb2N1bWVudGF0aW9uL3VzYi91c2Itc2VyaWFsLnR4dD4gZm9yIG1vcmUKKwkgIGluZm9ybWF0aW9uLgorCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKKwkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBrbDVrdXNiMTA1LgorCitjb25maWcgVVNCX1NFUklBTF9LT0JJTF9TQ1QKKyAgICAgICAgdHJpc3RhdGUgIlVTQiBLT0JJTCBjaGlwY2FyZCByZWFkZXIiCisgICAgICAgIGRlcGVuZHMgb24gVVNCX1NFUklBTAorICAgICAgICAtLS1oZWxwLS0tCisgICAgICAgICAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byB1c2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgS09CSUwgVVNCIGNoaXBjYXJkCisgICAgICAgICAgcmVhZGVyczoKKworICAgICAgICAgICAgLSBVU0IgVFdJTgorICAgICAgICAgICAgLSBLQUFOIFN0YW5kYXJkIFBsdXMKKyAgICAgICAgICAgIC0gS0FBTiBTSU0KKyAgICAgICAgICAgIC0gU2VjT1ZJRCBSZWFkZXIgUGx1cworICAgICAgICAgICAgLSBCMSBQcm9mZXNzaW9uYWwKKyAgICAgICAgICAgIC0gS0FBTiBQcm9mZXNzaW9uYWwKKworICAgICAgICAgIE5vdGUgdGhhdCB5b3UgbmVlZCBhIGN1cnJlbnQgQ1QtQVBJLgorICAgICAgICAgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQorCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGtvYmlsX3NjdC4KKworY29uZmlnIFVTQl9TRVJJQUxfTUNUX1UyMzIKKwl0cmlzdGF0ZSAiVVNCIE1DVCBTaW5nbGUgUG9ydCBTZXJpYWwgRHJpdmVyIgorCWRlcGVuZHMgb24gVVNCX1NFUklBTAorCS0tLWhlbHAtLS0KKwkgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdG8gdXNlIGEgVVNCIFNlcmlhbCBzaW5nbGUgcG9ydCBhZGFwdGVyIGZyb20KKwkgIE1hZ2ljIENvbnRyb2wgVGVjaG5vbG9neSBDb3JwLiAoVTIzMiBpcyBvbmUgb2YgdGhlIG1vZGVsIG51bWJlcnMpLgorCisJICBUaGlzIGRyaXZlciBhbHNvIHdvcmtzIHdpdGggU2l0ZWNvbSBVMjMyLVAyNSBhbmQgRC1MaW5rIERVLUgzU1AgVVNCCisJICBCQVkgZGV2aWNlcy4KKworCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlCisJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgbWN0X3UyMzIuCisKK2NvbmZpZyBVU0JfU0VSSUFMX1BMMjMwMworCXRyaXN0YXRlICJVU0IgUHJvbGlmaWMgMjMwMyBTaW5nbGUgUG9ydCBTZXJpYWwgRHJpdmVyIgorCWRlcGVuZHMgb24gVVNCX1NFUklBTAorCWhlbHAKKwkgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBQTDIzMDMgVVNCIFNlcmlhbCBzaW5nbGUgcG9ydAorCSAgYWRhcHRlciBmcm9tIFByb2xpZmljLgorCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKKwkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBwbDIzMDMuCisKK2NvbmZpZyBVU0JfU0VSSUFMX1NBRkUKKwl0cmlzdGF0ZSAiVVNCIFNhZmUgU2VyaWFsIChFbmNhcHN1bGF0ZWQpIERyaXZlciAoRVhQRVJJTUVOVEFMKSIKKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUwgJiYgRVhQRVJJTUVOVEFMCisKK2NvbmZpZyBVU0JfU0VSSUFMX1NBRkVfUEFEREVECisJYm9vbCAiVVNCIFNlY3VyZSBFbmNhcHN1bGF0ZWQgRHJpdmVyIC0gUGFkZGVkIgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9TQUZFCisKK2NvbmZpZyBVU0JfU0VSSUFMX1RJCisJdHJpc3RhdGUgIlVTQiBUSSAzNDEwLzUwNTIgU2VyaWFsIERyaXZlciIKKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUwKKwloZWxwCisJICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSB0aGUgVEkgVVNCIDM0MTAgb3IgNTA1MgorCSAgc2VyaWFsIGRldmljZXMuCisKKwkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQorCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHRpX3VzYl8zNDEwXzUwNTIuCisKK2NvbmZpZyBVU0JfU0VSSUFMX0NZQkVSSkFDSworCXRyaXN0YXRlICJVU0IgUkVJTkVSIFNDVCBjeWJlckphY2sgcGlucGFkL2UtY29tIGNoaXBjYXJkIHJlYWRlciAoRVhQRVJJTUVOVEFMKSIKKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUwgJiYgRVhQRVJJTUVOVEFMCisJLS0taGVscC0tLQorCSAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgYSBjeWJlckphY2sgcGlucGFkL2UtY29tIFVTQiBjaGlwY2FyZAorCSAgcmVhZGVyLiBUaGlzIGlzIGFuIGludGVyZmFjZSB0byBJU08gNzgxNiBjb21wYXRpYmxlIGNvbnRhY3RiYXNlZAorCSAgY2hpcGNhcmRzLCBlLmcuIEdTTSBTSU1zLgorCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKKwkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBjeWJlcmphY2suCisKKwkgIElmIHVuc3VyZSwgc2F5IE4uCisKK2NvbmZpZyBVU0JfU0VSSUFMX1hJUkNPTQorCXRyaXN0YXRlICJVU0IgWGlyY29tIC8gRW50cmVncmEgU2luZ2xlIFBvcnQgU2VyaWFsIERyaXZlciIKKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUwKKwloZWxwCisJICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSBhIFhpcmNvbSBvciBFbnRyZWdyYSBzaW5nbGUgcG9ydCBVU0IgdG8KKwkgIHNlcmlhbCBjb252ZXJ0ZXIgZGV2aWNlLiAgVGhpcyBkcml2ZXIgbWFrZXMgdXNlIG9mIGZpcm13YXJlCisJICBkZXZlbG9wZWQgZnJvbSBzY3JhdGNoIGJ5IEJyaWFuIFdhcm5lci4KKworCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlCisJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQga2V5c3Bhbl9wZGEuCisKK2NvbmZpZyBVU0JfU0VSSUFMX09NTklORVQKKwl0cmlzdGF0ZSAiVVNCIFp5WEVMIG9tbmkubmV0IExDRCBQbHVzIERyaXZlciAoRVhQRVJJTUVOVEFMKSIKKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUwgJiYgRVhQRVJJTUVOVEFMCisJaGVscAorCSAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgYSBaeVhFTCBvbW5pLm5ldCBMQ0QgSVNETiBUQS4KKworCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlCisJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgb21uaW5ldC4KKworY29uZmlnIFVTQl9FWlVTQgorCWJvb2wKKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTl9QREEgfHwgVVNCX1NFUklBTF9YSVJDT00gfHwgVVNCX1NFUklBTF9LRVlTUEFOIHx8IFVTQl9TRVJJQUxfV0hJVEVIRUFUCisJZGVmYXVsdCB5CisKK2VuZG1lbnUKKwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL01ha2VmaWxlIGIvZHJpdmVycy91c2Ivc2VyaWFsL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1MWI4MTgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvTWFrZWZpbGUKQEAgLTAsMCArMSwzOSBAQAorIworIyBNYWtlZmlsZSBmb3IgdGhlIFVTQiBzZXJpYWwgZGV2aWNlIGRyaXZlcnMuCisjCisKKyMgT2JqZWN0IGZpbGUgbGlzdHMuCisKK29iai0kKENPTkZJR19VU0JfU0VSSUFMKQkJCSs9IHVzYnNlcmlhbC5vCisKK3VzYnNlcmlhbC1vYmotJChDT05GSUdfVVNCX1NFUklBTF9DT05TT0xFKQkrPSBjb25zb2xlLm8KK3VzYnNlcmlhbC1vYmotJChDT05GSUdfVVNCX0VaVVNCKQkJKz0gZXp1c2IubworCit1c2JzZXJpYWwtb2Jqcwk6PSB1c2Itc2VyaWFsLm8gZ2VuZXJpYy5vIGJ1cy5vICQodXNic2VyaWFsLW9iai15KQorCitvYmotJChDT05GSUdfVVNCX1NFUklBTF9CRUxLSU4pCQkJKz0gYmVsa2luX3NhLm8KK29iai0kKENPTkZJR19VU0JfU0VSSUFMX0NQMjEwMSkJCQkrPSBjcDIxMDEubworb2JqLSQoQ09ORklHX1VTQl9TRVJJQUxfQ1lCRVJKQUNLKQkJKz0gY3liZXJqYWNrLm8KK29iai0kKENPTkZJR19VU0JfU0VSSUFMX0NZUFJFU1NfTTgpCQkrPSBjeXByZXNzX204Lm8KK29iai0kKENPTkZJR19VU0JfU0VSSUFMX0RJR0lfQUNDRUxFUE9SVCkJKz0gZGlnaV9hY2NlbGVwb3J0Lm8KK29iai0kKENPTkZJR19VU0JfU0VSSUFMX0VER0VQT1JUKQkJKz0gaW9fZWRnZXBvcnQubworb2JqLSQoQ09ORklHX1VTQl9TRVJJQUxfRURHRVBPUlRfVEkpCQkrPSBpb190aS5vCitvYmotJChDT05GSUdfVVNCX1NFUklBTF9FTVBFRykJCQkrPSBlbXBlZy5vCitvYmotJChDT05GSUdfVVNCX1NFUklBTF9GVERJX1NJTykJCSs9IGZ0ZGlfc2lvLm8KK29iai0kKENPTkZJR19VU0JfU0VSSUFMX0dBUk1JTikJCQkrPSBnYXJtaW5fZ3BzLm8KK29iai0kKENPTkZJR19VU0JfU0VSSUFMX0lQQVEpCQkJKz0gaXBhcS5vCitvYmotJChDT05GSUdfVVNCX1NFUklBTF9JUFcpCQkJKz0gaXB3Lm8KK29iai0kKENPTkZJR19VU0JfU0VSSUFMX0lSKQkJCSs9IGlyLXVzYi5vCitvYmotJChDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOKQkJKz0ga2V5c3Bhbi5vCitvYmotJChDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1BEQSkJCSs9IGtleXNwYW5fcGRhLm8KK29iai0kKENPTkZJR19VU0JfU0VSSUFMX0tMU0kpCQkJKz0ga2w1a3VzYjEwNS5vCitvYmotJChDT05GSUdfVVNCX1NFUklBTF9LT0JJTF9TQ1QpCQkrPSBrb2JpbF9zY3Qubworb2JqLSQoQ09ORklHX1VTQl9TRVJJQUxfTUNUX1UyMzIpCQkrPSBtY3RfdTIzMi5vCitvYmotJChDT05GSUdfVVNCX1NFUklBTF9PTU5JTkVUKQkJKz0gb21uaW5ldC5vCitvYmotJChDT05GSUdfVVNCX1NFUklBTF9QTDIzMDMpCQkJKz0gcGwyMzAzLm8KK29iai0kKENPTkZJR19VU0JfU0VSSUFMX1NBRkUpCQkJKz0gc2FmZV9zZXJpYWwubworb2JqLSQoQ09ORklHX1VTQl9TRVJJQUxfVEkpCQkJKz0gdGlfdXNiXzM0MTBfNTA1Mi5vCitvYmotJChDT05GSUdfVVNCX1NFUklBTF9WSVNPUikJCQkrPSB2aXNvci5vCitvYmotJChDT05GSUdfVVNCX1NFUklBTF9XSElURUhFQVQpCQkrPSB3aGl0ZWhlYXQubworb2JqLSQoQ09ORklHX1VTQl9TRVJJQUxfWElSQ09NKQkJCSs9IGtleXNwYW5fcGRhLm8KKwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL01ha2VmaWxlLWtleXNwYW5fcGRhX2Z3IGIvZHJpdmVycy91c2Ivc2VyaWFsL01ha2VmaWxlLWtleXNwYW5fcGRhX2Z3Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyMGJhZjcKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvTWFrZWZpbGUta2V5c3Bhbl9wZGFfZncKQEAgLTAsMCArMSwxNiBAQAorCisjIHNvbWUgcnVsZXMgdG8gaGFuZGxlIHRoZSBxdWlya3Mgb2YgdGhlICdhczMxJyBhc3NlbWJsZXIsIGxpa2UKKyMgaW5zaXN0aW5nIHVwb24gZml4ZWQgc3VmZml4ZXMgZm9yIHRoZSBpbnB1dCBhbmQgb3V0cHV0IGZpbGVzLAorIyBhbmQgaXRzIGxhY2sgb2YgcHJlcHJvY2Vzc29yIHN1cHBvcnQKKworYWxsOiBrZXlzcGFuX3BkYV9mdy5oCisKKyUuYXNtOiAlLlMKKwlnY2MgLXggYXNzZW1ibGVyLXdpdGgtY3BwIC1QIC1FIC1vICRAICQ8CisKKyUuaGV4OiAlLmFzbQorCWFzMzEgLWwgJDwKKwltdiAkKi5vYmogJEAKKworJV9mdy5oOiAlLmhleCBlenVzYl9jb252ZXJ0LnBsCisJcGVybCBlenVzYl9jb252ZXJ0LnBsICQqIDwgJDwgPiAkQApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2JlbGtpbl9zYS5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2JlbGtpbl9zYS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2OTk0ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvYmVsa2luX3NhLmMKQEAgLTAsMCArMSw2MTQgQEAKKy8qCisgKiBCZWxraW4gVVNCIFNlcmlhbCBBZGFwdGVyIERyaXZlcgorICoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDAJCVdpbGxpYW0gR3JlYXRob3VzZSAod2dyZWF0aG91c2VAc212YS5jb20pCisgKiAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDEgCUdyZWcgS3JvYWgtSGFydG1hbiAoZ3JlZ0Brcm9haC5jb20pCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBsYXJnZWx5IGRlcml2ZWQgZnJvbSB3b3JrIGJ5IHRoZSBsaW51eC11c2IgZ3JvdXAKKyAqICBhbmQgYXNzb2NpYXRlZCBzb3VyY2UgZmlsZXMuICBQbGVhc2Ugc2VlIHRoZSB1c2Ivc2VyaWFsIGZpbGVzIGZvcgorICogIGluZGl2aWR1YWwgY3JlZGl0cyBhbmQgY29weXJpZ2h0cy4KKyAqICAKKyAqIAlUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogCWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAJdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIAkoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFNlZSBEb2N1bWVudGF0aW9uL3VzYi91c2Itc2VyaWFsLnR4dCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB1c2luZyB0aGlzIGRyaXZlcgorICoKKyAqIFRPRE86CisgKiAtLSBBZGQgdHJ1ZSBtb2RlbSBjb250b2wgbGluZSBxdWVyeSBjYXBhYmlsaXR5LiAgQ3VycmVudGx5IHdlIHRyYWNrIHRoZQorICogICAgc3RhdGVzIHJlcG9ydGVkIGJ5IHRoZSBpbnRlcnJ1cHQgYW5kIHRoZSBzdGF0ZXMgd2UgcmVxdWVzdC4KKyAqIC0tIEFkZCBlcnJvciByZXBvcnRpbmcgYmFjayB0byBhcHBsaWNhdGlvbiBmb3IgVUFSVCBlcnJvciBjb25kaXRpb25zLgorICogICAgSnVzdCBwb2ludCBtZSBhdCBob3cgdG8gaW1wbGVtZW50IHRoaXMgYW5kIEknbGwgZG8gaXQuIEkndmUgcHV0IHRoZQorICogICAgZnJhbWV3b3JrIGluLCBidXQgaGF2ZW4ndCBhbmFseXplZCB0aGUgInR0eV9mbGlwIiBpbnRlcmZhY2UgeWV0LgorICogLS0gQWRkIHN1cHBvcnQgZm9yIGZsdXNoIGNvbW1hbmRzCisgKiAtLSBBZGQgZXZlcnl0aGluZyB0aGF0IGlzIG1pc3NpbmcgOikKKyAqCisgKiAyNy1Ob3YtMjAwMSBna2gKKyAqIAljb21wcmVzc2VkIGFsbCB0aGUgZGlmZmVybmVudCBkZXZpY2UgZW50cmllcyBpbnRvIDEuCisgKgorICogMzAtTWF5LTIwMDEgZ2toCisgKglzd2l0Y2hlZCBmcm9tIHVzaW5nIHNwaW5sb2NrIHRvIGEgc2VtYXBob3JlLCB3aGljaCBmaXhlcyBsb3RzIG9mIHByb2JsZW1zLgorICoKKyAqIDA4LUFwci0yMDAxIGdiCisgKgktIElkZW50aWZ5IHZlcnNpb24gb24gbW9kdWxlIGxvYWQuCisgKgorICogMTItTWFyLTIwMDEgZ2toCisgKgktIEFkZGVkIHN1cHBvcnQgZm9yIHRoZSBHb0h1YnMgR08tQ09NMjMyIGRldmljZSB3aGljaCBpcyB0aGUgc2FtZSBhcyB0aGUKKyAqCSAgUGVyYWNvbSBkZXZpY2UuCisgKgorICogMDYtTm92LTIwMDAgZ2toCisgKgktIEFkZGVkIHN1cHBvcnQgZm9yIHRoZSBvbGQgQmVsa2luIGFuZCBQZXJhY29tIGRldmljZXMuCisgKgktIE1hZGUgdGhlIHBvcnQgYWJsZSB0byBiZSBvcGVuZWQgbXVsdGlwbGUgdGltZXMuCisgKgktIEFkZGVkIHNvbWUgZGVmYXVsdHMgaW5jYXNlIHRoZSBsaW5lIHNldHRpbmdzIGFyZSB0aGluZ3MgdGhlc2UgZGV2aWNlcworICoJICBjYW4ndCBzdXBwb3J0LiAKKyAqCisgKiAxOC1PY3QtMjAwMCBXaWxsaWFtIEdyZWF0aG91c2UKKyAqICAgIFJlbGVhc2VkIGludG8gdGhlIHdpbGQgKGxpbnV4LXVzYi1kZXZlbCkKKyAqCisgKiAxNy1PY3QtMjAwMCBXaWxsaWFtIEdyZWF0aG91c2UKKyAqICAgIEFkZCBjb2RlIHRvIHJlY29nbml6ZSBmaXJtd2FyZSB2ZXJzaW9uIGFuZCBzZXQgaGFyZHdhcmUgZmxvdyBjb250cm9sCisgKiAgICBhcHByb3ByaWF0ZWx5LiAgQmVsa2luIHN0YXRlcyB0aGF0IGZpcm13YXJlIHByaW9yIHRvIDMuMDUgZG9lcyBub3QKKyAqICAgIG9wZXJhdGUgY29ycmVjdGx5IGluIGhhcmR3YXJlIGhhbmRzaGFrZSBtb2RlLiAgSSBoYXZlIHZlcmlmaWVkIHRoaXMKKyAqICAgIG9uIGZpcm13YXJlIDIuMDUgLS0gZm9yIGJvdGggUlRTIGFuZCBEVFIgaW5wdXQgZmxvdyBjb250cm9sLCB0aGUgY29udHJvbAorICogICAgbGluZSBpcyBub3QgcmVzZXQuICBUaGUgdGVzdCBwZXJmb3JtZWQgYnkgdGhlIEJlbGtpbiBXaW4qIGRyaXZlciBpcworICogICAgdG8gZW5hYmxlIGhhcmR3YXJlIGZsb3cgY29udHJvbCBmb3IgZmlybXdhcmUgMi4wNiBvciBncmVhdGVyIGFuZAorICogICAgZm9yIDEuMDAgb3IgcHJpb3IuICBJIGFtIG9ubHkgZW5hYmxpbmcgZm9yIDIuMDYgb3IgZ3JlYXRlci4KKyAqCisgKiAxMi1PY3QtMjAwMCBXaWxsaWFtIEdyZWF0aG91c2UKKyAqICAgIEZpcnN0IGN1dCBhdCBzdXBwb3J0aW5nIEJlbGtpbiBVU0IgU2VyaWFsIEFkYXB0ZXIgRjVVMTAzCisgKiAgICBJIGRpZCBub3QgaGF2ZSBhIGNvcHkgb2YgdGhlIG9yaWdpbmFsIHdvcmsgdG8gc3VwcG9ydCB0aGlzCisgKiAgICBhZGFwdGVyLCBzbyBwYXJkb24gYW55IHN0dXBpZCBtaXN0YWtlcy4gIEFsbCBvZiB0aGUgaW5mb3JtYXRpb24KKyAqICAgIEkgYW0gdXNpbmcgdG8gd3JpdGUgdGhpcyBkcml2ZXIgd2FzIGFjcXVpcmVkIGJ5IHVzaW5nIGEgbW9kaWZpZWQKKyAqICAgIFVzYlNub29wIG9uIFdpbmRvd3MyMDAwIGFuZCBmcm9tIGV4YW1pbmluZyB0aGUgb3RoZXIgVVNCIGRyaXZlcnMuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC90dHkuaD4KKyNpbmNsdWRlIDxsaW51eC90dHlfZHJpdmVyLmg+CisjaW5jbHVkZSA8bGludXgvdHR5X2ZsaXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvdXNiLmg+CisjaW5jbHVkZSAidXNiLXNlcmlhbC5oIgorI2luY2x1ZGUgImJlbGtpbl9zYS5oIgorCitzdGF0aWMgaW50IGRlYnVnOworCisvKgorICogVmVyc2lvbiBJbmZvcm1hdGlvbgorICovCisjZGVmaW5lIERSSVZFUl9WRVJTSU9OICJ2MS4yIgorI2RlZmluZSBEUklWRVJfQVVUSE9SICJXaWxsaWFtIEdyZWF0aG91c2UgPHdncmVhdGhvdXNlQHNtdmEuY29tPiIKKyNkZWZpbmUgRFJJVkVSX0RFU0MgIlVTQiBCZWxraW4gU2VyaWFsIGNvbnZlcnRlciBkcml2ZXIiCisKKy8qIGZ1bmN0aW9uIHByb3RvdHlwZXMgZm9yIGEgQmVsa2luIFVTQiBTZXJpYWwgQWRhcHRlciBGNVUxMDMgKi8KK3N0YXRpYyBpbnQgIGJlbGtpbl9zYV9zdGFydHVwCQkoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCk7CitzdGF0aWMgdm9pZCBiZWxraW5fc2Ffc2h1dGRvd24JCShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKTsKK3N0YXRpYyBpbnQgIGJlbGtpbl9zYV9vcGVuCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbHApOworc3RhdGljIHZvaWQgYmVsa2luX3NhX2Nsb3NlCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbHApOworc3RhdGljIHZvaWQgYmVsa2luX3NhX3JlYWRfaW50X2NhbGxiYWNrIChzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKK3N0YXRpYyB2b2lkIGJlbGtpbl9zYV9zZXRfdGVybWlvcwkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IHRlcm1pb3MgKiBvbGQpOworc3RhdGljIGludCAgYmVsa2luX3NhX2lvY3RsCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKiBmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7CitzdGF0aWMgdm9pZCBiZWxraW5fc2FfYnJlYWtfY3RsCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgaW50IGJyZWFrX3N0YXRlICk7CitzdGF0aWMgaW50ICBiZWxraW5fc2FfdGlvY21nZXQJCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlsZSk7CitzdGF0aWMgaW50ICBiZWxraW5fc2FfdGlvY21zZXQJCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IHNldCwgdW5zaWduZWQgaW50IGNsZWFyKTsKKworCitzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgaWRfdGFibGVfY29tYmluZWQgW10gPSB7CisJeyBVU0JfREVWSUNFKEJFTEtJTl9TQV9WSUQsIEJFTEtJTl9TQV9QSUQpIH0sCisJeyBVU0JfREVWSUNFKEJFTEtJTl9PTERfVklELCBCRUxLSU5fT0xEX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoUEVSQUNPTV9WSUQsIFBFUkFDT01fUElEKSB9LAorCXsgVVNCX0RFVklDRShHT0hVQlNfVklELCBHT0hVQlNfUElEKSB9LAorCXsgVVNCX0RFVklDRShHT0hVQlNfVklELCBIQU5EWUxJTktfUElEKSB9LAorCXsgVVNCX0RFVklDRShCRUxLSU5fRE9DS1NUQVRJT05fVklELCBCRUxLSU5fRE9DS1NUQVRJT05fUElEKSB9LAorCXsgfQkJCQkJCQkvKiBUZXJtaW5hdGluZyBlbnRyeSAqLworfTsKKworTU9EVUxFX0RFVklDRV9UQUJMRSAodXNiLCBpZF90YWJsZV9jb21iaW5lZCk7CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBiZWxraW5fZHJpdmVyID0geworCS5vd25lciA9CVRISVNfTU9EVUxFLAorCS5uYW1lID0JCSJiZWxraW4iLAorCS5wcm9iZSA9CXVzYl9zZXJpYWxfcHJvYmUsCisJLmRpc2Nvbm5lY3QgPQl1c2Jfc2VyaWFsX2Rpc2Nvbm5lY3QsCisJLmlkX3RhYmxlID0JaWRfdGFibGVfY29tYmluZWQsCit9OworCisvKiBBbGwgb2YgdGhlIGRldmljZSBpbmZvIG5lZWRlZCBmb3IgdGhlIHNlcmlhbCBjb252ZXJ0ZXJzICovCitzdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUgYmVsa2luX2RldmljZSA9IHsKKwkub3duZXIgPQkJVEhJU19NT0RVTEUsCisJLm5hbWUgPQkJCSJCZWxraW4gLyBQZXJhY29tIC8gR29IdWJzIFVTQiBTZXJpYWwgQWRhcHRlciIsCisJLnNob3J0X25hbWUgPQkJImJlbGtpbiIsCisJLmlkX3RhYmxlID0JCWlkX3RhYmxlX2NvbWJpbmVkLAorCS5udW1faW50ZXJydXB0X2luID0JMSwKKwkubnVtX2J1bGtfaW4gPQkJMSwKKwkubnVtX2J1bGtfb3V0ID0JCTEsCisJLm51bV9wb3J0cyA9CQkxLAorCS5vcGVuID0JCQliZWxraW5fc2Ffb3BlbiwKKwkuY2xvc2UgPQkJYmVsa2luX3NhX2Nsb3NlLAorCS5yZWFkX2ludF9jYWxsYmFjayA9CWJlbGtpbl9zYV9yZWFkX2ludF9jYWxsYmFjaywJLyogSG93IHdlIGdldCB0aGUgc3RhdHVzIGluZm8gKi8KKwkuaW9jdGwgPQkJYmVsa2luX3NhX2lvY3RsLAorCS5zZXRfdGVybWlvcyA9CQliZWxraW5fc2Ffc2V0X3Rlcm1pb3MsCisJLmJyZWFrX2N0bCA9CQliZWxraW5fc2FfYnJlYWtfY3RsLAorCS50aW9jbWdldCA9CQliZWxraW5fc2FfdGlvY21nZXQsCisJLnRpb2Ntc2V0ID0JCWJlbGtpbl9zYV90aW9jbXNldCwKKwkuYXR0YWNoID0JCWJlbGtpbl9zYV9zdGFydHVwLAorCS5zaHV0ZG93biA9CQliZWxraW5fc2Ffc2h1dGRvd24sCit9OworCisKK3N0cnVjdCBiZWxraW5fc2FfcHJpdmF0ZSB7CisJc3BpbmxvY2tfdAkJbG9jazsKKwl1bnNpZ25lZCBsb25nCQljb250cm9sX3N0YXRlOworCXVuc2lnbmVkIGNoYXIJCWxhc3RfbHNyOworCXVuc2lnbmVkIGNoYXIJCWxhc3RfbXNyOworCWludAkJCWJhZF9mbG93X2NvbnRyb2w7Cit9OworCisKKy8qCisgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEJlbGtpbiBVU0IgU2VyaWFsIEFkYXB0ZXIgRjVVMTAzIHNwZWNpZmljIGRyaXZlciBmdW5jdGlvbnMKKyAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKyNkZWZpbmUgV0RSX1RJTUVPVVQgNTAwMCAvKiBkZWZhdWx0IHVyYiB0aW1lb3V0ICovCisKKy8qIGFzc3VtZXMgdGhhdCBzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBCU0FfVVNCX0NNRChjLHYpIHVzYl9jb250cm9sX21zZyhzZXJpYWwtPmRldiwgdXNiX3NuZGN0cmxwaXBlKHNlcmlhbC0+ZGV2LCAwKSwgXAorCQkJCQkgICAgKGMpLCBCRUxLSU5fU0FfU0VUX1JFUVVFU1RfVFlQRSwgXAorCQkJCQkgICAgKHYpLCAwLCBOVUxMLCAwLCBXRFJfVElNRU9VVCkKKworLyogZG8gc29tZSBzdGFydHVwIGFsbG9jYXRpb25zIG5vdCBjdXJyZW50bHkgcGVyZm9ybWVkIGJ5IHVzYl9zZXJpYWxfcHJvYmUoKSAqLworc3RhdGljIGludCBiZWxraW5fc2Ffc3RhcnR1cCAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkKK3sKKwlzdHJ1Y3QgdXNiX2RldmljZSAqZGV2ID0gc2VyaWFsLT5kZXY7CisJc3RydWN0IGJlbGtpbl9zYV9wcml2YXRlICpwcml2OworCisJLyogYWxsb2NhdGUgdGhlIHByaXZhdGUgZGF0YSBzdHJ1Y3R1cmUgKi8KKwlwcml2ID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IGJlbGtpbl9zYV9wcml2YXRlKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFwcml2KQorCQlyZXR1cm4gKC0xKTsgLyogZXJyb3IgKi8KKwkvKiBzZXQgaW5pdGlhbCB2YWx1ZXMgZm9yIGNvbnRyb2wgc3RydWN0dXJlcyAqLworCXNwaW5fbG9ja19pbml0KCZwcml2LT5sb2NrKTsKKwlwcml2LT5jb250cm9sX3N0YXRlID0gMDsKKwlwcml2LT5sYXN0X2xzciA9IDA7CisJcHJpdi0+bGFzdF9tc3IgPSAwOworCS8qIHNlZSBjb21tZW50cyBhdCB0b3Agb2YgZmlsZSAqLworCXByaXYtPmJhZF9mbG93X2NvbnRyb2wgPSAobGUxNl90b19jcHUoZGV2LT5kZXNjcmlwdG9yLmJjZERldmljZSkgPD0gMHgwMjA2KSA/IDEgOiAwOworCWluZm8oImJjZERldmljZTogJTA0eCwgYmZjOiAlZCIsIGxlMTZfdG9fY3B1KGRldi0+ZGVzY3JpcHRvci5iY2REZXZpY2UpLCBwcml2LT5iYWRfZmxvd19jb250cm9sKTsKKworCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnNlcmlhbC0+cG9ydFswXS0+d3JpdGVfd2FpdCk7CisJdXNiX3NldF9zZXJpYWxfcG9ydF9kYXRhKHNlcmlhbC0+cG9ydFswXSwgcHJpdik7CisJCisJcmV0dXJuICgwKTsKK30KKworCitzdGF0aWMgdm9pZCBiZWxraW5fc2Ffc2h1dGRvd24gKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7CisJc3RydWN0IGJlbGtpbl9zYV9wcml2YXRlICpwcml2OworCWludCBpOworCQorCWRiZyAoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCS8qIHN0b3AgcmVhZHMgYW5kIHdyaXRlcyBvbiBhbGwgcG9ydHMgKi8KKwlmb3IgKGk9MDsgaSA8IHNlcmlhbC0+bnVtX3BvcnRzOyArK2kpIHsKKwkJLyogTXkgc3BlY2lhbCBpdGVtcywgdGhlIHN0YW5kYXJkIHJvdXRpbmVzIGZyZWUgbXkgdXJicyAqLworCQlwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHNlcmlhbC0+cG9ydFtpXSk7CisJCWlmIChwcml2KQorCQkJa2ZyZWUocHJpdik7CisJfQorfQorCisKK3N0YXRpYyBpbnQgIGJlbGtpbl9zYV9vcGVuIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlpbnQgcmV0dmFsID0gMDsKKworCWRiZygiJXMgcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCS8qU3RhcnQgcmVhZGluZyBmcm9tIHRoZSBkZXZpY2UqLworCS8qIFRPRE86IExvb2sgYXQgcG9zc2liaWxpdHkgb2Ygc3VibWl0dGluZyBtdWx0aXBsZSBVUkJzIHRvIGRldmljZSB0bworCSAqICAgICAgIGVuaGFuY2UgYnVmZmVyaW5nLiAgV2luIHRyYWNlIHNob3dzIDE2IGluaXRpYWwgcmVhZCBVUkJzLgorCSAqLworCXBvcnQtPnJlYWRfdXJiLT5kZXYgPSBwb3J0LT5zZXJpYWwtPmRldjsKKwlyZXR2YWwgPSB1c2Jfc3VibWl0X3VyYihwb3J0LT5yZWFkX3VyYiwgR0ZQX0tFUk5FTCk7CisJaWYgKHJldHZhbCkgeworCQllcnIoInVzYl9zdWJtaXRfdXJiKHJlYWQgYnVsaykgZmFpbGVkIik7CisJCWdvdG8gZXhpdDsKKwl9CisKKwlwb3J0LT5pbnRlcnJ1cHRfaW5fdXJiLT5kZXYgPSBwb3J0LT5zZXJpYWwtPmRldjsKKwlyZXR2YWwgPSB1c2Jfc3VibWl0X3VyYihwb3J0LT5pbnRlcnJ1cHRfaW5fdXJiLCBHRlBfS0VSTkVMKTsKKwlpZiAocmV0dmFsKSB7CisJCXVzYl9raWxsX3VyYihwb3J0LT5yZWFkX3VyYik7CisJCWVycigiIHVzYl9zdWJtaXRfdXJiKHJlYWQgaW50KSBmYWlsZWQiKTsKKwl9CisKK2V4aXQ6CisJcmV0dXJuIHJldHZhbDsKK30gLyogYmVsa2luX3NhX29wZW4gKi8KKworCitzdGF0aWMgdm9pZCBiZWxraW5fc2FfY2xvc2UgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKQoreworCWRiZygiJXMgcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCS8qIHNodXRkb3duIG91ciBidWxrIHJlYWRzIGFuZCB3cml0ZXMgKi8KKwl1c2Jfa2lsbF91cmIocG9ydC0+d3JpdGVfdXJiKTsKKwl1c2Jfa2lsbF91cmIocG9ydC0+cmVhZF91cmIpOworCXVzYl9raWxsX3VyYihwb3J0LT5pbnRlcnJ1cHRfaW5fdXJiKTsKK30gLyogYmVsa2luX3NhX2Nsb3NlICovCisKKworc3RhdGljIHZvaWQgYmVsa2luX3NhX3JlYWRfaW50X2NhbGxiYWNrIChzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqKXVyYi0+Y29udGV4dDsKKwlzdHJ1Y3QgYmVsa2luX3NhX3ByaXZhdGUgKnByaXY7CisJdW5zaWduZWQgY2hhciAqZGF0YSA9IHVyYi0+dHJhbnNmZXJfYnVmZmVyOworCWludCByZXR2YWw7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXN3aXRjaCAodXJiLT5zdGF0dXMpIHsKKwljYXNlIDA6CisJCS8qIHN1Y2Nlc3MgKi8KKwkJYnJlYWs7CisJY2FzZSAtRUNPTk5SRVNFVDoKKwljYXNlIC1FTk9FTlQ6CisJY2FzZSAtRVNIVVRET1dOOgorCQkvKiB0aGlzIHVyYiBpcyB0ZXJtaW5hdGVkLCBjbGVhbiB1cCAqLworCQlkYmcoIiVzIC0gdXJiIHNodXR0aW5nIGRvd24gd2l0aCBzdGF0dXM6ICVkIiwgX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyk7CisJCXJldHVybjsKKwlkZWZhdWx0OgorCQlkYmcoIiVzIC0gbm9uemVybyB1cmIgc3RhdHVzIHJlY2VpdmVkOiAlZCIsIF9fRlVOQ1RJT05fXywgdXJiLT5zdGF0dXMpOworCQlnb3RvIGV4aXQ7CisJfQorCisJdXNiX3NlcmlhbF9kZWJ1Z19kYXRhKGRlYnVnLCAmcG9ydC0+ZGV2LCBfX0ZVTkNUSU9OX18sIHVyYi0+YWN0dWFsX2xlbmd0aCwgZGF0YSk7CisKKwkvKiBIYW5kbGUga25vd24gaW50ZXJydXB0IGRhdGEgKi8KKwkvKiBpZ25vcmUgZGF0YVswXSBhbmQgZGF0YVsxXSAqLworCisJcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCXByaXYtPmxhc3RfbXNyID0gZGF0YVtCRUxLSU5fU0FfTVNSX0lOREVYXTsKKwkKKwkvKiBSZWNvcmQgQ29udHJvbCBMaW5lIHN0YXRlcyAqLworCWlmIChwcml2LT5sYXN0X21zciAmIEJFTEtJTl9TQV9NU1JfRFNSKQorCQlwcml2LT5jb250cm9sX3N0YXRlIHw9IFRJT0NNX0RTUjsKKwllbHNlCisJCXByaXYtPmNvbnRyb2xfc3RhdGUgJj0gflRJT0NNX0RTUjsKKworCWlmIChwcml2LT5sYXN0X21zciAmIEJFTEtJTl9TQV9NU1JfQ1RTKQorCQlwcml2LT5jb250cm9sX3N0YXRlIHw9IFRJT0NNX0NUUzsKKwllbHNlCisJCXByaXYtPmNvbnRyb2xfc3RhdGUgJj0gflRJT0NNX0NUUzsKKworCWlmIChwcml2LT5sYXN0X21zciAmIEJFTEtJTl9TQV9NU1JfUkkpCisJCXByaXYtPmNvbnRyb2xfc3RhdGUgfD0gVElPQ01fUkk7CisJZWxzZQorCQlwcml2LT5jb250cm9sX3N0YXRlICY9IH5USU9DTV9SSTsKKworCWlmIChwcml2LT5sYXN0X21zciAmIEJFTEtJTl9TQV9NU1JfQ0QpCisJCXByaXYtPmNvbnRyb2xfc3RhdGUgfD0gVElPQ01fQ0Q7CisJZWxzZQorCQlwcml2LT5jb250cm9sX3N0YXRlICY9IH5USU9DTV9DRDsKKworCS8qIE5vdyB0byByZXBvcnQgYW55IGVycm9ycyAqLworCXByaXYtPmxhc3RfbHNyID0gZGF0YVtCRUxLSU5fU0FfTFNSX0lOREVYXTsKKyNpZiAwCisJLyoKKwkgKiBmaWxsIGluIHRoZSBmbGlwIGJ1ZmZlciBoZXJlLCBidXQgSSBkbyBub3Qga25vdyB0aGUgcmVsYXRpb24KKwkgKiB0byB0aGUgY3VycmVudC9uZXh0IHJlY2VpdmUgYnVmZmVyIG9yIGNoYXJhY3RlcnMuICBJIG5lZWQKKwkgKiB0byBsb29rIGluIHRvIHRoaXMgYmVmb3JlIGNvbW1pdHRpbmcgYW55IGNvZGUuCisJICovCisJaWYgKHByaXYtPmxhc3RfbHNyICYgQkVMS0lOX1NBX0xTUl9FUlIpIHsKKwkJdHR5ID0gcG9ydC0+dHR5OworCQkvKiBPdmVycnVuIEVycm9yICovCisJCWlmIChwcml2LT5sYXN0X2xzciAmIEJFTEtJTl9TQV9MU1JfT0UpIHsKKwkJfQorCQkvKiBQYXJpdHkgRXJyb3IgKi8KKwkJaWYgKHByaXYtPmxhc3RfbHNyICYgQkVMS0lOX1NBX0xTUl9QRSkgeworCQl9CisJCS8qIEZyYW1pbmcgRXJyb3IgKi8KKwkJaWYgKHByaXYtPmxhc3RfbHNyICYgQkVMS0lOX1NBX0xTUl9GRSkgeworCQl9CisJCS8qIEJyZWFrIEluZGljYXRvciAqLworCQlpZiAocHJpdi0+bGFzdF9sc3IgJiBCRUxLSU5fU0FfTFNSX0JJKSB7CisJCX0KKwl9CisjZW5kaWYKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CitleGl0OgorCXJldHZhbCA9IHVzYl9zdWJtaXRfdXJiICh1cmIsIEdGUF9BVE9NSUMpOworCWlmIChyZXR2YWwpCisJCWVyciAoIiVzIC0gdXNiX3N1Ym1pdF91cmIgZmFpbGVkIHdpdGggcmVzdWx0ICVkIiwKKwkJICAgICBfX0ZVTkNUSU9OX18sIHJldHZhbCk7Cit9CisKK3N0YXRpYyB2b2lkIGJlbGtpbl9zYV9zZXRfdGVybWlvcyAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IHRlcm1pb3MgKm9sZF90ZXJtaW9zKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgPSBwb3J0LT5zZXJpYWw7CisJc3RydWN0IGJlbGtpbl9zYV9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXVuc2lnbmVkIGludCBpZmxhZzsKKwl1bnNpZ25lZCBpbnQgY2ZsYWc7CisJdW5zaWduZWQgaW50IG9sZF9pZmxhZyA9IDA7CisJdW5zaWduZWQgaW50IG9sZF9jZmxhZyA9IDA7CisJX191MTYgdXJiX3ZhbHVlID0gMDsgLyogV2lsbCBob2xkIHRoZSBuZXcgZmxhZ3MgKi8KKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGxvbmcgY29udHJvbF9zdGF0ZTsKKwlpbnQgYmFkX2Zsb3dfY29udHJvbDsKKwkKKwlpZiAoKCFwb3J0LT50dHkpIHx8ICghcG9ydC0+dHR5LT50ZXJtaW9zKSkgeworCQlkYmcgKCIlcyAtIG5vIHR0eSBvciB0ZXJtaW9zIHN0cnVjdHVyZSIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybjsKKwl9CisKKwlpZmxhZyA9IHBvcnQtPnR0eS0+dGVybWlvcy0+Y19pZmxhZzsKKwljZmxhZyA9IHBvcnQtPnR0eS0+dGVybWlvcy0+Y19jZmxhZzsKKworCS8qIGdldCBhIGxvY2FsIGNvcHkgb2YgdGhlIGN1cnJlbnQgcG9ydCBzZXR0aW5ncyAqLworCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJY29udHJvbF9zdGF0ZSA9IHByaXYtPmNvbnRyb2xfc3RhdGU7CisJYmFkX2Zsb3dfY29udHJvbCA9IHByaXYtPmJhZF9mbG93X2NvbnRyb2w7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCQorCS8qIGNoZWNrIHRoYXQgdGhleSByZWFsbHkgd2FudCB1cyB0byBjaGFuZ2Ugc29tZXRoaW5nICovCisJaWYgKG9sZF90ZXJtaW9zKSB7CisJCWlmICgoY2ZsYWcgPT0gb2xkX3Rlcm1pb3MtPmNfY2ZsYWcpICYmCisJCSAgICAoUkVMRVZBTlRfSUZMQUcocG9ydC0+dHR5LT50ZXJtaW9zLT5jX2lmbGFnKSA9PSBSRUxFVkFOVF9JRkxBRyhvbGRfdGVybWlvcy0+Y19pZmxhZykpKSB7CisJCQlkYmcoIiVzIC0gbm90aGluZyB0byBjaGFuZ2UuLi4iLCBfX0ZVTkNUSU9OX18pOworCQkJcmV0dXJuOworCQl9CisJCW9sZF9pZmxhZyA9IG9sZF90ZXJtaW9zLT5jX2lmbGFnOworCQlvbGRfY2ZsYWcgPSBvbGRfdGVybWlvcy0+Y19jZmxhZzsKKwl9CisKKwkvKiBTZXQgdGhlIGJhdWQgcmF0ZSAqLworCWlmKCAoY2ZsYWcmQ0JBVUQpICE9IChvbGRfY2ZsYWcmQ0JBVUQpICkgeworCQkvKiByZWFzc2VydCBEVFIgYW5kIChtYXliZSkgUlRTIG9uIHRyYW5zaXRpb24gZnJvbSBCMCAqLworCQlpZiggKG9sZF9jZmxhZyZDQkFVRCkgPT0gQjAgKSB7CisJCQljb250cm9sX3N0YXRlIHw9IChUSU9DTV9EVFJ8VElPQ01fUlRTKTsKKwkJCWlmIChCU0FfVVNCX0NNRChCRUxLSU5fU0FfU0VUX0RUUl9SRVFVRVNULCAxKSA8IDApCisJCQkJZXJyKCJTZXQgRFRSIGVycm9yIik7CisJCQkvKiBkb24ndCBzZXQgUlRTIGlmIHVzaW5nIGhhcmR3YXJlIGZsb3cgY29udHJvbCAqLworCQkJaWYgKCEob2xkX2NmbGFnJkNSVFNDVFMpICkKKwkJCQlpZiAoQlNBX1VTQl9DTUQoQkVMS0lOX1NBX1NFVF9SVFNfUkVRVUVTVCwgMSkgPCAwKQorCQkJCQllcnIoIlNldCBSVFMgZXJyb3IiKTsKKwkJfQorCisJCXN3aXRjaChjZmxhZyAmIENCQVVEKSB7CisJCQljYXNlIEIwOiAvKiBoYW5kbGVkIGJlbG93ICovIGJyZWFrOworCQkJY2FzZSBCMzAwOiB1cmJfdmFsdWUgPSBCRUxLSU5fU0FfQkFVRCgzMDApOyBicmVhazsKKwkJCWNhc2UgQjYwMDogdXJiX3ZhbHVlID0gQkVMS0lOX1NBX0JBVUQoNjAwKTsgYnJlYWs7CisJCQljYXNlIEIxMjAwOiB1cmJfdmFsdWUgPSBCRUxLSU5fU0FfQkFVRCgxMjAwKTsgYnJlYWs7CisJCQljYXNlIEIyNDAwOiB1cmJfdmFsdWUgPSBCRUxLSU5fU0FfQkFVRCgyNDAwKTsgYnJlYWs7CisJCQljYXNlIEI0ODAwOiB1cmJfdmFsdWUgPSBCRUxLSU5fU0FfQkFVRCg0ODAwKTsgYnJlYWs7CisJCQljYXNlIEI5NjAwOiB1cmJfdmFsdWUgPSBCRUxLSU5fU0FfQkFVRCg5NjAwKTsgYnJlYWs7CisJCQljYXNlIEIxOTIwMDogdXJiX3ZhbHVlID0gQkVMS0lOX1NBX0JBVUQoMTkyMDApOyBicmVhazsKKwkJCWNhc2UgQjM4NDAwOiB1cmJfdmFsdWUgPSBCRUxLSU5fU0FfQkFVRCgzODQwMCk7IGJyZWFrOworCQkJY2FzZSBCNTc2MDA6IHVyYl92YWx1ZSA9IEJFTEtJTl9TQV9CQVVEKDU3NjAwKTsgYnJlYWs7CisJCQljYXNlIEIxMTUyMDA6IHVyYl92YWx1ZSA9IEJFTEtJTl9TQV9CQVVEKDExNTIwMCk7IGJyZWFrOworCQkJY2FzZSBCMjMwNDAwOiB1cmJfdmFsdWUgPSBCRUxLSU5fU0FfQkFVRCgyMzA0MDApOyBicmVhazsKKwkJCWRlZmF1bHQ6IGVycigiQkVMS0lOIFVTQiBTZXJpYWwgQWRhcHRlcjogdW5zdXBwb3J0ZWQgYmF1ZHJhdGUgcmVxdWVzdCwgdXNpbmcgZGVmYXVsdCBvZiA5NjAwIik7CisJCQkJdXJiX3ZhbHVlID0gQkVMS0lOX1NBX0JBVUQoOTYwMCk7IGJyZWFrOworCQl9CisJCWlmICgoY2ZsYWcgJiBDQkFVRCkgIT0gQjAgKSB7CisJCQlpZiAoQlNBX1VTQl9DTUQoQkVMS0lOX1NBX1NFVF9CQVVEUkFURV9SRVFVRVNULCB1cmJfdmFsdWUpIDwgMCkKKwkJCQllcnIoIlNldCBiYXVkcmF0ZSBlcnJvciIpOworCQl9IGVsc2UgeworCQkJLyogRGlzYWJsZSBmbG93IGNvbnRyb2wgKi8KKwkJCWlmIChCU0FfVVNCX0NNRChCRUxLSU5fU0FfU0VUX0ZMT1dfQ1RSTF9SRVFVRVNULCBCRUxLSU5fU0FfRkxPV19OT05FKSA8IDApCisJCQkJZXJyKCJEaXNhYmxlIGZsb3djb250cm9sIGVycm9yIik7CisKKwkJCS8qIERyb3AgUlRTIGFuZCBEVFIgKi8KKwkJCWNvbnRyb2xfc3RhdGUgJj0gfihUSU9DTV9EVFIgfCBUSU9DTV9SVFMpOworCQkJaWYgKEJTQV9VU0JfQ01EKEJFTEtJTl9TQV9TRVRfRFRSX1JFUVVFU1QsIDApIDwgMCkKKwkJCQllcnIoIkRUUiBMT1cgZXJyb3IiKTsKKwkJCWlmIChCU0FfVVNCX0NNRChCRUxLSU5fU0FfU0VUX1JUU19SRVFVRVNULCAwKSA8IDApCisJCQkJZXJyKCJSVFMgTE9XIGVycm9yIik7CisJCX0KKwl9CisKKwkvKiBzZXQgdGhlIHBhcml0eSAqLworCWlmKCAoY2ZsYWcmKFBBUkVOQnxQQVJPREQpKSAhPSAob2xkX2NmbGFnJihQQVJFTkJ8UEFST0REKSkgKSB7CisJCWlmIChjZmxhZyAmIFBBUkVOQikKKwkJCXVyYl92YWx1ZSA9IChjZmxhZyAmIFBBUk9ERCkgPyAgQkVMS0lOX1NBX1BBUklUWV9PREQgOiBCRUxLSU5fU0FfUEFSSVRZX0VWRU47CisJCWVsc2UKKwkJCXVyYl92YWx1ZSA9IEJFTEtJTl9TQV9QQVJJVFlfTk9ORTsKKwkJaWYgKEJTQV9VU0JfQ01EKEJFTEtJTl9TQV9TRVRfUEFSSVRZX1JFUVVFU1QsIHVyYl92YWx1ZSkgPCAwKQorCQkJZXJyKCJTZXQgcGFyaXR5IGVycm9yIik7CisJfQorCisJLyogc2V0IHRoZSBudW1iZXIgb2YgZGF0YSBiaXRzICovCisJaWYoIChjZmxhZyZDU0laRSkgIT0gKG9sZF9jZmxhZyZDU0laRSkgKSB7CisJCXN3aXRjaCAoY2ZsYWcgJiBDU0laRSkgeworCQkJY2FzZSBDUzU6IHVyYl92YWx1ZSA9IEJFTEtJTl9TQV9EQVRBX0JJVFMoNSk7IGJyZWFrOworCQkJY2FzZSBDUzY6IHVyYl92YWx1ZSA9IEJFTEtJTl9TQV9EQVRBX0JJVFMoNik7IGJyZWFrOworCQkJY2FzZSBDUzc6IHVyYl92YWx1ZSA9IEJFTEtJTl9TQV9EQVRBX0JJVFMoNyk7IGJyZWFrOworCQkJY2FzZSBDUzg6IHVyYl92YWx1ZSA9IEJFTEtJTl9TQV9EQVRBX0JJVFMoOCk7IGJyZWFrOworCQkJZGVmYXVsdDogZXJyKCJDU0laRSB3YXMgbm90IENTNS1DUzgsIHVzaW5nIGRlZmF1bHQgb2YgOCIpOworCQkJCXVyYl92YWx1ZSA9IEJFTEtJTl9TQV9EQVRBX0JJVFMoOCk7CisJCQkJYnJlYWs7CisJCX0KKwkJaWYgKEJTQV9VU0JfQ01EKEJFTEtJTl9TQV9TRVRfREFUQV9CSVRTX1JFUVVFU1QsIHVyYl92YWx1ZSkgPCAwKQorCQkJZXJyKCJTZXQgZGF0YSBiaXRzIGVycm9yIik7CisJfQorCisJLyogc2V0IHRoZSBudW1iZXIgb2Ygc3RvcCBiaXRzICovCisJaWYoIChjZmxhZyZDU1RPUEIpICE9IChvbGRfY2ZsYWcmQ1NUT1BCKSApIHsKKwkJdXJiX3ZhbHVlID0gKGNmbGFnICYgQ1NUT1BCKSA/IEJFTEtJTl9TQV9TVE9QX0JJVFMoMikgOiBCRUxLSU5fU0FfU1RPUF9CSVRTKDEpOworCQlpZiAoQlNBX1VTQl9DTUQoQkVMS0lOX1NBX1NFVF9TVE9QX0JJVFNfUkVRVUVTVCwgdXJiX3ZhbHVlKSA8IDApCisJCQllcnIoIlNldCBzdG9wIGJpdHMgZXJyb3IiKTsKKwl9CisKKwkvKiBTZXQgZmxvdyBjb250cm9sICovCisJaWYoIChpZmxhZyZJWE9GRikgICAhPSAob2xkX2lmbGFnJklYT0ZGKQorCXx8CShpZmxhZyZJWE9OKSAgICAhPSAob2xkX2lmbGFnJklYT04pCisJfHwgIChjZmxhZyZDUlRTQ1RTKSAhPSAob2xkX2NmbGFnJkNSVFNDVFMpICkgeworCQl1cmJfdmFsdWUgPSAwOworCQlpZiAoKGlmbGFnICYgSVhPRkYpIHx8IChpZmxhZyAmIElYT04pKQorCQkJdXJiX3ZhbHVlIHw9IChCRUxLSU5fU0FfRkxPV19PWE9OIHwgQkVMS0lOX1NBX0ZMT1dfSVhPTik7CisJCWVsc2UKKwkJCXVyYl92YWx1ZSAmPSB+KEJFTEtJTl9TQV9GTE9XX09YT04gfCBCRUxLSU5fU0FfRkxPV19JWE9OKTsKKworCQlpZiAoY2ZsYWcgJiBDUlRTQ1RTKQorCQkJdXJiX3ZhbHVlIHw9ICAoQkVMS0lOX1NBX0ZMT1dfT0NUUyB8IEJFTEtJTl9TQV9GTE9XX0lSVFMpOworCQllbHNlCisJCQl1cmJfdmFsdWUgJj0gfihCRUxLSU5fU0FfRkxPV19PQ1RTIHwgQkVMS0lOX1NBX0ZMT1dfSVJUUyk7CisKKwkJaWYgKGJhZF9mbG93X2NvbnRyb2wpCisJCQl1cmJfdmFsdWUgJj0gfihCRUxLSU5fU0FfRkxPV19JUlRTKTsKKworCQlpZiAoQlNBX1VTQl9DTUQoQkVMS0lOX1NBX1NFVF9GTE9XX0NUUkxfUkVRVUVTVCwgdXJiX3ZhbHVlKSA8IDApCisJCQllcnIoIlNldCBmbG93IGNvbnRyb2wgZXJyb3IiKTsKKwl9CisKKwkvKiBzYXZlIG9mZiB0aGUgbW9kaWZpZWQgcG9ydCBzZXR0aW5ncyAqLworCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJcHJpdi0+Y29udHJvbF9zdGF0ZSA9IGNvbnRyb2xfc3RhdGU7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworfSAvKiBiZWxraW5fc2Ffc2V0X3Rlcm1pb3MgKi8KKworCitzdGF0aWMgdm9pZCBiZWxraW5fc2FfYnJlYWtfY3RsKCBzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBpbnQgYnJlYWtfc3RhdGUgKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgPSBwb3J0LT5zZXJpYWw7CisKKwlpZiAoQlNBX1VTQl9DTUQoQkVMS0lOX1NBX1NFVF9CUkVBS19SRVFVRVNULCBicmVha19zdGF0ZSA/IDEgOiAwKSA8IDApCisJCWVycigiU2V0IGJyZWFrX2N0bCAlZCIsIGJyZWFrX3N0YXRlKTsKK30KKworCitzdGF0aWMgaW50IGJlbGtpbl9zYV90aW9jbWdldCAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJc3RydWN0IGJlbGtpbl9zYV9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXVuc2lnbmVkIGxvbmcgY29udHJvbF9zdGF0ZTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCQorCWRiZygiJXMiLCBfX0ZVTkNUSU9OX18pOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwljb250cm9sX3N0YXRlID0gcHJpdi0+Y29udHJvbF9zdGF0ZTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CisKKwlyZXR1cm4gY29udHJvbF9zdGF0ZTsKK30KKworCitzdGF0aWMgaW50IGJlbGtpbl9zYV90aW9jbXNldCAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbGUsCisJCQkgICAgICAgdW5zaWduZWQgaW50IHNldCwgdW5zaWduZWQgaW50IGNsZWFyKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgPSBwb3J0LT5zZXJpYWw7CisJc3RydWN0IGJlbGtpbl9zYV9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXVuc2lnbmVkIGxvbmcgY29udHJvbF9zdGF0ZTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCByZXR2YWw7CisJaW50IHJ0cyA9IDA7CisJaW50IGR0ciA9IDA7CisJCisJZGJnKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCWNvbnRyb2xfc3RhdGUgPSBwcml2LT5jb250cm9sX3N0YXRlOworCisJaWYgKHNldCAmIFRJT0NNX1JUUykgeworCQljb250cm9sX3N0YXRlIHw9IFRJT0NNX1JUUzsKKwkJcnRzID0gMTsKKwl9CisJaWYgKHNldCAmIFRJT0NNX0RUUikgeworCQljb250cm9sX3N0YXRlIHw9IFRJT0NNX0RUUjsKKwkJZHRyID0gMTsKKwl9CisJaWYgKGNsZWFyICYgVElPQ01fUlRTKSB7CisJCWNvbnRyb2xfc3RhdGUgJj0gflRJT0NNX1JUUzsKKwkJcnRzID0gMDsKKwl9CisJaWYgKGNsZWFyICYgVElPQ01fRFRSKSB7CisJCWNvbnRyb2xfc3RhdGUgJj0gflRJT0NNX0RUUjsKKwkJZHRyID0gMDsKKwl9CisKKwlwcml2LT5jb250cm9sX3N0YXRlID0gY29udHJvbF9zdGF0ZTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CisKKwlyZXR2YWwgPSBCU0FfVVNCX0NNRChCRUxLSU5fU0FfU0VUX1JUU19SRVFVRVNULCBydHMpOworCWlmIChyZXR2YWwgPCAwKSB7CisJCWVycigiU2V0IFJUUyBlcnJvciAlZCIsIHJldHZhbCk7CisJCWdvdG8gZXhpdDsKKwl9CisKKwlyZXR2YWwgPSBCU0FfVVNCX0NNRChCRUxLSU5fU0FfU0VUX0RUUl9SRVFVRVNULCBkdHIpOworCWlmIChyZXR2YWwgPCAwKSB7CisJCWVycigiU2V0IERUUiBlcnJvciAlZCIsIHJldHZhbCk7CisJCWdvdG8gZXhpdDsKKwl9CitleGl0OgorCXJldHVybiByZXR2YWw7Cit9CisKKworc3RhdGljIGludCBiZWxraW5fc2FfaW9jdGwgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICogZmlsZSwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCit7CisJc3dpdGNoIChjbWQpIHsKKwljYXNlIFRJT0NNSVdBSVQ6CisJCS8qIHdhaXQgZm9yIGFueSBvZiB0aGUgNCBtb2RlbSBpbnB1dHMgKERDRCxSSSxEU1IsQ1RTKSovCisJCS8qIFRPRE8gKi8KKwkJcmV0dXJuKCAwICk7CisKKwljYXNlIFRJT0NHSUNPVU5UOgorCQkvKiByZXR1cm4gY291bnQgb2YgbW9kZW1saW5lIHRyYW5zaXRpb25zICovCisJCS8qIFRPRE8gKi8KKwkJcmV0dXJuIDA7CisKKwlkZWZhdWx0OgorCQlkYmcoImJlbGtpbl9zYV9pb2N0bCBhcmcgbm90IHN1cHBvcnRlZCAtIDB4JTA0eCIsY21kKTsKKwkJcmV0dXJuKC1FTk9JT0NUTENNRCk7CisJCWJyZWFrOworCX0KKwlyZXR1cm4gMDsKK30gLyogYmVsa2luX3NhX2lvY3RsICovCisKKworc3RhdGljIGludCBfX2luaXQgYmVsa2luX3NhX2luaXQgKHZvaWQpCit7CisJaW50IHJldHZhbDsKKwlyZXR2YWwgPSB1c2Jfc2VyaWFsX3JlZ2lzdGVyKCZiZWxraW5fZGV2aWNlKTsKKwlpZiAocmV0dmFsKQorCQlnb3RvIGZhaWxlZF91c2Jfc2VyaWFsX3JlZ2lzdGVyOworCXJldHZhbCA9IHVzYl9yZWdpc3RlcigmYmVsa2luX2RyaXZlcik7CisJaWYgKHJldHZhbCkKKwkJZ290byBmYWlsZWRfdXNiX3JlZ2lzdGVyOworCWluZm8oRFJJVkVSX0RFU0MgIiAiIERSSVZFUl9WRVJTSU9OKTsKKwlyZXR1cm4gMDsKK2ZhaWxlZF91c2JfcmVnaXN0ZXI6CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyKCZiZWxraW5fZGV2aWNlKTsKK2ZhaWxlZF91c2Jfc2VyaWFsX3JlZ2lzdGVyOgorCXJldHVybiByZXR2YWw7Cit9CisKKworc3RhdGljIHZvaWQgX19leGl0IGJlbGtpbl9zYV9leGl0ICh2b2lkKQoreworCXVzYl9kZXJlZ2lzdGVyICgmYmVsa2luX2RyaXZlcik7CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyICgmYmVsa2luX2RldmljZSk7Cit9CisKKworbW9kdWxlX2luaXQgKGJlbGtpbl9zYV9pbml0KTsKK21vZHVsZV9leGl0IChiZWxraW5fc2FfZXhpdCk7CisKK01PRFVMRV9BVVRIT1IoIERSSVZFUl9BVVRIT1IgKTsKK01PRFVMRV9ERVNDUklQVElPTiggRFJJVkVSX0RFU0MgKTsKK01PRFVMRV9WRVJTSU9OKCBEUklWRVJfVkVSU0lPTiApOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworCittb2R1bGVfcGFyYW0oZGVidWcsIGJvb2wsIFNfSVJVR08gfCBTX0lXVVNSKTsKK01PRFVMRV9QQVJNX0RFU0MoZGVidWcsICJEZWJ1ZyBlbmFibGVkIG9yIG5vdCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2JlbGtpbl9zYS5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2JlbGtpbl9zYS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxMTZiOTIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvYmVsa2luX3NhLmgKQEAgLTAsMCArMSwxMjMgQEAKKy8qCisgKiBEZWZpbml0aW9ucyBmb3IgQmVsa2luIFVTQiBTZXJpYWwgQWRhcHRlciBEcml2ZXIKKyAqCisgKiAgQ29weXJpZ2h0IChDKSAyMDAwCisgKiAgICAgIFdpbGxpYW0gR3JlYXRob3VzZSAod2dyZWF0aG91c2VAc212YS5jb20pCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBsYXJnZWx5IGRlcml2ZWQgZnJvbSB3b3JrIGJ5IHRoZSBsaW51eC11c2IgZ3JvdXAKKyAqICBhbmQgYXNzb2NpYXRlZCBzb3VyY2UgZmlsZXMuICBQbGVhc2Ugc2VlIHRoZSB1c2Ivc2VyaWFsIGZpbGVzIGZvcgorICogIGluZGl2aWR1YWwgY3JlZGl0cyBhbmQgY29weXJpZ2h0cy4KKyAqICAKKyAqIAlUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogCWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAJdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIAkoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFNlZSBEb2N1bWVudGF0aW9uL3VzYi91c2Itc2VyaWFsLnR4dCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB1c2luZyB0aGlzIGRyaXZlcgorICoKKyAqIDEyLU1hci0yMDAxIGdraAorICoJQWRkZWQgR29IdWJzIEdPLUNPTTIzMiBkZXZpY2UgaWQuCisgKgorICogMDYtTm92LTIwMDAgZ2toCisgKglBZGRlZCBvbGQgQmVsa2luIGFuZCBQZXJhY29tIGRldmljZSBpZHMsIHdoaWNoIHRoaXMgZHJpdmVyIHN1cHBvcnRzCisgKgorICogMTItT2N0LTIwMDAgV2lsbGlhbSBHcmVhdGhvdXNlCisgKiAgICBGaXJzdCBjdXQgYXQgc3VwcG9ydGluZyBCZWxraW4gVVNCIFNlcmlhbCBBZGFwdGVyIEY1VTEwMworICogICAgSSBkaWQgbm90IGhhdmUgYSBjb3B5IG9mIHRoZSBvcmlnaW5hbCB3b3JrIHRvIHN1cHBvcnQgdGhpcworICogICAgYWRhcHRlciwgc28gcGFyZG9uIGFueSBzdHVwaWQgbWlzdGFrZXMuICBBbGwgb2YgdGhlIGluZm9ybWF0aW9uCisgKiAgICBJIGFtIHVzaW5nIHRvIHdyaXRlIHRoaXMgZHJpdmVyIHdhcyBhY3F1aXJlZCBieSB1c2luZyBhIG1vZGlmaWVkCisgKiAgICBVc2JTbm9vcCBvbiBXaW5kb3dzMjAwMC4KKyAqICAgIAorICovCisKKyNpZm5kZWYgX19MSU5VWF9VU0JfU0VSSUFMX0JTQV9ICisjZGVmaW5lIF9fTElOVVhfVVNCX1NFUklBTF9CU0FfSAorCisjZGVmaW5lIEJFTEtJTl9ET0NLU1RBVElPTl9WSUQJMHgwNTBkCS8qIFZlbmRvciBJZCAqLworI2RlZmluZSBCRUxLSU5fRE9DS1NUQVRJT05fUElECTB4MTIwMwkvKiBQcm9kdWN0IElkICovCisKKyNkZWZpbmUgQkVMS0lOX1NBX1ZJRAkweDA1MGQJLyogVmVuZG9yIElkICovCisjZGVmaW5lIEJFTEtJTl9TQV9QSUQJMHgwMTAzCS8qIFByb2R1Y3QgSWQgKi8KKworI2RlZmluZSBCRUxLSU5fT0xEX1ZJRAkweDA1NmMJLyogQmVsa2luJ3MgIm9sZCIgdmVuZG9yIGlkICovCisjZGVmaW5lIEJFTEtJTl9PTERfUElECTB4ODAwNwkvKiBCZWxraW4ncyAib2xkIiBzaW5nbGUgcG9ydCBzZXJpYWwgY29udmVydGVyJ3MgaWQgKi8KKworI2RlZmluZSBQRVJBQ09NX1ZJRAkweDA1NjUJLyogUGVyYWNvbSdzIHZlbmRvciBpZCAqLworI2RlZmluZSBQRVJBQ09NX1BJRAkweDAwMDEJLyogUGVyYWNvbSdzIHNpbmdsZSBwb3J0IHNlcmlhbCBjb252ZXJ0ZXIncyBpZCAqLworCisjZGVmaW5lIEdPSFVCU19WSUQJMHgwOTIxCS8qIEdvSHVicyB2ZW5kb3IgaWQgKi8KKyNkZWZpbmUgR09IVUJTX1BJRAkweDEwMDAJLyogR29IdWJzIHNpbmdsZSBwb3J0IHNlcmlhbCBjb252ZXJ0ZXIncyBpZCAoaWRlbnRpY2FsIHRvIHRoZSBQZXJhY29tIGRldmljZSkgKi8KKyNkZWZpbmUgSEFORFlMSU5LX1BJRAkweDEyMDAJLyogSGFuZHlMaW5rIFVTQidzIGlkIChpZGVudGljYWwgdG8gdGhlIFBlcmFjb20gZGV2aWNlKSAqLworCisvKiBWZW5kb3IgUmVxdWVzdCBJbnRlcmZhY2UgKi8KKyNkZWZpbmUgQkVMS0lOX1NBX1NFVF9CQVVEUkFURV9SRVFVRVNUCTAgIC8qIFNldCBiYXVkIHJhdGUgKi8KKyNkZWZpbmUgQkVMS0lOX1NBX1NFVF9TVE9QX0JJVFNfUkVRVUVTVAkxICAvKiBTZXQgc3RvcCBiaXRzICgxLDIpICovCisjZGVmaW5lIEJFTEtJTl9TQV9TRVRfREFUQV9CSVRTX1JFUVVFU1QJMiAgLyogU2V0IGRhdGEgYml0cyAoNSw2LDcsOCkgKi8KKyNkZWZpbmUgQkVMS0lOX1NBX1NFVF9QQVJJVFlfUkVRVUVTVAkzICAvKiBTZXQgcGFyaXR5IChOb25lLCBFdmVuLCBPZGQpICovCisKKyNkZWZpbmUgQkVMS0lOX1NBX1NFVF9EVFJfUkVRVUVTVAkxMCAvKiBTZXQgRFRSIHN0YXRlICovCisjZGVmaW5lIEJFTEtJTl9TQV9TRVRfUlRTX1JFUVVFU1QJMTEgLyogU2V0IFJUUyBzdGF0ZSAqLworI2RlZmluZSBCRUxLSU5fU0FfU0VUX0JSRUFLX1JFUVVFU1QJMTIgLyogU2V0IEJSRUFLIHN0YXRlICovCisKKyNkZWZpbmUgQkVMS0lOX1NBX1NFVF9GTE9XX0NUUkxfUkVRVUVTVAkxNiAvKiBTZXQgZmxvdyBjb250cm9sIG1vZGUgKi8KKworCisjaWZkZWYgV0hFTl9JX0xFQVJOX1RISVMKKyNkZWZpbmUgQkVMS0lOX1NBX1NFVF9NQUdJQ19SRVFVRVNUCTE3IC8qIEkgZG9uJ3Qga25vdywgcG9zc2libHkgZmx1c2ggKi8KKwkJCQkJICAgLyogKGFsd2F5cyBpbiBXaW5pbml0IHNlcXVlbmNlIGJlZm9yZSBmbG93IGNvbnRyb2wpICovCisjZGVmaW5lIEJFTEtJTl9TQV9SRVNFVCAJCXh4IC8qIFJlc2V0IHRoZSBwb3J0ICovCisjZGVmaW5lIEJFTEtJTl9TQV9HRVRfTU9ERU1fU1RBVFVTCXh4IC8qIEZvcmNlIHJldHVybiBvZiBtb2RlbSBzdGF0dXMgcmVnaXN0ZXIgKi8KKyNlbmRpZgorCisjZGVmaW5lIEJFTEtJTl9TQV9TRVRfUkVRVUVTVF9UWVBFCTB4NDAKKworI2RlZmluZSBCRUxLSU5fU0FfQkFVRChiKQkJKDIzMDQwMC9iKQorCisjZGVmaW5lIEJFTEtJTl9TQV9TVE9QX0JJVFMoYikJCShiLTEpCisKKyNkZWZpbmUgQkVMS0lOX1NBX0RBVEFfQklUUyhiKQkJKGItNSkKKworI2RlZmluZSBCRUxLSU5fU0FfUEFSSVRZX05PTkUJCTAKKyNkZWZpbmUgQkVMS0lOX1NBX1BBUklUWV9FVkVOCQkxCisjZGVmaW5lIEJFTEtJTl9TQV9QQVJJVFlfT0RECQkyCisjZGVmaW5lIEJFTEtJTl9TQV9QQVJJVFlfTUFSSwkJMworI2RlZmluZSBCRUxLSU5fU0FfUEFSSVRZX1NQQUNFCQk0CisKKyNkZWZpbmUgQkVMS0lOX1NBX0ZMT1dfTk9ORQkJMHgwMDAwCS8qIE5vIGZsb3cgY29udHJvbCAqLworI2RlZmluZSBCRUxLSU5fU0FfRkxPV19PQ1RTCQkweDAwMDEJLyogdXNlIENUUyBpbnB1dCB0byB0aHJvdHRsZSBvdXRwdXQgKi8KKyNkZWZpbmUgQkVMS0lOX1NBX0ZMT1dfT0RTUgkJMHgwMDAyCS8qIHVzZSBEU1IgaW5wdXQgdG8gdGhyb3R0bGUgb3V0cHV0ICovCisjZGVmaW5lIEJFTEtJTl9TQV9GTE9XX0lEU1IJCTB4MDAwNAkvKiB1c2UgRFNSIGlucHV0IHRvIGVuYWJsZSByZWNlaXZlICovCisjZGVmaW5lIEJFTEtJTl9TQV9GTE9XX0lEVFIJCTB4MDAwOAkvKiB1c2UgRFRSIG91dHB1dCBmb3IgaW5wdXQgZmxvdyBjb250cm9sICovCisjZGVmaW5lIEJFTEtJTl9TQV9GTE9XX0lSVFMJCTB4MDAxMAkvKiB1c2UgUlRTIG91dHB1dCBmb3IgaW5wdXQgZmxvdyBjb250cm9sICovCisjZGVmaW5lIEJFTEtJTl9TQV9GTE9XX09SVFMJCTB4MDAyMAkvKiB1c2UgUlRTIHRvIGluZGljYXRlIGRhdGEgYXZhaWxhYmxlIHRvIHNlbmQgKi8KKyNkZWZpbmUgQkVMS0lOX1NBX0ZMT1dfRVJSU1VCCQkweDAwNDAJLyogPz8/PyBndWVzcyA/Pz8/IHN1YnN0aXR1dGUgaW5saW5lIGVycm9ycyAqLworI2RlZmluZSBCRUxLSU5fU0FfRkxPV19PWE9OCQkweDAwODAJLyogdXNlIFhPTi9YT0ZGIGZvciBvdXRwdXQgZmxvdyBjb250cm9sICovCisjZGVmaW5lIEJFTEtJTl9TQV9GTE9XX0lYT04JCTB4MDEwMAkvKiB1c2UgWE9OL1hPRkYgZm9yIGlucHV0IGZsb3cgY29udHJvbCAqLworCisvKgorICogSXQgc2VlbXMgdGhhdCB0aGUgaW50ZXJydXB0IHBpcGUgaXMgY2xvc2VseSBtb2RlbGxlZCBhZnRlciB0aGUKKyAqIDE2NTUwIHJlZ2lzdGVyIGxheW91dC4gIFRoaXMgaXMgcHJvYmFibHkgYmVjYXVzZSB0aGUgYWRhcHRlciBjYW4gCisgKiBiZSB1c2VkIGluIGEgIkRPUyIgZW52aXJvbm1lbnQgdG8gc2ltdWxhdGUgYSBzdGFuZGFyZCBoYXJkd2FyZSBwb3J0LgorICovCisjZGVmaW5lIEJFTEtJTl9TQV9MU1JfSU5ERVgJCTIJCS8qIExpbmUgU3RhdHVzIFJlZ2lzdGVyICovCisjZGVmaW5lIEJFTEtJTl9TQV9MU1JfUkRSCQkweDAxCS8qIHJlY2VpdmUgZGF0YSByZWFkeSAqLworI2RlZmluZSBCRUxLSU5fU0FfTFNSX09FCQkweDAyCS8qIG92ZXJydW4gZXJyb3IgKi8KKyNkZWZpbmUgQkVMS0lOX1NBX0xTUl9QRQkJMHgwNAkvKiBwYXJpdHkgZXJyb3IgKi8KKyNkZWZpbmUgQkVMS0lOX1NBX0xTUl9GRQkJMHgwOAkvKiBmcmFtaW5nIGVycm9yICovCisjZGVmaW5lIEJFTEtJTl9TQV9MU1JfQkkJCTB4MTAJLyogYnJlYWsgaW5kaWNhdG9yICovCisjZGVmaW5lIEJFTEtJTl9TQV9MU1JfVEhFCQkweDIwCS8qIHRyYW5zbWl0IGhvbGRpbmcgcmVnaXN0ZXIgZW1wdHkgKi8KKyNkZWZpbmUgQkVMS0lOX1NBX0xTUl9URQkJMHg0MAkvKiB0cmFuc21pdCByZWdpc3RlciBlbXB0eSAqLworI2RlZmluZSBCRUxLSU5fU0FfTFNSX0VSUgkJMHg4MAkvKiBPRSB8IFBFIHwgRkUgfCBCSSAqLworCisjZGVmaW5lIEJFTEtJTl9TQV9NU1JfSU5ERVgJCTMJCS8qIE1vZGVtIFN0YXR1cyBSZWdpc3RlciAqLworI2RlZmluZSBCRUxLSU5fU0FfTVNSX0RDVFMJCTB4MDEJLyogRGVsdGEgQ1RTICovCisjZGVmaW5lIEJFTEtJTl9TQV9NU1JfRERTUgkJMHgwMgkvKiBEZWx0YSBEU1IgKi8KKyNkZWZpbmUgQkVMS0lOX1NBX01TUl9EUkkJCTB4MDQJLyogRGVsdGEgUkkgKi8KKyNkZWZpbmUgQkVMS0lOX1NBX01TUl9EQ0QJCTB4MDgJLyogRGVsdGEgQ0QgKi8KKyNkZWZpbmUgQkVMS0lOX1NBX01TUl9DVFMJCTB4MTAJLyogQ3VycmVudCBDVFMgKi8KKyNkZWZpbmUgQkVMS0lOX1NBX01TUl9EU1IJCTB4MjAJLyogQ3VycmVudCBEU1IgKi8KKyNkZWZpbmUgQkVMS0lOX1NBX01TUl9SSQkJMHg0MAkvKiBDdXJyZW50IFJJICovCisjZGVmaW5lIEJFTEtJTl9TQV9NU1JfQ0QJCTB4ODAJLyogQ3VycmVudCBDRCAqLworCisjZW5kaWYgLyogX19MSU5VWF9VU0JfU0VSSUFMX0JTQV9IICovCisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9idXMuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9idXMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjYxMmMyCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2J1cy5jCkBAIC0wLDAgKzEsMTM0IEBACisvKgorICogVVNCIFNlcmlhbCBDb252ZXJ0ZXIgQnVzIHNwZWNpZmljIGZ1bmN0aW9ucworICoKKyAqIENvcHlyaWdodCAoQykgMjAwMiBHcmVnIEtyb2FoLUhhcnRtYW4gKGdyZWdAa3JvYWguY29tKQorICoKKyAqCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqCW1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24KKyAqCTIgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvdHR5Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvdXNiLmg+CisjaW5jbHVkZSAidXNiLXNlcmlhbC5oIgorCitzdGF0aWMgaW50IHVzYl9zZXJpYWxfZGV2aWNlX21hdGNoIChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcnYpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUgKmRyaXZlcjsKKwljb25zdCBzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0OworCisJLyoKKwkgKiBkcml2ZXJzIGFyZSBhbHJlYWR5IGFzc2lnbmVkIHRvIHBvcnRzIGluIHNlcmlhbF9wcm9iZSBzbyBpdCdzCisJICogYSBzaW1wbGUgY2hlY2sgaGVyZS4KKwkgKi8KKwlwb3J0ID0gdG9fdXNiX3NlcmlhbF9wb3J0KGRldik7CisJaWYgKCFwb3J0KQorCQlyZXR1cm4gMDsKKworCWRyaXZlciA9IHRvX3VzYl9zZXJpYWxfZHJpdmVyKGRydik7CisKKwlpZiAoZHJpdmVyID09IHBvcnQtPnNlcmlhbC0+dHlwZSkKKwkJcmV0dXJuIDE7CisKKwlyZXR1cm4gMDsKK30KKworc3RydWN0IGJ1c190eXBlIHVzYl9zZXJpYWxfYnVzX3R5cGUgPSB7CisJLm5hbWUgPQkJInVzYi1zZXJpYWwiLAorCS5tYXRjaCA9CXVzYl9zZXJpYWxfZGV2aWNlX21hdGNoLAorfTsKKworc3RhdGljIGludCB1c2Jfc2VyaWFsX2RldmljZV9wcm9iZSAoc3RydWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCB1c2Jfc2VyaWFsX2RldmljZV90eXBlICpkcml2ZXI7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydDsKKwlpbnQgcmV0dmFsID0gMDsKKwlpbnQgbWlub3I7CisKKwlwb3J0ID0gdG9fdXNiX3NlcmlhbF9wb3J0KGRldik7CisJaWYgKCFwb3J0KSB7CisJCXJldHZhbCA9IC1FTk9ERVY7CisJCWdvdG8gZXhpdDsKKwl9CisKKwlkcml2ZXIgPSBwb3J0LT5zZXJpYWwtPnR5cGU7CisJaWYgKGRyaXZlci0+cG9ydF9wcm9iZSkgeworCQlpZiAoIXRyeV9tb2R1bGVfZ2V0KGRyaXZlci0+b3duZXIpKSB7CisJCQlkZXZfZXJyKGRldiwgIm1vZHVsZSBnZXQgZmFpbGVkLCBleGl0aW5nXG4iKTsKKwkJCXJldHZhbCA9IC1FSU87CisJCQlnb3RvIGV4aXQ7CisJCX0KKwkJcmV0dmFsID0gZHJpdmVyLT5wb3J0X3Byb2JlIChwb3J0KTsKKwkJbW9kdWxlX3B1dChkcml2ZXItPm93bmVyKTsKKwkJaWYgKHJldHZhbCkKKwkJCWdvdG8gZXhpdDsKKwl9CisKKwltaW5vciA9IHBvcnQtPm51bWJlcjsKKwl0dHlfcmVnaXN0ZXJfZGV2aWNlICh1c2Jfc2VyaWFsX3R0eV9kcml2ZXIsIG1pbm9yLCBkZXYpOworCWRldl9pbmZvKCZwb3J0LT5zZXJpYWwtPmRldi0+ZGV2LCAKKwkJICIlcyBjb252ZXJ0ZXIgbm93IGF0dGFjaGVkIHRvIHR0eVVTQiVkXG4iLAorCQkgZHJpdmVyLT5uYW1lLCBtaW5vcik7CisKK2V4aXQ6CisJcmV0dXJuIHJldHZhbDsKK30KKworc3RhdGljIGludCB1c2Jfc2VyaWFsX2RldmljZV9yZW1vdmUgKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9kZXZpY2VfdHlwZSAqZHJpdmVyOworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQ7CisJaW50IHJldHZhbCA9IDA7CisJaW50IG1pbm9yOworCisJcG9ydCA9IHRvX3VzYl9zZXJpYWxfcG9ydChkZXYpOworCWlmICghcG9ydCkgeworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlkcml2ZXIgPSBwb3J0LT5zZXJpYWwtPnR5cGU7CisJaWYgKGRyaXZlci0+cG9ydF9yZW1vdmUpIHsKKwkJaWYgKCF0cnlfbW9kdWxlX2dldChkcml2ZXItPm93bmVyKSkgeworCQkJZGV2X2VycihkZXYsICJtb2R1bGUgZ2V0IGZhaWxlZCwgZXhpdGluZ1xuIik7CisJCQlyZXR2YWwgPSAtRUlPOworCQkJZ290byBleGl0OworCQl9CisJCXJldHZhbCA9IGRyaXZlci0+cG9ydF9yZW1vdmUgKHBvcnQpOworCQltb2R1bGVfcHV0KGRyaXZlci0+b3duZXIpOworCX0KK2V4aXQ6CisJbWlub3IgPSBwb3J0LT5udW1iZXI7CisJdHR5X3VucmVnaXN0ZXJfZGV2aWNlICh1c2Jfc2VyaWFsX3R0eV9kcml2ZXIsIG1pbm9yKTsKKwlkZXZfaW5mbyhkZXYsICIlcyBjb252ZXJ0ZXIgbm93IGRpc2Nvbm5lY3RlZCBmcm9tIHR0eVVTQiVkXG4iLAorCQkgZHJpdmVyLT5uYW1lLCBtaW5vcik7CisKKwlyZXR1cm4gcmV0dmFsOworfQorCitpbnQgdXNiX3NlcmlhbF9idXNfcmVnaXN0ZXIoc3RydWN0IHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUgKmRldmljZSkKK3sKKwlpbnQgcmV0dmFsOworCisJaWYgKGRldmljZS0+c2hvcnRfbmFtZSkKKwkJZGV2aWNlLT5kcml2ZXIubmFtZSA9IChjaGFyICopZGV2aWNlLT5zaG9ydF9uYW1lOworCWVsc2UKKwkJZGV2aWNlLT5kcml2ZXIubmFtZSA9IChjaGFyICopZGV2aWNlLT5uYW1lOworCWRldmljZS0+ZHJpdmVyLmJ1cyA9ICZ1c2Jfc2VyaWFsX2J1c190eXBlOworCWRldmljZS0+ZHJpdmVyLnByb2JlID0gdXNiX3NlcmlhbF9kZXZpY2VfcHJvYmU7CisJZGV2aWNlLT5kcml2ZXIucmVtb3ZlID0gdXNiX3NlcmlhbF9kZXZpY2VfcmVtb3ZlOworCWRldmljZS0+ZHJpdmVyLm93bmVyID0gZGV2aWNlLT5vd25lcjsKKworCXJldHZhbCA9IGRyaXZlcl9yZWdpc3RlcigmZGV2aWNlLT5kcml2ZXIpOworCisJcmV0dXJuIHJldHZhbDsKK30KKwordm9pZCB1c2Jfc2VyaWFsX2J1c19kZXJlZ2lzdGVyKHN0cnVjdCB1c2Jfc2VyaWFsX2RldmljZV90eXBlICpkZXZpY2UpCit7CisJZHJpdmVyX3VucmVnaXN0ZXIgKCZkZXZpY2UtPmRyaXZlcik7Cit9CisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9jb25zb2xlLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvY29uc29sZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2N2Y4ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvY29uc29sZS5jCkBAIC0wLDAgKzEsMjY0IEBACisvKgorICogVVNCIFNlcmlhbCBDb25zb2xlIGRyaXZlcgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwMSAtIDIwMDIgR3JlZyBLcm9haC1IYXJ0bWFuIChncmVnQGtyb2FoLmNvbSkKKyAqCisgKglUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKgltb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uCisgKgkyIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBUaGFua3MgdG8gUmFuZHkgRHVubGFwIGZvciB0aGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGlzIGNvZGUuCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9jb25maWcuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eS5oPgorI2luY2x1ZGUgPGxpbnV4L2NvbnNvbGUuaD4KKyNpbmNsdWRlIDxsaW51eC91c2IuaD4KKworc3RhdGljIGludCBkZWJ1ZzsKKworI2luY2x1ZGUgInVzYi1zZXJpYWwuaCIKKworc3RydWN0IHVzYmNvbnNfaW5mbyB7CisJaW50CQkJbWFnaWM7CisJaW50CQkJYnJlYWtfZmxhZzsKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0CSpwb3J0OworfTsKKworc3RhdGljIHN0cnVjdCB1c2Jjb25zX2luZm8gdXNiY29uc19pbmZvOworc3RhdGljIHN0cnVjdCBjb25zb2xlIHVzYmNvbnM7CisKKy8qCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVTQiBTZXJpYWwgY29uc29sZSBkcml2ZXIKKyAqCisgKiBNdWNoIG9mIHRoZSBjb2RlIGhlcmUgaXMgY29waWVkIGZyb20gZHJpdmVycy9jaGFyL3NlcmlhbC5jCisgKiBhbmQgaW1wbGVtZW50cyBhIHBob255IHNlcmlhbCBjb25zb2xlIGluIHRoZSBzYW1lIHdheSB0aGF0CisgKiBzZXJpYWwuYyBkb2VzIHNvIHRoYXQgaW4gY2FzZSBzb21lIHNvZnR3YXJlIHF1ZXJpZXMgaXQsCisgKiBpdCB3aWxsIGdldCB0aGUgc2FtZSByZXN1bHRzLgorICoKKyAqIFRoaW5ncyB0aGF0IGFyZSBkaWZmZXJlbnQgZnJvbSB0aGUgd2F5IHRoZSBzZXJpYWwgcG9ydCBjb2RlCisgKiBkb2VzIHRoaW5ncywgaXMgdGhhdCB3ZSBjYWxsIHRoZSBsb3dlciBsZXZlbCB1c2Itc2VyaWFsCisgKiBkcml2ZXIgY29kZSB0byBpbml0aWFsaXplIHRoZSBkZXZpY2UsIGFuZCB3ZSBzZXQgdGhlIGluaXRpYWwKKyAqIGNvbnNvbGUgc3BlZWRzIGJhc2VkIG9uIHRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzLgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworCisvKgorICogVGhlIHBhcnNpbmcgb2YgdGhlIGNvbW1hbmQgbGluZSB3b3JrcyBleGFjdGx5IGxpa2UgdGhlCisgKiBzZXJpYWwuYyBjb2RlLCBleGNlcHQgdGhhdCB0aGUgc3BlY2lmaWVyIGlzICJ0dHlVU0IiIGluc3RlYWQKKyAqIG9mICJ0dHlTIi4KKyAqLworc3RhdGljIGludCBfX2luaXQgdXNiX2NvbnNvbGVfc2V0dXAoc3RydWN0IGNvbnNvbGUgKmNvLCBjaGFyICpvcHRpb25zKQoreworCXN0cnVjdCB1c2Jjb25zX2luZm8gKmluZm8gPSAmdXNiY29uc19pbmZvOworCWludCBiYXVkID0gOTYwMDsKKwlpbnQgYml0cyA9IDg7CisJaW50IHBhcml0eSA9ICduJzsKKwlpbnQgZG9mbG93ID0gMDsKKwlpbnQgY2ZsYWcgPSBDUkVBRCB8IEhVUENMIHwgQ0xPQ0FMOworCWNoYXIgKnM7CisJc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbDsKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0OworCWludCByZXR2YWwgPSAwOworCXN0cnVjdCB0dHlfc3RydWN0ICp0dHk7CisJc3RydWN0IHRlcm1pb3MgKnRlcm1pb3M7CisKKwlkYmcgKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwlpZiAob3B0aW9ucykgeworCQliYXVkID0gc2ltcGxlX3N0cnRvdWwob3B0aW9ucywgTlVMTCwgMTApOworCQlzID0gb3B0aW9uczsKKwkJd2hpbGUgKCpzID49ICcwJyAmJiAqcyA8PSAnOScpCisJCQlzKys7CisJCWlmICgqcykKKwkJCXBhcml0eSA9ICpzKys7CisJCWlmICgqcykKKwkJCWJpdHMgICA9ICpzKysgLSAnMCc7CisJCWlmICgqcykKKwkJCWRvZmxvdyA9ICgqcysrID09ICdyJyk7CisJfQorCisJLyogYnVpbGQgYSBjZmxhZyBzZXR0aW5nICovCisJc3dpdGNoIChiYXVkKSB7CisJCWNhc2UgMTIwMDoKKwkJCWNmbGFnIHw9IEIxMjAwOworCQkJYnJlYWs7CisJCWNhc2UgMjQwMDoKKwkJCWNmbGFnIHw9IEIyNDAwOworCQkJYnJlYWs7CisJCWNhc2UgNDgwMDoKKwkJCWNmbGFnIHw9IEI0ODAwOworCQkJYnJlYWs7CisJCWNhc2UgMTkyMDA6CisJCQljZmxhZyB8PSBCMTkyMDA7CisJCQlicmVhazsKKwkJY2FzZSAzODQwMDoKKwkJCWNmbGFnIHw9IEIzODQwMDsKKwkJCWJyZWFrOworCQljYXNlIDU3NjAwOgorCQkJY2ZsYWcgfD0gQjU3NjAwOworCQkJYnJlYWs7CisJCWNhc2UgMTE1MjAwOgorCQkJY2ZsYWcgfD0gQjExNTIwMDsKKwkJCWJyZWFrOworCQljYXNlIDk2MDA6CisJCWRlZmF1bHQ6CisJCQljZmxhZyB8PSBCOTYwMDsKKwkJCS8qCisJCQkgKiBTZXQgdGhpcyB0byBhIHNhbmUgdmFsdWUgdG8gcHJldmVudCBhIGRpdmlkZSBlcnJvcgorCQkJICovCisJCQliYXVkICA9IDk2MDA7CisJCQlicmVhazsKKwl9CisJc3dpdGNoIChiaXRzKSB7CisJCWNhc2UgNzoKKwkJCWNmbGFnIHw9IENTNzsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQljYXNlIDg6CisJCQljZmxhZyB8PSBDUzg7CisJCQlicmVhazsKKwl9CisJc3dpdGNoIChwYXJpdHkpIHsKKwkJY2FzZSAnbyc6IGNhc2UgJ08nOgorCQkJY2ZsYWcgfD0gUEFST0REOworCQkJYnJlYWs7CisJCWNhc2UgJ2UnOiBjYXNlICdFJzoKKwkJCWNmbGFnIHw9IFBBUkVOQjsKKwkJCWJyZWFrOworCX0KKwljby0+Y2ZsYWcgPSBjZmxhZzsKKworCS8qIGdyYWIgdGhlIGZpcnN0IHNlcmlhbCBwb3J0IHRoYXQgaGFwcGVucyB0byBiZSBjb25uZWN0ZWQgKi8KKwlzZXJpYWwgPSB1c2Jfc2VyaWFsX2dldF9ieV9pbmRleCgwKTsKKwlpZiAoc2VyaWFsID09IE5VTEwpIHsKKwkJLyogbm8gZGV2aWNlIGlzIGNvbm5lY3RlZCB5ZXQsIHNvcnJ5IDooICovCisJCWVyciAoIk5vIFVTQiBkZXZpY2UgY29ubmVjdGVkIHRvIHR0eVVTQjAiKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJcG9ydCA9IHNlcmlhbC0+cG9ydFswXTsKKwlwb3J0LT50dHkgPSBOVUxMOworCisJaW5mby0+cG9ydCA9IHBvcnQ7CisJIAorCSsrcG9ydC0+b3Blbl9jb3VudDsKKwlpZiAocG9ydC0+b3Blbl9jb3VudCA9PSAxKSB7CisJCS8qIG9ubHkgY2FsbCB0aGUgZGV2aWNlIHNwZWNpZmljIG9wZW4gaWYgdGhpcyAKKwkJICogaXMgdGhlIGZpcnN0IHRpbWUgdGhlIHBvcnQgaXMgb3BlbmVkICovCisJCWlmIChzZXJpYWwtPnR5cGUtPm9wZW4pCisJCQlyZXR2YWwgPSBzZXJpYWwtPnR5cGUtPm9wZW4ocG9ydCwgTlVMTCk7CisJCWVsc2UKKwkJCXJldHZhbCA9IHVzYl9zZXJpYWxfZ2VuZXJpY19vcGVuKHBvcnQsIE5VTEwpOworCQlpZiAocmV0dmFsKQorCQkJcG9ydC0+b3Blbl9jb3VudCA9IDA7CisJfQorCisJaWYgKHJldHZhbCkgeworCQllcnIgKCJjb3VsZCBub3Qgb3BlbiBVU0IgY29uc29sZSBwb3J0Iik7CisJCXJldHVybiByZXR2YWw7CisJfQorCisJaWYgKHNlcmlhbC0+dHlwZS0+c2V0X3Rlcm1pb3MpIHsKKwkJLyogYnVpbGQgdXAgYSBmYWtlIHR0eSBzdHJ1Y3R1cmUgc28gdGhhdCB0aGUgb3BlbiBjYWxsIGhhcyBzb21ldGhpbmcKKwkJICogdG8gbG9vayBhdCB0byBnZXQgdGhlIGNmbGFnIHZhbHVlICovCisJCXR0eSA9IGttYWxsb2MgKHNpemVvZiAoKnR0eSksIEdGUF9LRVJORUwpOworCQlpZiAoIXR0eSkgeworCQkJZXJyICgibm8gbW9yZSBtZW1vcnkiKTsKKwkJCXJldHVybiAtRU5PTUVNOworCQl9CisJCXRlcm1pb3MgPSBrbWFsbG9jIChzaXplb2YgKCp0ZXJtaW9zKSwgR0ZQX0tFUk5FTCk7CisJCWlmICghdGVybWlvcykgeworCQkJZXJyICgibm8gbW9yZSBtZW1vcnkiKTsKKwkJCWtmcmVlICh0dHkpOworCQkJcmV0dXJuIC1FTk9NRU07CisJCX0KKwkJbWVtc2V0ICh0dHksIDB4MDAsIHNpemVvZigqdHR5KSk7CisJCW1lbXNldCAodGVybWlvcywgMHgwMCwgc2l6ZW9mKCp0ZXJtaW9zKSk7CisJCXRlcm1pb3MtPmNfY2ZsYWcgPSBjZmxhZzsKKwkJdHR5LT50ZXJtaW9zID0gdGVybWlvczsKKwkJcG9ydC0+dHR5ID0gdHR5OworCisJCS8qIHNldCB1cCB0aGUgaW5pdGlhbCB0ZXJtaW9zIHNldHRpbmdzICovCisJCXNlcmlhbC0+dHlwZS0+c2V0X3Rlcm1pb3MocG9ydCwgTlVMTCk7CisJCXBvcnQtPnR0eSA9IE5VTEw7CisJCWtmcmVlICh0ZXJtaW9zKTsKKwkJa2ZyZWUgKHR0eSk7CisJfQorCisJcmV0dXJuIHJldHZhbDsKK30KKworc3RhdGljIHZvaWQgdXNiX2NvbnNvbGVfd3JpdGUoc3RydWN0IGNvbnNvbGUgKmNvLCBjb25zdCBjaGFyICpidWYsIHVuc2lnbmVkIGNvdW50KQoreworCXN0YXRpYyBzdHJ1Y3QgdXNiY29uc19pbmZvICppbmZvID0gJnVzYmNvbnNfaW5mbzsKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ID0gaW5mby0+cG9ydDsKKwlzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsOworCWludCByZXR2YWwgPSAtRU5PREVWOworCisJaWYgKCFwb3J0KQorCQlyZXR1cm47CisJc2VyaWFsID0gcG9ydC0+c2VyaWFsOworCisJaWYgKGNvdW50ID09IDApCisJCXJldHVybjsKKworCWRiZygiJXMgLSBwb3J0ICVkLCAlZCBieXRlKHMpIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIsIGNvdW50KTsKKworCWlmICghcG9ydC0+b3Blbl9jb3VudCkgeworCQlkYmcgKCIlcyAtIHBvcnQgbm90IG9wZW5lZCIsIF9fRlVOQ1RJT05fXyk7CisJCWdvdG8gZXhpdDsKKwl9CisKKwkvKiBwYXNzIG9uIHRvIHRoZSBkcml2ZXIgc3BlY2lmaWMgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uIGlmIGl0IGlzIGF2YWlsYWJsZSAqLworCWlmIChzZXJpYWwtPnR5cGUtPndyaXRlKQorCQlyZXR2YWwgPSBzZXJpYWwtPnR5cGUtPndyaXRlKHBvcnQsIGJ1ZiwgY291bnQpOworCWVsc2UKKwkJcmV0dmFsID0gdXNiX3NlcmlhbF9nZW5lcmljX3dyaXRlKHBvcnQsIGJ1ZiwgY291bnQpOworCitleGl0OgorCWRiZygiJXMgLSByZXR1cm4gdmFsdWUgKGlmIHdlIGhhZCBvbmUpOiAlZCIsIF9fRlVOQ1RJT05fXywgcmV0dmFsKTsKK30KKworc3RhdGljIHN0cnVjdCBjb25zb2xlIHVzYmNvbnMgPSB7CisJLm5hbWUgPQkJInR0eVVTQiIsCisJLndyaXRlID0JdXNiX2NvbnNvbGVfd3JpdGUsCisJLnNldHVwID0JdXNiX2NvbnNvbGVfc2V0dXAsCisJLmZsYWdzID0JQ09OX1BSSU5UQlVGRkVSLAorCS5pbmRleCA9CS0xLAorfTsKKwordm9pZCB1c2Jfc2VyaWFsX2NvbnNvbGVfaW5pdCAoaW50IHNlcmlhbF9kZWJ1ZywgaW50IG1pbm9yKQoreworCWRlYnVnID0gc2VyaWFsX2RlYnVnOworCisJaWYgKG1pbm9yID09IDApIHsKKwkJLyogCisJCSAqIENhbGwgcmVnaXN0ZXJfY29uc29sZSgpIGlmIHRoaXMgaXMgdGhlIGZpcnN0IGRldmljZSBwbHVnZ2VkCisJCSAqIGluLiAgSWYgd2UgY2FsbCBpdCBlYXJsaWVyLCB0aGVuIHRoZSBjYWxsYmFjayB0bworCQkgKiBjb25zb2xlX3NldHVwKCkgd2lsbCBmYWlsLCBhcyB0aGVyZSBpcyBub3QgYSBkZXZpY2Ugc2VlbiBieQorCQkgKiB0aGUgVVNCIHN1YnN5c3RlbSB5ZXQuCisJCSAqLworCQkvKgorCQkgKiBSZWdpc3RlciBjb25zb2xlLgorCQkgKiBOT1RFUzoKKwkJICogY29uc29sZV9zZXR1cCgpIGlzIGNhbGxlZCAoYmFjaykgaW1tZWRpYXRlbHkgKGZyb20gcmVnaXN0ZXJfY29uc29sZSkuCisJCSAqIGNvbnNvbGVfd3JpdGUoKSBpcyBjYWxsZWQgaW1tZWRpYXRlbHkgZnJvbSByZWdpc3Rlcl9jb25zb2xlIGlmZgorCQkgKiBDT05fUFJJTlRCVUZGRVIgaXMgc2V0IGluIGZsYWdzLgorCQkgKi8KKwkJZGJnICgicmVnaXN0ZXJpbmcgdGhlIFVTQiBzZXJpYWwgY29uc29sZS4iKTsKKwkJcmVnaXN0ZXJfY29uc29sZSgmdXNiY29ucyk7CisJfQorfQorCit2b2lkIHVzYl9zZXJpYWxfY29uc29sZV9leGl0ICh2b2lkKQoreworCXVucmVnaXN0ZXJfY29uc29sZSgmdXNiY29ucyk7Cit9CisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9jcDIxMDEuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9jcDIxMDEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZTliYjYzCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2NwMjEwMS5jCkBAIC0wLDAgKzEsNTkxIEBACisvKgorICogU2lsaWNvbiBMYWJvcmF0b3JpZXMgQ1AyMTAxL0NQMjEwMiBVU0IgdG8gUlMyMzIgc2VyaWFsIGFkYXB0b3IgZHJpdmVyCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA1IENyYWlnIFNoZWxsZXkgKGNyYWlnQG1pY3JvdHJvbi5vcmcudWspCisgKgorICoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICoJbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbgorICoJMiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eS5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eV9mbGlwLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KKyNpbmNsdWRlIDxsaW51eC91c2IuaD4KKyNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgorI2luY2x1ZGUgInVzYi1zZXJpYWwuaCIKKworLyoKKyAqIFZlcnNpb24gSW5mb3JtYXRpb24KKyAqLworI2RlZmluZSBEUklWRVJfVkVSU0lPTiAidjAuMDMiCisjZGVmaW5lIERSSVZFUl9ERVNDICJTaWxpY29uIExhYnMgQ1AyMTAxL0NQMjEwMiBSUzIzMiBzZXJpYWwgYWRhcHRvciBkcml2ZXIiCisKKy8qCisgKiBGdW5jdGlvbiBQcm90b3R5cGVzCisgKi8KK3N0YXRpYyBpbnQgY3AyMTAxX29wZW4oc3RydWN0IHVzYl9zZXJpYWxfcG9ydCosIHN0cnVjdCBmaWxlKik7CitzdGF0aWMgdm9pZCBjcDIxMDFfY2xlYW51cChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0Kik7CitzdGF0aWMgdm9pZCBjcDIxMDFfY2xvc2Uoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCosIHN0cnVjdCBmaWxlKik7CitzdGF0aWMgdm9pZCBjcDIxMDFfZ2V0X3Rlcm1pb3Moc3RydWN0IHVzYl9zZXJpYWxfcG9ydCopOworc3RhdGljIHZvaWQgY3AyMTAxX3NldF90ZXJtaW9zKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQqLCBzdHJ1Y3QgdGVybWlvcyopOworc3RhdGljIHZvaWQgY3AyMTAxX2JyZWFrX2N0bChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0KiwgaW50KTsKK3N0YXRpYyBpbnQgY3AyMTAxX3N0YXJ0dXAgKHN0cnVjdCB1c2Jfc2VyaWFsICopOworc3RhdGljIHZvaWQgY3AyMTAxX3NodXRkb3duKHN0cnVjdCB1c2Jfc2VyaWFsKik7CisKKworc3RhdGljIGludCBkZWJ1ZzsKKworc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlIFtdID0geworCXtVU0JfREVWSUNFKDB4MTBjNCwgMHhlYTYwKSB9LAkvKlNpbGljb24gbGFicyBmYWN0b3J5IGRlZmF1bHQqLworCXtVU0JfREVWSUNFKDB4MTBhYiwgMHgxMGM1KSB9LAkvKlNpZW1lbnMgTUM2MCBDYWJsZSovCisJeyB9IC8qIFRlcm1pbmF0aW5nIEVudHJ5Ki8KK307CisKK01PRFVMRV9ERVZJQ0VfVEFCTEUgKHVzYiwgaWRfdGFibGUpOworCitzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgY3AyMTAxX2RyaXZlciA9IHsKKwkub3duZXIJCT0gVEhJU19NT0RVTEUsCisJLm5hbWUJCT0gIkNQMjEwMSIsCisJLnByb2JlCQk9IHVzYl9zZXJpYWxfcHJvYmUsCisJLmRpc2Nvbm5lY3QJPSB1c2Jfc2VyaWFsX2Rpc2Nvbm5lY3QsCisJLmlkX3RhYmxlCT0gaWRfdGFibGUsCit9OworCitzdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUgY3AyMTAxX2RldmljZSA9IHsKKwkub3duZXIJCQk9IFRISVNfTU9EVUxFLAorCS5uYW1lCQkJPSAiQ1AyMTAxIiwKKwkuaWRfdGFibGUJCT0gaWRfdGFibGUsCisJLm51bV9pbnRlcnJ1cHRfaW4JPSAwLAorCS5udW1fYnVsa19pbgkJPSAwLAorCS5udW1fYnVsa19vdXQJCT0gMCwKKwkubnVtX3BvcnRzCQk9IDEsCisJLm9wZW4JCQk9IGNwMjEwMV9vcGVuLAorCS5jbG9zZQkJCT0gY3AyMTAxX2Nsb3NlLAorCS5icmVha19jdGwJCT0gY3AyMTAxX2JyZWFrX2N0bCwKKwkuc2V0X3Rlcm1pb3MJCT0gY3AyMTAxX3NldF90ZXJtaW9zLAorCS5hdHRhY2gJCQk9IGNwMjEwMV9zdGFydHVwLAorCS5zaHV0ZG93bgkJPSBjcDIxMDFfc2h1dGRvd24sCit9OworCisvKkNvbmZpZyByZXF1ZXN0IHR5cGVzKi8KKyNkZWZpbmUgUkVRVFlQRV9IT1NUX1RPX0RFVklDRQkweDQxCisjZGVmaW5lIFJFUVRZUEVfREVWSUNFX1RPX0hPU1QJMHhjMQorCisvKkNvbmZpZyBTRVQgcmVxdWVzdHMuIFRvIEdFVCwgYWRkIDEgdG8gdGhlIHJlcXVlc3QgbnVtYmVyKi8KKyNkZWZpbmUgQ1AyMTAxX1VBUlQgCQkweDAwCS8qRW5hYmxlIC8gRGlzYWJsZSovCisjZGVmaW5lIENQMjEwMV9CQVVEUkFURQkJMHgwMQkvKihCQVVEX1JBVEVfR0VOX0ZSRVEgLyBiYXVkcmF0ZSkqLworI2RlZmluZSBDUDIxMDFfQklUUwkJMHgwMwkvKjB4KDApKGRhdGEgYml0cykocGFyaXR5KShzdG9wIGJpdHMpKi8KKyNkZWZpbmUgQ1AyMTAxX0JSRUFLCQkweDA1CS8qT24gLyBPZmYqLworI2RlZmluZSBDUDIxMDFfRFRSUlRTCQkweDA3CS8qMTAxIC8gMjAyICA/Pz8qLworI2RlZmluZSBDUDIxMDFfQ09ORklHXzE2CTB4MTMJLyoxNiBieXRlcyBvZiBjb25maWcgZGF0YSA/Pz8qLworI2RlZmluZSBDUDIxMDFfQ09ORklHXzYJCTB4MTkJLyo2IGJ5dGVzIG9mIGNvbmZpZyBkYXRhID8/PyovCisKKy8qQ1AyMTAxX1VBUlQqLworI2RlZmluZSBVQVJUX0VOQUJMRQkJMHgwMDAxCisjZGVmaW5lIFVBUlRfRElTQUJMRQkJMHgwMDAwCisKKy8qQ1AyMTAxX0JBVURSQVRFKi8KKyNkZWZpbmUgQkFVRF9SQVRFX0dFTl9GUkVRCTB4Mzg0MDAwCisKKy8qQ1AyMTAxX0JJVFMqLworI2RlZmluZSBCSVRTX0RBVEFfTUFTSwkJMFgwZjAwCisjZGVmaW5lIEJJVFNfREFUQV82CQkwWDA2MDAKKyNkZWZpbmUgQklUU19EQVRBXzcJCTBYMDcwMAorI2RlZmluZSBCSVRTX0RBVEFfOAkJMFgwODAwCisjZGVmaW5lIEJJVFNfREFUQV85CQkwWDA5MDAKKworI2RlZmluZSBCSVRTX1BBUklUWV9NQVNLCTB4MDBmMAorI2RlZmluZSBCSVRTX1BBUklUWV9OT05FCTB4MDAwMAorI2RlZmluZSBCSVRTX1BBUklUWV9PREQJCTB4MDAxMAorI2RlZmluZSBCSVRTX1BBUklUWV9FVkVOCTB4MDAyMAorI2RlZmluZSBCSVRTX1BBUklUWV9NQVJLCTB4MDAzMAorI2RlZmluZSBCSVRTX1BBUklUWV9TUEFDRQkweDAwNDAKKworI2RlZmluZSBCSVRTX1NUT1BfTUFTSwkJMHgwMDBmCisjZGVmaW5lIEJJVFNfU1RPUF8xCQkweDAwMDAKKyNkZWZpbmUgQklUU19TVE9QXzFfNQkJMHgwMDAxCisjZGVmaW5lIEJJVFNfU1RPUF8yCQkweDAwMDIKKyNkZWZpbmUgQlJFQUtfT04JCTB4MDAwMAorI2RlZmluZSBCUkVBS19PRkYJCTB4MDAwMQorCisKK3N0YXRpYyBpbnQgY3AyMTAxX2dldF9jb25maWcoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCogcG9ydCwgdTggcmVxdWVzdCkKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsID0gcG9ydC0+c2VyaWFsOworCXVuc2lnbmVkIGNoYXIgYnVmWzRdOworCXVuc2lnbmVkIGludCB2YWx1ZTsKKwlpbnQgcmVzdWx0LCBpOworCisJLypGb3IgZ2V0IHJlcXVlc3RzLCB0aGUgcmVxdWVzdCBudW1iZXIgbXVzdCBiZSBpbmNyZW1lbnRlZCovCisJcmVxdWVzdCsrOworCisJLypJc3N1ZSB0aGUgcmVxdWVzdCwgYXR0ZW1wdGluZyB0byByZWFkIDQgYnl0ZXMqLworCXJlc3VsdCA9IHVzYl9jb250cm9sX21zZyAoc2VyaWFsLT5kZXYsdXNiX3JjdmN0cmxwaXBlIChzZXJpYWwtPmRldiwgMCksCisJCQkJcmVxdWVzdCwgUkVRVFlQRV9ERVZJQ0VfVE9fSE9TVCwgMHgwMDAwLAorCQkJCTAsIGJ1ZiwgNCwgMzAwKTsKKworCWlmIChyZXN1bHQgPCAwKSB7CisJCWRldl9lcnIoJnBvcnQtPmRldiwgIiVzIC0gVW5hYmxlIHRvIHNlbmQgY29uZmlnIHJlcXVlc3QsICIKKwkJCQkicmVxdWVzdD0weCV4IHJlc3VsdD0lZFxuIiwKKwkJCQlfX0ZVTkNUSU9OX18sIHJlcXVlc3QsIHJlc3VsdCk7CisJCXJldHVybiByZXN1bHQ7CisJfQorCisJLypBc3NlbWJsZSBlYWNoIGJ5dGUgcmVhZCBpbnRvIGFuIGludGVnZXIgdmFsdWUqLworCXZhbHVlID0gMDsKKwlmb3IgKGk9MDsgaTw0ICYmIGk8cmVzdWx0OyBpKyspCisJCXZhbHVlIHw9IChidWZbaV0gPDwgKGkgKiA4KSk7CisKKwlkYmcoICIgJXMgLSByZXF1ZXN0PTB4JXggcmVzdWx0PSVkIHZhbHVlPTB4JXgiLAorCQkJX19GVU5DVElPTl9fLCByZXF1ZXN0LCByZXN1bHQsIHZhbHVlKTsKKworCXJldHVybiB2YWx1ZTsKK30KKworc3RhdGljIGludCBjcDIxMDFfc2V0X2NvbmZpZyhzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0KiBwb3J0LCB1OCByZXF1ZXN0LCB1MTYgdmFsdWUpCit7CisJc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCA9IHBvcnQtPnNlcmlhbDsKKwlpbnQgcmVzdWx0OworCXJlc3VsdCA9IHVzYl9jb250cm9sX21zZyAoc2VyaWFsLT5kZXYsIHVzYl9zbmRjdHJscGlwZShzZXJpYWwtPmRldiwgMCksCisJCQlyZXF1ZXN0LCBSRVFUWVBFX0hPU1RfVE9fREVWSUNFLCB2YWx1ZSwKKwkJCTAsIE5VTEwsIDAsIDMwMCk7CisKKwlpZiAocmVzdWx0IDwwKSB7CisJCWRldl9lcnIoJnBvcnQtPmRldiwgIiVzIC0gVW5hYmxlIHRvIHNlbmQgY29uZmlnIHJlcXVlc3QsICIKKwkJCQkicmVxdWVzdD0weCV4IHZhbHVlPTB4JXggcmVzdWx0PSVkXG4iLAorCQkJCV9fRlVOQ1RJT05fXywgcmVxdWVzdCwgdmFsdWUsIHJlc3VsdCk7CisJCXJldHVybiByZXN1bHQ7CisJfQorCisJZGJnKCIgJXMgLSByZXF1ZXN0PTB4JXggdmFsdWU9MHgleCByZXN1bHQ9JWQiLAorCQkJX19GVU5DVElPTl9fLCByZXF1ZXN0LCB2YWx1ZSwgcmVzdWx0KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNwMjEwMV9vcGVuIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsID0gcG9ydC0+c2VyaWFsOworCWludCByZXN1bHQ7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCWlmIChjcDIxMDFfc2V0X2NvbmZpZyhwb3J0LCBDUDIxMDFfVUFSVCwgVUFSVF9FTkFCTEUpKSB7CisJCWRldl9lcnIoJnBvcnQtPmRldiwgIiVzIC0gVW5hYmxlIHRvIGVuYWJsZSBVQVJUXG4iLAorCQkJCV9fRlVOQ1RJT05fXyk7CisJCXJldHVybiAtRVBST1RPOworCX0KKworCS8qIFN0YXJ0IHJlYWRpbmcgZnJvbSB0aGUgZGV2aWNlICovCisJdXNiX2ZpbGxfYnVsa191cmIgKHBvcnQtPnJlYWRfdXJiLCBzZXJpYWwtPmRldiwKKwkJCXVzYl9yY3ZidWxrcGlwZShzZXJpYWwtPmRldiwKKwkJCXBvcnQtPmJ1bGtfaW5fZW5kcG9pbnRBZGRyZXNzKSwKKwkJCXBvcnQtPnJlYWRfdXJiLT50cmFuc2Zlcl9idWZmZXIsCisJCQlwb3J0LT5yZWFkX3VyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCwKKwkJCXNlcmlhbC0+dHlwZS0+cmVhZF9idWxrX2NhbGxiYWNrLAorCQkJcG9ydCk7CisJcmVzdWx0ID0gdXNiX3N1Ym1pdF91cmIocG9ydC0+cmVhZF91cmIsIEdGUF9LRVJORUwpOworCWlmIChyZXN1bHQpIHsKKwkJZGV2X2VycigmcG9ydC0+ZGV2LCAiJXMgLSBmYWlsZWQgcmVzdWJtaXR0aW5nIHJlYWQgdXJiLCAiCisJCQkJImVycm9yICVkXG4iLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisJCXJldHVybiByZXN1bHQ7CisJfQorCisJLypDb25maWd1cmUgdGhlIHRlcm1pb3Mgc3RydWN0dXJlKi8KKwljcDIxMDFfZ2V0X3Rlcm1pb3MocG9ydCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgY3AyMTAxX2NsZWFudXAgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpCit7CisJc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCA9IHBvcnQtPnNlcmlhbDsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJaWYgKHNlcmlhbC0+ZGV2KSB7CisJCS8qIHNodXRkb3duIGFueSBidWxrIHJlYWRzIHRoYXQgbWlnaHQgYmUgZ29pbmcgb24gKi8KKwkJaWYgKHNlcmlhbC0+bnVtX2J1bGtfb3V0KQorCQkJdXNiX2tpbGxfdXJiKHBvcnQtPndyaXRlX3VyYik7CisJCWlmIChzZXJpYWwtPm51bV9idWxrX2luKQorCQkJdXNiX2tpbGxfdXJiKHBvcnQtPnJlYWRfdXJiKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGNwMjEwMV9jbG9zZSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKiBmaWxwKQoreworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJLyogc2h1dGRvd24gb3VyIHVyYnMgKi8KKwlkYmcoIiVzIC0gc2h1dHRpbmcgZG93biB1cmJzIiwgX19GVU5DVElPTl9fKTsKKwl1c2Jfa2lsbF91cmIocG9ydC0+d3JpdGVfdXJiKTsKKwl1c2Jfa2lsbF91cmIocG9ydC0+cmVhZF91cmIpOworCisJY3AyMTAxX3NldF9jb25maWcocG9ydCwgQ1AyMTAxX1VBUlQsIFVBUlRfRElTQUJMRSk7Cit9CisKKy8qIGNwMjEwMV9nZXRfdGVybWlvcyovCisvKiBSZWFkcyB0aGUgYmF1ZCByYXRlLCBkYXRhIGJpdHMsIHBhcml0eSBhbmQgc3RvcCBiaXRzIGZyb20gdGhlIGRldmljZSovCisvKiBDb3JyZWN0cyBhbnkgdW5zdXBwb3J0ZWQgdmFsdWVzKi8KKy8qIENvbmZpZ3VyZXMgdGhlIHRlcm1pb3Mgc3RydWN0dXJlIHRvIHJlZmxlY3QgdGhlIHN0YXRlIG9mIHRoZSBkZXZpY2UqLworc3RhdGljIHZvaWQgY3AyMTAxX2dldF90ZXJtaW9zIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCXVuc2lnbmVkIGludCBjZmxhZzsKKwlpbnQgYmF1ZDsKKwlpbnQgYml0czsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJaWYgKCghcG9ydC0+dHR5KSB8fCAoIXBvcnQtPnR0eS0+dGVybWlvcykpIHsKKwkJZGJnKCIlcyAtIG5vIHR0eSBzdHJ1Y3R1cmVzIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuOworCX0KKwljZmxhZyA9IHBvcnQtPnR0eS0+dGVybWlvcy0+Y19jZmxhZzsKKworCWJhdWQgPSBjcDIxMDFfZ2V0X2NvbmZpZyhwb3J0LCBDUDIxMDFfQkFVRFJBVEUpOworCS8qQ29udmVydCB0byBiYXVkcmF0ZSovCisJaWYgKGJhdWQpCisJCWJhdWQgPSBCQVVEX1JBVEVfR0VOX0ZSRVEgLyBiYXVkOworCisJZGJnKCIlcyAtIGJhdWQgcmF0ZSA9ICVkIiwgX19GVU5DVElPTl9fLCBiYXVkKTsKKwljZmxhZyAmPSB+Q0JBVUQ7CisJc3dpdGNoIChiYXVkKSB7CisJCS8qIFRoZSBiYXVkIHJhdGVzIHdoaWNoIGFyZSBjb21tZW50ZWQgb3V0IGJlbG93CisJCSAqIGFwcGVhciB0byBiZSBzdXBwb3J0ZWQgYnkgdGhlIGRldmljZQorCQkgKiBidXQgYXJlIG5vbi1zdGFuZGFyZAorCQkgKi8KKwkJY2FzZSA2MDA6CWNmbGFnIHw9IEI2MDA7CQlicmVhazsKKwkJY2FzZSAxMjAwOgljZmxhZyB8PSBCMTIwMDsJCWJyZWFrOworCQljYXNlIDE4MDA6CWNmbGFnIHw9IEIxODAwOwkJYnJlYWs7CisJCWNhc2UgMjQwMDoJY2ZsYWcgfD0gQjI0MDA7CQlicmVhazsKKwkJY2FzZSA0ODAwOgljZmxhZyB8PSBCNDgwMDsJCWJyZWFrOworCQkvKmNhc2UgNzIwMDoJY2ZsYWcgfD0gQjcyMDA7CQlicmVhazsqLworCQljYXNlIDk2MDA6CWNmbGFnIHw9IEI5NjAwOwkJYnJlYWs7CisJCS8qY2FzZSAxNDQwMDoJY2ZsYWcgfD0gQjE0NDAwOwlicmVhazsqLworCQljYXNlIDE5MjAwOgljZmxhZyB8PSBCMTkyMDA7CWJyZWFrOworCQkvKmNhc2UgMjg4MDA6CWNmbGFnIHw9IEIyODgwMDsJYnJlYWs7Ki8KKwkJY2FzZSAzODQwMDoJY2ZsYWcgfD0gQjM4NDAwOwlicmVhazsKKwkJLypjYXNlIDU1ODU0OgljZmxhZyB8PSBCNTUwNTQ7CWJyZWFrOyovCisJCWNhc2UgNTc2MDA6CWNmbGFnIHw9IEI1NzYwMDsJYnJlYWs7CisJCWNhc2UgMTE1MjAwOgljZmxhZyB8PSBCMTE1MjAwOwlicmVhazsKKwkJLypjYXNlIDEyNzExNzoJY2ZsYWcgfD0gQjEyNzExNzsJYnJlYWs7Ki8KKwkJY2FzZSAyMzA0MDA6CWNmbGFnIHw9IEIyMzA0MDA7CWJyZWFrOworCQljYXNlIDQ2MDgwMDoJY2ZsYWcgfD0gQjQ2MDgwMDsJYnJlYWs7CisJCWNhc2UgOTIxNjAwOgljZmxhZyB8PSBCOTIxNjAwOwlicmVhazsKKwkJLypjYXNlIDM2ODY0MDA6CWNmbGFnIHw9IEIzNjg2NDAwOwlicmVhazsqLworCQlkZWZhdWx0OgorCQkJZGJnKCIlcyAtIEJhdWQgcmF0ZSBpcyBub3Qgc3VwcG9ydGVkLCAiCisJCQkJCSJ1c2luZyA5NjAwIGJhdWQiLCBfX0ZVTkNUSU9OX18pOworCQkJY2ZsYWcgfD0gQjk2MDA7CisJCQljcDIxMDFfc2V0X2NvbmZpZyhwb3J0LCBDUDIxMDFfQkFVRFJBVEUsCisJCQkJCShCQVVEX1JBVEVfR0VOX0ZSRVEvOTYwMCkpOworCQkJYnJlYWs7CisJfQorCisJYml0cyA9IGNwMjEwMV9nZXRfY29uZmlnKHBvcnQsIENQMjEwMV9CSVRTKTsKKwljZmxhZyAmPSB+Q1NJWkU7CisJc3dpdGNoKGJpdHMgJiBCSVRTX0RBVEFfTUFTSykgeworCQljYXNlIEJJVFNfREFUQV82OgorCQkJZGJnKCIlcyAtIGRhdGEgYml0cyA9IDYiLCBfX0ZVTkNUSU9OX18pOworCQkJY2ZsYWcgfD0gQ1M2OworCQkJYnJlYWs7CisJCWNhc2UgQklUU19EQVRBXzc6CisJCQlkYmcoIiVzIC0gZGF0YSBiaXRzID0gNyIsIF9fRlVOQ1RJT05fXyk7CisJCQljZmxhZyB8PSBDUzc7CisJCQlicmVhazsKKwkJY2FzZSBCSVRTX0RBVEFfODoKKwkJCWRiZygiJXMgLSBkYXRhIGJpdHMgPSA4IiwgX19GVU5DVElPTl9fKTsKKwkJCWNmbGFnIHw9IENTODsKKwkJCWJyZWFrOworCQljYXNlIEJJVFNfREFUQV85OgorCQkJZGJnKCIlcyAtIGRhdGEgYml0cyA9IDkgKG5vdCBzdXBwb3J0ZWQsICIKKwkJCQkJInVzaW5nIDggZGF0YSBiaXRzKSIsIF9fRlVOQ1RJT05fXyk7CisJCQljZmxhZyB8PSBDUzg7CisJCQliaXRzICY9IH5CSVRTX0RBVEFfTUFTSzsKKwkJCWJpdHMgfD0gQklUU19EQVRBXzg7CisJCQljcDIxMDFfc2V0X2NvbmZpZyhwb3J0LCBDUDIxMDFfQklUUywgYml0cyk7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWRiZygiJXMgLSBVbmtub3duIG51bWJlciBvZiBkYXRhIGJpdHMsICIKKwkJCQkJInVzaW5nIDgiLCBfX0ZVTkNUSU9OX18pOworCQkJY2ZsYWcgfD0gQ1M4OworCQkJYml0cyAmPSB+QklUU19EQVRBX01BU0s7CisJCQliaXRzIHw9IEJJVFNfREFUQV84OworCQkJY3AyMTAxX3NldF9jb25maWcocG9ydCwgQ1AyMTAxX0JJVFMsIGJpdHMpOworCQkJYnJlYWs7CisJfQorCisJc3dpdGNoKGJpdHMgJiBCSVRTX1BBUklUWV9NQVNLKSB7CisJCWNhc2UgQklUU19QQVJJVFlfTk9ORToKKwkJCWRiZygiJXMgLSBwYXJpdHkgPSBOT05FIiwgX19GVU5DVElPTl9fKTsKKwkJCWNmbGFnICY9IH5QQVJFTkI7CisJCQlicmVhazsKKwkJY2FzZSBCSVRTX1BBUklUWV9PREQ6CisJCQlkYmcoIiVzIC0gcGFyaXR5ID0gT0REIiwgX19GVU5DVElPTl9fKTsKKwkJCWNmbGFnIHw9IChQQVJFTkJ8UEFST0REKTsKKwkJCWJyZWFrOworCQljYXNlIEJJVFNfUEFSSVRZX0VWRU46CisJCQlkYmcoIiVzIC0gcGFyaXR5ID0gRVZFTiIsIF9fRlVOQ1RJT05fXyk7CisJCQljZmxhZyAmPSB+UEFST0REOworCQkJY2ZsYWcgfD0gUEFSRU5COworCQkJYnJlYWs7CisJCWNhc2UgQklUU19QQVJJVFlfTUFSSzoKKwkJCWRiZygiJXMgLSBwYXJpdHkgPSBNQVJLIChub3Qgc3VwcG9ydGVkLCAiCisJCQkJCSJkaXNhYmxpbmcgcGFyaXR5KSIsIF9fRlVOQ1RJT05fXyk7CisJCQljZmxhZyAmPSB+UEFSRU5COworCQkJYml0cyAmPSB+QklUU19QQVJJVFlfTUFTSzsKKwkJCWNwMjEwMV9zZXRfY29uZmlnKHBvcnQsIENQMjEwMV9CSVRTLCBiaXRzKTsKKwkJCWJyZWFrOworCQljYXNlIEJJVFNfUEFSSVRZX1NQQUNFOgorCQkJZGJnKCIlcyAtIHBhcml0eSA9IFNQQUNFIChub3Qgc3VwcG9ydGVkLCAiCisJCQkJCSJkaXNhYmxpbmcgcGFyaXR5KSIsIF9fRlVOQ1RJT05fXyk7CisJCQljZmxhZyAmPSB+UEFSRU5COworCQkJYml0cyAmPSB+QklUU19QQVJJVFlfTUFTSzsKKwkJCWNwMjEwMV9zZXRfY29uZmlnKHBvcnQsIENQMjEwMV9CSVRTLCBiaXRzKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJZGJnKCIlcyAtIFVua25vd24gcGFyaXR5IG1vZGUsICIKKwkJCQkJImRpc2FibGluZyBwYXJpdHkiLCBfX0ZVTkNUSU9OX18pOworCQkJY2ZsYWcgJj0gflBBUkVOQjsKKwkJCWJpdHMgJj0gfkJJVFNfUEFSSVRZX01BU0s7CisJCQljcDIxMDFfc2V0X2NvbmZpZyhwb3J0LCBDUDIxMDFfQklUUywgYml0cyk7CisJCQlicmVhazsKKwl9CisKKwljZmxhZyAmPSB+Q1NUT1BCOworCXN3aXRjaChiaXRzICYgQklUU19TVE9QX01BU0spIHsKKwkJY2FzZSBCSVRTX1NUT1BfMToKKwkJCWRiZygiJXMgLSBzdG9wIGJpdHMgPSAxIiwgX19GVU5DVElPTl9fKTsKKwkJCWJyZWFrOworCQljYXNlIEJJVFNfU1RPUF8xXzU6CisJCQlkYmcoIiVzIC0gc3RvcCBiaXRzID0gMS41IChub3Qgc3VwcG9ydGVkLCAiCisJCQkJCSJ1c2luZyAxIHN0b3AgYml0IiwgX19GVU5DVElPTl9fKTsKKwkJCWJpdHMgJj0gfkJJVFNfU1RPUF9NQVNLOworCQkJY3AyMTAxX3NldF9jb25maWcocG9ydCwgQ1AyMTAxX0JJVFMsIGJpdHMpOworCQkJYnJlYWs7CisJCWNhc2UgQklUU19TVE9QXzI6CisJCQlkYmcoIiVzIC0gc3RvcCBiaXRzID0gMiIsIF9fRlVOQ1RJT05fXyk7CisJCQljZmxhZyB8PSBDU1RPUEI7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWRiZygiJXMgLSBVbmtub3duIG51bWJlciBvZiBzdG9wIGJpdHMsICIKKwkJCQkJInVzaW5nIDEgc3RvcCBiaXQiLCBfX0ZVTkNUSU9OX18pOworCQkJYml0cyAmPSB+QklUU19TVE9QX01BU0s7CisJCQljcDIxMDFfc2V0X2NvbmZpZyhwb3J0LCBDUDIxMDFfQklUUywgYml0cyk7CisJCQlicmVhazsKKwl9CisKKwlwb3J0LT50dHktPnRlcm1pb3MtPmNfY2ZsYWcgPSBjZmxhZzsKK30KKworc3RhdGljIHZvaWQgY3AyMTAxX3NldF90ZXJtaW9zIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LAorCQlzdHJ1Y3QgdGVybWlvcyAqb2xkX3Rlcm1pb3MpCit7CisJdW5zaWduZWQgaW50IGNmbGFnLCBvbGRfY2ZsYWc9MDsKKwlpbnQgYmF1ZD0wOworCWludCBiaXRzOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAoKCFwb3J0LT50dHkpIHx8ICghcG9ydC0+dHR5LT50ZXJtaW9zKSkgeworCQlkYmcoIiVzIC0gbm8gdHR5IHN0cnVjdHVyZXMiLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm47CisJfQorCWNmbGFnID0gcG9ydC0+dHR5LT50ZXJtaW9zLT5jX2NmbGFnOworCisJLyogY2hlY2sgdGhhdCB0aGV5IHJlYWxseSB3YW50IHVzIHRvIGNoYW5nZSBzb21ldGhpbmcgKi8KKwlpZiAob2xkX3Rlcm1pb3MpIHsKKwkJaWYgKChjZmxhZyA9PSBvbGRfdGVybWlvcy0+Y19jZmxhZykgJiYKKwkJCQkoUkVMRVZBTlRfSUZMQUcocG9ydC0+dHR5LT50ZXJtaW9zLT5jX2lmbGFnKQorCQkJCT09IFJFTEVWQU5UX0lGTEFHKG9sZF90ZXJtaW9zLT5jX2lmbGFnKSkpIHsKKwkJCWRiZygiJXMgLSBub3RoaW5nIHRvIGNoYW5nZS4uLiIsIF9fRlVOQ1RJT05fXyk7CisJCQlyZXR1cm47CisJCX0KKworCQlvbGRfY2ZsYWcgPSBvbGRfdGVybWlvcy0+Y19jZmxhZzsKKwl9CisKKwkvKiBJZiB0aGUgYmF1ZCByYXRlIGlzIHRvIGJlIHVwZGF0ZWQqLworCWlmICgoY2ZsYWcgJiBDQkFVRCkgIT0gKG9sZF9jZmxhZyAmIENCQVVEKSkgeworCQlzd2l0Y2ggKGNmbGFnICYgQ0JBVUQpIHsKKwkJCS8qIFRoZSBiYXVkIHJhdGVzIHdoaWNoIGFyZSBjb21tZW50ZWQgb3V0IGJlbG93CisJCQkgKiBhcHBlYXIgdG8gYmUgc3VwcG9ydGVkIGJ5IHRoZSBkZXZpY2UKKwkJCSAqIGJ1dCBhcmUgbm9uLXN0YW5kYXJkCisJCQkgKi8KKwkJCWNhc2UgQjA6CWJhdWQgPSAwOwlicmVhazsKKwkJCWNhc2UgQjYwMDoJYmF1ZCA9IDYwMDsJYnJlYWs7CisJCQljYXNlIEIxMjAwOgliYXVkID0gMTIwMDsJYnJlYWs7CisJCQljYXNlIEIxODAwOgliYXVkID0gMTgwMDsJYnJlYWs7CisJCQljYXNlIEIyNDAwOgliYXVkID0gMjQwMDsJYnJlYWs7CisJCQljYXNlIEI0ODAwOgliYXVkID0gNDgwMDsJYnJlYWs7CisJCQkvKmNhc2UgQjcyMDA6CWJhdWQgPSA3MjAwOwlicmVhazsqLworCQkJY2FzZSBCOTYwMDoJYmF1ZCA9IDk2MDA7CWJyZWFrOworCQkJLyphc2UgQjE0NDAwOgliYXVkID0gMTQ0MDA7CWJyZWFrOyovCisJCQljYXNlIEIxOTIwMDoJYmF1ZCA9IDE5MjAwOwlicmVhazsKKwkJCS8qY2FzZSBCMjg4MDA6CWJhdWQgPSAyODgwMDsJYnJlYWs7Ki8KKwkJCWNhc2UgQjM4NDAwOgliYXVkID0gMzg0MDA7CWJyZWFrOworCQkJLypjYXNlIEI1NTg1NDoJYmF1ZCA9IDU1MDU0OwlicmVhazsqLworCQkJY2FzZSBCNTc2MDA6CWJhdWQgPSA1NzYwMDsJYnJlYWs7CisJCQljYXNlIEIxMTUyMDA6CWJhdWQgPSAxMTUyMDA7CWJyZWFrOworCQkJLypjYXNlIEIxMjcxMTc6CWJhdWQgPSAxMjcxMTc7CWJyZWFrOyovCisJCQljYXNlIEIyMzA0MDA6CWJhdWQgPSAyMzA0MDA7CWJyZWFrOworCQkJY2FzZSBCNDYwODAwOgliYXVkID0gNDYwODAwOwlicmVhazsKKwkJCWNhc2UgQjkyMTYwMDoJYmF1ZCA9IDkyMTYwMDsJYnJlYWs7CisJCQkvKmNhc2UgQjM2ODY0MDA6CWJhdWQgPSAzNjg2NDAwOwlicmVhazsqLworCQkJZGVmYXVsdDoKKwkJCQlkZXZfZXJyKCZwb3J0LT5kZXYsICJjcDIxMDEgZHJpdmVyIGRvZXMgbm90ICIKKwkJCQkJInN1cHBvcnQgdGhlIGJhdWRyYXRlIHJlcXVlc3RlZFxuIik7CisJCQkJYnJlYWs7CisJCX0KKworCQlpZiAoYmF1ZCkgeworCQkJZGJnKCIlcyAtIFNldHRpbmcgYmF1ZCByYXRlIHRvICVkIGJhdWQiLCBfX0ZVTkNUSU9OX18sCisJCQkJCWJhdWQpOworCQkJaWYgKGNwMjEwMV9zZXRfY29uZmlnKHBvcnQsIENQMjEwMV9CQVVEUkFURSwKKwkJCQkJCShCQVVEX1JBVEVfR0VOX0ZSRVEgLyBiYXVkKSkpCisJCQkJZGV2X2VycigmcG9ydC0+ZGV2LCAiQmF1ZCByYXRlIHJlcXVlc3RlZCBub3QgIgorCQkJCQkJInN1cHBvcnRlZCBieSBkZXZpY2VcbiIpOworCQl9CisJfQorCisJLypJZiB0aGUgbnVtYmVyIG9mIGRhdGEgYml0cyBpcyB0byBiZSB1cGRhdGVkKi8KKwlpZiAoKGNmbGFnICYgQ1NJWkUpICE9IChvbGRfY2ZsYWcgJiBDU0laRSkpIHsKKwkJYml0cyA9IGNwMjEwMV9nZXRfY29uZmlnKHBvcnQsIENQMjEwMV9CSVRTKTsKKwkJYml0cyAmPSB+QklUU19EQVRBX01BU0s7CisJCXN3aXRjaCAoY2ZsYWcgJiBDU0laRSkgeworCQkJY2FzZSBDUzY6CisJCQkJYml0cyB8PSBCSVRTX0RBVEFfNjsKKwkJCQlkYmcoIiVzIC0gZGF0YSBiaXRzID0gNiIsIF9fRlVOQ1RJT05fXyk7CisJCQkJYnJlYWs7CisJCQljYXNlIENTNzoKKwkJCQliaXRzIHw9IEJJVFNfREFUQV83OworCQkJCWRiZygiJXMgLSBkYXRhIGJpdHMgPSA3IiwgX19GVU5DVElPTl9fKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgQ1M4OgorCQkJCWJpdHMgfD0gQklUU19EQVRBXzg7CisJCQkJZGJnKCIlcyAtIGRhdGEgYml0cyA9IDgiLCBfX0ZVTkNUSU9OX18pOworCQkJCWJyZWFrOworCQkJLypjYXNlIENTOToKKwkJCSAJYml0cyB8PSBCSVRTX0RBVEFfOTsKKwkJCQlkYmcoIiVzIC0gZGF0YSBiaXRzID0gOSIsIF9fRlVOQ1RJT05fXyk7CisJCQkJYnJlYWs7Ki8KKwkJCWRlZmF1bHQ6CisJCQkJZGV2X2VycigmcG9ydC0+ZGV2LCAiY3AyMTAxIGRyaXZlciBkb2VzIG5vdCAiCisJCQkJCSJzdXBwb3J0IHRoZSBudW1iZXIgb2YgYml0cyByZXF1ZXN0ZWQsIgorCQkJCQkiIHVzaW5nIDggYml0IG1vZGVcbiIpOworCQkJCWJpdHMgfD0gQklUU19EQVRBXzg7CisJCQkJYnJlYWs7CisJCX0KKwkJaWYgKGNwMjEwMV9zZXRfY29uZmlnKHBvcnQsIENQMjEwMV9CSVRTLCBiaXRzKSkKKwkJCWRldl9lcnIoJnBvcnQtPmRldiwgIk51bWJlciBvZiBkYXRhIGJpdHMgcmVxdWVzdGVkICIKKwkJCQkJIm5vdCBzdXBwb3J0ZWQgYnkgZGV2aWNlXG4iKTsKKwl9CisKKwlpZiAoKGNmbGFnICYgKFBBUkVOQnxQQVJPREQpKSAhPSAob2xkX2NmbGFnICYgKFBBUkVOQnxQQVJPREQpKSkgeworCQliaXRzID0gY3AyMTAxX2dldF9jb25maWcocG9ydCwgQ1AyMTAxX0JJVFMpOworCQliaXRzICY9IH5CSVRTX1BBUklUWV9NQVNLOworCQlpZiAoY2ZsYWcgJiBQQVJFTkIpIHsKKwkJCWlmIChjZmxhZyAmIFBBUk9ERCkgeworCQkJCWJpdHMgfD0gQklUU19QQVJJVFlfT0REOworCQkJCWRiZygiJXMgLSBwYXJpdHkgPSBPREQiLCBfX0ZVTkNUSU9OX18pOworCQkJfSBlbHNlIHsKKwkJCQliaXRzIHw9IEJJVFNfUEFSSVRZX0VWRU47CisJCQkJZGJnKCIlcyAtIHBhcml0eSA9IEVWRU4iLCBfX0ZVTkNUSU9OX18pOworCQkJfQorCQl9CisJCWlmIChjcDIxMDFfc2V0X2NvbmZpZyhwb3J0LCBDUDIxMDFfQklUUywgYml0cykpCisJCQlkZXZfZXJyKCZwb3J0LT5kZXYsICJQYXJpdHkgbW9kZSBub3Qgc3VwcG9ydGVkICIKKwkJCQkJImJ5IGRldmljZVxuIik7CisJfQorCisJaWYgKChjZmxhZyAmIENTVE9QQikgIT0gKG9sZF9jZmxhZyAmIENTVE9QQikpIHsKKwkJYml0cyA9IGNwMjEwMV9nZXRfY29uZmlnKHBvcnQsIENQMjEwMV9CSVRTKTsKKwkJYml0cyAmPSB+QklUU19TVE9QX01BU0s7CisJCWlmIChjZmxhZyAmIENTVE9QQikgeworCQkJYml0cyB8PSBCSVRTX1NUT1BfMjsKKwkJCWRiZygiJXMgLSBzdG9wIGJpdHMgPSAyIiwgX19GVU5DVElPTl9fKTsKKwkJfSBlbHNlIHsKKwkJCWJpdHMgfD0gQklUU19TVE9QXzE7CisJCQlkYmcoIiVzIC0gc3RvcCBiaXRzID0gMSIsIF9fRlVOQ1RJT05fXyk7CisJCX0KKwkJaWYgKGNwMjEwMV9zZXRfY29uZmlnKHBvcnQsIENQMjEwMV9CSVRTLCBiaXRzKSkKKwkJCWRldl9lcnIoJnBvcnQtPmRldiwgIk51bWJlciBvZiBzdG9wIGJpdHMgcmVxdWVzdGVkICIKKwkJCQkJIm5vdCBzdXBwb3J0ZWQgYnkgZGV2aWNlXG4iKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGNwMjEwMV9icmVha19jdGwgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIGludCBicmVha19zdGF0ZSkKK3sKKwl1MTYgc3RhdGU7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKwlpZiAoYnJlYWtfc3RhdGUgPT0gMCkKKwkJc3RhdGUgPSBCUkVBS19PRkY7CisJZWxzZQorCQlzdGF0ZSA9IEJSRUFLX09OOworCWRiZygiJXMgLSB0dXJuaW5nIGJyZWFrICVzIiwgX19GVU5DVElPTl9fLAorCQkJc3RhdGU9PUJSRUFLX09GRiA/ICJvZmYiIDogIm9uIik7CisJY3AyMTAxX3NldF9jb25maWcocG9ydCwgQ1AyMTAxX0JSRUFLLCBzdGF0ZSk7Cit9CisKK3N0YXRpYyBpbnQgY3AyMTAxX3N0YXJ0dXAgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7CisJLypDUDIxMDEgYnVmZmVycyBiZWhhdmUgc3RyYW5nZWx5IHVubGVzcyBkZXZpY2UgaXMgcmVzZXQqLworCXVzYl9yZXNldF9kZXZpY2Uoc2VyaWFsLT5kZXYpOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjcDIxMDFfc2h1dGRvd24gKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7CisJaW50IGk7CisKKwlkYmcoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCS8qIHN0b3AgcmVhZHMgYW5kIHdyaXRlcyBvbiBhbGwgcG9ydHMgKi8KKwlmb3IgKGk9MDsgaSA8IHNlcmlhbC0+bnVtX3BvcnRzOyArK2kpIHsKKwkJY3AyMTAxX2NsZWFudXAoc2VyaWFsLT5wb3J0W2ldKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGNwMjEwMV9pbml0ICh2b2lkKQoreworCWludCByZXR2YWw7CisKKwlyZXR2YWwgPSB1c2Jfc2VyaWFsX3JlZ2lzdGVyKCZjcDIxMDFfZGV2aWNlKTsKKwlpZiAocmV0dmFsKQorCQlyZXR1cm4gcmV0dmFsOyAvKkZhaWxlZCB0byByZWdpc3RlciovCisKKwlyZXR2YWwgPSB1c2JfcmVnaXN0ZXIoJmNwMjEwMV9kcml2ZXIpOworCWlmIChyZXR2YWwpIHsKKwkJLypGYWlsZWQgdG8gcmVnaXN0ZXIqLworCQl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIoJmNwMjEwMV9kZXZpY2UpOworCQlyZXR1cm4gcmV0dmFsOworCX0KKworCS8qU3VjY2VzcyovCisJaW5mbyhEUklWRVJfREVTQyAiICIgRFJJVkVSX1ZFUlNJT04pOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgY3AyMTAxX2V4aXQgKHZvaWQpCit7CisJdXNiX2RlcmVnaXN0ZXIgKCZjcDIxMDFfZHJpdmVyKTsKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIgKCZjcDIxMDFfZGV2aWNlKTsKK30KKworbW9kdWxlX2luaXQoY3AyMTAxX2luaXQpOworbW9kdWxlX2V4aXQoY3AyMTAxX2V4aXQpOworCitNT0RVTEVfREVTQ1JJUFRJT04oRFJJVkVSX0RFU0MpOworTU9EVUxFX1ZFUlNJT04oRFJJVkVSX1ZFUlNJT04pOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworCittb2R1bGVfcGFyYW0oZGVidWcsIGJvb2wsIFNfSVJVR08gfCBTX0lXVVNSKTsKK01PRFVMRV9QQVJNX0RFU0MoZGVidWcsICJFbmFibGUgdmVyYm9zZSBkZWJ1Z2dpbmcgbWVzc2FnZXMiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9jeWJlcmphY2suYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9jeWJlcmphY2suYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NmEyMDRjCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2N5YmVyamFjay5jCkBAIC0wLDAgKzEsNTE0IEBACisvKgorICogIFJFSU5FUiBTQ1QgY3liZXJKYWNrIHBpbnBhZC9lLWNvbSBVU0IgQ2hpcGNhcmQgUmVhZGVyIERyaXZlcgorICoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDEgIFJFSU5FUiBTQ1QKKyAqICBBdXRob3I6IE1hdHRoaWFzIEJydWVzdGxlCisgKgorICogIENvbnRhY3Q6IHN1cHBvcnRAcmVpbmVyLXNjdC5jb20gKHNlZSBNQUlOVEFJTkVSUykKKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGxhcmdlbHkgZGVyaXZlZCBmcm9tIHdvcmsgYnkgdGhlIGxpbnV4LXVzYiBncm91cAorICogIGFuZCBhc3NvY2lhdGVkIHNvdXJjZSBmaWxlcy4gIFBsZWFzZSBzZWUgdGhlIHVzYi9zZXJpYWwgZmlsZXMgZm9yCisgKiAgaW5kaXZpZHVhbCBjcmVkaXRzIGFuZCBjb3B5cmlnaHRzLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGFua3MgdG8gR3JlZyBLcm9haC1IYXJ0bWFuIChncmVnQGtyb2FoLmNvbSkgZm9yIGhpcyBoZWxwIGFuZAorICogIHBhdGllbmNlLgorICoKKyAqICBJbiBjYXNlIG9mIHByb2JsZW1zLCBwbGVhc2Ugd3JpdGUgdG8gdGhlIGNvbnRhY3QgZS1tYWlsIGFkZHJlc3MKKyAqICBtZW50aW9uZWQgYWJvdmUuCisgKgorICogIFBsZWFzZSBub3RlIHRoYXQgbGF0ZXIgbW9kZWxzIG9mIHRoZSBjeWJlcmphY2sgcmVhZGVyIGZhbWlseSBhcmUKKyAqICBzdXBwb3J0ZWQgYnkgYSBsaWJ1c2ItYmFzZWQgdXNlcnNwYWNlIGRldmljZSBkcml2ZXIuCisgKgorICogIEhvbWVwYWdlOiBodHRwOi8vd3d3LnJlaW5lci1zY3QuZGUvc3VwcG9ydC90cmVpYmVyX2N5YmVyamFjay5waHAjbGludXgKKyAqLworCisKKyNpbmNsdWRlIDxsaW51eC9jb25maWcuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvdHR5Lmg+CisjaW5jbHVkZSA8bGludXgvdHR5X2RyaXZlci5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eV9mbGlwLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgorI2luY2x1ZGUgInVzYi1zZXJpYWwuaCIKKworI2RlZmluZSBDWUJFUkpBQ0tfTE9DQUxfQlVGX1NJWkUgMzIKKworc3RhdGljIGludCBkZWJ1ZzsKKworLyoKKyAqIFZlcnNpb24gSW5mb3JtYXRpb24KKyAqLworI2RlZmluZSBEUklWRVJfVkVSU0lPTiAidjEuMDEiCisjZGVmaW5lIERSSVZFUl9BVVRIT1IgIk1hdHRoaWFzIEJydWVzdGxlIgorI2RlZmluZSBEUklWRVJfREVTQyAiUkVJTkVSIFNDVCBjeWJlckphY2sgcGlucGFkL2UtY29tIFVTQiBDaGlwY2FyZCBSZWFkZXIgRHJpdmVyIgorCisKKyNkZWZpbmUgQ1lCRVJKQUNLX1ZFTkRPUl9JRAkweDBDNEIKKyNkZWZpbmUgQ1lCRVJKQUNLX1BST0RVQ1RfSUQJMHgwMTAwCisKKy8qIEZ1bmN0aW9uIHByb3RvdHlwZXMgKi8KK3N0YXRpYyBpbnQgY3liZXJqYWNrX3N0YXJ0dXAgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpOworc3RhdGljIHZvaWQgY3liZXJqYWNrX3NodXRkb3duIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKTsKK3N0YXRpYyBpbnQgIGN5YmVyamFja19vcGVuIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlscCk7CitzdGF0aWMgdm9pZCBjeWJlcmphY2tfY2xvc2UgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKTsKK3N0YXRpYyBpbnQgY3liZXJqYWNrX3dyaXRlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBjb3VudCk7CitzdGF0aWMgaW50IGN5YmVyamFja193cml0ZV9yb29tKCBzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ICk7CitzdGF0aWMgdm9pZCBjeWJlcmphY2tfcmVhZF9pbnRfY2FsbGJhY2sgKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOworc3RhdGljIHZvaWQgY3liZXJqYWNrX3JlYWRfYnVsa19jYWxsYmFjayAoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CitzdGF0aWMgdm9pZCBjeWJlcmphY2tfd3JpdGVfYnVsa19jYWxsYmFjayAoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90YWJsZSBbXSA9IHsKKwl7IFVTQl9ERVZJQ0UoQ1lCRVJKQUNLX1ZFTkRPUl9JRCwgQ1lCRVJKQUNLX1BST0RVQ1RfSUQpIH0sCisJeyB9CQkJLyogVGVybWluYXRpbmcgZW50cnkgKi8KK307CisKK01PRFVMRV9ERVZJQ0VfVEFCTEUgKHVzYiwgaWRfdGFibGUpOworCitzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgY3liZXJqYWNrX2RyaXZlciA9IHsKKwkub3duZXIgPQlUSElTX01PRFVMRSwKKwkubmFtZSA9CQkiY3liZXJqYWNrIiwKKwkucHJvYmUgPQl1c2Jfc2VyaWFsX3Byb2JlLAorCS5kaXNjb25uZWN0ID0JdXNiX3NlcmlhbF9kaXNjb25uZWN0LAorCS5pZF90YWJsZSA9CWlkX3RhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCB1c2Jfc2VyaWFsX2RldmljZV90eXBlIGN5YmVyamFja19kZXZpY2UgPSB7CisJLm93bmVyID0JCVRISVNfTU9EVUxFLAorCS5uYW1lID0JCQkiUmVpbmVyIFNDVCBDeWJlcmphY2sgVVNCIGNhcmQgcmVhZGVyIiwKKwkuc2hvcnRfbmFtZSA9CQkiY3liZXJqYWNrIiwKKwkuaWRfdGFibGUgPQkJaWRfdGFibGUsCisJLm51bV9pbnRlcnJ1cHRfaW4gPQkxLAorCS5udW1fYnVsa19pbiA9CQkxLAorCS5udW1fYnVsa19vdXQgPQkJMSwKKwkubnVtX3BvcnRzID0JCTEsCisJLmF0dGFjaCA9CQljeWJlcmphY2tfc3RhcnR1cCwKKwkuc2h1dGRvd24gPQkJY3liZXJqYWNrX3NodXRkb3duLAorCS5vcGVuID0JCQljeWJlcmphY2tfb3BlbiwKKwkuY2xvc2UgPQkJY3liZXJqYWNrX2Nsb3NlLAorCS53cml0ZSA9CQljeWJlcmphY2tfd3JpdGUsCisJLndyaXRlX3Jvb20gPQljeWJlcmphY2tfd3JpdGVfcm9vbSwKKwkucmVhZF9pbnRfY2FsbGJhY2sgPQljeWJlcmphY2tfcmVhZF9pbnRfY2FsbGJhY2ssCisJLnJlYWRfYnVsa19jYWxsYmFjayA9CWN5YmVyamFja19yZWFkX2J1bGtfY2FsbGJhY2ssCisJLndyaXRlX2J1bGtfY2FsbGJhY2sgPQljeWJlcmphY2tfd3JpdGVfYnVsa19jYWxsYmFjaywKK307CisKK3N0cnVjdCBjeWJlcmphY2tfcHJpdmF0ZSB7CisJc3BpbmxvY2tfdAlsb2NrOwkJLyogTG9jayBmb3IgU01QICovCisJc2hvcnQJCXJkdG9kbzsJCS8qIEJ5dGVzIHN0aWxsIHRvIHJlYWQgKi8KKwl1bnNpZ25lZCBjaGFyCXdyYnVmWzUqNjRdOwkvKiBCdWZmZXIgZm9yIGNvbGxlY3RpbmcgZGF0YSB0byB3cml0ZSAqLworCXNob3J0CQl3cmZpbGxlZDsJLyogT3ZlcmFsbCBkYXRhIHNpemUgd2UgYWxyZWFkeSBnb3QgKi8KKwlzaG9ydAkJd3JzZW50OwkJLyogRGF0YSBhbHJlYWR5IHNlbnQgKi8KK307CisKKy8qIGRvIHNvbWUgc3RhcnR1cCBhbGxvY2F0aW9ucyBub3QgY3VycmVudGx5IHBlcmZvcm1lZCBieSB1c2Jfc2VyaWFsX3Byb2JlKCkgKi8KK3N0YXRpYyBpbnQgY3liZXJqYWNrX3N0YXJ0dXAgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7CisJc3RydWN0IGN5YmVyamFja19wcml2YXRlICpwcml2OworCWludCBpOworCisJZGJnKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwkvKiBhbGxvY2F0ZSB0aGUgcHJpdmF0ZSBkYXRhIHN0cnVjdHVyZSAqLworCXByaXYgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgY3liZXJqYWNrX3ByaXZhdGUpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXByaXYpCisJCXJldHVybiAtRU5PTUVNOworCisJLyogc2V0IGluaXRpYWwgdmFsdWVzICovCisJc3Bpbl9sb2NrX2luaXQoJnByaXYtPmxvY2spOworCXByaXYtPnJkdG9kbyA9IDA7CisJcHJpdi0+d3JmaWxsZWQgPSAwOworCXByaXYtPndyc2VudCA9IDA7CisJdXNiX3NldF9zZXJpYWxfcG9ydF9kYXRhKHNlcmlhbC0+cG9ydFswXSwgcHJpdik7CisKKwlpbml0X3dhaXRxdWV1ZV9oZWFkKCZzZXJpYWwtPnBvcnRbMF0tPndyaXRlX3dhaXQpOworCisJZm9yIChpID0gMDsgaSA8IHNlcmlhbC0+bnVtX3BvcnRzOyArK2kpIHsKKwkJaW50IHJlc3VsdDsKKwkJc2VyaWFsLT5wb3J0W2ldLT5pbnRlcnJ1cHRfaW5fdXJiLT5kZXYgPSBzZXJpYWwtPmRldjsKKwkJcmVzdWx0ID0gdXNiX3N1Ym1pdF91cmIoc2VyaWFsLT5wb3J0W2ldLT5pbnRlcnJ1cHRfaW5fdXJiLCAKKwkJCQkJR0ZQX0tFUk5FTCk7CisJCWlmIChyZXN1bHQpCisJCQllcnIoIiB1c2Jfc3VibWl0X3VyYihyZWFkIGludCkgZmFpbGVkIik7CisJCWRiZygiJXMgLSB1c2Jfc3VibWl0X3VyYihpbnQgdXJiKSIsIF9fRlVOQ1RJT05fXyk7CisJfQorCisJcmV0dXJuKCAwICk7Cit9CisKK3N0YXRpYyB2b2lkIGN5YmVyamFja19zaHV0ZG93biAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkKK3sKKwlpbnQgaTsKKwkKKwlkYmcoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCWZvciAoaT0wOyBpIDwgc2VyaWFsLT5udW1fcG9ydHM7ICsraSkgeworCQl1c2Jfa2lsbF91cmIoc2VyaWFsLT5wb3J0W2ldLT5pbnRlcnJ1cHRfaW5fdXJiKTsKKwkJLyogTXkgc3BlY2lhbCBpdGVtcywgdGhlIHN0YW5kYXJkIHJvdXRpbmVzIGZyZWUgbXkgdXJicyAqLworCQlrZnJlZSh1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEoc2VyaWFsLT5wb3J0W2ldKSk7CisJCXVzYl9zZXRfc2VyaWFsX3BvcnRfZGF0YShzZXJpYWwtPnBvcnRbaV0sIE5VTEwpOworCX0KK30KKwkKK3N0YXRpYyBpbnQgIGN5YmVyamFja19vcGVuIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlzdHJ1Y3QgY3liZXJqYWNrX3ByaXZhdGUgKnByaXY7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQgcmVzdWx0ID0gMDsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJZGJnKCIlcyAtIHVzYl9jbGVhcl9oYWx0IiwgX19GVU5DVElPTl9fICk7CisJdXNiX2NsZWFyX2hhbHQocG9ydC0+c2VyaWFsLT5kZXYsIHBvcnQtPndyaXRlX3VyYi0+cGlwZSk7CisKKwkvKiBmb3JjZSBsb3dfbGF0ZW5jeSBvbiBzbyB0aGF0IG91ciB0dHlfcHVzaCBhY3R1YWxseSBmb3JjZXMKKwkgKiB0aGUgZGF0YSB0aHJvdWdoLCBvdGhlcndpc2UgaXQgaXMgc2NoZWR1bGVkLCBhbmQgd2l0aCBoaWdoCisJICogZGF0YSByYXRlcyAobGlrZSB3aXRoIE9IQ0kpIGRhdGEgY2FuIGdldCBsb3N0LgorCSAqLworCXBvcnQtPnR0eS0+bG93X2xhdGVuY3kgPSAxOworCisJcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCXByaXYtPnJkdG9kbyA9IDA7CisJcHJpdi0+d3JmaWxsZWQgPSAwOworCXByaXYtPndyc2VudCA9IDA7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCisJcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIHZvaWQgY3liZXJqYWNrX2Nsb3NlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCWlmIChwb3J0LT5zZXJpYWwtPmRldikgeworCQkvKiBzaHV0ZG93biBhbnkgYnVsayByZWFkcyB0aGF0IG1pZ2h0IGJlIGdvaW5nIG9uICovCisJCXVzYl9raWxsX3VyYihwb3J0LT53cml0ZV91cmIpOworCQl1c2Jfa2lsbF91cmIocG9ydC0+cmVhZF91cmIpOworCX0KK30KKworc3RhdGljIGludCBjeWJlcmphY2tfd3JpdGUgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGNvdW50KQoreworCXN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgPSBwb3J0LT5zZXJpYWw7CisJc3RydWN0IGN5YmVyamFja19wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJaW50IHJlc3VsdDsKKwlpbnQgd3JleHBlY3RlZDsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJaWYgKGNvdW50ID09IDApIHsKKwkJZGJnKCIlcyAtIHdyaXRlIHJlcXVlc3Qgb2YgMCBieXRlcyIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybiAoMCk7CisJfQorCisJaWYgKHBvcnQtPndyaXRlX3VyYi0+c3RhdHVzID09IC1FSU5QUk9HUkVTUykgeworCQlkYmcoIiVzIC0gYWxyZWFkeSB3cml0aW5nIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuICgwKTsKKwl9CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCisJaWYoIChjb3VudCtwcml2LT53cmZpbGxlZCk+c2l6ZW9mKHByaXYtPndyYnVmKSApIHsKKwkJLyogVG8gbXVjaCBkYXRhIGZvciBidWZmZXIuIFJlc2V0IGJ1ZmZlci4gKi8KKwkJcHJpdi0+d3JmaWxsZWQ9MDsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCQlyZXR1cm4gKDApOworCX0KKworCS8qIENvcHkgZGF0YSAqLworCW1lbWNweSAocHJpdi0+d3JidWYrcHJpdi0+d3JmaWxsZWQsIGJ1ZiwgY291bnQpOworCisJdXNiX3NlcmlhbF9kZWJ1Z19kYXRhKGRlYnVnLCAmcG9ydC0+ZGV2LCBfX0ZVTkNUSU9OX18sIGNvdW50LAorCQlwcml2LT53cmJ1Zitwcml2LT53cmZpbGxlZCk7CisJcHJpdi0+d3JmaWxsZWQgKz0gY291bnQ7CisKKwlpZiggcHJpdi0+d3JmaWxsZWQgPj0gMyApIHsKKwkJd3JleHBlY3RlZCA9ICgoaW50KXByaXYtPndyYnVmWzJdPDw4KStwcml2LT53cmJ1ZlsxXSszOworCQlkYmcoIiVzIC0gZXhwZWN0ZWQgZGF0YTogJWQiLCBfX0ZVTkNUSU9OX18sIHdyZXhwZWN0ZWQpOworCX0gZWxzZSB7CisJCXdyZXhwZWN0ZWQgPSBzaXplb2YocHJpdi0+d3JidWYpOworCX0KKworCWlmKCBwcml2LT53cmZpbGxlZCA+PSB3cmV4cGVjdGVkICkgeworCQkvKiBXZSBoYXZlIGVub3VnaCBkYXRhIHRvIGJlZ2luIHRyYW5zbWlzc2lvbiAqLworCQlpbnQgbGVuZ3RoOworCisJCWRiZygiJXMgLSB0cmFuc21pdHRpbmcgZGF0YSAoZnJhbWUgMSkiLCBfX0ZVTkNUSU9OX18pOworCQlsZW5ndGggPSAod3JleHBlY3RlZCA+IHBvcnQtPmJ1bGtfb3V0X3NpemUpID8gcG9ydC0+YnVsa19vdXRfc2l6ZSA6IHdyZXhwZWN0ZWQ7CisKKwkJbWVtY3B5IChwb3J0LT53cml0ZV91cmItPnRyYW5zZmVyX2J1ZmZlciwgcHJpdi0+d3JidWYsIGxlbmd0aCApOworCQlwcml2LT53cnNlbnQ9bGVuZ3RoOworCisJCS8qIHNldCB1cCBvdXIgdXJiICovCisJCXVzYl9maWxsX2J1bGtfdXJiKHBvcnQtPndyaXRlX3VyYiwgc2VyaWFsLT5kZXYsIAorCQkJICAgICAgdXNiX3NuZGJ1bGtwaXBlKHNlcmlhbC0+ZGV2LCBwb3J0LT5idWxrX291dF9lbmRwb2ludEFkZHJlc3MpLAorCQkJICAgICAgcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXIsIGxlbmd0aCwKKwkJCSAgICAgICgoc2VyaWFsLT50eXBlLT53cml0ZV9idWxrX2NhbGxiYWNrKSA/IAorCQkJICAgICAgIHNlcmlhbC0+dHlwZS0+d3JpdGVfYnVsa19jYWxsYmFjayA6IAorCQkJICAgICAgIGN5YmVyamFja193cml0ZV9idWxrX2NhbGxiYWNrKSwgCisJCQkgICAgICBwb3J0KTsKKworCQkvKiBzZW5kIHRoZSBkYXRhIG91dCB0aGUgYnVsayBwb3J0ICovCisJCXJlc3VsdCA9IHVzYl9zdWJtaXRfdXJiKHBvcnQtPndyaXRlX3VyYiwgR0ZQX0FUT01JQyk7CisJCWlmIChyZXN1bHQpIHsKKwkJCWVycigiJXMgLSBmYWlsZWQgc3VibWl0dGluZyB3cml0ZSB1cmIsIGVycm9yICVkIiwgX19GVU5DVElPTl9fLCByZXN1bHQpOworCQkJLyogVGhyb3cgYXdheSBkYXRhLiBObyBiZXR0ZXIgaWRlYSB3aGF0IHRvIGRvIHdpdGggaXQuICovCisJCQlwcml2LT53cmZpbGxlZD0wOworCQkJcHJpdi0+d3JzZW50PTA7CisJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJCQlyZXR1cm4gMDsKKwkJfQorCisJCWRiZygiJXMgLSBwcml2LT53cnNlbnQ9JWQiLCBfX0ZVTkNUSU9OX18scHJpdi0+d3JzZW50KTsKKwkJZGJnKCIlcyAtIHByaXYtPndyZmlsbGVkPSVkIiwgX19GVU5DVElPTl9fLHByaXYtPndyZmlsbGVkKTsKKworCQlpZiggcHJpdi0+d3JzZW50Pj1wcml2LT53cmZpbGxlZCApIHsKKwkJCWRiZygiJXMgLSBidWZmZXIgY2xlYW5lZCIsIF9fRlVOQ1RJT05fXyk7CisJCQltZW1zZXQoIHByaXYtPndyYnVmLCAwLCBzaXplb2YocHJpdi0+d3JidWYpICk7CisJCQlwcml2LT53cmZpbGxlZD0wOworCQkJcHJpdi0+d3JzZW50PTA7CisJCX0KKwl9CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CisKKwlyZXR1cm4gKGNvdW50KTsKK30gCisKK3N0YXRpYyBpbnQgY3liZXJqYWNrX3dyaXRlX3Jvb20oIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgKQoreworCXJldHVybiBDWUJFUkpBQ0tfTE9DQUxfQlVGX1NJWkU7Cit9CisKK3N0YXRpYyB2b2lkIGN5YmVyamFja19yZWFkX2ludF9jYWxsYmFjayggc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyApCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopdXJiLT5jb250ZXh0OworCXN0cnVjdCBjeWJlcmphY2tfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwl1bnNpZ25lZCBjaGFyICpkYXRhID0gdXJiLT50cmFuc2Zlcl9idWZmZXI7CisJaW50IHJlc3VsdDsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJLyogdGhlIHVyYiBtaWdodCBoYXZlIGJlZW4ga2lsbGVkLiAqLworCWlmICh1cmItPnN0YXR1cykKKwkJcmV0dXJuOworCisJdXNiX3NlcmlhbF9kZWJ1Z19kYXRhKGRlYnVnLCAmcG9ydC0+ZGV2LCBfX0ZVTkNUSU9OX18sIHVyYi0+YWN0dWFsX2xlbmd0aCwgZGF0YSk7CisKKwkvKiBSZWFjdCBvbmx5IHRvIGludGVycnVwdHMgc2lnbmFsaW5nIGEgYnVsa19pbiB0cmFuc2ZlciAqLworCWlmKCAodXJiLT5hY3R1YWxfbGVuZ3RoPT00KSAmJiAoZGF0YVswXT09MHgwMSkgKSB7CisJCXNob3J0IG9sZF9yZHRvZG87CisJCWludCByZXN1bHQ7CisKKwkJLyogVGhpcyBpcyBhIGFubm91bmNlbWVudCBvZiBjb21pbmcgYnVsa19pbnMuICovCisJCXVuc2lnbmVkIHNob3J0IHNpemUgPSAoKHVuc2lnbmVkIHNob3J0KWRhdGFbM108PDgpK2RhdGFbMl0rMzsKKworCQlzcGluX2xvY2soJnByaXYtPmxvY2spOworCisJCW9sZF9yZHRvZG8gPSBwcml2LT5yZHRvZG87CisKKwkJaWYoIChvbGRfcmR0b2RvK3NpemUpPChvbGRfcmR0b2RvKSApIHsKKwkJCWRiZyggIlRvIG1hbnkgYnVsa19pbiB1cmJzIHRvIGRvLiIgKTsKKwkJCXNwaW5fdW5sb2NrKCZwcml2LT5sb2NrKTsKKwkJCWdvdG8gcmVzdWJtaXQ7CisJCX0KKworCQkvKiAiKz0iIGlzIHByb2JhYmx5IG1vcmUgZmF1bHQgdG9sbGVyYW50IHRoYW4gIj0iICovCisJCXByaXYtPnJkdG9kbyArPSBzaXplOworCisJCWRiZygiJXMgLSByZHRvZG86ICVkIiwgX19GVU5DVElPTl9fLCBwcml2LT5yZHRvZG8pOworCisJCXNwaW5fdW5sb2NrKCZwcml2LT5sb2NrKTsKKworCQlpZiggIW9sZF9yZHRvZG8gKSB7CisJCQlwb3J0LT5yZWFkX3VyYi0+ZGV2ID0gcG9ydC0+c2VyaWFsLT5kZXY7CisJCQlyZXN1bHQgPSB1c2Jfc3VibWl0X3VyYihwb3J0LT5yZWFkX3VyYiwgR0ZQX0FUT01JQyk7CisJCQlpZiggcmVzdWx0ICkKKwkJCQllcnIoIiVzIC0gZmFpbGVkIHJlc3VibWl0dGluZyByZWFkIHVyYiwgZXJyb3IgJWQiLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisJCQlkYmcoIiVzIC0gdXNiX3N1Ym1pdF91cmIocmVhZCB1cmIpIiwgX19GVU5DVElPTl9fKTsKKwkJfQorCX0KKworcmVzdWJtaXQ6CisJcG9ydC0+aW50ZXJydXB0X2luX3VyYi0+ZGV2ID0gcG9ydC0+c2VyaWFsLT5kZXY7CisJcmVzdWx0ID0gdXNiX3N1Ym1pdF91cmIocG9ydC0+aW50ZXJydXB0X2luX3VyYiwgR0ZQX0FUT01JQyk7CisJaWYgKHJlc3VsdCkKKwkJZXJyKCIgdXNiX3N1Ym1pdF91cmIocmVhZCBpbnQpIGZhaWxlZCIpOworCWRiZygiJXMgLSB1c2Jfc3VibWl0X3VyYihpbnQgdXJiKSIsIF9fRlVOQ1RJT05fXyk7Cit9CisKK3N0YXRpYyB2b2lkIGN5YmVyamFja19yZWFkX2J1bGtfY2FsbGJhY2sgKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopdXJiLT5jb250ZXh0OworCXN0cnVjdCBjeWJlcmphY2tfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5OworCXVuc2lnbmVkIGNoYXIgKmRhdGEgPSB1cmItPnRyYW5zZmVyX2J1ZmZlcjsKKwlzaG9ydCB0b2RvOworCWludCBpOworCWludCByZXN1bHQ7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKwkKKwl1c2Jfc2VyaWFsX2RlYnVnX2RhdGEoZGVidWcsICZwb3J0LT5kZXYsIF9fRlVOQ1RJT05fXywgdXJiLT5hY3R1YWxfbGVuZ3RoLCBkYXRhKTsKKwlpZiAodXJiLT5zdGF0dXMpIHsKKwkJZGJnKCIlcyAtIG5vbnplcm8gcmVhZCBidWxrIHN0YXR1cyByZWNlaXZlZDogJWQiLCBfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzKTsKKwkJcmV0dXJuOworCX0KKworCXR0eSA9IHBvcnQtPnR0eTsKKwlpZiAoIXR0eSkgeworCQlkYmcoIiVzIC0gaWdub3Jpbmcgc2luY2UgZGV2aWNlIG5vdCBvcGVuXG4iLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm47CisJfQorCWlmICh1cmItPmFjdHVhbF9sZW5ndGgpIHsKKwkJZm9yIChpID0gMDsgaSA8IHVyYi0+YWN0dWFsX2xlbmd0aCA7ICsraSkgeworCQkJLyogaWYgd2UgaW5zZXJ0IG1vcmUgdGhhbiBUVFlfRkxJUEJVRl9TSVpFIGNoYXJhY3RlcnMsIHdlIGRyb3AgdGhlbS4gKi8KKwkJCWlmKHR0eS0+ZmxpcC5jb3VudCA+PSBUVFlfRkxJUEJVRl9TSVpFKSB7CisJCQkJdHR5X2ZsaXBfYnVmZmVyX3B1c2godHR5KTsKKwkJCX0KKwkJCS8qIHRoaXMgZG9lc24ndCBhY3R1YWxseSBwdXNoIHRoZSBkYXRhIHRocm91Z2ggdW5sZXNzIHR0eS0+bG93X2xhdGVuY3kgaXMgc2V0ICovCisJCQl0dHlfaW5zZXJ0X2ZsaXBfY2hhcih0dHksIGRhdGFbaV0sIDApOworCQl9CisJICAJdHR5X2ZsaXBfYnVmZmVyX3B1c2godHR5KTsKKwl9CisKKwlzcGluX2xvY2soJnByaXYtPmxvY2spOworCisJLyogUmVkdWNlIHVyYnMgdG8gZG8gYnkgb25lLiAqLworCXByaXYtPnJkdG9kby09dXJiLT5hY3R1YWxfbGVuZ3RoOworCS8qIEp1c3QgdG8gYmUgc3VyZSAqLworCWlmICggcHJpdi0+cmR0b2RvPDAgKSBwcml2LT5yZHRvZG8gPSAwOworCXRvZG8gPSBwcml2LT5yZHRvZG87CisKKwlzcGluX3VubG9jaygmcHJpdi0+bG9jayk7CisKKwlkYmcoIiVzIC0gcmR0b2RvOiAlZCIsIF9fRlVOQ1RJT05fXywgdG9kbyk7CisKKwkvKiBDb250aW51ZSB0byByZWFkIGlmIHdlIGhhdmUgc3RpbGwgdXJicyB0byBkby4gKi8KKwlpZiggdG9kbyAvKiB8fCAodXJiLT5hY3R1YWxfbGVuZ3RoPT1wb3J0LT5idWxrX2luX2VuZHBvaW50QWRkcmVzcykqLyApIHsKKwkJcG9ydC0+cmVhZF91cmItPmRldiA9IHBvcnQtPnNlcmlhbC0+ZGV2OworCQlyZXN1bHQgPSB1c2Jfc3VibWl0X3VyYihwb3J0LT5yZWFkX3VyYiwgR0ZQX0FUT01JQyk7CisJCWlmIChyZXN1bHQpCisJCQllcnIoIiVzIC0gZmFpbGVkIHJlc3VibWl0dGluZyByZWFkIHVyYiwgZXJyb3IgJWQiLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisJCWRiZygiJXMgLSB1c2Jfc3VibWl0X3VyYihyZWFkIHVyYikiLCBfX0ZVTkNUSU9OX18pOworCX0KK30KKworc3RhdGljIHZvaWQgY3liZXJqYWNrX3dyaXRlX2J1bGtfY2FsbGJhY2sgKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopdXJiLT5jb250ZXh0OworCXN0cnVjdCBjeWJlcmphY2tfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCQorCWlmICh1cmItPnN0YXR1cykgeworCQlkYmcoIiVzIC0gbm9uemVybyB3cml0ZSBidWxrIHN0YXR1cyByZWNlaXZlZDogJWQiLCBfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzKTsKKwkJcmV0dXJuOworCX0KKworCXNwaW5fbG9jaygmcHJpdi0+bG9jayk7CisKKwkvKiBvbmx5IGRvIHNvbWV0aGluZyBpZiB3ZSBoYXZlIG1vcmUgZGF0YSB0byBzZW5kICovCisJaWYoIHByaXYtPndyZmlsbGVkICkgeworCQlpbnQgbGVuZ3RoLCBibGtzaXplLCByZXN1bHQ7CisKKwkJaWYgKHBvcnQtPndyaXRlX3VyYi0+c3RhdHVzID09IC1FSU5QUk9HUkVTUykgeworCQkJZGJnKCIlcyAtIGFscmVhZHkgd3JpdGluZyIsIF9fRlVOQ1RJT05fXyk7CisJCQlzcGluX3VubG9jaygmcHJpdi0+bG9jayk7CisJCQlyZXR1cm47CisJCX0KKworCQlkYmcoIiVzIC0gdHJhbnNtaXR0aW5nIGRhdGEgKGZyYW1lIG4pIiwgX19GVU5DVElPTl9fKTsKKworCQlsZW5ndGggPSAoKHByaXYtPndyZmlsbGVkIC0gcHJpdi0+d3JzZW50KSA+IHBvcnQtPmJ1bGtfb3V0X3NpemUpID8KKwkJCXBvcnQtPmJ1bGtfb3V0X3NpemUgOiAocHJpdi0+d3JmaWxsZWQgLSBwcml2LT53cnNlbnQpOworCisJCW1lbWNweSAocG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXIsIHByaXYtPndyYnVmICsgcHJpdi0+d3JzZW50LAorCQkJbGVuZ3RoICk7CisJCXByaXYtPndyc2VudCs9bGVuZ3RoOworCisJCS8qIHNldCB1cCBvdXIgdXJiICovCisJCXVzYl9maWxsX2J1bGtfdXJiKHBvcnQtPndyaXRlX3VyYiwgcG9ydC0+c2VyaWFsLT5kZXYsIAorCQkJICAgICAgdXNiX3NuZGJ1bGtwaXBlKHBvcnQtPnNlcmlhbC0+ZGV2LCBwb3J0LT5idWxrX291dF9lbmRwb2ludEFkZHJlc3MpLAorCQkJICAgICAgcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXIsIGxlbmd0aCwKKwkJCSAgICAgICgocG9ydC0+c2VyaWFsLT50eXBlLT53cml0ZV9idWxrX2NhbGxiYWNrKSA/IAorCQkJICAgICAgIHBvcnQtPnNlcmlhbC0+dHlwZS0+d3JpdGVfYnVsa19jYWxsYmFjayA6IAorCQkJICAgICAgIGN5YmVyamFja193cml0ZV9idWxrX2NhbGxiYWNrKSwgCisJCQkgICAgICBwb3J0KTsKKworCQkvKiBzZW5kIHRoZSBkYXRhIG91dCB0aGUgYnVsayBwb3J0ICovCisJCXJlc3VsdCA9IHVzYl9zdWJtaXRfdXJiKHBvcnQtPndyaXRlX3VyYiwgR0ZQX0FUT01JQyk7CisJCWlmIChyZXN1bHQpIHsKKwkJCWVycigiJXMgLSBmYWlsZWQgc3VibWl0dGluZyB3cml0ZSB1cmIsIGVycm9yICVkIiwgX19GVU5DVElPTl9fLCByZXN1bHQpOworCQkJLyogVGhyb3cgYXdheSBkYXRhLiBObyBiZXR0ZXIgaWRlYSB3aGF0IHRvIGRvIHdpdGggaXQuICovCisJCQlwcml2LT53cmZpbGxlZD0wOworCQkJcHJpdi0+d3JzZW50PTA7CisJCQlnb3RvIGV4aXQ7CisJCX0KKworCQlkYmcoIiVzIC0gcHJpdi0+d3JzZW50PSVkIiwgX19GVU5DVElPTl9fLHByaXYtPndyc2VudCk7CisJCWRiZygiJXMgLSBwcml2LT53cmZpbGxlZD0lZCIsIF9fRlVOQ1RJT05fXyxwcml2LT53cmZpbGxlZCk7CisKKwkJYmxrc2l6ZSA9ICgoaW50KXByaXYtPndyYnVmWzJdPDw4KStwcml2LT53cmJ1ZlsxXSszOworCisJCWlmKCAocHJpdi0+d3JzZW50Pj1wcml2LT53cmZpbGxlZCkgfHwgKHByaXYtPndyc2VudD49Ymxrc2l6ZSkgKSB7CisJCQlkYmcoIiVzIC0gYnVmZmVyIGNsZWFuZWQiLCBfX0ZVTkNUSU9OX18pOworCQkJbWVtc2V0KCBwcml2LT53cmJ1ZiwgMCwgc2l6ZW9mKHByaXYtPndyYnVmKSApOworCQkJcHJpdi0+d3JmaWxsZWQ9MDsKKwkJCXByaXYtPndyc2VudD0wOworCQl9CisJfQorCitleGl0OgorCXNwaW5fdW5sb2NrKCZwcml2LT5sb2NrKTsKKwlzY2hlZHVsZV93b3JrKCZwb3J0LT53b3JrKTsKK30KKworc3RhdGljIGludCBfX2luaXQgY3liZXJqYWNrX2luaXQgKHZvaWQpCit7CisJaW50IHJldHZhbDsKKwlyZXR2YWwgID0gdXNiX3NlcmlhbF9yZWdpc3RlcigmY3liZXJqYWNrX2RldmljZSk7CisJaWYgKHJldHZhbCkKKwkJZ290byBmYWlsZWRfdXNiX3NlcmlhbF9yZWdpc3RlcjsKKwlyZXR2YWwgPSB1c2JfcmVnaXN0ZXIoJmN5YmVyamFja19kcml2ZXIpOworCWlmIChyZXR2YWwpIAorCQlnb3RvIGZhaWxlZF91c2JfcmVnaXN0ZXI7CisKKwlpbmZvKERSSVZFUl9WRVJTSU9OICIgIiBEUklWRVJfQVVUSE9SKTsKKwlpbmZvKERSSVZFUl9ERVNDKTsKKworCXJldHVybiAwOworZmFpbGVkX3VzYl9yZWdpc3RlcjoKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIoJmN5YmVyamFja19kZXZpY2UpOworZmFpbGVkX3VzYl9zZXJpYWxfcmVnaXN0ZXI6CisJcmV0dXJuIHJldHZhbDsKK30KKworc3RhdGljIHZvaWQgX19leGl0IGN5YmVyamFja19leGl0ICh2b2lkKQoreworCXVzYl9kZXJlZ2lzdGVyICgmY3liZXJqYWNrX2RyaXZlcik7CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyICgmY3liZXJqYWNrX2RldmljZSk7Cit9CisKK21vZHVsZV9pbml0KGN5YmVyamFja19pbml0KTsKK21vZHVsZV9leGl0KGN5YmVyamFja19leGl0KTsKKworTU9EVUxFX0FVVEhPUiggRFJJVkVSX0FVVEhPUiApOworTU9EVUxFX0RFU0NSSVBUSU9OKCBEUklWRVJfREVTQyApOworTU9EVUxFX1ZFUlNJT04oIERSSVZFUl9WRVJTSU9OICk7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CisKK21vZHVsZV9wYXJhbShkZWJ1ZywgYm9vbCwgU19JUlVHTyB8IFNfSVdVU1IpOworTU9EVUxFX1BBUk1fREVTQyhkZWJ1ZywgIkRlYnVnIGVuYWJsZWQgb3Igbm90Iik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvY3lwcmVzc19tOC5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2N5cHJlc3NfbTguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYjhmNDcyCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2N5cHJlc3NfbTguYwpAQCAtMCwwICsxLDE1MzggQEAKKy8qCisgKiBVU0IgQ3lwcmVzcyBNOCBkcml2ZXIKKyAqCisgKiAJQ29weXJpZ2h0IChDKSAyMDA0CisgKiAJICAgIExvbm5pZSBNZW5kZXogKGRpZ25vbWVAZ21haWwuY29tKSAKKyAqCUNvcHlyaWdodCAoQykgMjAwMywyMDA0CisgKgkgICAgTmVpbCBXaGVsY2hlbCAoa295YW1hQGZpcnN0bGlnaHQubmV0KQorICoKKyAqIAlUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogCWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAJdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIAkoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFNlZSBEb2N1bWVudGF0aW9uL3VzYi91c2Itc2VyaWFsLnR4dCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB1c2luZyB0aGlzIGRyaXZlcgorICoKKyAqIFNlZSBodHRwOi8vZ2VvY2l0aWVzLmNvbS9pMHhveDBpIGZvciBpbmZvcm1hdGlvbiBvbiB0aGlzIGRyaXZlciBhbmQgdGhlCisgKiBlYXJ0aG1hdGUgdXNiIGRldmljZS4KKyAqCisgKgorICogIExvbm5pZSBNZW5kZXogPGRpZ25vbWVAZ21haWwuY29tPgorICogIDEyLTE1LTIwMDQKKyAqCUluY29ycG9yYXRlZCB3cml0ZSBidWZmZXJpbmcgZnJvbSBwbDIzMDMgZHJpdmVyLiAgRml4ZWQgYnVnIHdpdGggbGluZQorICoJaGFuZGxpbmcgc28gYm90aCBsaW5lcyBhcmUgcmFpc2VkIGluIGN5cHJlc3Nfb3Blbi4gKHdhcyBkcm9wcGluZyBydHMpCisgKiAgICAgIFZhcmlvdXMgY29kZSBjbGVhbnVwcyBtYWRlIGFzIHdlbGwgYWxvbmcgd2l0aCBvdGhlciBtaXNjIGJ1ZyBmaXhlcy4KKyAqCisgKiAgTG9ubmllIE1lbmRleiA8ZGlnbm9tZUBnbWFpbC5jb20+CisgKiAgMDQtMTAtMjAwNAorICoJRHJpdmVyIG1vZGlmaWVkIHRvIHN1cHBvcnQgZHluYW1pYyBsaW5lIHNldHRpbmdzLiAgVmFyaW91cyBpbXByb3ZtZW50cworICogICAgICBhbmQgZmVhdHVyZXMuCisgKgorICogIE5laWwgV2hlbGNoZWwKKyAqICAxMC0yMDAzCisgKglEcml2ZXIgZmlyc3QgcmVsZWFzZWQuCisgKgorICoKKyAqIExvbmcgVGVybSBUT0RPOgorICoJSW1wcm92ZSB0cmFuc2ZlciBzcGVlZHMgLSBib3RoIHJlYWQvd3JpdGUgYXJlIHNvbWV3aGF0IHNsb3cKKyAqICAgYXQgdGhpcyBwb2ludC4KKyAqICAgICAgSW1wcm92ZSBkZWJ1Z2dpbmcuICBTaG93IG1vZGVtIGxpbmUgc3RhdHVzIHdpdGggZGVidWcgb3V0cHV0IGFuZAorICogICBpbXBsZW1lbnQgZmlsdGVyaW5nIGZvciBjZXJ0YWluIGRhdGEgYXMgYSBtb2R1bGUgcGFyYW1ldGVyLgorICovCisKKy8qIFRoYW5rcyB0byBOZWlsIFdoZWxjaGVsIGZvciB3cml0aW5nIHRoZSBmaXJzdCBjeXByZXNzIG04IGltcGxlbWVudGF0aW9uIGZvciBsaW51eC4gKi8KKy8qIFRoYW5rcyB0byBjeXByZXNzIGZvciBwcm92aWRpbmcgcmVmZXJlbmNlcyBmb3IgdGhlIGhpZCByZXBvcnRzLiAqLworLyogVGhhbmtzIHRvIEppYW5nIFpoYW5nIGZvciBwcm92aWRpbmcgbGlua3MgYW5kIGZvciBnZW5lcmFsIGhlbHAuICovCisvKiBDb2RlIG9yaWdpbmF0ZXMgYW5kIHdhcyBidWlsdCB1cCBmcm9tIGZ0ZGlfc2lvLCBiZWxraW4sIHBsMjMwMyBhbmQgb3RoZXJzLiAqLworCisKKyNpbmNsdWRlIDxsaW51eC9jb25maWcuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvdHR5Lmg+CisjaW5jbHVkZSA8bGludXgvdHR5X2RyaXZlci5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eV9mbGlwLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbC5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KKworI2luY2x1ZGUgInVzYi1zZXJpYWwuaCIKKyNpbmNsdWRlICJjeXByZXNzX204LmgiCisKKworI2lmZGVmIENPTkZJR19VU0JfU0VSSUFMX0RFQlVHCisJc3RhdGljIGludCBkZWJ1ZyA9IDE7CisjZWxzZQorCXN0YXRpYyBpbnQgZGVidWc7CisjZW5kaWYKK3N0YXRpYyBpbnQgc3RhdHM7CisKKy8qCisgKiBWZXJzaW9uIEluZm9ybWF0aW9uCisgKi8KKyNkZWZpbmUgRFJJVkVSX1ZFUlNJT04gInYxLjA4IgorI2RlZmluZSBEUklWRVJfQVVUSE9SICJMb25uaWUgTWVuZGV6IDxkaWdub21lQGdtYWlsLmNvbT4sIE5laWwgV2hlbGNoZWwgPGtveWFtYUBmaXJzdGxpZ2h0Lm5ldD4iCisjZGVmaW5lIERSSVZFUl9ERVNDICJDeXByZXNzIFVTQiB0byBTZXJpYWwgRHJpdmVyIgorCisvKiB3cml0ZSBidWZmZXIgc2l6ZSBkZWZpbmVzICovCisjZGVmaW5lIENZUFJFU1NfQlVGX1NJWkUJMTAyNAorI2RlZmluZSBDWVBSRVNTX0NMT1NJTkdfV0FJVAkoMzAqSFopCisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90YWJsZV9lYXJ0aG1hdGUgW10gPSB7CisJeyBVU0JfREVWSUNFKFZFTkRPUl9JRF9ERUxPUk1FLCBQUk9EVUNUX0lEX0VBUlRITUFURVVTQikgfSwKKwl7IH0JCQkJCQkvKiBUZXJtaW5hdGluZyBlbnRyeSAqLworfTsKKworc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlX2N5cGhpZGNvbXJzMjMyIFtdID0geworCXsgVVNCX0RFVklDRShWRU5ET1JfSURfQ1lQUkVTUywgUFJPRFVDVF9JRF9DWVBISURDT00pIH0sCisJeyB9CQkJCQkJLyogVGVybWluYXRpbmcgZW50cnkgKi8KK307CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90YWJsZV9jb21iaW5lZCBbXSA9IHsKKwl7IFVTQl9ERVZJQ0UoVkVORE9SX0lEX0RFTE9STUUsIFBST0RVQ1RfSURfRUFSVEhNQVRFVVNCKSB9LAorCXsgVVNCX0RFVklDRShWRU5ET1JfSURfQ1lQUkVTUywgUFJPRFVDVF9JRF9DWVBISURDT00pIH0sCisJeyB9CQkJCQkJLyogVGVybWluYXRpbmcgZW50cnkgKi8KK307CisKK01PRFVMRV9ERVZJQ0VfVEFCTEUgKHVzYiwgaWRfdGFibGVfY29tYmluZWQpOworCitzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgY3lwcmVzc19kcml2ZXIgPSB7CisJLm5hbWUgPQkJImN5cHJlc3MiLAorCS5wcm9iZSA9CXVzYl9zZXJpYWxfcHJvYmUsCisJLmRpc2Nvbm5lY3QgPQl1c2Jfc2VyaWFsX2Rpc2Nvbm5lY3QsCisJLmlkX3RhYmxlID0JaWRfdGFibGVfY29tYmluZWQsCit9OworCitzdHJ1Y3QgY3lwcmVzc19wcml2YXRlIHsKKwlzcGlubG9ja190IGxvY2s7CQkgICAvKiBwcml2YXRlIGxvY2sgKi8KKwlpbnQgY2hpcHR5cGU7CQkJICAgLyogaWRlbnRpZmllciBvZiBkZXZpY2UsIGZvciBxdWlya3MvZXRjICovCisJaW50IGJ5dGVzX2luOwkJCSAgIC8qIHVzZWQgZm9yIHN0YXRpc3RpY3MgKi8KKwlpbnQgYnl0ZXNfb3V0OwkJCSAgIC8qIHVzZWQgZm9yIHN0YXRpc3RpY3MgKi8KKwlpbnQgY21kX2NvdW50OwkJCSAgIC8qIHVzZWQgZm9yIHN0YXRpc3RpY3MgKi8KKwlpbnQgY21kX2N0cmw7CQkJICAgLyogYWx3YXlzIHNldCB0aGlzIHRvIDEgYmVmb3JlIGlzc3VpbmcgYSBjb21tYW5kICovCisJc3RydWN0IGN5cHJlc3NfYnVmICpidWY7CSAgIC8qIHdyaXRlIGJ1ZmZlciAqLworCWludCB3cml0ZV91cmJfaW5fdXNlOwkJICAgLyogd3JpdGUgdXJiIGluIHVzZSBpbmRpY2F0b3IgKi8KKwlpbnQgdGVybWlvc19pbml0aWFsaXplZDsKKwlfX3U4IGxpbmVfY29udHJvbDsJICAgCSAgIC8qIGhvbGRzIGR0ciAvIHJ0cyB2YWx1ZSAqLworCV9fdTggY3VycmVudF9zdGF0dXM7CSAgIAkgICAvKiByZWNlaXZlZCBmcm9tIGxhc3QgcmVhZCAtIGluZm8gb24gZHNyLGN0cyxjZCxyaSxldGMgKi8KKwlfX3U4IGN1cnJlbnRfY29uZmlnOwkgICAJICAgLyogc3RvcmVzIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gYnl0ZSAqLworCV9fdTggcnhfZmxhZ3M7CQkJICAgLyogdGhyb3R0bGluZyAtIHVzZWQgZnJvbSB3aGl0ZWhlYXQvZnRkaV9zaW8gKi8KKwlpbnQgYmF1ZF9yYXRlOwkJCSAgIC8qIHN0b3JlcyBjdXJyZW50IGJhdWQgcmF0ZSBpbiBpbnRlZ2VyIGZvcm0gKi8KKwlpbnQgY2JyX21hc2s7CQkJICAgLyogc3RvcmVzIGN1cnJlbnQgYmF1ZCByYXRlIGluIG1hc2tlZCBmb3JtICovCisJaW50IGlzdGhyb3R0bGVkOwkJICAgLyogaWYgdGhyb3R0bGVkLCBkaXNjYXJkIHJlYWRzICovCisJd2FpdF9xdWV1ZV9oZWFkX3QgZGVsdGFfbXNyX3dhaXQ7ICAvKiB1c2VkIGZvciBUSU9DTUlXQUlUICovCisJY2hhciBwcmV2X3N0YXR1cywgZGlmZl9zdGF0dXM7CSAgIC8qIHVzZWQgZm9yIFRJT0NNSVdBSVQgKi8KKwkvKiB3ZSBwYXNzIGEgcG9pbnRlciB0byB0aGlzIGFzIHRoZSBhcmd1ZW1lbnQgc2VudCB0byBjeXByZXNzX3NldF90ZXJtaW9zIG9sZF90ZXJtaW9zICovCisJc3RydWN0IHRlcm1pb3MgdG1wX3Rlcm1pb3M7IAkgICAvKiBzdG9yZXMgdGhlIG9sZCB0ZXJtaW9zIHNldHRpbmdzICovCisJY2hhciBjYWxsZWRmcm9tb3BlbjsJCSAgIC8qIHVzZWQgd2hlbiBpc3N1aW5nIGxpbmVzIG9uIG9wZW4gLSBmaXhlcyBydHMgZHJvcCBidWcgKi8KK307CisKKy8qIHdyaXRlIGJ1ZmZlciBzdHJ1Y3R1cmUgKi8KK3N0cnVjdCBjeXByZXNzX2J1ZiB7CisJdW5zaWduZWQgaW50CWJ1Zl9zaXplOworCWNoYXIJCSpidWZfYnVmOworCWNoYXIJCSpidWZfZ2V0OworCWNoYXIJCSpidWZfcHV0OworfTsKKworLyogZnVuY3Rpb24gcHJvdG90eXBlcyBmb3IgdGhlIEN5cHJlc3MgVVNCIHRvIHNlcmlhbCBkZXZpY2UgKi8KK3N0YXRpYyBpbnQgIGN5cHJlc3NfZWFydGhtYXRlX3N0YXJ0dXAJKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpOworc3RhdGljIGludCAgY3lwcmVzc19oaWRjb21fc3RhcnR1cAkoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCk7CitzdGF0aWMgdm9pZCBjeXByZXNzX3NodXRkb3duCQkoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCk7CitzdGF0aWMgaW50ICBjeXByZXNzX29wZW4JCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlscCk7CitzdGF0aWMgdm9pZCBjeXByZXNzX2Nsb3NlCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbHApOworc3RhdGljIGludCAgY3lwcmVzc193cml0ZQkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGNvdW50KTsKK3N0YXRpYyB2b2lkIGN5cHJlc3Nfc2VuZAkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworc3RhdGljIGludCAgY3lwcmVzc193cml0ZV9yb29tCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCk7CitzdGF0aWMgaW50ICBjeXByZXNzX2lvY3RsCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKiBmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7CitzdGF0aWMgdm9pZCBjeXByZXNzX3NldF90ZXJtaW9zCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IHRlcm1pb3MgKiBvbGQpOworc3RhdGljIGludCAgY3lwcmVzc190aW9jbWdldAkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxlKTsKK3N0YXRpYyBpbnQgIGN5cHJlc3NfdGlvY21zZXQJCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IHNldCwgdW5zaWduZWQgaW50IGNsZWFyKTsKK3N0YXRpYyBpbnQgIGN5cHJlc3NfY2hhcnNfaW5fYnVmZmVyCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KTsKK3N0YXRpYyB2b2lkIGN5cHJlc3NfdGhyb3R0bGUJCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KTsKK3N0YXRpYyB2b2lkIGN5cHJlc3NfdW50aHJvdHRsZQkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworc3RhdGljIHZvaWQgY3lwcmVzc19yZWFkX2ludF9jYWxsYmFjawkoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CitzdGF0aWMgdm9pZCBjeXByZXNzX3dyaXRlX2ludF9jYWxsYmFjawkoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CisvKiBiYXVkIGhlbHBlciBmdW5jdGlvbnMgKi8KK3N0YXRpYyBpbnQJIG1hc2tfdG9fcmF0ZQkJKHVuc2lnbmVkIG1hc2spOworc3RhdGljIHVuc2lnbmVkICByYXRlX3RvX21hc2sJCShpbnQgcmF0ZSk7CisvKiB3cml0ZSBidWZmZXIgZnVuY3Rpb25zICovCitzdGF0aWMgc3RydWN0IGN5cHJlc3NfYnVmICpjeXByZXNzX2J1Zl9hbGxvYyh1bnNpZ25lZCBpbnQgc2l6ZSk7CitzdGF0aWMgdm9pZCAJCSAgY3lwcmVzc19idWZfZnJlZShzdHJ1Y3QgY3lwcmVzc19idWYgKmNiKTsKK3N0YXRpYyB2b2lkCQkgIGN5cHJlc3NfYnVmX2NsZWFyKHN0cnVjdCBjeXByZXNzX2J1ZiAqY2IpOworc3RhdGljIHVuc2lnbmVkIGludAkgIGN5cHJlc3NfYnVmX2RhdGFfYXZhaWwoc3RydWN0IGN5cHJlc3NfYnVmICpjYik7CitzdGF0aWMgdW5zaWduZWQgaW50CSAgY3lwcmVzc19idWZfc3BhY2VfYXZhaWwoc3RydWN0IGN5cHJlc3NfYnVmICpjYik7CitzdGF0aWMgdW5zaWduZWQgaW50CSAgY3lwcmVzc19idWZfcHV0KHN0cnVjdCBjeXByZXNzX2J1ZiAqY2IsIGNvbnN0IGNoYXIgKmJ1ZiwKKwkJCQkJICB1bnNpZ25lZCBpbnQgY291bnQpOworc3RhdGljIHVuc2lnbmVkIGludAkgIGN5cHJlc3NfYnVmX2dldChzdHJ1Y3QgY3lwcmVzc19idWYgKmNiLCBjaGFyICpidWYsCisJCQkJCSAgdW5zaWduZWQgaW50IGNvdW50KTsKKworCitzdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUgY3lwcmVzc19lYXJ0aG1hdGVfZGV2aWNlID0geworCS5vd25lciA9CQkJVEhJU19NT0RVTEUsCisJLm5hbWUgPQkJCQkiRGVMb3JtZSBFYXJ0aG1hdGUgVVNCIiwKKwkuc2hvcnRfbmFtZSA9CQkJImVhcnRobWF0ZSIsCisJLmlkX3RhYmxlID0JCQlpZF90YWJsZV9lYXJ0aG1hdGUsCisJLm51bV9pbnRlcnJ1cHRfaW4gPSAJCTEsCisJLm51bV9pbnRlcnJ1cHRfb3V0ID0JCTEsCisJLm51bV9idWxrX2luID0JCQlOVU1fRE9OVF9DQVJFLAorCS5udW1fYnVsa19vdXQgPQkJCU5VTV9ET05UX0NBUkUsCisJLm51bV9wb3J0cyA9CQkJMSwKKwkuYXR0YWNoID0JCQljeXByZXNzX2VhcnRobWF0ZV9zdGFydHVwLAorCS5zaHV0ZG93biA9CQkJY3lwcmVzc19zaHV0ZG93biwKKwkub3BlbiA9CQkJCWN5cHJlc3Nfb3BlbiwKKwkuY2xvc2UgPQkJCWN5cHJlc3NfY2xvc2UsCisJLndyaXRlID0JCQljeXByZXNzX3dyaXRlLAorCS53cml0ZV9yb29tID0JCQljeXByZXNzX3dyaXRlX3Jvb20sCisJLmlvY3RsID0JCQljeXByZXNzX2lvY3RsLAorCS5zZXRfdGVybWlvcyA9CQkJY3lwcmVzc19zZXRfdGVybWlvcywKKwkudGlvY21nZXQgPQkJCWN5cHJlc3NfdGlvY21nZXQsCisJLnRpb2Ntc2V0ID0JCQljeXByZXNzX3Rpb2Ntc2V0LAorCS5jaGFyc19pbl9idWZmZXIgPQkJY3lwcmVzc19jaGFyc19pbl9idWZmZXIsCisJLnRocm90dGxlID0JCSAJY3lwcmVzc190aHJvdHRsZSwKKwkudW50aHJvdHRsZSA9CQkJY3lwcmVzc191bnRocm90dGxlLAorCS5yZWFkX2ludF9jYWxsYmFjayA9CQljeXByZXNzX3JlYWRfaW50X2NhbGxiYWNrLAorCS53cml0ZV9pbnRfY2FsbGJhY2sgPQkJY3lwcmVzc193cml0ZV9pbnRfY2FsbGJhY2ssCit9OworCitzdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUgY3lwcmVzc19oaWRjb21fZGV2aWNlID0geworCS5vd25lciA9CQkJVEhJU19NT0RVTEUsCisJLm5hbWUgPQkJCQkiSElELT5DT00gUlMyMzIgQWRhcHRlciIsCisJLnNob3J0X25hbWUgPQkJCSJjeXBoaWRjb20iLAorCS5pZF90YWJsZSA9CQkJaWRfdGFibGVfY3lwaGlkY29tcnMyMzIsCisJLm51bV9pbnRlcnJ1cHRfaW4gPQkJMSwKKwkubnVtX2ludGVycnVwdF9vdXQgPQkJMSwKKwkubnVtX2J1bGtfaW4gPQkJCU5VTV9ET05UX0NBUkUsCisJLm51bV9idWxrX291dCA9CQkJTlVNX0RPTlRfQ0FSRSwKKwkubnVtX3BvcnRzID0JCQkxLAorCS5hdHRhY2ggPQkJCWN5cHJlc3NfaGlkY29tX3N0YXJ0dXAsCisJLnNodXRkb3duID0JCQljeXByZXNzX3NodXRkb3duLAorCS5vcGVuID0JCQkJY3lwcmVzc19vcGVuLAorCS5jbG9zZSA9CQkJY3lwcmVzc19jbG9zZSwKKwkud3JpdGUgPQkJCWN5cHJlc3Nfd3JpdGUsCisJLndyaXRlX3Jvb20gPQkJCWN5cHJlc3Nfd3JpdGVfcm9vbSwKKwkuaW9jdGwgPQkJCWN5cHJlc3NfaW9jdGwsCisJLnNldF90ZXJtaW9zID0JCQljeXByZXNzX3NldF90ZXJtaW9zLAorCS50aW9jbWdldCA9CQkJY3lwcmVzc190aW9jbWdldCwKKwkudGlvY21zZXQgPQkJCWN5cHJlc3NfdGlvY21zZXQsCisJLmNoYXJzX2luX2J1ZmZlciA9CQljeXByZXNzX2NoYXJzX2luX2J1ZmZlciwKKwkudGhyb3R0bGUgPQkJCWN5cHJlc3NfdGhyb3R0bGUsCisJLnVudGhyb3R0bGUgPQkJCWN5cHJlc3NfdW50aHJvdHRsZSwKKwkucmVhZF9pbnRfY2FsbGJhY2sgPQkJY3lwcmVzc19yZWFkX2ludF9jYWxsYmFjaywKKwkud3JpdGVfaW50X2NhbGxiYWNrID0JCWN5cHJlc3Nfd3JpdGVfaW50X2NhbGxiYWNrLAorfTsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEN5cHJlc3Mgc2VyaWFsIGhlbHBlciBmdW5jdGlvbnMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisvKiBUaGlzIGZ1bmN0aW9uIGNhbiBlaXRoZXIgc2V0IG9yIHJldHJlaXZlIHRoZSBjdXJyZW50IHNlcmlhbCBsaW5lIHNldHRpbmdzICovCitzdGF0aWMgaW50IGN5cHJlc3Nfc2VyaWFsX2NvbnRyb2wgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHVuc2lnbmVkIGJhdWRfbWFzaywgaW50IGRhdGFfYml0cywgaW50IHN0b3BfYml0cywKKwkJCQkgICBpbnQgcGFyaXR5X2VuYWJsZSwgaW50IHBhcml0eV90eXBlLCBpbnQgcmVzZXQsIGludCBjeXByZXNzX3JlcXVlc3RfdHlwZSkKK3sKKwlpbnQgaSwgbl9iYXVkX3JhdGUgPSAwLCByZXR2YWwgPSAwOworCXN0cnVjdCBjeXByZXNzX3ByaXZhdGUgKnByaXY7CisJX191OCBmZWF0dXJlX2J1ZmZlcls1XTsKKwlfX3U4IGNvbmZpZzsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZGJnKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisJCisJcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKworCXN3aXRjaChjeXByZXNzX3JlcXVlc3RfdHlwZSkgeworCQljYXNlIENZUFJFU1NfU0VUX0NPTkZJRzoKKworCQkJLyoKKwkJCSAqIFRoZSBnZW5lcmFsIHB1cnBvc2UgZmlybXdhcmUgZm9yIHRoZSBDeXByZXNzIE04IGFsbG93cyBmb3IgYSBtYXhpbXVtIHNwZWVkCisgCQkJICogb2YgNTc2MDBicHMgKEkgaGF2ZSBubyBpZGVhIHdoZXRoZXIgRGVMb3JtZSBjaG9zZSB0byB1c2UgdGhlIGdlbmVyYWwgcHVycG9zZQorCQkJICogZmlybXdhcmUgb3Igbm90KSwgaWYgeW91IG5lZWQgdG8gbW9kaWZ5IHRoaXMgc3BlZWQgc2V0dGluZyBmb3IgeW91ciBvd24KKwkJCSAqIHByb2plY3QgcGxlYXNlIGFkZCB5b3VyIG93biBjaGlwdHlwZSBhbmQgbW9kaWZ5IHRoZSBjb2RlIGxpa2V3aXNlLiAgVGhlCisJCQkgKiBDeXByZXNzIEhJRC0+Q09NIGRldmljZSB3aWxsIHdvcmsgc3VjY2Vzc2Z1bGx5IHVwIHRvIDExNTIwMGJwcy4KKwkJCSAqLworCQkJaWYgKGJhdWRfbWFzayAhPSBwcml2LT5jYnJfbWFzaykgeworCQkJCWRiZygiJXMgLSBiYXVkIHJhdGUgaXMgY2hhbmdpbmciLCBfX0ZVTkNUSU9OX18pOworCQkJCWlmICggcHJpdi0+Y2hpcHR5cGUgPT0gQ1RfRUFSVEhNQVRFICkgeworCQkJCQkvKiAzMDAgYW5kIDYwMCBiYXVkIHJhdGVzIGFyZSBzdXBwb3J0ZWQgdW5kZXIgdGhlIGdlbmVyaWMgZmlybXdhcmUsCisJCQkJCSAqIGJ1dCBhcmUgbm90IHVzZWQgd2l0aCBOTUVBIGFuZCBTaVJGIHByb3RvY29scyAqLworCQkJCQkKKwkJCQkJaWYgKCAoYmF1ZF9tYXNrID09IEIzMDApIHx8IChiYXVkX21hc2sgPT0gQjYwMCkgKSB7CisJCQkJCQllcnIoIiVzIC0gZmFpbGVkIHNldHRpbmcgYmF1ZCByYXRlLCB1bnN1cHBvcnRlZCBzcGVlZCAoZGVmYXVsdCB0byA0ODAwKSIsCisJCQkJCQkgICAgX19GVU5DVElPTl9fKTsKKwkJCQkJCW5fYmF1ZF9yYXRlID0gNDgwMDsKKwkJCQkJfSBlbHNlIGlmICggKG5fYmF1ZF9yYXRlID0gbWFza190b19yYXRlKGJhdWRfbWFzaykpID09IC0xKSB7CisJCQkJCQllcnIoIiVzIC0gZmFpbGVkIHNldHRpbmcgYmF1ZCByYXRlLCB1bnN1cHBvcnRlZCBzcGVlZCAoZGVmYXVsdCB0byA0ODAwKSIsCisJCQkJCQkgICAgX19GVU5DVElPTl9fKTsKKwkJCQkJCW5fYmF1ZF9yYXRlID0gNDgwMDsKKwkJCQkJfQorCQkJCX0gZWxzZSBpZiAocHJpdi0+Y2hpcHR5cGUgPT0gQ1RfQ1lQSElEQ09NKSB7CisJCQkJCWlmICggKG5fYmF1ZF9yYXRlID0gbWFza190b19yYXRlKGJhdWRfbWFzaykpID09IC0xKSB7CisJCQkJCQllcnIoIiVzIC0gZmFpbGVkIHNldHRpbmcgYmF1ZCByYXRlLCB1bnN1cHBvcnRlZCBzcGVlZCAoZGVmYXVsdCB0byA0ODAwKSIsCisJCQkJCQkgICAgX19GVU5DVElPTl9fKTsKKwkJCQkJCW5fYmF1ZF9yYXRlID0gNDgwMDsKKwkJCQkJfQorCQkJCX0gZWxzZSBpZiAocHJpdi0+Y2hpcHR5cGUgPT0gQ1RfR0VORVJJQykgeworCQkJCQlpZiAoIChuX2JhdWRfcmF0ZSA9IG1hc2tfdG9fcmF0ZShiYXVkX21hc2spKSA9PSAtMSkgeworCQkJCQkJZXJyKCIlcyAtIGZhaWxlZCBzZXR0aW5nIGJhdWQgcmF0ZSwgdW5zdXBwb3J0ZWQgc3BlZWQgKGRlZmF1bHQgdG8gNDgwMCkiLAorCQkJCQkJICAgIF9fRlVOQ1RJT05fXyk7CisJCQkJCQluX2JhdWRfcmF0ZSA9IDQ4MDA7CisJCQkJCX0KKwkJCQl9IGVsc2UgeworCQkJCQlpbmZvKCIlcyAtIHBsZWFzZSBkZWZpbmUgeW91ciBjaGlwdHlwZSwgdXNpbmcgNDgwMGJwcyBkZWZhdWx0IiwgX19GVU5DVElPTl9fKTsKKwkJCQkJbl9iYXVkX3JhdGUgPSA0ODAwOworCQkJCX0KKwkJCX0gZWxzZSB7ICAvKiBiYXVkIHJhdGUgbm90IGNoYW5naW5nLCBrZWVwIHRoZSBvbGQgKi8KKwkJCQluX2JhdWRfcmF0ZSA9IHByaXYtPmJhdWRfcmF0ZTsKKwkJCX0KKwkJCWRiZygiJXMgLSBiYXVkIHJhdGUgaXMgYmVpbmcgc2VudCBhcyAlZCIsIF9fRlVOQ1RJT05fXywgbl9iYXVkX3JhdGUpOworCisJCQkKKwkJCS8qCisJCQkgKiBUaGlzIGFsZ29yaXRobSBhY2NyZWRpdGVkIHRvIEppYW5nIEpheSBaaGFuZy4uLiB0aGFua3MgZm9yIGFsbCB0aGUgaGVscCEKKwkJCSAqLworCQkJZm9yIChpID0gMDsgaSA8IDQ7ICsraSkgeworCQkJCWZlYXR1cmVfYnVmZmVyW2ldID0gKCBuX2JhdWRfcmF0ZSA+PiAoaSo4KSAmIDB4RkYgKTsKKwkJCX0KKworCQkJY29uZmlnID0gMDsJICAgICAgICAgICAgICAgICAvLyByZXNldCBjb25maWcgYnl0ZQorCQkJY29uZmlnIHw9IGRhdGFfYml0czsJICAgICAgICAgLy8gYXNzaWduIGRhdGEgYml0cyBpbiAyIGJpdCBzcGFjZSAoIG1heCAzICkKKwkJCS8qIDEgYml0IGdhcCAqLworCQkJY29uZmlnIHw9IChzdG9wX2JpdHMgPDwgMyk7ICAgICAgLy8gYXNzaWduIHN0b3AgYml0cyBpbiAxIGJpdCBzcGFjZQorCQkJY29uZmlnIHw9IChwYXJpdHlfZW5hYmxlIDw8IDQpOyAgLy8gYXNzaWduIHBhcml0eSBmbGFnIGluIDEgYml0IHNwYWNlCisJCQljb25maWcgfD0gKHBhcml0eV90eXBlIDw8IDUpOyAJIC8vIGFzc2lnbiBwYXJpdHkgdHlwZSBpbiAxIGJpdCBzcGFjZQorCQkJLyogMSBiaXQgZ2FwICovCisJCQljb25maWcgfD0gKHJlc2V0IDw8IDcpOwkJIC8vIGFzc2lnbiByZXNldCBhdCBlbmQgb2YgYnl0ZSwgMSBiaXQgc3BhY2UKKworCQkJZmVhdHVyZV9idWZmZXJbNF0gPSBjb25maWc7CisJCQkJCisJCQlkYmcoIiVzIC0gZGV2aWNlIGlzIGJlaW5nIHNlbnQgdGhpcyBmZWF0dXJlIHJlcG9ydDoiLCBfX0ZVTkNUSU9OX18pOworCQkJZGJnKCIlcyAtICUwMlggLSAlMDJYIC0gJTAyWCAtICUwMlggLSAlMDJYIiwgX19GVU5DVElPTl9fLCBmZWF0dXJlX2J1ZmZlclswXSwgZmVhdHVyZV9idWZmZXJbMV0sCisJCSAgICAgICAgICAgIGZlYXR1cmVfYnVmZmVyWzJdLCBmZWF0dXJlX2J1ZmZlclszXSwgZmVhdHVyZV9idWZmZXJbNF0pOworCQkJCisJCQlyZXR2YWwgPSB1c2JfY29udHJvbF9tc2cgKHBvcnQtPnNlcmlhbC0+ZGV2LCB1c2Jfc25kY3RybHBpcGUocG9ydC0+c2VyaWFsLT5kZXYsIDApLAorCQkJCQkgIAkgIEhJRF9SRVFfU0VUX1JFUE9SVCwgVVNCX0RJUl9PVVQgfCBVU0JfUkVDSVBfSU5URVJGQUNFIHwgVVNCX1RZUEVfQ0xBU1MsCisJCQkJCSAgCSAgMHgwMzAwLCAwLCBmZWF0dXJlX2J1ZmZlciwgNSwgNTAwKTsKKworCQkJaWYgKHJldHZhbCAhPSA1KQorCQkJCWVycigiJXMgLSBmYWlsZWQgc2VuZGluZyBzZXJpYWwgbGluZSBzZXR0aW5ncyAtICVkIiwgX19GVU5DVElPTl9fLCByZXR2YWwpOworCQkJZWxzZSB7CisJCQkJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwkJCQlwcml2LT5iYXVkX3JhdGUgPSBuX2JhdWRfcmF0ZTsKKwkJCQlwcml2LT5jYnJfbWFzayA9IGJhdWRfbWFzazsKKwkJCQlwcml2LT5jdXJyZW50X2NvbmZpZyA9IGNvbmZpZzsKKwkJCQkrK3ByaXYtPmNtZF9jb3VudDsKKwkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJCQl9CisJCWJyZWFrOworCQljYXNlIENZUFJFU1NfR0VUX0NPTkZJRzoKKwkJCWRiZygiJXMgLSByZXRyZWl2aW5nIHNlcmlhbCBsaW5lIHNldHRpbmdzIiwgX19GVU5DVElPTl9fKTsKKwkJCS8qIHJlc2V0IHZhbHVlcyBpbiBmZWF0dXJlIGJ1ZmZlciAqLworCQkJbWVtc2V0KGZlYXR1cmVfYnVmZmVyLCAwLCA1KTsKKworCQkJcmV0dmFsID0gdXNiX2NvbnRyb2xfbXNnIChwb3J0LT5zZXJpYWwtPmRldiwgdXNiX3JjdmN0cmxwaXBlKHBvcnQtPnNlcmlhbC0+ZGV2LCAwKSwKKwkJCQkJCSAgSElEX1JFUV9HRVRfUkVQT1JULCBVU0JfRElSX0lOIHwgVVNCX1JFQ0lQX0lOVEVSRkFDRSB8IFVTQl9UWVBFX0NMQVNTLAorCQkJCQkJICAweDAzMDAsIDAsIGZlYXR1cmVfYnVmZmVyLCA1LCA1MDApOworCQkJaWYgKHJldHZhbCAhPSA1KSB7CisJCQkJZXJyKCIlcyAtIGZhaWxlZCB0byByZXRyZWl2ZSBzZXJpYWwgbGluZSBzZXR0aW5ncyAtICVkIiwgX19GVU5DVElPTl9fLCByZXR2YWwpOworCQkJCXJldHVybiByZXR2YWw7CisJCQl9IGVsc2UgeworCQkJCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJCQkJLyogc3RvcmUgdGhlIGNvbmZpZyBpbiBvbmUgYnl0ZSwgYW5kIGxhdGVyIHVzZSBiaXQgbWFza3MgdG8gY2hlY2sgdmFsdWVzICovCisJCQkJcHJpdi0+Y3VycmVudF9jb25maWcgPSBmZWF0dXJlX2J1ZmZlcls0XTsKKwkJCQkvKiByZXZlcnNlIHRoZSBwcm9jZXNzIGFib3ZlIHRvIGdldCB0aGUgYmF1ZF9tYXNrIHZhbHVlICovCisJCQkJbl9iYXVkX3JhdGUgPSAwOyAvLyByZXNldCBiaXRzCisJCQkJZm9yIChpID0gMDsgaSA8IDQ7ICsraSkgeworCQkJCQluX2JhdWRfcmF0ZSB8PSAoIGZlYXR1cmVfYnVmZmVyW2ldIDw8IChpKjgpICk7CisJCQkJfQorCQkJCQorCQkJCXByaXYtPmJhdWRfcmF0ZSA9IG5fYmF1ZF9yYXRlOworCQkJCWlmICggKHByaXYtPmNicl9tYXNrID0gcmF0ZV90b19tYXNrKG5fYmF1ZF9yYXRlKSkgPT0gMHg0MCkKKwkJCQkJZGJnKCIlcyAtIGZhaWxlZCBzZXR0aW5nIHRoZSBiYXVkIG1hc2sgKG5vdCBkZWZpbmVkKSIsIF9fRlVOQ1RJT05fXyk7CisJCQkJKytwcml2LT5jbWRfY291bnQ7CisJCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCQkJfQorCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQllcnIoIiVzIC0gdW5zdXBwb3J0ZWQgc2VyaWFsIGNvbnRyb2wgY29tbWFuZCBpc3N1ZWQiLCBfX0ZVTkNUSU9OX18pOworCX0KKwlyZXR1cm4gcmV0dmFsOworfSAvKiBjeXByZXNzX3NlcmlhbF9jb250cm9sICovCisKKworLyogZ2l2ZW4gYSBiYXVkIG1hc2ssIGl0IHdpbGwgcmV0dXJuIHNwZWVkIG9uIHN1Y2Nlc3MgKi8KK3N0YXRpYyBpbnQgbWFza190b19yYXRlICh1bnNpZ25lZCBtYXNrKQoreworCWludCByYXRlOworCisJc3dpdGNoIChtYXNrKSB7CisJCWNhc2UgQjA6IHJhdGUgPSAwOyBicmVhazsKKwkJY2FzZSBCMzAwOiByYXRlID0gMzAwOyBicmVhazsKKwkJY2FzZSBCNjAwOiByYXRlID0gNjAwOyBicmVhazsKKwkJY2FzZSBCMTIwMDogcmF0ZSA9IDEyMDA7IGJyZWFrOworCQljYXNlIEIyNDAwOiByYXRlID0gMjQwMDsgYnJlYWs7CisJCWNhc2UgQjQ4MDA6IHJhdGUgPSA0ODAwOyBicmVhazsKKwkJY2FzZSBCOTYwMDogcmF0ZSA9IDk2MDA7IGJyZWFrOworCQljYXNlIEIxOTIwMDogcmF0ZSA9IDE5MjAwOyBicmVhazsKKwkJY2FzZSBCMzg0MDA6IHJhdGUgPSAzODQwMDsgYnJlYWs7CisJCWNhc2UgQjU3NjAwOiByYXRlID0gNTc2MDA7IGJyZWFrOworCQljYXNlIEIxMTUyMDA6IHJhdGUgPSAxMTUyMDA7IGJyZWFrOworCQlkZWZhdWx0OiByYXRlID0gLTE7CisJfQorCisJcmV0dXJuIHJhdGU7Cit9CisKKworc3RhdGljIHVuc2lnbmVkIHJhdGVfdG9fbWFzayAoaW50IHJhdGUpCit7CisJdW5zaWduZWQgbWFzazsKKworCXN3aXRjaCAocmF0ZSkgeworCQljYXNlIDA6IG1hc2sgPSBCMDsgYnJlYWs7CisJCWNhc2UgMzAwOiBtYXNrID0gQjMwMDsgYnJlYWs7CisJCWNhc2UgNjAwOiBtYXNrID0gQjYwMDsgYnJlYWs7CisJCWNhc2UgMTIwMDogbWFzayA9IEIxMjAwOyBicmVhazsKKwkJY2FzZSAyNDAwOiBtYXNrID0gQjI0MDA7IGJyZWFrOworCQljYXNlIDQ4MDA6IG1hc2sgPSBCNDgwMDsgYnJlYWs7CisJCWNhc2UgOTYwMDogbWFzayA9IEI5NjAwOyBicmVhazsKKwkJY2FzZSAxOTIwMDogbWFzayA9IEIxOTIwMDsgYnJlYWs7CisJCWNhc2UgMzg0MDA6IG1hc2sgPSBCMzg0MDA7IGJyZWFrOworCQljYXNlIDU3NjAwOiBtYXNrID0gQjU3NjAwOyBicmVhazsKKwkJY2FzZSAxMTUyMDA6IG1hc2sgPSBCMTE1MjAwOyBicmVhazsKKwkJZGVmYXVsdDogbWFzayA9IDB4NDA7CisJfQorCisJcmV0dXJuIG1hc2s7Cit9CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEN5cHJlc3Mgc2VyaWFsIGRyaXZlciBmdW5jdGlvbnMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCitzdGF0aWMgaW50IGdlbmVyaWNfc3RhcnR1cCAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkKK3sKKwlzdHJ1Y3QgY3lwcmVzc19wcml2YXRlICpwcml2OworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHNlcmlhbC0+cG9ydFswXS0+bnVtYmVyKTsKKworCXByaXYgPSBrbWFsbG9jKHNpemVvZiAoc3RydWN0IGN5cHJlc3NfcHJpdmF0ZSksIEdGUF9LRVJORUwpOworCWlmICghcHJpdikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwltZW1zZXQocHJpdiwgMHgwMCwgc2l6ZW9mIChzdHJ1Y3QgY3lwcmVzc19wcml2YXRlKSk7CisJc3Bpbl9sb2NrX2luaXQoJnByaXYtPmxvY2spOworCXByaXYtPmJ1ZiA9IGN5cHJlc3NfYnVmX2FsbG9jKENZUFJFU1NfQlVGX1NJWkUpOworCWlmIChwcml2LT5idWYgPT0gTlVMTCkgeworCQlrZnJlZShwcml2KTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnByaXYtPmRlbHRhX21zcl93YWl0KTsKKwkKKwl1c2JfcmVzZXRfY29uZmlndXJhdGlvbiAoc2VyaWFsLT5kZXYpOworCQorCXByaXYtPmNtZF9jdHJsID0gMDsKKwlwcml2LT5saW5lX2NvbnRyb2wgPSAwOworCXByaXYtPnRlcm1pb3NfaW5pdGlhbGl6ZWQgPSAwOworCXByaXYtPmNhbGxlZGZyb21vcGVuID0gMDsKKwlwcml2LT5yeF9mbGFncyA9IDA7CisJdXNiX3NldF9zZXJpYWxfcG9ydF9kYXRhKHNlcmlhbC0+cG9ydFswXSwgcHJpdik7CisJCisJcmV0dXJuICgwKTsJCit9CQorCisKK3N0YXRpYyBpbnQgY3lwcmVzc19lYXJ0aG1hdGVfc3RhcnR1cCAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkKK3sKKwlzdHJ1Y3QgY3lwcmVzc19wcml2YXRlICpwcml2OworCisJZGJnKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwlpZiAoZ2VuZXJpY19zdGFydHVwKHNlcmlhbCkpIHsKKwkJZGJnKCIlcyAtIEZhaWxlZCBzZXR0aW5nIHVwIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHNlcmlhbC0+cG9ydFswXS0+bnVtYmVyKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShzZXJpYWwtPnBvcnRbMF0pOworCXByaXYtPmNoaXB0eXBlID0gQ1RfRUFSVEhNQVRFOworCQorCXJldHVybiAoMCk7CQorfSAvKiBjeXByZXNzX2VhcnRobWF0ZV9zdGFydHVwICovCisKKworc3RhdGljIGludCBjeXByZXNzX2hpZGNvbV9zdGFydHVwIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQoreworCXN0cnVjdCBjeXByZXNzX3ByaXZhdGUgKnByaXY7CisKKwlkYmcoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCWlmIChnZW5lcmljX3N0YXJ0dXAoc2VyaWFsKSkgeworCQlkYmcoIiVzIC0gRmFpbGVkIHNldHRpbmcgdXAgcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgc2VyaWFsLT5wb3J0WzBdLT5udW1iZXIpOworCQlyZXR1cm4gMTsKKwl9CisKKwlwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHNlcmlhbC0+cG9ydFswXSk7CisJcHJpdi0+Y2hpcHR5cGUgPSBDVF9DWVBISURDT007CisJCisJcmV0dXJuICgwKTsJCit9IC8qIGN5cHJlc3NfaGlkY29tX3N0YXJ0dXAgKi8KKworCitzdGF0aWMgdm9pZCBjeXByZXNzX3NodXRkb3duIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQoreworCXN0cnVjdCBjeXByZXNzX3ByaXZhdGUgKnByaXY7CisKKwlkYmcgKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHNlcmlhbC0+cG9ydFswXS0+bnVtYmVyKTsKKworCS8qIGFsbCBvcGVuIHBvcnRzIGFyZSBjbG9zZWQgYXQgdGhpcyBwb2ludCAqLworCisJcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShzZXJpYWwtPnBvcnRbMF0pOworCisJaWYgKHByaXYpIHsKKwkJY3lwcmVzc19idWZfZnJlZShwcml2LT5idWYpOworCQlrZnJlZShwcml2KTsKKwkJdXNiX3NldF9zZXJpYWxfcG9ydF9kYXRhKHNlcmlhbC0+cG9ydFswXSwgTlVMTCk7CisJfQorfQorCisKK3N0YXRpYyBpbnQgY3lwcmVzc19vcGVuIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlzdHJ1Y3QgY3lwcmVzc19wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgPSBwb3J0LT5zZXJpYWw7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQgcmVzdWx0ID0gMDsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJLyogY2xlYXIgaGFsdHMgYmVmb3JlIG9wZW4gKi8KKwl1c2JfY2xlYXJfaGFsdChzZXJpYWwtPmRldiwgMHgwMCk7CisJdXNiX2NsZWFyX2hhbHQoc2VyaWFsLT5kZXYsIDB4ODEpOworCXVzYl9jbGVhcl9oYWx0KHNlcmlhbC0+ZGV2LCAweDAyKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJLyogcmVzZXQgcmVhZC93cml0ZSBzdGF0aXN0aWNzICovCisJcHJpdi0+Ynl0ZXNfaW4gPSAwOworCXByaXYtPmJ5dGVzX291dCA9IDA7CisJcHJpdi0+Y21kX2NvdW50ID0gMDsKKwlwcml2LT5yeF9mbGFncyA9IDA7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCisJLyogc2V0dGluZyB0byB6ZXJvIGNvdWxkIGNhdXNlIGRhdGEgbG9zcyAqLworCXBvcnQtPnR0eS0+bG93X2xhdGVuY3kgPSAxOworCisJLyogcmFpc2UgYm90aCBsaW5lcyBhbmQgc2V0IHRlcm1pb3MgKi8KKwlzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCXByaXYtPmxpbmVfY29udHJvbCA9IENPTlRST0xfRFRSIHwgQ09OVFJPTF9SVFM7CisJcHJpdi0+Y2FsbGVkZnJvbW9wZW4gPSAxOworCXByaXYtPmNtZF9jdHJsID0gMTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJcmVzdWx0ID0gY3lwcmVzc193cml0ZShwb3J0LCBOVUxMLCAwKTsKKworCWlmIChyZXN1bHQpIHsKKwkJZGV2X2VycigmcG9ydC0+ZGV2LCAiJXMgLSBmYWlsZWQgc2V0dGluZyB0aGUgY29udHJvbCBsaW5lcyAtIGVycm9yICVkXG4iLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisJCXJldHVybiByZXN1bHQ7CisJfSBlbHNlCisJCWRiZygiJXMgLSBzdWNjZXNzIHNldHRpbmcgdGhlIGNvbnRyb2wgbGluZXMiLCBfX0ZVTkNUSU9OX18pOwkKKworCWN5cHJlc3Nfc2V0X3Rlcm1pb3MocG9ydCwgJnByaXYtPnRtcF90ZXJtaW9zKTsKKworCS8qIHNldHVwIHRoZSBwb3J0IGFuZCBzdGFydCByZWFkaW5nIGZyb20gdGhlIGRldmljZSAqLworCWlmKCFwb3J0LT5pbnRlcnJ1cHRfaW5fdXJiKXsKKwkJZXJyKCIlcyAtIGludGVycnVwdF9pbl91cmIgaXMgZW1wdHkhIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuKC0xKTsKKwl9CisKKwl1c2JfZmlsbF9pbnRfdXJiKHBvcnQtPmludGVycnVwdF9pbl91cmIsIHNlcmlhbC0+ZGV2LAorCQl1c2JfcmN2aW50cGlwZShzZXJpYWwtPmRldiwgcG9ydC0+aW50ZXJydXB0X2luX2VuZHBvaW50QWRkcmVzcyksCisJCXBvcnQtPmludGVycnVwdF9pbl91cmItPnRyYW5zZmVyX2J1ZmZlciwgcG9ydC0+aW50ZXJydXB0X2luX3VyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCwKKwkJY3lwcmVzc19yZWFkX2ludF9jYWxsYmFjaywgcG9ydCwgcG9ydC0+aW50ZXJydXB0X2luX3VyYi0+aW50ZXJ2YWwpOworCXJlc3VsdCA9IHVzYl9zdWJtaXRfdXJiKHBvcnQtPmludGVycnVwdF9pbl91cmIsIEdGUF9LRVJORUwpOworCisJaWYgKHJlc3VsdCl7CisJCWRldl9lcnIoJnBvcnQtPmRldiwgIiVzIC0gZmFpbGVkIHN1Ym1pdHRpbmcgcmVhZCB1cmIsIGVycm9yICVkXG4iLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30gLyogY3lwcmVzc19vcGVuICovCisKKworc3RhdGljIHZvaWQgY3lwcmVzc19jbG9zZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqIGZpbHApCit7CisJc3RydWN0IGN5cHJlc3NfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwl1bnNpZ25lZCBpbnQgY19jZmxhZzsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCBicHM7CisJbG9uZyB0aW1lb3V0OworCXdhaXRfcXVldWVfdCB3YWl0OworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwkvKiB3YWl0IGZvciBkYXRhIHRvIGRyYWluIGZyb20gYnVmZmVyICovCisJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwl0aW1lb3V0ID0gQ1lQUkVTU19DTE9TSU5HX1dBSVQ7CisJaW5pdF93YWl0cXVldWVfZW50cnkoJndhaXQsIGN1cnJlbnQpOworCWFkZF93YWl0X3F1ZXVlKCZwb3J0LT50dHktPndyaXRlX3dhaXQsICZ3YWl0KTsKKwlmb3IgKDs7KSB7CisJCXNldF9jdXJyZW50X3N0YXRlKFRBU0tfSU5URVJSVVBUSUJMRSk7CisJCWlmIChjeXByZXNzX2J1Zl9kYXRhX2F2YWlsKHByaXYtPmJ1ZikgPT0gMAorCQl8fCB0aW1lb3V0ID09IDAgfHwgc2lnbmFsX3BlbmRpbmcoY3VycmVudCkKKwkJfHwgIXVzYl9nZXRfaW50ZmRhdGEocG9ydC0+c2VyaWFsLT5pbnRlcmZhY2UpKQorCQkJYnJlYWs7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwkJdGltZW91dCA9IHNjaGVkdWxlX3RpbWVvdXQodGltZW91dCk7CisJCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJfQorCXNldF9jdXJyZW50X3N0YXRlKFRBU0tfUlVOTklORyk7CisJcmVtb3ZlX3dhaXRfcXVldWUoJnBvcnQtPnR0eS0+d3JpdGVfd2FpdCwgJndhaXQpOworCS8qIGNsZWFyIG91dCBhbnkgcmVtYWluaW5nIGRhdGEgaW4gdGhlIGJ1ZmZlciAqLworCWN5cHJlc3NfYnVmX2NsZWFyKHByaXYtPmJ1Zik7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCQorCS8qIHdhaXQgZm9yIGNoYXJhY3RlcnMgdG8gZHJhaW4gZnJvbSBkZXZpY2UgKi8KKwlicHMgPSB0dHlfZ2V0X2JhdWRfcmF0ZShwb3J0LT50dHkpOworCWlmIChicHMgPiAxMjAwKQorCQl0aW1lb3V0ID0gbWF4KChIWioyNTYwKS9icHMsSFovMTApOworCWVsc2UKKwkJdGltZW91dCA9IDIqSFo7CisJc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19JTlRFUlJVUFRJQkxFKTsKKwlzY2hlZHVsZV90aW1lb3V0KHRpbWVvdXQpOworCisJZGJnKCIlcyAtIHN0b3BwaW5nIHVyYnMiLCBfX0ZVTkNUSU9OX18pOworCXVzYl9raWxsX3VyYiAocG9ydC0+aW50ZXJydXB0X2luX3VyYik7CisJdXNiX2tpbGxfdXJiIChwb3J0LT5pbnRlcnJ1cHRfb3V0X3VyYik7CisKKwlpZiAocG9ydC0+dHR5KSB7CisJCWNfY2ZsYWcgPSBwb3J0LT50dHktPnRlcm1pb3MtPmNfY2ZsYWc7CisJCWlmIChjX2NmbGFnICYgSFVQQ0wpIHsKKwkJCS8qIGRyb3AgZHRyIGFuZCBydHMgKi8KKwkJCXByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJCQlzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCQkJcHJpdi0+bGluZV9jb250cm9sID0gMDsKKwkJCXByaXYtPmNtZF9jdHJsID0gMTsKKwkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwkJCWN5cHJlc3Nfd3JpdGUocG9ydCwgTlVMTCwgMCk7CisJCX0KKwl9CisKKwlpZiAoc3RhdHMpCisJCWRldl9pbmZvICgmcG9ydC0+ZGV2LCAiU3RhdGlzdGljczogJWQgQnl0ZXMgSW4gfCAlZCBCeXRlcyBPdXQgfCAlZCBDb21tYW5kcyBJc3N1ZWRcbiIsCisJCSAgICAgICAgICBwcml2LT5ieXRlc19pbiwgcHJpdi0+Ynl0ZXNfb3V0LCBwcml2LT5jbWRfY291bnQpOworfSAvKiBjeXByZXNzX2Nsb3NlICovCisKKworc3RhdGljIGludCBjeXByZXNzX3dyaXRlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGNvdW50KQoreworCXN0cnVjdCBjeXByZXNzX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwkKKwlkYmcoIiVzIC0gcG9ydCAlZCwgJWQgYnl0ZXMiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlciwgY291bnQpOworCisJLyogbGluZSBjb250cm9sIGNvbW1hbmRzLCB3aGljaCBuZWVkIHRvIGJlIGV4ZWN1dGVkIGltbWVkaWF0ZWx5LAorCSAgIGFyZSBub3QgcHV0IGludG8gdGhlIGJ1ZmZlciBmb3Igb2J2aW91cyByZWFzb25zLgorCSAqLworCWlmIChwcml2LT5jbWRfY3RybCkgeworCQljb3VudCA9IDA7CisJCWdvdG8gZmluaXNoOworCX0KKwkKKwlpZiAoIWNvdW50KQorCQlyZXR1cm4gY291bnQ7CisJCisJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwljb3VudCA9IGN5cHJlc3NfYnVmX3B1dChwcml2LT5idWYsIGJ1ZiwgY291bnQpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKworZmluaXNoOgorCWN5cHJlc3Nfc2VuZChwb3J0KTsKKworCXJldHVybiBjb3VudDsKK30gLyogY3lwcmVzc193cml0ZSAqLworCisKK3N0YXRpYyB2b2lkIGN5cHJlc3Nfc2VuZChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCWludCBjb3VudCA9IDAsIHJlc3VsdCwgb2Zmc2V0LCBhY3R1YWxfc2l6ZTsKKwlzdHJ1Y3QgY3lwcmVzc19wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisJZGJnKCIlcyAtIGludGVycnVwdCBvdXQgc2l6ZSBpcyAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+aW50ZXJydXB0X291dF9zaXplKTsKKwkKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCWlmIChwcml2LT53cml0ZV91cmJfaW5fdXNlKSB7CisJCWRiZygiJXMgLSBjYW4ndCB3cml0ZSwgdXJiIGluIHVzZSIsIF9fRlVOQ1RJT05fXyk7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwkJcmV0dXJuOworCX0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CisKKwkvKiBjbGVhciBidWZmZXIgKi8KKwltZW1zZXQocG9ydC0+aW50ZXJydXB0X291dF91cmItPnRyYW5zZmVyX2J1ZmZlciwgMCwgcG9ydC0+aW50ZXJydXB0X291dF9zaXplKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJc3dpdGNoIChwb3J0LT5pbnRlcnJ1cHRfb3V0X3NpemUpIHsKKwkJY2FzZSAzMjoKKwkJCS8vIHRoaXMgaXMgZm9yIHRoZSBDWTdDNjQwMTMuLi4KKwkJCW9mZnNldCA9IDI7CisJCQlwb3J0LT5pbnRlcnJ1cHRfb3V0X2J1ZmZlclswXSA9IHByaXYtPmxpbmVfY29udHJvbDsKKwkJCWJyZWFrOworCQljYXNlIDg6CisJCQkvLyB0aGlzIGlzIGZvciB0aGUgQ1k3QzYzNzQzLi4uCisJCQlvZmZzZXQgPSAxOworCQkJcG9ydC0+aW50ZXJydXB0X291dF9idWZmZXJbMF0gPSBwcml2LT5saW5lX2NvbnRyb2w7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWRiZygiJXMgLSB3cm9uZyBwYWNrZXQgc2l6ZSIsIF9fRlVOQ1RJT05fXyk7CisJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJCQlyZXR1cm47CisJfQorCisJaWYgKHByaXYtPmxpbmVfY29udHJvbCAmIENPTlRST0xfUkVTRVQpCisJCXByaXYtPmxpbmVfY29udHJvbCAmPSB+Q09OVFJPTF9SRVNFVDsKKworCWlmIChwcml2LT5jbWRfY3RybCkgeworCQlwcml2LT5jbWRfY291bnQrKzsKKwkJZGJnKCIlcyAtIGxpbmUgY29udHJvbCBjb21tYW5kIGJlaW5nIGlzc3VlZCIsIF9fRlVOQ1RJT05fXyk7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwkJZ290byBzZW5kOworCX0gZWxzZQorCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CisKKwljb3VudCA9IGN5cHJlc3NfYnVmX2dldChwcml2LT5idWYsICZwb3J0LT5pbnRlcnJ1cHRfb3V0X2J1ZmZlcltvZmZzZXRdLAorCQkJCXBvcnQtPmludGVycnVwdF9vdXRfc2l6ZS1vZmZzZXQpOworCisJaWYgKGNvdW50ID09IDApIHsKKwkJcmV0dXJuOworCX0KKworCXN3aXRjaCAocG9ydC0+aW50ZXJydXB0X291dF9zaXplKSB7CisJCWNhc2UgMzI6CisJCQlwb3J0LT5pbnRlcnJ1cHRfb3V0X2J1ZmZlclsxXSA9IGNvdW50OworCQkJYnJlYWs7CisJCWNhc2UgODoKKwkJCXBvcnQtPmludGVycnVwdF9vdXRfYnVmZmVyWzBdIHw9IGNvdW50OworCX0KKworCWRiZygiJXMgLSBjb3VudCBpcyAlZCIsIF9fRlVOQ1RJT05fXywgY291bnQpOworCitzZW5kOgorCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJcHJpdi0+d3JpdGVfdXJiX2luX3VzZSA9IDE7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCisJaWYgKHByaXYtPmNtZF9jdHJsKQorCQlhY3R1YWxfc2l6ZSA9IDE7CisJZWxzZQorCQlhY3R1YWxfc2l6ZSA9IGNvdW50ICsgKHBvcnQtPmludGVycnVwdF9vdXRfc2l6ZSA9PSAzMiA/IDIgOiAxKTsKKwkKKwl1c2Jfc2VyaWFsX2RlYnVnX2RhdGEoZGVidWcsICZwb3J0LT5kZXYsIF9fRlVOQ1RJT05fXywgcG9ydC0+aW50ZXJydXB0X291dF9zaXplLAorCQkJICAgICAgcG9ydC0+aW50ZXJydXB0X291dF91cmItPnRyYW5zZmVyX2J1ZmZlcik7CisKKwlwb3J0LT5pbnRlcnJ1cHRfb3V0X3VyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCA9IGFjdHVhbF9zaXplOworCXBvcnQtPmludGVycnVwdF9vdXRfdXJiLT5kZXYgPSBwb3J0LT5zZXJpYWwtPmRldjsKKwlyZXN1bHQgPSB1c2Jfc3VibWl0X3VyYiAocG9ydC0+aW50ZXJydXB0X291dF91cmIsIEdGUF9BVE9NSUMpOworCWlmIChyZXN1bHQpIHsKKwkJZGV2X2VycigmcG9ydC0+ZGV2LCAiJXMgLSBmYWlsZWQgc3VibWl0dGluZyB3cml0ZSB1cmIsIGVycm9yICVkXG4iLCBfX0ZVTkNUSU9OX18sCisJCQlyZXN1bHQpOworCQlwcml2LT53cml0ZV91cmJfaW5fdXNlID0gMDsKKwl9CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCWlmIChwcml2LT5jbWRfY3RybCkgeworCQlwcml2LT5jbWRfY3RybCA9IDA7CisJfQorCXByaXYtPmJ5dGVzX291dCArPSBjb3VudDsgLyogZG8gbm90IGNvdW50IHRoZSBsaW5lIGNvbnRyb2wgYW5kIHNpemUgYnl0ZXMgKi8KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CisKKwlzY2hlZHVsZV93b3JrKCZwb3J0LT53b3JrKTsKK30gLyogY3lwcmVzc19zZW5kICovCisKKworLyogcmV0dXJucyBob3cgbXVjaCBzcGFjZSBpcyBhdmFpbGFibGUgaW4gdGhlIHNvZnQgYnVmZmVyICovCitzdGF0aWMgaW50IGN5cHJlc3Nfd3JpdGVfcm9vbShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCBjeXByZXNzX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJaW50IHJvb20gPSAwOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJcm9vbSA9IGN5cHJlc3NfYnVmX3NwYWNlX2F2YWlsKHByaXYtPmJ1Zik7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCisJZGJnKCIlcyAtIHJldHVybnMgJWQiLCBfX0ZVTkNUSU9OX18sIHJvb20pOworCXJldHVybiByb29tOworfQorCisKK3N0YXRpYyBpbnQgY3lwcmVzc190aW9jbWdldCAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJc3RydWN0IGN5cHJlc3NfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlfX3U4IHN0YXR1cywgY29udHJvbDsKKwl1bnNpZ25lZCBpbnQgcmVzdWx0ID0gMDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCQorCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwljb250cm9sID0gcHJpdi0+bGluZV9jb250cm9sOworCXN0YXR1cyA9IHByaXYtPmN1cnJlbnRfc3RhdHVzOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKworCXJlc3VsdCA9ICgoY29udHJvbCAmIENPTlRST0xfRFRSKSAgICAgICAgPyBUSU9DTV9EVFIgOiAwKQorCQl8ICgoY29udHJvbCAmIENPTlRST0xfUlRTKSAgICAgICA/IFRJT0NNX1JUUyA6IDApCisJCXwgKChzdGF0dXMgJiBVQVJUX0NUUykgICAgICAgID8gVElPQ01fQ1RTIDogMCkKKwkJfCAoKHN0YXR1cyAmIFVBUlRfRFNSKSAgICAgICAgPyBUSU9DTV9EU1IgOiAwKQorCQl8ICgoc3RhdHVzICYgVUFSVF9SSSkgICAgICAgICA/IFRJT0NNX1JJICA6IDApCisJCXwgKChzdGF0dXMgJiBVQVJUX0NEKSAgICAgICAgID8gVElPQ01fQ0QgIDogMCk7CisKKwlkYmcoIiVzIC0gcmVzdWx0ID0gJXgiLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCisKK3N0YXRpYyBpbnQgY3lwcmVzc190aW9jbXNldCAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbGUsCisJCQkgICAgICAgdW5zaWduZWQgaW50IHNldCwgdW5zaWduZWQgaW50IGNsZWFyKQoreworCXN0cnVjdCBjeXByZXNzX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwkKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJaWYgKHNldCAmIFRJT0NNX1JUUykKKwkJcHJpdi0+bGluZV9jb250cm9sIHw9IENPTlRST0xfUlRTOworCWlmIChzZXQgJiBUSU9DTV9EVFIpCisJCXByaXYtPmxpbmVfY29udHJvbCB8PSBDT05UUk9MX0RUUjsKKwlpZiAoY2xlYXIgJiBUSU9DTV9SVFMpCisJCXByaXYtPmxpbmVfY29udHJvbCAmPSB+Q09OVFJPTF9SVFM7CisJaWYgKGNsZWFyICYgVElPQ01fRFRSKQorCQlwcml2LT5saW5lX2NvbnRyb2wgJj0gfkNPTlRST0xfRFRSOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKworCXByaXYtPmNtZF9jdHJsID0gMTsKKwlyZXR1cm4gY3lwcmVzc193cml0ZShwb3J0LCBOVUxMLCAwKTsKK30KKworCitzdGF0aWMgaW50IGN5cHJlc3NfaW9jdGwgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICogZmlsZSwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCit7CisJc3RydWN0IGN5cHJlc3NfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKworCWRiZygiJXMgLSBwb3J0ICVkLCBjbWQgMHglLjR4IiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIsIGNtZCk7CisKKwlzd2l0Y2ggKGNtZCkgeworCQljYXNlIFRJT0NHU0VSSUFMOgorCQkJaWYgKGNvcHlfdG9fdXNlcigodm9pZCBfX3VzZXIgKilhcmcsIHBvcnQtPnR0eS0+dGVybWlvcywgc2l6ZW9mKHN0cnVjdCB0ZXJtaW9zKSkpIHsKKwkJCQlyZXR1cm4gLUVGQVVMVDsKKwkJCX0KKwkJCXJldHVybiAoMCk7CisJCQlicmVhazsKKwkJY2FzZSBUSU9DU1NFUklBTDoKKwkJCWlmIChjb3B5X2Zyb21fdXNlcihwb3J0LT50dHktPnRlcm1pb3MsICh2b2lkIF9fdXNlciAqKWFyZywgc2l6ZW9mKHN0cnVjdCB0ZXJtaW9zKSkpIHsKKwkJCQlyZXR1cm4gLUVGQVVMVDsKKwkJCX0KKwkJCS8qIGhlcmUgd2UgbmVlZCB0byBjYWxsIGN5cHJlc3Nfc2V0X3Rlcm1pb3MgdG8gaW52b2tlIHRoZSBuZXcgc2V0dGluZ3MgKi8KKwkJCWN5cHJlc3Nfc2V0X3Rlcm1pb3MocG9ydCwgJnByaXYtPnRtcF90ZXJtaW9zKTsKKwkJCXJldHVybiAoMCk7CisJCQlicmVhazsKKwkJLyogdGhlc2UgYXJlIGNhbGxlZCB3aGVuIHNldHRpbmcgYmF1ZCByYXRlIGZyb20gZ3BzZCAqLworCQljYXNlIFRDR0VUUzoKKwkJCWlmIChjb3B5X3RvX3VzZXIoKHZvaWQgX191c2VyICopYXJnLCBwb3J0LT50dHktPnRlcm1pb3MsIHNpemVvZihzdHJ1Y3QgdGVybWlvcykpKSB7CisJCQkJcmV0dXJuIC1FRkFVTFQ7CisJCQl9CisJCQlyZXR1cm4gKDApOworCQkJYnJlYWs7CisJCWNhc2UgVENTRVRTOgorCQkJaWYgKGNvcHlfZnJvbV91c2VyKHBvcnQtPnR0eS0+dGVybWlvcywgKHZvaWQgX191c2VyICopYXJnLCBzaXplb2Yoc3RydWN0IHRlcm1pb3MpKSkgeworCQkJCXJldHVybiAtRUZBVUxUOworCQkJfQorCQkJLyogaGVyZSB3ZSBuZWVkIHRvIGNhbGwgY3lwcmVzc19zZXRfdGVybWlvcyB0byBpbnZva2UgdGhlIG5ldyBzZXR0aW5ncyAqLworCQkJY3lwcmVzc19zZXRfdGVybWlvcyhwb3J0LCAmcHJpdi0+dG1wX3Rlcm1pb3MpOworCQkJcmV0dXJuICgwKTsKKwkJCWJyZWFrOworCQkvKiBUaGlzIGNvZGUgY29tZXMgZnJvbSBkcml2ZXJzL2NoYXIvc2VyaWFsLmMgYW5kIGZ0ZGlfc2lvLmMgKi8KKwkJY2FzZSBUSU9DTUlXQUlUOgorCQkJd2hpbGUgKHByaXYgIT0gTlVMTCkgeworCQkJCWludGVycnVwdGlibGVfc2xlZXBfb24oJnByaXYtPmRlbHRhX21zcl93YWl0KTsKKwkJCQkvKiBzZWUgaWYgYSBzaWduYWwgZGlkIGl0ICovCisJCQkJaWYgKHNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKQorCQkJCQlyZXR1cm4gLUVSRVNUQVJUU1lTOworCQkJCWVsc2UgeworCQkJCQljaGFyIGRpZmYgPSBwcml2LT5kaWZmX3N0YXR1czsKKworCQkJCQlpZiAoZGlmZiA9PSAwKSB7CisJCQkJCQlyZXR1cm4gLUVJTzsgLyogbm8gY2hhbmdlID0+IGVycm9yICovCisJCQkJCX0KKwkJCQkJCisJCQkJCS8qIGNvbnN1bWUgYWxsIGV2ZW50cyAqLworCQkJCQlwcml2LT5kaWZmX3N0YXR1cyA9IDA7CisKKwkJCQkJLyogcmV0dXJuIDAgaWYgY2FsbGVyIHdhbnRlZCB0byBrbm93IGFib3V0IHRoZXNlIGJpdHMgKi8KKwkJCQkJaWYgKCAoKGFyZyAmIFRJT0NNX1JORykgJiYgKGRpZmYgJiBVQVJUX1JJKSkgfHwKKwkJCQkJICAgICAoKGFyZyAmIFRJT0NNX0RTUikgJiYgKGRpZmYgJiBVQVJUX0RTUikpIHx8CisJCQkJCSAgICAgKChhcmcgJiBUSU9DTV9DRCkgJiYgKGRpZmYgJiBVQVJUX0NEKSkgfHwKKwkJCQkJICAgICAoKGFyZyAmIFRJT0NNX0NUUykgJiYgKGRpZmYgJiBVQVJUX0NUUykpICkgeworCQkJCQkJcmV0dXJuIDA7CisJCQkJCX0KKwkJCQkJLyogb3RoZXJ3aXNlIGNhbGxlciBjYW4ndCBjYXJlIGxlc3MgYWJvdXQgd2hhdCBoYXBwZW5lZCwKKwkJCQkJICogYW5kIHNvIHdlIGNvbnRpbnVlIHRvIHdhaXQgZm9yIG1vcmUgZXZlbnRzLgorCQkJCQkgKi8KKwkJCQl9CisJCQl9CisJCQlyZXR1cm4gMDsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJYnJlYWs7CisJfQorCisJZGJnKCIlcyAtIGFyZyBub3Qgc3VwcG9ydGVkIC0gaXQgd2FzIDB4JTA0eCAtIGNoZWNrIGluY2x1ZGUvYXNtL2lvY3Rscy5oIiwgX19GVU5DVElPTl9fLCBjbWQpOworCisJcmV0dXJuIC1FTk9JT0NUTENNRDsKK30gLyogY3lwcmVzc19pb2N0bCAqLworCisKK3N0YXRpYyB2b2lkIGN5cHJlc3Nfc2V0X3Rlcm1pb3MgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCB0ZXJtaW9zICpvbGRfdGVybWlvcykKK3sKKwlzdHJ1Y3QgY3lwcmVzc19wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXN0cnVjdCB0dHlfc3RydWN0ICp0dHk7CisJaW50IGRhdGFfYml0cywgc3RvcF9iaXRzLCBwYXJpdHlfdHlwZSwgcGFyaXR5X2VuYWJsZTsKKwl1bnNpZ25lZCBjZmxhZywgaWZsYWcsIGJhdWRfbWFzazsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCV9fdTggb2xkbGluZXM7CisJaW50IGxpbmVjaGFuZ2U7CisJCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwl0dHkgPSBwb3J0LT50dHk7CisJaWYgKCghdHR5KSB8fCAoIXR0eS0+dGVybWlvcykpIHsKKwkJZGJnKCIlcyAtIG5vIHR0eSBzdHJ1Y3R1cmVzIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuOworCX0KKworCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJaWYgKCFwcml2LT50ZXJtaW9zX2luaXRpYWxpemVkKSB7CisJCWlmIChwcml2LT5jaGlwdHlwZSA9PSBDVF9FQVJUSE1BVEUpIHsKKwkJCSoodHR5LT50ZXJtaW9zKSA9IHR0eV9zdGRfdGVybWlvczsKKwkJCXR0eS0+dGVybWlvcy0+Y19jZmxhZyA9IEI0ODAwIHwgQ1M4IHwgQ1JFQUQgfCBIVVBDTCB8IENMT0NBTDsKKwkJfSBlbHNlIGlmIChwcml2LT5jaGlwdHlwZSA9PSBDVF9DWVBISURDT00pIHsKKwkJCSoodHR5LT50ZXJtaW9zKSA9IHR0eV9zdGRfdGVybWlvczsKKwkJCXR0eS0+dGVybWlvcy0+Y19jZmxhZyA9IEI5NjAwIHwgQ1M4IHwgQ1JFQUQgfCBIVVBDTCB8IENMT0NBTDsKKwkJfQorCQlwcml2LT50ZXJtaW9zX2luaXRpYWxpemVkID0gMTsKKwl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCisJY2ZsYWcgPSB0dHktPnRlcm1pb3MtPmNfY2ZsYWc7CisJaWZsYWcgPSB0dHktPnRlcm1pb3MtPmNfaWZsYWc7CisKKwkvKiBjaGVjayBpZiB0aGVyZSBhcmUgbmV3IHNldHRpbmdzICovCisJaWYgKG9sZF90ZXJtaW9zKSB7CisJCWlmICgoY2ZsYWcgIT0gb2xkX3Rlcm1pb3MtPmNfY2ZsYWcpIHx8CisJCSAgICAoUkVMRVZBTlRfSUZMQUcoaWZsYWcpICE9IFJFTEVWQU5UX0lGTEFHKG9sZF90ZXJtaW9zLT5jX2lmbGFnKSkpIHsKKwkJCWRiZygiJXMgLSBhdHRlbXB0aW5nIHRvIHNldCBuZXcgdGVybWlvcyBzZXR0aW5ncyIsIF9fRlVOQ1RJT05fXyk7CisJCQkvKiBzaG91bGQgbWFrZSBhIGNvcHkgb2YgdGhpcyBpbiBjYXNlIHNvbWV0aGluZyBnb2VzIHdyb25nIGluIHRoZSBmdW5jdGlvbiwgd2UgY2FuIHJlc3RvcmUgaXQgKi8KKwkJCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJCQlwcml2LT50bXBfdGVybWlvcyA9ICoodHR5LT50ZXJtaW9zKTsKKwkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsgCisJCX0gZWxzZSB7CisJCQlkYmcoIiVzIC0gbm90aGluZyB0byBkbywgZXhpdGluZyIsIF9fRlVOQ1RJT05fXyk7CisJCQlyZXR1cm47CisJCX0KKwl9IGVsc2UKKwkJcmV0dXJuOworCisJLyogc2V0IG51bWJlciBvZiBkYXRhIGJpdHMsIHBhcml0eSwgc3RvcCBiaXRzICovCisJLyogd2hlbiBwYXJpdHkgaXMgZGlzYWJsZWQgdGhlIHBhcml0eSB0eXBlIGJpdCBpcyBpZ25vcmVkICovCisKKwlzdG9wX2JpdHMgPSBjZmxhZyAmIENTVE9QQiA/IDEgOiAwOyAvKiAxIG1lYW5zIDIgc3RvcCBiaXRzLCAwIG1lYW5zIDEgc3RvcCBiaXQgKi8KKwkKKwlpZiAoY2ZsYWcgJiBQQVJFTkIpIHsKKwkJcGFyaXR5X2VuYWJsZSA9IDE7CisJCXBhcml0eV90eXBlID0gY2ZsYWcgJiBQQVJPREQgPyAxIDogMDsgLyogMSBtZWFucyBvZGQgcGFyaXR5LCAwIG1lYW5zIGV2ZW4gcGFyaXR5ICovCisJfSBlbHNlCisJCXBhcml0eV9lbmFibGUgPSBwYXJpdHlfdHlwZSA9IDA7CisKKwlpZiAoY2ZsYWcgJiBDU0laRSkgeworCQlzd2l0Y2ggKGNmbGFnICYgQ1NJWkUpIHsKKwkJCWNhc2UgQ1M1OiBkYXRhX2JpdHMgPSAwOyBicmVhazsKKwkJCWNhc2UgQ1M2OiBkYXRhX2JpdHMgPSAxOyBicmVhazsKKwkJCWNhc2UgQ1M3OiBkYXRhX2JpdHMgPSAyOyBicmVhazsKKwkJCWNhc2UgQ1M4OiBkYXRhX2JpdHMgPSAzOyBicmVhazsKKwkJCWRlZmF1bHQ6IGVycigiJXMgLSBDU0laRSB3YXMgc2V0LCBidXQgbm90IENTNS1DUzgiLCBfX0ZVTkNUSU9OX18pOyBkYXRhX2JpdHMgPSAzOworCQl9CisJfSBlbHNlCisJCWRhdGFfYml0cyA9IDM7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCW9sZGxpbmVzID0gcHJpdi0+bGluZV9jb250cm9sOworCWlmICgoY2ZsYWcgJiBDQkFVRCkgPT0gQjApIHsKKwkJLyogZHJvcCBkdHIgYW5kIHJ0cyAqLworCQlkYmcoIiVzIC0gZHJvcHBpbmcgdGhlIGxpbmVzLCBiYXVkIHJhdGUgMGJwcyIsIF9fRlVOQ1RJT05fXyk7CisJCWJhdWRfbWFzayA9IEIwOworCQlwcml2LT5saW5lX2NvbnRyb2wgJj0gfihDT05UUk9MX0RUUiB8IENPTlRST0xfUlRTKTsKKwl9IGVsc2UgeworCQliYXVkX21hc2sgPSAoY2ZsYWcgJiBDQkFVRCk7CisJCXN3aXRjaChiYXVkX21hc2spIHsKKwkJCWNhc2UgQjMwMDogZGJnKCIlcyAtIHNldHRpbmcgYmF1ZCAzMDBicHMiLCBfX0ZVTkNUSU9OX18pOyBicmVhazsKKwkJCWNhc2UgQjYwMDogZGJnKCIlcyAtIHNldHRpbmcgYmF1ZCA2MDBicHMiLCBfX0ZVTkNUSU9OX18pOyBicmVhazsKKwkJCWNhc2UgQjEyMDA6IGRiZygiJXMgLSBzZXR0aW5nIGJhdWQgMTIwMGJwcyIsIF9fRlVOQ1RJT05fXyk7IGJyZWFrOworCQkJY2FzZSBCMjQwMDogZGJnKCIlcyAtIHNldHRpbmcgYmF1ZCAyNDAwYnBzIiwgX19GVU5DVElPTl9fKTsgYnJlYWs7CisJCQljYXNlIEI0ODAwOiBkYmcoIiVzIC0gc2V0dGluZyBiYXVkIDQ4MDBicHMiLCBfX0ZVTkNUSU9OX18pOyBicmVhazsKKwkJCWNhc2UgQjk2MDA6IGRiZygiJXMgLSBzZXR0aW5nIGJhdWQgOTYwMGJwcyIsIF9fRlVOQ1RJT05fXyk7IGJyZWFrOworCQkJY2FzZSBCMTkyMDA6IGRiZygiJXMgLSBzZXR0aW5nIGJhdWQgMTkyMDBicHMiLCBfX0ZVTkNUSU9OX18pOyBicmVhazsKKwkJCWNhc2UgQjM4NDAwOiBkYmcoIiVzIC0gc2V0dGluZyBiYXVkIDM4NDAwYnBzIiwgX19GVU5DVElPTl9fKTsgYnJlYWs7CisJCQljYXNlIEI1NzYwMDogZGJnKCIlcyAtIHNldHRpbmcgYmF1ZCA1NzYwMGJwcyIsIF9fRlVOQ1RJT05fXyk7IGJyZWFrOworCQkJY2FzZSBCMTE1MjAwOiBkYmcoIiVzIC0gc2V0dGluZyBiYXVkIDExNTIwMGJwcyIsIF9fRlVOQ1RJT05fXyk7IGJyZWFrOworCQkJZGVmYXVsdDogZGJnKCIlcyAtIHVua25vd24gbWFza2VkIGJhdWQgcmF0ZSIsIF9fRlVOQ1RJT05fXyk7CisJCX0KKwkJcHJpdi0+bGluZV9jb250cm9sIHw9IENPTlRST0xfRFRSOworCQkKKwkJLyogdG9nZ2xlIENSVFNDVFM/IC0gZG9uJ3QgZG8gdGhpcyBpZiBiZWluZyBjYWxsZWQgZnJvbSBjeXByZXNzX29wZW4gKi8KKwkJaWYgKCFwcml2LT5jYWxsZWRmcm9tb3BlbikgeworCQkJaWYgKGNmbGFnICYgQ1JUU0NUUykKKwkJCQlwcml2LT5saW5lX2NvbnRyb2wgfD0gQ09OVFJPTF9SVFM7CisJCQllbHNlCisJCQkJcHJpdi0+bGluZV9jb250cm9sICY9IH5DT05UUk9MX1JUUzsKKwkJfQorCX0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJCisJZGJnKCIlcyAtIHNlbmRpbmcgJWQgc3RvcF9iaXRzLCAlZCBwYXJpdHlfZW5hYmxlLCAlZCBwYXJpdHlfdHlwZSwgJWQgZGF0YV9iaXRzICgrNSkiLCBfX0ZVTkNUSU9OX18sCisJICAgIHN0b3BfYml0cywgcGFyaXR5X2VuYWJsZSwgcGFyaXR5X3R5cGUsIGRhdGFfYml0cyk7CisKKwljeXByZXNzX3NlcmlhbF9jb250cm9sKHBvcnQsIGJhdWRfbWFzaywgZGF0YV9iaXRzLCBzdG9wX2JpdHMsIHBhcml0eV9lbmFibGUsCisJCQkgICAgICAgcGFyaXR5X3R5cGUsIDAsIENZUFJFU1NfU0VUX0NPTkZJRyk7CisKKwltc2xlZXAoNTApOwkJCS8qIGdpdmUgc29tZSB0aW1lIGJldHdlZW4gY2hhbmdlIGFuZCByZWFkICg1MG1zKSAqLworCisJLyogd2UgcGVyZm9ybSBhIENZUFJFU1NfR0VUX0NPTkZJRyBzbyB0aGF0IHRoZSBjdXJyZW50IHNldHRpbmdzIGFyZSBmaWxsZWQgaW50byB0aGUgcHJpdmF0ZSBzdHJ1Y3R1cmUKKyAgICAgICAgICogdGhpcyBzaG91bGQgY29uZmlybSB0aGF0IGFsbCBpcyB3b3JraW5nIGlmIGl0IHJldHVybnMgd2hhdCB3ZSBqdXN0IHNldCAqLworCWN5cHJlc3Nfc2VyaWFsX2NvbnRyb2wocG9ydCwgMCwgMCwgMCwgMCwgMCwgMCwgQ1lQUkVTU19HRVRfQ09ORklHKTsKKworCS8qIEhlcmUgd2UgY2FuIGRlZmluZSBjdXN0b20gdHR5IHNldHRpbmdzIGZvciBkZXZpY2VzCisgICAgICAgICAqCisgICAgICAgICAqIHRoZSBtYWluIHR0eSB0ZXJtaW9zIGZsYWcgYmFzZSBjb21lcyBmcm9tIGVtcGVnLmMKKyAgICAgICAgICovCisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+bG9jaywgZmxhZ3MpOwkKKwlpZiAoIChwcml2LT5jaGlwdHlwZSA9PSBDVF9FQVJUSE1BVEUpICYmIChwcml2LT5iYXVkX3JhdGUgPT0gNDgwMCkgKSB7CisKKwkJZGJnKCJVc2luZyBjdXN0b20gdGVybWlvcyBzZXR0aW5ncyBmb3IgYSBiYXVkIHJhdGUgb2YgNDgwMGJwcy4iKTsKKwkJLyogZGVmaW5lIGN1c3RvbSB0ZXJtaW9zIHNldHRpbmdzIGZvciBOTUVBIHByb3RvY29sICovCisKKwkJCisJCXR0eS0+dGVybWlvcy0+Y19pZmxhZyAvKiBpbnB1dCBtb2RlcyAtICovCisJCQkmPSB+KElHTkJSSwkJLyogZGlzYWJsZSBpZ25vcmUgYnJlYWsgKi8KKwkJCXwgQlJLSU5UCQkvKiBkaXNhYmxlIGJyZWFrIGNhdXNlcyBpbnRlcnJ1cHQgKi8KKwkJCXwgUEFSTVJLCQkvKiBkaXNhYmxlIG1hcmsgcGFyaXR5IGVycm9ycyAqLworCQkJfCBJU1RSSVAJCS8qIGRpc2FibGUgY2xlYXIgaGlnaCBiaXQgb2YgaW5wdXQgY2hhcmFjdGVycyAqLworCQkJfCBJTkxDUgkJCS8qIGRpc2FibGUgdHJhbnNsYXRlIE5MIHRvIENSICovCisJCQl8IElHTkNSCQkJLyogZGlzYWJsZSBpZ25vcmUgQ1IgKi8KKwkJCXwgSUNSTkwJCQkvKiBkaXNhYmxlIHRyYW5zbGF0ZSBDUiB0byBOTCAqLworCQkJfCBJWE9OKTsJCS8qIGRpc2FibGUgZW5hYmxlIFhPTi9YT0ZGIGZsb3cgY29udHJvbCAqLworCQkKKwkJdHR5LT50ZXJtaW9zLT5jX29mbGFnIC8qIG91dHB1dCBtb2RlcyAqLworCQkJJj0gfk9QT1NUOwkJLyogZGlzYWJsZSBwb3N0cHJvY2VzcyBvdXRwdXQgY2hhcmFjdGVycyAqLworCQkKKwkJdHR5LT50ZXJtaW9zLT5jX2xmbGFnIC8qIGxpbmUgZGlzY2lwbGluZSBtb2RlcyAqLworCQkJJj0gfihFQ0hPIAkJLyogZGlzYWJsZSBlY2hvIGlucHV0IGNoYXJhY3RlcnMgKi8KKwkJCXwgRUNIT05MCQkvKiBkaXNhYmxlIGVjaG8gbmV3IGxpbmUgKi8KKwkJCXwgSUNBTk9OCQkvKiBkaXNhYmxlIGVyYXNlLCBraWxsLCB3ZXJhc2UsIGFuZCBycHJudCBzcGVjaWFsIGNoYXJhY3RlcnMgKi8KKwkJCXwgSVNJRwkJCS8qIGRpc2FibGUgaW50ZXJydXB0LCBxdWl0LCBhbmQgc3VzcGVuZCBzcGVjaWFsIGNoYXJhY3RlcnMgKi8KKwkJCXwgSUVYVEVOKTsJCS8qIGRpc2FibGUgbm9uLVBPU0lYIHNwZWNpYWwgY2hhcmFjdGVycyAqLworCisJfSBlbHNlIGlmIChwcml2LT5jaGlwdHlwZSA9PSBDVF9DWVBISURDT00pIHsKKworCQkvLyBTb2Z0d2FyZSBhcHAgaGFuZGxpbmcgaXQgZm9yIGRldmljZS4uLgkKKworCX0KKwlsaW5lY2hhbmdlID0gKHByaXYtPmxpbmVfY29udHJvbCAhPSBvbGRsaW5lcyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCisJLyogaWYgbmVjZXNzYXJ5LCBzZXQgbGluZXMgKi8KKwlpZiAoIXByaXYtPmNhbGxlZGZyb21vcGVuICYmIGxpbmVjaGFuZ2UpIHsKKwkJcHJpdi0+Y21kX2N0cmwgPSAxOworCQljeXByZXNzX3dyaXRlKHBvcnQsIE5VTEwsIDApOworCX0KKworCWlmIChwcml2LT5jYWxsZWRmcm9tb3BlbikKKwkJcHJpdi0+Y2FsbGVkZnJvbW9wZW4gPSAwOworCQorfSAvKiBjeXByZXNzX3NldF90ZXJtaW9zICovCisKKyAKKy8qIHJldHVybnMgYW1vdW50IG9mIGRhdGEgc3RpbGwgbGVmdCBpbiBzb2Z0IGJ1ZmZlciAqLworc3RhdGljIGludCBjeXByZXNzX2NoYXJzX2luX2J1ZmZlcihzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCBjeXByZXNzX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJaW50IGNoYXJzID0gMDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisJCisJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwljaGFycyA9IGN5cHJlc3NfYnVmX2RhdGFfYXZhaWwocHJpdi0+YnVmKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CisKKwlkYmcoIiVzIC0gcmV0dXJucyAlZCIsIF9fRlVOQ1RJT05fXywgY2hhcnMpOworCXJldHVybiBjaGFyczsKK30KKworCitzdGF0aWMgdm9pZCBjeXByZXNzX3Rocm90dGxlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCBjeXByZXNzX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwlwcml2LT5yeF9mbGFncyA9IFRIUk9UVExFRDsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CSAgIAorfQorCisKK3N0YXRpYyB2b2lkIGN5cHJlc3NfdW50aHJvdHRsZSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKK3sKKwlzdHJ1Y3QgY3lwcmVzc19wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCWludCBhY3R1YWxseV90aHJvdHRsZWQsIHJlc3VsdDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCWFjdHVhbGx5X3Rocm90dGxlZCA9IHByaXYtPnJ4X2ZsYWdzICYgQUNUVUFMTFlfVEhST1RUTEVEOworCXByaXYtPnJ4X2ZsYWdzID0gMDsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CisKKwlpZiAoYWN0dWFsbHlfdGhyb3R0bGVkKSB7CisJCXBvcnQtPmludGVycnVwdF9pbl91cmItPmRldiA9IHBvcnQtPnNlcmlhbC0+ZGV2OworCisJCXJlc3VsdCA9IHVzYl9zdWJtaXRfdXJiKHBvcnQtPmludGVycnVwdF9pbl91cmIsIEdGUF9BVE9NSUMpOworCQlpZiAocmVzdWx0KQorCQkJZGV2X2VycigmcG9ydC0+ZGV2LCAiJXMgLSBmYWlsZWQgc3VibWl0dGluZyByZWFkIHVyYiwgZXJyb3IgJWRcbiIsIF9fRlVOQ1RJT05fXywgcmVzdWx0KTsKKwl9Cit9CisKKworc3RhdGljIHZvaWQgY3lwcmVzc19yZWFkX2ludF9jYWxsYmFjayhzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqKXVyYi0+Y29udGV4dDsKKwlzdHJ1Y3QgY3lwcmVzc19wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXN0cnVjdCB0dHlfc3RydWN0ICp0dHk7CisJdW5zaWduZWQgY2hhciAqZGF0YSA9IHVyYi0+dHJhbnNmZXJfYnVmZmVyOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJY2hhciB0dHlfZmxhZyA9IFRUWV9OT1JNQUw7CQorCWludCBoYXZlZGF0YSA9IDA7CisJaW50IGJ5dGVzID0gMDsKKwlpbnQgcmVzdWx0OworCWludCBpID0gMDsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJaWYgKHVyYi0+c3RhdHVzKSB7CisJCWRiZygiJXMgLSBub256ZXJvIHJlYWQgc3RhdHVzIHJlY2VpdmVkOiAlZCIsIF9fRlVOQ1RJT05fXywgdXJiLT5zdGF0dXMpOworCQlyZXR1cm47CisJfQorCisJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwlpZiAocHJpdi0+cnhfZmxhZ3MgJiBUSFJPVFRMRUQpIHsKKwkJZGJnKCIlcyAtIG5vdyB0aHJvdHRsaW5nIiwgX19GVU5DVElPTl9fKTsKKwkJcHJpdi0+cnhfZmxhZ3MgfD0gQUNUVUFMTFlfVEhST1RUTEVEOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJCXJldHVybjsKKwl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCisJdHR5ID0gcG9ydC0+dHR5OworCWlmICghdHR5KSB7CisJCWRiZygiJXMgLSBiYWQgdHR5IHBvaW50ZXIgLSBleGl0aW5nIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuOworCX0KKworCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJc3dpdGNoKHVyYi0+YWN0dWFsX2xlbmd0aCkgeworCQljYXNlIDMyOgorCQkJLy8gVGhpcyBpcyBmb3IgdGhlIENZN0M2NDAxMy4uLgorCQkJcHJpdi0+Y3VycmVudF9zdGF0dXMgPSBkYXRhWzBdICYgMHhGODsKKwkJCWJ5dGVzID0gZGF0YVsxXSsyOworCQkJaT0yOworCQkJaWYgKGJ5dGVzID4gMikKKwkJCQloYXZlZGF0YSA9IDE7CisJCQlicmVhazsKKwkJY2FzZSA4OgorCQkJLy8gVGhpcyBpcyBmb3IgdGhlIENZN0M2Mzc0My4uLgorCQkJcHJpdi0+Y3VycmVudF9zdGF0dXMgPSBkYXRhWzBdICYgMHhGODsKKwkJCWJ5dGVzID0gKGRhdGFbMF0gJiAweDA3KSsxOworCQkJaT0xOworCQkJaWYgKGJ5dGVzID4gMSkKKwkJCQloYXZlZGF0YSA9IDE7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWRiZygiJXMgLSB3cm9uZyBwYWNrZXQgc2l6ZSAtIHJlY2VpdmVkICVkIGJ5dGVzIiwgX19GVU5DVElPTl9fLCB1cmItPmFjdHVhbF9sZW5ndGgpOworCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCQkJZ290byBjb250aW51ZV9yZWFkOworCX0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CisKKwl1c2Jfc2VyaWFsX2RlYnVnX2RhdGEgKGRlYnVnLCAmcG9ydC0+ZGV2LCBfX0ZVTkNUSU9OX18sIHVyYi0+YWN0dWFsX2xlbmd0aCwgZGF0YSk7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCS8qIGNoZWNrIHRvIHNlZSBpZiBzdGF0dXMgaGFzIGNoYW5nZWQgKi8KKwlpZiAocHJpdiAhPSBOVUxMKSB7CisJCWlmIChwcml2LT5jdXJyZW50X3N0YXR1cyAhPSBwcml2LT5wcmV2X3N0YXR1cykgeworCQkJcHJpdi0+ZGlmZl9zdGF0dXMgfD0gcHJpdi0+Y3VycmVudF9zdGF0dXMgXiBwcml2LT5wcmV2X3N0YXR1czsKKwkJCXdha2VfdXBfaW50ZXJydXB0aWJsZSgmcHJpdi0+ZGVsdGFfbXNyX3dhaXQpOworCQkJcHJpdi0+cHJldl9zdGF0dXMgPSBwcml2LT5jdXJyZW50X3N0YXR1czsKKwkJfQorCX0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CQorCisJLyogaGFuZ3VwLCBhcyBkZWZpbmVkIGluIGFjbS5jLi4uIHRoaXMgbWlnaHQgYmUgYSBiYWQgcGxhY2UgZm9yIGl0IHRob3VnaCAqLworCWlmICh0dHkgJiYgISh0dHktPnRlcm1pb3MtPmNfY2ZsYWcgJiBDTE9DQUwpICYmICEocHJpdi0+Y3VycmVudF9zdGF0dXMgJiBVQVJUX0NEKSkgeworCQlkYmcoIiVzIC0gY2FsbGluZyBoYW5ndXAiLCBfX0ZVTkNUSU9OX18pOworCQl0dHlfaGFuZ3VwKHR0eSk7CisJCWdvdG8gY29udGludWVfcmVhZDsKKwl9CisKKwkvKiBUaGVyZSBpcyBvbmUgZXJyb3IgYml0Li4uIEknbSBhc3N1bWluZyBpdCBpcyBhIHBhcml0eSBlcnJvciBpbmRpY2F0b3IKKwkgKiBhcyB0aGUgZ2VuZXJpYyBmaXJtd2FyZSB3aWxsIHNldCB0aGlzIGJpdCB0byAxIGlmIGEgcGFyaXR5IGVycm9yIG9jY3Vycy4KKwkgKiBJIGNhbiBub3QgZmluZCByZWZlcmVuY2UgdG8gYW55IG90aGVyIGVycm9yIGV2ZW50cy4KKwkgKgorCSAqLworCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJaWYgKHByaXYtPmN1cnJlbnRfc3RhdHVzICYgQ1lQX0VSUk9SKSB7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwkJdHR5X2ZsYWcgPSBUVFlfUEFSSVRZOworCQlkYmcoIiVzIC0gUGFyaXR5IEVycm9yIGRldGVjdGVkIiwgX19GVU5DVElPTl9fKTsKKwl9IGVsc2UKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCisJLyogcHJvY2VzcyByZWFkIGlmIHRoZXJlIGlzIGRhdGEgb3RoZXIgdGhhbiBsaW5lIHN0YXR1cyAqLworCWlmICh0dHkgJiYgKGJ5dGVzID4gaSkpIHsKKwkJZm9yICg7IGkgPCBieXRlcyA7ICsraSkgeworCQkJZGJnKCJwdXNoaW5nIGJ5dGUgbnVtYmVyICVkIC0gJWQgLSAlYyIsaSxkYXRhW2ldLGRhdGFbaV0pOworCQkJaWYodHR5LT5mbGlwLmNvdW50ID49IFRUWV9GTElQQlVGX1NJWkUpIHsKKwkJCQl0dHlfZmxpcF9idWZmZXJfcHVzaCh0dHkpOworCQkJfQorCQkJdHR5X2luc2VydF9mbGlwX2NoYXIodHR5LCBkYXRhW2ldLCB0dHlfZmxhZyk7CisJCX0KKwkJdHR5X2ZsaXBfYnVmZmVyX3B1c2gocG9ydC0+dHR5KTsKKwl9CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCXByaXYtPmJ5dGVzX2luICs9IGJ5dGVzOyAgLyogY29udHJvbCBhbmQgc3RhdHVzIGJ5dGUocykgYXJlIGFsc28gY291bnRlZCAqLworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKworY29udGludWVfcmVhZDoKKwkKKwkvKiBDb250aW51ZSB0cnlpbmcgdG8gYWx3YXlzIHJlYWQuLi4gdW5sZXNzIHRoZSBwb3J0IGhhcyBjbG9zZWQuICAqLworCisJaWYgKHBvcnQtPm9wZW5fY291bnQgPiAwKSB7CisJdXNiX2ZpbGxfaW50X3VyYihwb3J0LT5pbnRlcnJ1cHRfaW5fdXJiLCBwb3J0LT5zZXJpYWwtPmRldiwKKwkJdXNiX3JjdmludHBpcGUocG9ydC0+c2VyaWFsLT5kZXYsIHBvcnQtPmludGVycnVwdF9pbl9lbmRwb2ludEFkZHJlc3MpLAorCQlwb3J0LT5pbnRlcnJ1cHRfaW5fdXJiLT50cmFuc2Zlcl9idWZmZXIsCisJCXBvcnQtPmludGVycnVwdF9pbl91cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGgsCisJCWN5cHJlc3NfcmVhZF9pbnRfY2FsbGJhY2ssIHBvcnQsCisJCXBvcnQtPmludGVycnVwdF9pbl91cmItPmludGVydmFsKTsKKwlyZXN1bHQgPSB1c2Jfc3VibWl0X3VyYihwb3J0LT5pbnRlcnJ1cHRfaW5fdXJiLCBHRlBfQVRPTUlDKTsKKwlpZiAocmVzdWx0KQorCQlkZXZfZXJyKCZ1cmItPmRldi0+ZGV2LCAiJXMgLSBmYWlsZWQgcmVzdWJtaXR0aW5nIHJlYWQgdXJiLCBlcnJvciAlZFxuIiwgX19GVU5DVElPTl9fLCByZXN1bHQpOworCX0KKwkKKwlyZXR1cm47Cit9IC8qIGN5cHJlc3NfcmVhZF9pbnRfY2FsbGJhY2sgKi8KKworCitzdGF0aWMgdm9pZCBjeXByZXNzX3dyaXRlX2ludF9jYWxsYmFjayhzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqKXVyYi0+Y29udGV4dDsKKwlzdHJ1Y3QgY3lwcmVzc19wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCWludCByZXN1bHQ7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKwkKKwlzd2l0Y2ggKHVyYi0+c3RhdHVzKSB7CisJCWNhc2UgMDoKKwkJCS8qIHN1Y2Nlc3MgKi8KKwkJCWJyZWFrOworCQljYXNlIC1FQ09OTlJFU0VUOgorCQljYXNlIC1FTk9FTlQ6CisJCWNhc2UgLUVTSFVURE9XTjoKKwkJCS8qIHRoaXMgdXJiIGlzIHRlcm1pbmF0ZWQsIGNsZWFuIHVwICovCisJCQlkYmcoIiVzIC0gdXJiIHNodXR0aW5nIGRvd24gd2l0aCBzdGF0dXM6ICVkIiwgX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyk7CisJCQlwcml2LT53cml0ZV91cmJfaW5fdXNlID0gMDsKKwkJCXJldHVybjsKKwkJZGVmYXVsdDoKKwkJCS8qIGVycm9yIGluIHRoZSB1cmIsIHNvIHdlIGhhdmUgdG8gcmVzdWJtaXQgaXQgKi8KKwkJCWRiZygiJXMgLSBPdmVyZmxvdyBpbiB3cml0ZSIsIF9fRlVOQ1RJT05fXyk7CisJCQlkYmcoIiVzIC0gbm9uemVybyB3cml0ZSBidWxrIHN0YXR1cyByZWNlaXZlZDogJWQiLCBfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzKTsKKwkJCXBvcnQtPmludGVycnVwdF9vdXRfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoID0gMTsKKwkJCXBvcnQtPmludGVycnVwdF9vdXRfdXJiLT5kZXYgPSBwb3J0LT5zZXJpYWwtPmRldjsKKwkJCXJlc3VsdCA9IHVzYl9zdWJtaXRfdXJiKHBvcnQtPmludGVycnVwdF9vdXRfdXJiLCBHRlBfQVRPTUlDKTsKKwkJCWlmIChyZXN1bHQpCisJCQkJZGV2X2VycigmdXJiLT5kZXYtPmRldiwgIiVzIC0gZmFpbGVkIHJlc3VibWl0dGluZyB3cml0ZSB1cmIsIGVycm9yICVkXG4iLAorCQkJCQlfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisJCQllbHNlCisJCQkJcmV0dXJuOworCX0KKwkKKwlwcml2LT53cml0ZV91cmJfaW5fdXNlID0gMDsKKwkKKwkvKiBzZW5kIGFueSBidWZmZXJlZCBkYXRhICovCisJY3lwcmVzc19zZW5kKHBvcnQpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogV3JpdGUgYnVmZmVyIGZ1bmN0aW9ucyAtIGJ1ZmZlcmluZyBjb2RlIGZyb20gcGwyMzAzIHVzZWQKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoKKyAqIGN5cHJlc3NfYnVmX2FsbG9jCisgKgorICogQWxsb2NhdGUgYSBjaXJjdWxhciBidWZmZXIgYW5kIGFsbCBhc3NvY2lhdGVkIG1lbW9yeS4KKyAqLworCitzdGF0aWMgc3RydWN0IGN5cHJlc3NfYnVmICpjeXByZXNzX2J1Zl9hbGxvYyh1bnNpZ25lZCBpbnQgc2l6ZSkKK3sKKworCXN0cnVjdCBjeXByZXNzX2J1ZiAqY2I7CisKKworCWlmIChzaXplID09IDApCisJCXJldHVybiBOVUxMOworCisJY2IgPSAoc3RydWN0IGN5cHJlc3NfYnVmICopa21hbGxvYyhzaXplb2Yoc3RydWN0IGN5cHJlc3NfYnVmKSwgR0ZQX0tFUk5FTCk7CisJaWYgKGNiID09IE5VTEwpCisJCXJldHVybiBOVUxMOworCisJY2ItPmJ1Zl9idWYgPSBrbWFsbG9jKHNpemUsIEdGUF9LRVJORUwpOworCWlmIChjYi0+YnVmX2J1ZiA9PSBOVUxMKSB7CisJCWtmcmVlKGNiKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJY2ItPmJ1Zl9zaXplID0gc2l6ZTsKKwljYi0+YnVmX2dldCA9IGNiLT5idWZfcHV0ID0gY2ItPmJ1Zl9idWY7CisKKwlyZXR1cm4gY2I7CisKK30KKworCisvKgorICogY3lwcmVzc19idWZfZnJlZQorICoKKyAqIEZyZWUgdGhlIGJ1ZmZlciBhbmQgYWxsIGFzc29jaWF0ZWQgbWVtb3J5LgorICovCisKK3N0YXRpYyB2b2lkIGN5cHJlc3NfYnVmX2ZyZWUoc3RydWN0IGN5cHJlc3NfYnVmICpjYikKK3sKKwlpZiAoY2IgIT0gTlVMTCkgeworCQlpZiAoY2ItPmJ1Zl9idWYgIT0gTlVMTCkKKwkJCWtmcmVlKGNiLT5idWZfYnVmKTsKKwkJa2ZyZWUoY2IpOworCX0KK30KKworCisvKgorICogY3lwcmVzc19idWZfY2xlYXIKKyAqCisgKiBDbGVhciBvdXQgYWxsIGRhdGEgaW4gdGhlIGNpcmN1bGFyIGJ1ZmZlci4KKyAqLworCitzdGF0aWMgdm9pZCBjeXByZXNzX2J1Zl9jbGVhcihzdHJ1Y3QgY3lwcmVzc19idWYgKmNiKQoreworCWlmIChjYiAhPSBOVUxMKQorCQljYi0+YnVmX2dldCA9IGNiLT5idWZfcHV0OworCQkvKiBlcXVpdmFsZW50IHRvIGEgZ2V0IG9mIGFsbCBkYXRhIGF2YWlsYWJsZSAqLworfQorCisKKy8qCisgKiBjeXByZXNzX2J1Zl9kYXRhX2F2YWlsCisgKgorICogUmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0ZXMgb2YgZGF0YSBhdmFpbGFibGUgaW4gdGhlIGNpcmN1bGFyCisgKiBidWZmZXIuCisgKi8KKworc3RhdGljIHVuc2lnbmVkIGludCBjeXByZXNzX2J1Zl9kYXRhX2F2YWlsKHN0cnVjdCBjeXByZXNzX2J1ZiAqY2IpCit7CisJaWYgKGNiICE9IE5VTEwpCisJCXJldHVybiAoKGNiLT5idWZfc2l6ZSArIGNiLT5idWZfcHV0IC0gY2ItPmJ1Zl9nZXQpICUgY2ItPmJ1Zl9zaXplKTsKKwllbHNlCisJCXJldHVybiAwOworfQorCisKKy8qCisgKiBjeXByZXNzX2J1Zl9zcGFjZV9hdmFpbAorICoKKyAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGJ5dGVzIG9mIHNwYWNlIGF2YWlsYWJsZSBpbiB0aGUgY2lyY3VsYXIKKyAqIGJ1ZmZlci4KKyAqLworCitzdGF0aWMgdW5zaWduZWQgaW50IGN5cHJlc3NfYnVmX3NwYWNlX2F2YWlsKHN0cnVjdCBjeXByZXNzX2J1ZiAqY2IpCit7CisJaWYgKGNiICE9IE5VTEwpCisJCXJldHVybiAoKGNiLT5idWZfc2l6ZSArIGNiLT5idWZfZ2V0IC0gY2ItPmJ1Zl9wdXQgLSAxKSAlIGNiLT5idWZfc2l6ZSk7CisJZWxzZQorCQlyZXR1cm4gMDsKK30KKworCisvKgorICogY3lwcmVzc19idWZfcHV0CisgKgorICogQ29weSBkYXRhIGRhdGEgZnJvbSBhIHVzZXIgYnVmZmVyIGFuZCBwdXQgaXQgaW50byB0aGUgY2lyY3VsYXIgYnVmZmVyLgorICogUmVzdHJpY3QgdG8gdGhlIGFtb3VudCBvZiBzcGFjZSBhdmFpbGFibGUuCisgKgorICogUmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0ZXMgY29waWVkLgorICovCisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgY3lwcmVzc19idWZfcHV0KHN0cnVjdCBjeXByZXNzX2J1ZiAqY2IsIGNvbnN0IGNoYXIgKmJ1ZiwKKwl1bnNpZ25lZCBpbnQgY291bnQpCit7CisKKwl1bnNpZ25lZCBpbnQgbGVuOworCisKKwlpZiAoY2IgPT0gTlVMTCkKKwkJcmV0dXJuIDA7CisKKwlsZW4gID0gY3lwcmVzc19idWZfc3BhY2VfYXZhaWwoY2IpOworCWlmIChjb3VudCA+IGxlbikKKwkJY291bnQgPSBsZW47CisKKwlpZiAoY291bnQgPT0gMCkKKwkJcmV0dXJuIDA7CisKKwlsZW4gPSBjYi0+YnVmX2J1ZiArIGNiLT5idWZfc2l6ZSAtIGNiLT5idWZfcHV0OworCWlmIChjb3VudCA+IGxlbikgeworCQltZW1jcHkoY2ItPmJ1Zl9wdXQsIGJ1ZiwgbGVuKTsKKwkJbWVtY3B5KGNiLT5idWZfYnVmLCBidWYrbGVuLCBjb3VudCAtIGxlbik7CisJCWNiLT5idWZfcHV0ID0gY2ItPmJ1Zl9idWYgKyBjb3VudCAtIGxlbjsKKwl9IGVsc2UgeworCQltZW1jcHkoY2ItPmJ1Zl9wdXQsIGJ1ZiwgY291bnQpOworCQlpZiAoY291bnQgPCBsZW4pCisJCQljYi0+YnVmX3B1dCArPSBjb3VudDsKKwkJZWxzZSAvKiBjb3VudCA9PSBsZW4gKi8KKwkJCWNiLT5idWZfcHV0ID0gY2ItPmJ1Zl9idWY7CisJfQorCisJcmV0dXJuIGNvdW50OworCit9CisKKworLyoKKyAqIGN5cHJlc3NfYnVmX2dldAorICoKKyAqIEdldCBkYXRhIGZyb20gdGhlIGNpcmN1bGFyIGJ1ZmZlciBhbmQgY29weSB0byB0aGUgZ2l2ZW4gYnVmZmVyLgorICogUmVzdHJpY3QgdG8gdGhlIGFtb3VudCBvZiBkYXRhIGF2YWlsYWJsZS4KKyAqCisgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcyBjb3BpZWQuCisgKi8KKworc3RhdGljIHVuc2lnbmVkIGludCBjeXByZXNzX2J1Zl9nZXQoc3RydWN0IGN5cHJlc3NfYnVmICpjYiwgY2hhciAqYnVmLAorCXVuc2lnbmVkIGludCBjb3VudCkKK3sKKworCXVuc2lnbmVkIGludCBsZW47CisKKworCWlmIChjYiA9PSBOVUxMKQorCQlyZXR1cm4gMDsKKworCWxlbiA9IGN5cHJlc3NfYnVmX2RhdGFfYXZhaWwoY2IpOworCWlmIChjb3VudCA+IGxlbikKKwkJY291bnQgPSBsZW47CisKKwlpZiAoY291bnQgPT0gMCkKKwkJcmV0dXJuIDA7CisKKwlsZW4gPSBjYi0+YnVmX2J1ZiArIGNiLT5idWZfc2l6ZSAtIGNiLT5idWZfZ2V0OworCWlmIChjb3VudCA+IGxlbikgeworCQltZW1jcHkoYnVmLCBjYi0+YnVmX2dldCwgbGVuKTsKKwkJbWVtY3B5KGJ1ZitsZW4sIGNiLT5idWZfYnVmLCBjb3VudCAtIGxlbik7CisJCWNiLT5idWZfZ2V0ID0gY2ItPmJ1Zl9idWYgKyBjb3VudCAtIGxlbjsKKwl9IGVsc2UgeworCQltZW1jcHkoYnVmLCBjYi0+YnVmX2dldCwgY291bnQpOworCQlpZiAoY291bnQgPCBsZW4pCisJCQljYi0+YnVmX2dldCArPSBjb3VudDsKKwkJZWxzZSAvKiBjb3VudCA9PSBsZW4gKi8KKwkJCWNiLT5idWZfZ2V0ID0gY2ItPmJ1Zl9idWY7CisJfQorCisJcmV0dXJuIGNvdW50OworCit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogTW9kdWxlIGZ1bmN0aW9ucworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgaW50IF9faW5pdCBjeXByZXNzX2luaXQodm9pZCkKK3sKKwlpbnQgcmV0dmFsOworCQorCWRiZygiJXMiLCBfX0ZVTkNUSU9OX18pOworCQorCXJldHZhbCA9IHVzYl9zZXJpYWxfcmVnaXN0ZXIoJmN5cHJlc3NfZWFydGhtYXRlX2RldmljZSk7CisJaWYgKHJldHZhbCkKKwkJZ290byBmYWlsZWRfZW1fcmVnaXN0ZXI7CisJcmV0dmFsID0gdXNiX3NlcmlhbF9yZWdpc3RlcigmY3lwcmVzc19oaWRjb21fZGV2aWNlKTsKKwlpZiAocmV0dmFsKQorCQlnb3RvIGZhaWxlZF9oaWRjb21fcmVnaXN0ZXI7CisJcmV0dmFsID0gdXNiX3JlZ2lzdGVyKCZjeXByZXNzX2RyaXZlcik7CisJaWYgKHJldHZhbCkKKwkJZ290byBmYWlsZWRfdXNiX3JlZ2lzdGVyOworCisJaW5mbyhEUklWRVJfREVTQyAiICIgRFJJVkVSX1ZFUlNJT04pOworCXJldHVybiAwOworZmFpbGVkX3VzYl9yZWdpc3RlcjoKKwl1c2JfZGVyZWdpc3RlcigmY3lwcmVzc19kcml2ZXIpOworZmFpbGVkX2hpZGNvbV9yZWdpc3RlcjoKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIoJmN5cHJlc3NfaGlkY29tX2RldmljZSk7CitmYWlsZWRfZW1fcmVnaXN0ZXI6CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyKCZjeXByZXNzX2VhcnRobWF0ZV9kZXZpY2UpOworCisJcmV0dXJuIHJldHZhbDsKK30KKworCitzdGF0aWMgdm9pZCBfX2V4aXQgY3lwcmVzc19leGl0ICh2b2lkKQoreworCWRiZygiJXMiLCBfX0ZVTkNUSU9OX18pOworCisJdXNiX2RlcmVnaXN0ZXIgKCZjeXByZXNzX2RyaXZlcik7CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyICgmY3lwcmVzc19lYXJ0aG1hdGVfZGV2aWNlKTsKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIgKCZjeXByZXNzX2hpZGNvbV9kZXZpY2UpOworfQorCisKK21vZHVsZV9pbml0KGN5cHJlc3NfaW5pdCk7Cittb2R1bGVfZXhpdChjeXByZXNzX2V4aXQpOworCitNT0RVTEVfQVVUSE9SKCBEUklWRVJfQVVUSE9SICk7CitNT0RVTEVfREVTQ1JJUFRJT04oIERSSVZFUl9ERVNDICk7CitNT0RVTEVfVkVSU0lPTiggRFJJVkVSX1ZFUlNJT04gKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKKworbW9kdWxlX3BhcmFtKGRlYnVnLCBib29sLCBTX0lSVUdPIHwgU19JV1VTUik7CitNT0RVTEVfUEFSTV9ERVNDKGRlYnVnLCAiRGVidWcgZW5hYmxlZCBvciBub3QiKTsKK21vZHVsZV9wYXJhbShzdGF0cywgYm9vbCwgU19JUlVHTyB8IFNfSVdVU1IpOworTU9EVUxFX1BBUk1fREVTQyhzdGF0cywgIkVuYWJsZSBzdGF0aXN0aWNzIG9yIG5vdCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2N5cHJlc3NfbTguaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9jeXByZXNzX204LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTAxMmVlNgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9jeXByZXNzX204LmgKQEAgLTAsMCArMSw1NSBAQAorI2lmbmRlZiBDWVBSRVNTX004X0gKKyNkZWZpbmUgQ1lQUkVTU19NOF9ICisKKy8qIGRlZmluaXRpb25zIGFuZCBmdW5jdGlvbiBwcm90b3R5cGVzIHVzZWQgZm9yIHRoZSBjeXByZXNzIFVTQiB0byBTZXJpYWwgY29udHJvbGxlciAqLworCisvKiBGb3Igc2VuZGluZyBvdXIgZmVhdHVyZSBidWZmZXIgLSBjb250cm9sbGluZyBzZXJpYWwgY29tbXVuaWNhdGlvbiBzdGF0ZXMgKi8KKy8qIExpbnV4IEhJRCBoYXMgbm8gc3VwcG9ydCBmb3Igc2VyaWFsIGRldmljZXMgc28gd2UgZG8gdGhpcyB0aHJvdWdoIHRoZSBkcml2ZXIgKi8KKyNkZWZpbmUgSElEX1JFUV9HRVRfUkVQT1JUIDB4MDEKKyNkZWZpbmUgSElEX1JFUV9TRVRfUkVQT1JUIDB4MDkKKworLyogTGlzdCBvdGhlciBjeXByZXNzIFVTQiB0byBTZXJpYWwgZGV2aWNlcyBoZXJlLCBhbmQgYWRkIHRoZW0gdG8gdGhlIGlkX3RhYmxlICovCisKKy8qIERlTG9ybWUgRWFydGhtYXRlIFVTQiAtIGEgR1BTIGRldmljZSAqLworI2RlZmluZQlWRU5ET1JfSURfREVMT1JNRQkJIDB4MTE2MworI2RlZmluZSBQUk9EVUNUX0lEX0VBUlRITUFURVVTQgkJIDB4MDEwMAorCisvKiBDeXByZXNzIEhJRC0+Q09NIFJTMjMyIEFkYXB0ZXIgKi8KKyNkZWZpbmUgVkVORE9SX0lEX0NZUFJFU1MJCSAweDA0YjQKKyNkZWZpbmUgUFJPRFVDVF9JRF9DWVBISURDT00JCSAweDU1MDAKKy8qIEVuZCBvZiBkZXZpY2UgbGlzdGluZyAqLworCisvKiBVc2VkIGZvciBzZXR0aW5nIC8gcmVxdWVzdGluZyBzZXJpYWwgbGluZSBzZXR0aW5ncyAqLworI2RlZmluZSBDWVBSRVNTX1NFVF9DT05GSUcgMHgwMQorI2RlZmluZSBDWVBSRVNTX0dFVF9DT05GSUcgMHgwMgorCisvKiBVc2VkIGZvciB0aHJvdHRsZSBjb250cm9sICovCisjZGVmaW5lIFRIUk9UVExFRCAweDEKKyNkZWZpbmUgQUNUVUFMTFlfVEhST1RUTEVEIDB4MgorCisvKiBjaGlwdHlwZXMgLSB1c2VkIGluIGNhc2UgZmlybXdhcmUgZGlmZmVycyBmcm9tIHRoZSBnZW5lcmljIGZvcm0gLi4uIG9mZmVyaW5nCisgKiAJZGlmZmVyZW50IGJhdWQgc3BlZWRzL2V0Yy4KKyAqLworCisjZGVmaW5lIENUX0VBUlRITUFURQkweDAxCisjZGVmaW5lIENUX0NZUEhJRENPTQkweDAyCisjZGVmaW5lIENUX0dFTkVSSUMJMHgwRgorLyogRW5kIG9mIGNoaXB0eXBlIGRlZmluaXRpb25zICovCisKKy8qIFJTLTIzMiBzZXJpYWwgZGF0YSBjb21tdW5pY2F0aW9uIHByb3RvY29sIGRlZmluaXRpb25zICovCisvKiB0aGVzZSBhcmUgc2VudCAvIHJlYWQgYXQgYnl0ZSAwIG9mIHRoZSBpbnB1dC9vdXRwdXQgaGlkIHJlcG9ydHMgKi8KKy8qIFlvdSBjYW4gZmluZCB0aGVzZSB2YWx1ZXMgZGVmaW5lZCBpbiB0aGUgQ1k0NjAxIFVTQiB0byBTZXJpYWwgZGVzaWduIG5vdGVzICovCisKKyNkZWZpbmUgQ09OVFJPTF9EVFIgCTB4MjAJLyogZGF0YSB0ZXJtaW5hbCByZWFkeSAtIGZsb3cgY29udHJvbCAtIGhvc3QgdG8gZGV2aWNlICovCisjZGVmaW5lIFVBUlRfRFNSCTB4MjAJLyogZGF0YSBzZXQgcmVhZHkgLSBmbG93IGNvbnRyb2wgLSBkZXZpY2UgdG8gaG9zdCAqLworI2RlZmluZSBDT05UUk9MX1JUUyAJMHgxMAkvKiByZXF1ZXN0IHRvIHNlbmQgLSBmbG93IGNvbnRyb2wgLSBob3N0IHRvIGRldmljZSAqLworI2RlZmluZSBVQVJUX0NUUwkweDEwCS8qIGNsZWFyIHRvIHNlbmQgLSBmbG93IGNvbnRyb2wgLSBkZXZpY2UgdG8gaG9zdCAqLworI2RlZmluZQlVQVJUX1JJCQkweDEwCS8qIHJpbmcgaW5kaWNhdG9yIC0gbW9kZW0gLSBkZXZpY2UgdG8gaG9zdCAqLyAKKyNkZWZpbmUgVUFSVF9DRAkJMHg0MAkvKiBjYXJyaWVyIGRldGVjdCAtIG1vZGVtIC0gZGV2aWNlIHRvIGhvc3QgKi8KKyNkZWZpbmUgQ1lQX0VSUk9SIAkweDA4CS8qIHJlY2VpdmVkIGZyb20gaW5wdXQgcmVwb3J0IC0gZGV2aWNlIHRvIGhvc3QgKi8KKy8qIE5vdGUgLSB0aGUgYmVsb3cgaGFzIG5vdGhpbmcgdG8gdG8gd2l0aCB0aGUgImZlYXR1cmUgcmVwb3J0IiByZXNldCAqLworI2RlZmluZSBDT05UUk9MX1JFU0VUCTB4MDggIAkvKiBzZW50IHdpdGggb3V0cHV0IHJlcG9ydCAtIGhvc3QgdG8gZGV2aWNlICovCisKKy8qIEVuZCBvZiBSUy0yMzIgcHJvdG9jb2wgZGVmaW5pdGlvbnMgKi8KKworI2VuZGlmIC8qIENZUFJFU1NfTThfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2RpZ2lfYWNjZWxlcG9ydC5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2RpZ2lfYWNjZWxlcG9ydC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1ZjkyNzgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvZGlnaV9hY2NlbGVwb3J0LmMKQEAgLTAsMCArMSwyMDQ5IEBACisvKgorKiAgRGlnaSBBY2NlbGVQb3J0IFVTQi00IGFuZCBVU0ItMiBTZXJpYWwgQ29udmVydGVycworKgorKiAgQ29weXJpZ2h0IDIwMDAgYnkgRGlnaSBJbnRlcm5hdGlvbmFsCisqCisqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKgorKiAgU2hhbWVsZXNzbHkgYmFzZWQgb24gQnJpYW4gV2FybmVyJ3Mga2V5c3Bhbl9wZGEuYyBhbmQgR3JlZyBLcm9haC1IYXJ0bWFuJ3MKKyogIHVzYi1zZXJpYWwgZHJpdmVyLgorKgorKiAgUGV0ZXIgQmVyZ2VyIChwYmVyZ2VyQGJyaW1zb24uY29tKQorKiAgQWwgQm9yY2hlcnMgKGJvcmNoZXJzQHN0ZWluZXJwb2ludC5jb20pCisqIAorKiAoMTIvMDMvMjAwMSkgZ2toCisqCXN3aXRjaGVkIHRvIHVzaW5nIHBvcnQtPm9wZW5fY291bnQgaW5zdGVhZCBvZiBwcml2YXRlIHZlcnNpb24uCisqCVJlbW92ZWQgcG9ydC0+YWN0aXZlCisqCisqICgwNC8wOC8yMDAxKSBnYgorKglJZGVudGlmeSB2ZXJzaW9uIG9uIG1vZHVsZSBsb2FkLgorKgorKiAoMTEvMDEvMjAwMCkgQWRhbSBKLiBSaWNodGVyCisqCXVzYl9kZXZpY2VfaWQgdGFibGUgc3VwcG9ydAorKiAKKyogKDExLzAxLzIwMDApIHBiZXJnZXIgYW5kIGJvcmNoZXJzCisqICAgIC0tIFR1cm5lZCBvZmYgdGhlIFVTQl9ESVNBQkxFX1NQRCBmbGFnIGZvciB3cml0ZSBidWxrIHVyYnMtLWl0IGNhdXNlZAorKiAgICAgICBVU0IgNCBwb3J0cyB0byBoYW5nIG9uIHN0YXJ0dXAuCisqICAgIC0tIFNlcmlhbGl6ZWQgYWNjZXNzIHRvIHdyaXRlIHVyYnMgYnkgYWRkaW5nIHRoZSBkcF93cml0ZV91cmJfaW5fdXNlCisqICAgICAgIGZsYWc7IG90aGVyd2lzZSwgdGhlIGRyaXZlciBjYXVzZWQgU01QIHN5c3RlbSBoYW5ncy4gIFdhdGNoaW5nIHRoZQorKiAgICAgICB1cmIgc3RhdHVzIGlzIG5vdCBzdWZmaWNpZW50LgorKgorKiAoMTAvMDUvMjAwMCkgZ2toCisqICAgIC0tIEZpeGVkIGJ1ZyB3aXRoIHVyYi0+ZGV2IG5vdCBiZWluZyBzZXQgcHJvcGVybHksIG5vdyB0aGF0IHRoZSB1c2IKKyoJY29yZSBuZWVkcyBpdC4KKyogCisqICAoOC84LzIwMDApIHBiZXJnZXIgYW5kIGJvcmNoZXJzCisqICAgIC0tIEZpeGVkIGNsb3NlIHNvIHRoYXQgCisqICAgICAgIC0gaXQgY2FuIHRpbWVvdXQgd2hpbGUgd2FpdGluZyBmb3IgdHJhbnNtaXQgaWRsZSwgaWYgbmVlZGVkOworKiAgICAgICAtIGl0IGlnbm9yZXMgaW50ZXJydXB0cyB3aGVuIGZsdXNoaW5nIHRoZSBwb3J0LCB0dXJuaW5nCisqICAgICAgICAgb2YgbW9kZW0gc2lnbmFsbGluZywgYW5kIHNvIG9uOworKiAgICAgICAtIGl0IHdhaXRzIGZvciB0aGUgZmx1c2ggdG8gcmVhbGx5IGNvbXBsZXRlIGJlZm9yZSByZXR1cm5pbmcuCisqICAgIC0tIFJlYWRfYnVsa19jYWxsYmFjayBhbmQgd3JpdGVfYnVsa19jYWxsYmFjayBjaGVjayBmb3IgYSBjbG9zZWQKKyogICAgICAgcG9ydCBiZWZvcmUgdXNpbmcgdGhlIHR0eSBzdHJ1Y3Qgb3Igd3JpdGluZyB0byB0aGUgcG9ydC4KKyogICAgLS0gVGhlIHR3byBjaGFuZ2VzIGFib3ZlIGZpeCB0aGUgb29wcyBjYXVzZWQgYnkgaW50ZXJydXB0ZWQgY2xvc2VzLgorKiAgICAtLSBBZGRlZCBpbnRlcnJ1cHRpYmxlIGFyZ3MgdG8gd3JpdGVfb29iX2NvbW1hbmQgYW5kIHNldF9tb2RlbV9zaWduYWxzCisqICAgICAgIGFuZCBhZGRlZCBhIHRpbWVvdXQgYXJnIHRvIHRyYW5zbWl0X2lkbGU7IG5lZWRlZCBmb3IgZml4ZXMgdG8KKyogICAgICAgY2xvc2UuCisqICAgIC0tIEFkZGVkIGNvZGUgZm9yIHJ4X3Rocm90dGxlIGFuZCByeF91bnRocm90dGxlIHNvIHRoYXQgaW5wdXQgZmxvdworKiAgICAgICBjb250cm9sIHdvcmtzLgorKiAgICAtLSBBZGRlZCBjb2RlIHRvIHNldCBvdmVycnVuLCBwYXJpdHksIGZyYW1pbmcsIGFuZCBicmVhayBlcnJvcnMKKyogICAgICAgKHVudGVzdGVkKS4KKyogICAgLS0gU2V0IFVTQl9ESVNBQkxFX1NQRCBmbGFnIGZvciB3cml0ZSBidWxrIHVyYnMsIHNvIG5vIDAgbGVuZ3RoCisqICAgICAgIGJ1bGsgd3JpdGVzIGFyZSBkb25lLiAgVGhlc2UgaHVuZyB0aGUgRGlnaSBVU0IgZGV2aWNlLiAgVGhlCisqICAgICAgIDAgbGVuZ3RoIGJ1bGsgd3JpdGVzIHdlcmUgYSBuZXcgZmVhdHVyZSBvZiB1c2ItdWhjaSBhZGRlZCBpbgorKiAgICAgICB0aGUgMi40LjAtdGVzdDYga2VybmVscy4KKyogICAgLS0gRml4ZWQgbW9kIGluYyByYWNlIGluIG9wZW47IGRvIG1vZCBpbmMgYmVmb3JlIHNsZWVwaW5nIHRvIHdhaXQKKyogICAgICAgZm9yIGEgY2xvc2UgdG8gZmluaXNoLgorKgorKiAgKDcvMzEvMjAwMCkgcGJlcmdlcgorKiAgICAtLSBGaXhlZCBidWdzIHdpdGggaGFyZHdhcmUgaGFuZHNoYWtpbmc6CisqICAgICAgIC0gQWRkZWQgY29kZSB0byBzZXQvY2xlYXIgdHR5LT5od19zdG9wcGVkIGluIGRpZ2lfcmVhZF9vb2JfY2FsbGJhY2soKQorKiAgICAgICAgIGFuZCBkaWdpX3NldF90ZXJtaW9zKCkKKyogICAgLS0gQWRkZWQgY29kZSBpbiBkaWdpX3NldF90ZXJtaW9zKCkgdG8KKyogICAgICAgLSBhZGQgY29uZGl0aW9uYWwgaW4gY29kZSBoYW5kbGluZyB0cmFuc2l0aW9uIGZyb20gQjAgdG8gb25seQorKiAgICAgICAgIHNldCBSVFMgaWYgUlRTL0NUUyBmbG93IGNvbnRyb2wgaXMgZWl0aGVyIG5vdCBpbiB1c2Ugb3IgaWYKKyogICAgICAgICB0aGUgcG9ydCBpcyBub3QgY3VycmVudGx5IHRocm90dGxlZC4KKyogICAgICAgLSBoYW5kbGUgdHVybmluZyBvZmYgQ1JUU0NUUy4KKyoKKyogICg3LzMwLzIwMDApIGJvcmNoZXJzCisqICAgIC0tIEFkZGVkIHN1cHBvcnQgZm9yIG1vcmUgdGhhbiBvbmUgRGlnaSBVU0IgZGV2aWNlIGJ5IG1vdmluZworKiAgICAgICBnbG9iYWxzIHRvIGEgcHJpdmF0ZSBzdHJ1Y3R1cmUgaW4gdGhlIHBvaW50ZWQgdG8gZnJvbSB0aGUKKyogICAgICAgdXNiX3NlcmlhbCBzdHJ1Y3R1cmUuCisqICAgIC0tIE1vdmVkIHRoZSBtb2RlbSBjaGFuZ2UgYW5kIHRyYW5zbWl0IGlkbGUgd2FpdCBxdWV1ZXMgaW50bworKiAgICAgICB0aGUgcG9ydCBwcml2YXRlIHN0cnVjdHVyZSwgc28gZWFjaCBwb3J0IGhhcyBpdHMgb3duIHF1ZXVlCisqICAgICAgIHJhdGhlciB0aGFuIHNoYXJpbmcgZ2xvYmFsIHF1ZXVlcy4KKyogICAgLS0gQWRkZWQgc3VwcG9ydCBmb3IgYnJlYWsgc2lnbmFscy4KKyoKKyogICg3LzI1LzIwMDApIHBiZXJnZXIKKyogICAgLS0gQWRkZWQgVVNCLTIgc3VwcG9ydC4gIE5vdGU6IHRoZSBVU0ItMiBzdXBwb3J0cyAzIGRldmljZXM6IHR3bworKiAgICAgICBzZXJpYWwgYW5kIGEgcGFyYWxsZWwgcG9ydC4gIFRoZSBwYXJhbGxlbCBwb3J0IGlzIGltcGxlbWVudGVkCisqICAgICAgIGFzIGEgc2VyaWFsLXRvLXBhcmFsbGVsIGNvbnZlcnRlci4gIFRoYXQgaXMsIHRoZSBkcml2ZXIgYWN0dWFsbHkKKyogICAgICAgcHJlc2VudHMgYWxsIHRocmVlIFVTQi0yIGludGVyZmFjZXMgYXMgc2VyaWFsIHBvcnRzLCBidXQgdGhlIHRoaXJkCisqICAgICAgIG9uZSBwaHlzaWNhbGx5IGNvbm5lY3RzIHRvIGEgcGFyYWxsZWwgZGV2aWNlLiAgVGh1cywgZm9yIGV4YW1wbGUsCisqICAgICAgIG9uZSBjb3VsZCBwbHVnIGEgcGFyYWxsZWwgcHJpbnRlciBpbnRvIHRoZSBVU0ItMidzIHRoaXJkIHBvcnQsCisqICAgICAgIGJ1dCBmcm9tIHRoZSBrZXJuZWwncyAoYW5kIHVzZXJsYW5kJ3MpIHBvaW50IG9mIHZpZXcgd2hhdCdzCisqICAgICAgIGFjdHVhbGx5IG91dCB0aGVyZSBpcyBhIHNlcmlhbCBkZXZpY2UuCisqCisqICAoNy8xNS8yMDAwKSBib3JjaGVycworKiAgICAtLSBGaXhlZCByYWNlIGluIG9wZW4gd2hlbiBhIGNsb3NlIGlzIGluIHByb2dyZXNzLgorKiAgICAtLSBLZWVwIGNvdW50IG9mIG9wZW5zIGFuZCBkZWMgdGhlIG1vZHVsZSB1c2UgY291bnQgZm9yIGVhY2gKKyogICAgICAgb3V0c3RhbmRpbmcgb3BlbiB3aGVuIHNodXRkb3duIGlzIGNhbGxlZCAob24gZGlzY29ubmVjdCkuCisqICAgIC0tIEZpeGVkIHNhbml0eSBjaGVja3MgaW4gcmVhZF9idWxrX2NhbGxiYWNrIGFuZCB3cml0ZV9idWxrX2NhbGxiYWNrCisqICAgICAgIHNvIHBvaW50ZXJzIGFyZSBjaGVja2VkIGJlZm9yZSB1c2UuCisqICAgIC0tIFNwbGl0IHJlYWQgYnVsayBjYWxsYmFjayBpbnRvIGluIGJhbmQgYW5kIG91dCBvZiBiYW5kCisqICAgICAgIGNhbGxiYWNrcywgYW5kIG5vIGxvbmdlciByZXN0YXJ0IHJlYWQgY2hhaW5zIGlmIHRoZXJlIGlzCisqICAgICAgIGEgc3RhdHVzIGVycm9yIG9yIGEgc2FuaXR5IGVycm9yLiAgVGhpcyBmaXhlZCB0aGUgc2VnCisqICAgICAgIGZhdWx0cyBhbmQgb3RoZXIgZXJyb3JzIHdlIHVzZWQgdG8gZ2V0IG9uIGRpc2Nvbm5lY3QuCisqICAgIC0tIFBvcnQtPmFjdGl2ZSBpcyBvbmNlIGFnYWluIGEgZmxhZyBhcyB1c2Itc2VyaWFsIGludGVuZGVkIGl0CisqICAgICAgIHRvIGJlLCBub3QgYSBjb3VudC4gIFNpbmNlIGl0IHdhcyBvbmx5IGEgY2hhciBpdCB3b3VsZAorKiAgICAgICBoYXZlIGJlZW4gbGltaXRlZCB0byAyNTYgc2ltdWx0YW5lb3VzIG9wZW5zLiAgTm93IHRoZSBvcGVuCisqICAgICAgIGNvdW50IGlzIGtlcHQgaW4gdGhlIHBvcnQgcHJpdmF0ZSBzdHJ1Y3R1cmUgaW4gZHBfb3Blbl9jb3VudC4KKyogICAgLS0gQWRkZWQgY29kZSBmb3IgbW9kdWxhcml6YXRpb24gb2YgdGhlIGRpZ2lfYWNjZWxlcG9ydCBkcml2ZXIuCisqCisqICAoNi8yNy8yMDAwKSBwYmVyZ2VyIGFuZCBib3JjaGVycworKiAgICAtLSBaZXJvZWQgb3V0IHN5bmMgZmllbGQgaW4gdGhlIHdha2V1cF90YXNrIGJlZm9yZSBmaXJzdCB1c2U7CisqICAgICAgIG90aGVyd2lzZSB0aGUgdW5pbml0aWFsaXplZCB2YWx1ZSBtaWdodCBwcmV2ZW50IHRoZSB0YXNrIGZyb20KKyogICAgICAgYmVpbmcgc2NoZWR1bGVkLgorKiAgICAtLSBJbml0aWFsaXplZCByZXQgdmFsdWUgdG8gMCBpbiB3cml0ZV9idWxrX2NhbGxiYWNrLCBvdGhlcndpc2UKKyogICAgICAgdGhlIHVuaW5pdGlhbGl6ZWQgdmFsdWUgY291bGQgY2F1c2UgYSBzcHVyaW91cyBkZWJ1Z2dpbmcgbWVzc2FnZS4KKyoKKyogICg2LzIyLzIwMDApIHBiZXJnZXIgYW5kIGJvcmNoZXJzCisqICAgIC0tIE1hZGUgY29uZF93YWl0Xy4uLiBpbmxpbmUtLWFwcGFyZW50bHkgb24gU1BBUkMgdGhlIGZsYWdzIGFyZworKiAgICAgICB0byBzcGluX2xvY2tfaXJxc2F2ZSBjYW5ub3QgYmUgcGFzc2VkIHRvIGFub3RoZXIgZnVuY3Rpb24KKyogICAgICAgdG8gY2FsbCBzcGluX3VubG9ja19pcnFyZXN0b3JlLiAgVGhhbmtzIHRvIFBhdWxpbmUgTWlkZGVsaW5rLgorKiAgICAtLSBJbiBkaWdpX3NldF9tb2RlbV9zaWduYWxzIHRoZSBpbm5lciBuZXN0ZWQgc3BpbiBsb2NrcyB1c2UganVzdAorKiAgICAgICBzcGluX2xvY2soKSByYXRoZXIgdGhhbiBzcGluX2xvY2tfaXJxc2F2ZSgpLiAgVGhlIG9sZCBjb2RlCisqICAgICAgIG1pc3Rha2VubHkgbGVmdCBpbnRlcnJ1cHRzIG9mZi4gIFRoYW5rcyB0byBQYXVsaW5lIE1pZGRlbGluay4KKyogICAgLS0gY29weV9mcm9tX3VzZXIgKHdoaWNoIGNhbiBzbGVlcCkgaXMgbm8gbG9uZ2VyIGNhbGxlZCB3aGlsZSBhCisqICAgICAgIHNwaW5sb2NrIGlzIGhlbGQuICBXZSBjb3B5IHRvIGEgbG9jYWwgYnVmZmVyIGJlZm9yZSBnZXR0aW5nCisqICAgICAgIHRoZSBzcGlubG9jay0tZG9uJ3QgbGlrZSB0aGUgZXh0cmEgY29weSBidXQgdGhlIGNvZGUgaXMgc2ltcGxlci4KKyogICAgLS0gUHJpbnRrIGFuZCBkYmcgYXJlIG5vIGxvbmdlciBjYWxsZWQgd2hpbGUgYSBzcGluIGxvY2sgaXMgaGVsZC4KKyoKKyogICg2LzQvMjAwMCkgcGJlcmdlciBhbmQgYm9yY2hlcnMKKyogICAgLS0gUmVwbGFjZWQgc2VwYXJhdGUgY2FsbHMgdG8gc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSBhbmQKKyogICAgICAgaW50ZXJydXB0aWJsZV9zbGVlcF9vbl90aW1lb3V0IHdpdGggYSBuZXcgZnVuY3Rpb24KKyogICAgICAgY29uZF93YWl0X2ludGVycnVwdGlibGVfdGltZW91dF9pcnFyZXN0b3JlLiAgVGhpcyBlbGltaW5hdGVzCisqICAgICAgIHRoZSByYWNlIGNvbmRpdGlvbiB3aGVyZSB0aGUgd2FrZSB1cCBjb3VsZCBoYXBwZW4gYWZ0ZXIKKyogICAgICAgdGhlIHVubG9jayBhbmQgYmVmb3JlIHRoZSBzbGVlcC4KKyogICAgLS0gQ2xvc2Ugbm93IHdhaXRzIGZvciBvdXRwdXQgdG8gZHJhaW4uCisqICAgIC0tIE9wZW4gd2FpdHMgdW50aWwgYW55IGNsb3NlIGluIHByb2dyZXNzIGlzIGZpbmlzaGVkLgorKiAgICAtLSBBbGwgb3V0IG9mIGJhbmQgcmVzcG9uc2VzIGFyZSBub3cgcHJvY2Vzc2VkLCBub3QganVzdCB0aGUKKyogICAgICAgZmlyc3QgaW4gYSBVU0IgcGFja2V0LgorKiAgICAtLSBGaXhlZCBhIGJ1ZyB0aGF0IHByZXZlbnRlZCB0aGUgZHJpdmVyIGZyb20gd29ya2luZyB3aGVuIHRoZQorKiAgICAgICBmaXJzdCBEaWdpIHBvcnQgd2FzIG5vdCB0aGUgZmlyc3QgVVNCIHNlcmlhbCBwb3J0LS10aGUgZHJpdmVyCisqICAgICAgIHdhcyBtaXN0YWtlbmx5IHVzaW5nIHRoZSBleHRlcm5hbCBVU0Igc2VyaWFsIHBvcnQgbnVtYmVyIHRvCisqICAgICAgIHRyeSB0byBpbmRleCBpbnRvIGl0cyBpbnRlcm5hbCBwb3J0cy4KKyogICAgLS0gRml4ZWQgYW4gU01QIGJ1ZyAtLSB3cml0ZV9idWxrX2NhbGxiYWNrIGlzIGNhbGxlZCBkaXJlY3RseSBmcm9tCisqICAgICAgIGFuIGludGVycnVwdCwgc28gc3Bpbl9sb2NrX2lycXNhdmUvc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSBhcmUKKyogICAgICAgbmVlZGVkIGZvciBsb2NrcyBvdXRzaWRlIHdyaXRlX2J1bGtfY2FsbGJhY2sgdGhhdCBhcmUgYWxzbworKiAgICAgICBhY3F1aXJlZCBieSB3cml0ZV9idWxrX2NhbGxiYWNrIHRvIHByZXZlbnQgZGVhZGxvY2tzLgorKiAgICAtLSBGaXhlZCBzdXBwb3J0IGZvciBzZWxlY3QoKSBieSBtYWtpbmcgZGlnaV9jaGFyc19pbl9idWZmZXIoKQorKiAgICAgICByZXR1cm4gMjU2IHdoZW4gLUVJTlBST0dSRVNTIGlzIHNldCwgYXMgdGhlIGxpbmUgZGlzY2lwbGluZQorKiAgICAgICBjb2RlIGluIG5fdHR5LmMgZXhwZWN0cy4KKyogICAgLS0gRml4ZWQgYW4gaW5jbHVkZSBmaWxlIG9yZGVyaW5nIHByb2JsZW0gdGhhdCBwcmV2ZW50ZWQgZGVidWdnaW5nCisqICAgICAgIG1lc3NhZ2VzIGZyb20gd29ya2luZy4KKyogICAgLS0gRml4ZWQgYW4gaW50ZXJtaXR0ZW50IHRpbWVvdXQgcHJvYmxlbSB0aGF0IGNhdXNlZCB3cml0ZXMgdG8KKyogICAgICAgc29tZXRpbWVzIGdldCBzdHVjayBvbiBzb21lIG1hY2hpbmVzIG9uIHNvbWUga2VybmVscy4gIEl0IHR1cm5zCisqICAgICAgIG91dCBpbiB0aGVzZSBjaXJjdW1zdGFuY2VzIHdyaXRlX2NoYW4oKSAoaW4gbl90dHkuYykgd2FzCisqICAgICAgIGFzbGVlcCB3YWl0aW5nIGZvciBvdXIgd2FrZXVwIGNhbGwuICBFdmVuIHRob3VnaCB3ZSBjYWxsCisqICAgICAgIHdha2VfdXBfaW50ZXJydXB0aWJsZSgpIGluIGRpZ2lfd3JpdGVfYnVsa19jYWxsYmFjaygpLCB0aGVyZSBpcworKiAgICAgICBhIHJhY2UgY29uZGl0aW9uIHRoYXQgY291bGQgY2F1c2UgdGhlIHdha2V1cCB0byBmYWlsOiBpZiBvdXIKKyogICAgICAgd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCkgY2FsbCBvY2N1cnMgYmV0d2VlbiB0aGUgdGltZSB0aGF0IG91cgorKiAgICAgICBkcml2ZXIgd3JpdGUgcm91dGluZSBmaW5pc2hlcyBhbmQgd3JpdGVfY2hhbigpIHNldHMgY3VycmVudC0+c3RhdGUKKyogICAgICAgdG8gVEFTS19JTlRFUlJVUFRJQkxFLCB0aGUgZWZmZWN0IG9mIG91ciB3YWtldXAgc2V0dGluZyB0aGUgc3RhdGUKKyogICAgICAgdG8gVEFTS19SVU5OSU5HIHdpbGwgYmUgbG9zdCBhbmQgd3JpdGVfY2hhbidzIHN1YnNlcXVlbnQgY2FsbCB0bworKiAgICAgICBzY2hlZHVsZSgpIHdpbGwgbmV2ZXIgcmV0dXJuICh1bmxlc3MgaXQgY2F0Y2hlcyBhIHNpZ25hbCkuCisqICAgICAgIFRoaXMgcmFjZSBjb25kaXRpb24gb2NjdXJzIGJlY2F1c2Ugd3JpdGVfYnVsa19jYWxsYmFjaygpIChhbmQgdGh1cworKiAgICAgICB0aGUgd2FrZXVwKSBhcmUgY2FsbGVkIGFzeW5jaG9ub3VzbHkgZnJvbSBhbiBpbnRlcnJ1cHQsIHJhdGhlciB0aGFuCisqICAgICAgIGZyb20gdGhlIHNjaGVkdWxlci4gIFdlIGNhbiBhdm9pZCB0aGUgcmFjZSBieSBjYWxsaW5nIHRoZSB3YWtldXAKKyogICAgICAgZnJvbSB0aGUgc2NoZWR1bGVyIHF1ZXVlIGFuZCB0aGF0J3Mgb3VyIGZpeDogIE5vdywgYXQgdGhlIGVuZCBvZgorKiAgICAgICB3cml0ZV9idWxrX2NhbGxiYWNrKCkgd2UgcXVldWUgdXAgYSB3YWtldXAgY2FsbCBvbiB0aGUgc2NoZWR1bGVyCisqICAgICAgIHRhc2sgcXVldWUuICBXZSBzdGlsbCBhbHNvIGludm9rZSB0aGUgd2FrZXVwIGRpcmVjdGx5IHNpbmNlIHRoYXQKKyogICAgICAgc3F1ZWV6ZXMgYSBiaXQgbW9yZSBwZXJmb3JtYW5jZSBvdXQgb2YgdGhlIGRyaXZlciwgYW5kIGFueSBsb3N0CisqICAgICAgIHJhY2UgY29uZGl0aW9ucyB3aWxsIGdldCBjbGVhbmVkIHVwIGF0IHRoZSBuZXh0IHNjaGVkdWxlciBydW4uCisqCisqICAgICAgIE5PVEU6ICBUaGUgcHJvYmxlbSBhbHNvIGdvZXMgYXdheSBpZiB5b3UgY29tbWVudCBvdXQKKyogICAgICAgdGhlIHR3byBjb2RlIGxpbmVzIGluIHdyaXRlX2NoYW4oKSB3aGVyZSBjdXJyZW50LT5zdGF0ZQorKiAgICAgICBpcyBzZXQgdG8gVEFTS19SVU5OSU5HIGp1c3QgYmVmb3JlIGNhbGxpbmcgZHJpdmVyLndyaXRlKCkgYW5kIHRvCisqICAgICAgIFRBU0tfSU5URVJSVVBUSUJMRSBpbW1lZGlhdGVseSBhZnRlcndhcmRzLiAgVGhpcyBpcyB3aHkgdGhlCisqICAgICAgIHByb2JsZW0gZGlkIG5vdCBzaG93IHVwIHdpdGggdGhlIDIuMiBrZXJuZWxzIC0tIHRoZXkgZG8gbm90CisqICAgICAgIGluY2x1ZGUgdGhhdCBjb2RlLgorKgorKiAgKDUvMTYvMjAwMCkgcGJlcmdlciBhbmQgYm9yY2hlcnMKKyogICAgLS0gQWRkZWQgdGltZW91dHMgdG8gc2xlZXBzLCB0byBkZWZlbmQgYWdhaW5zdCBsb3N0IHdha2UgdXBzLgorKiAgICAtLSBIYW5kbGUgdHJhbnNpdGlvbiB0by9mcm9tIEIwIGJhdWQgcmF0ZSBpbiBkaWdpX3NldF90ZXJtaW9zLgorKgorKiAgKDUvMTMvMjAwMCkgcGJlcmdlciBhbmQgYm9yY2hlcnMKKyogICAgLS0gQWxsIGNvbW1hbmRzIG5vdyBzZW50IG9uIG91dCBvZiBiYW5kIHBvcnQsIHVzaW5nCisqICAgICAgIGRpZ2lfd3JpdGVfb29iX2NvbW1hbmQuCisqICAgIC0tIEdldCBtb2RlbSBjb250cm9sIHNpZ25hbHMgd2hlbmV2ZXIgdGhleSBjaGFuZ2UsIHN1cHBvcnQgVElPQ01HRVQvCisqICAgICAgIFNFVC9CSVMvQklDIGlvY3Rscy4KKyogICAgLS0gZGlnaV9zZXRfdGVybWlvcyBub3cgc3VwcG9ydHMgcGFyaXR5LCB3b3JkIHNpemUsIHN0b3AgYml0cywgYW5kCisqICAgICAgIHJlY2VpdmUgZW5hYmxlLgorKiAgICAtLSBDbGVhbmVkIHVwIG9wZW4gYW5kIGNsb3NlLCB1c2UgZGlnaV9zZXRfdGVybWlvcyBhbmQKKyogICAgICAgZGlnaV93cml0ZV9vb2JfY29tbWFuZCB0byBzZXQgcG9ydCBwYXJhbWV0ZXJzLgorKiAgICAtLSBBZGRlZCBkaWdpX3N0YXJ0dXBfZGV2aWNlIHRvIHN0YXJ0IHJlYWQgY2hhaW5zIG9uIGFsbCBwb3J0cy4KKyogICAgLS0gV3JpdGUgYnVmZmVyIGlzIG9ubHkgdXNlZCB3aGVuIGNvdW50PT0xLCB0byBiZSBzdXJlIHB1dF9jaGFyIGNhbgorKiAgICAgICB3cml0ZSBhIGNoYXIgKHVubGVzcyB0aGUgYnVmZmVyIGlzIGZ1bGwpLgorKgorKiAgKDUvMTAvMjAwMCkgcGJlcmdlciBhbmQgYm9yY2hlcnMKKyogICAgLS0gQWRkZWQgTU9EX0lOQ19VU0VfQ09VTlQvTU9EX0RFQ19VU0VfQ09VTlQgY2FsbHMgb24gb3Blbi9jbG9zZS4KKyogICAgLS0gRml4ZWQgcHJvYmxlbSB3aGVyZSB0aGUgZmlyc3QgaW5jb21pbmcgY2hhcmFjdGVyIGlzIGxvc3Qgb24KKyogICAgICAgcG9ydCBvcGVucyBhZnRlciB0aGUgZmlyc3QgY2xvc2Ugb24gdGhhdCBwb3J0LiAgTm93IHdlIGtlZXAKKyogICAgICAgdGhlIHJlYWRfdXJiIGNoYWluIG9wZW4gdW50aWwgc2h1dGRvd24uCisqICAgIC0tIEFkZGVkIG1vcmUgcG9ydCBjb25kaXRpb25pbmcgY2FsbHMgaW4gZGlnaV9vcGVuIGFuZCBkaWdpX2Nsb3NlLgorKiAgICAtLSBDb252ZXJ0IHBvcnQtPmFjdGl2ZSB0byBhIHVzZSBjb3VudCBzbyB0aGF0IHdlIGNhbiBkZWFsIHdpdGggbXVsdGlwbGUKKyogICAgICAgb3BlbnMgYW5kIGNsb3NlcyBwcm9wZXJseS4KKyogICAgLS0gRml4ZWQgc29tZSBwcm9ibGVtcyB3aXRoIHRoZSBsb2NraW5nIGNvZGUuCisqCisqICAoNS8zLzIwMDApIHBiZXJnZXIgYW5kIGJvcmNoZXJzCisqICAgIC0tIEZpcnN0IGFscGhhIHZlcnNpb24gb2YgdGhlIGRyaXZlci0tbWFueSBrbm93biBsaW1pdGF0aW9ucyBhbmQgYnVncy4KKyoKKyoKKyogIExvY2tpbmcgYW5kIFNNUAorKgorKiAgLSBFYWNoIHBvcnQsIGluY2x1ZGluZyB0aGUgb3V0LW9mLWJhbmQgcG9ydCwgaGFzIGEgbG9jayB1c2VkIHRvCisqICAgIHNlcmlhbGl6ZSBhbGwgYWNjZXNzIHRvIHRoZSBwb3J0J3MgcHJpdmF0ZSBzdHJ1Y3R1cmUuCisqICAtIFRoZSBwb3J0IGxvY2sgaXMgYWxzbyB1c2VkIHRvIHNlcmlhbGl6ZSBhbGwgd3JpdGVzIGFuZCBhY2Nlc3MgdG8KKyogICAgdGhlIHBvcnQncyBVUkIuCisqICAtIFRoZSBwb3J0IGxvY2sgaXMgYWxzbyB1c2VkIGZvciB0aGUgcG9ydCB3cml0ZV93YWl0IGNvbmRpdGlvbgorKiAgICB2YXJpYWJsZS4gIEhvbGRpbmcgdGhlIHBvcnQgbG9jayB3aWxsIHByZXZlbnQgYSB3YWtlIHVwIG9uIHRoZQorKiAgICBwb3J0J3Mgd3JpdGVfd2FpdDsgdGhpcyBjYW4gYmUgdXNlZCB3aXRoIGNvbmRfd2FpdF8uLi4gdG8gYmUgc3VyZQorKiAgICB0aGUgd2FrZSB1cCBpcyBub3QgbG9zdCBpbiBhIHJhY2Ugd2hlbiBkcm9wcGluZyB0aGUgbG9jayBhbmQKKyogICAgc2xlZXBpbmcgd2FpdGluZyBmb3IgdGhlIHdha2V1cC4KKyogIC0gZGlnaV93cml0ZSgpIGRvZXMgbm90IHNsZWVwLCBzaW5jZSBpdCBpcyBzb21ldGltZXMgY2FsbGVkIG9uCisqICAgIGludGVycnVwdCB0aW1lLgorKiAgLSBkaWdpX3dyaXRlX2J1bGtfY2FsbGJhY2soKSBhbmQgZGlnaV9yZWFkX2J1bGtfY2FsbGJhY2soKSBhcmUKKyogICAgY2FsbGVkIGRpcmVjdGx5IGZyb20gaW50ZXJydXB0cy4gIEhlbmNlIHNwaW5fbG9ja19pcnFzYXZlKCkKKyogICAgYW5kIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoKSBhcmUgdXNlZCBpbiB0aGUgcmVzdCBvZiB0aGUgY29kZQorKiAgICBmb3IgYW55IGxvY2tzIHRoZXkgYWNxdWlyZS4KKyogIC0gZGlnaV93cml0ZV9idWxrX2NhbGxiYWNrKCkgZ2V0cyB0aGUgcG9ydCBsb2NrIGJlZm9yZSB3YWtpbmcgdXAKKyogICAgcHJvY2Vzc2VzIHNsZWVwaW5nIG9uIHRoZSBwb3J0IHdyaXRlX3dhaXQuICBJdCBhbHNvIHNjaGVkdWxlcworKiAgICB3YWtlIHVwcyBzbyB0aGV5IGhhcHBlbiBmcm9tIHRoZSBzY2hlZHVsZXIsIGJlY2F1c2UgdGhlIHR0eQorKiAgICBzeXN0ZW0gY2FuIG1pc3Mgd2FrZSB1cHMgZnJvbSBpbnRlcnJ1cHRzLgorKiAgLSBBbGwgc2xlZXBzIHVzZSBhIHRpbWVvdXQgb2YgRElHSV9SRVRSWV9USU1FT1VUIGJlZm9yZSBsb29waW5nIHRvCisqICAgIHJlY2hlY2sgdGhlIGNvbmRpdGlvbiB0aGV5IGFyZSBzbGVlcGluZyBvbi4gIFRoaXMgaXMgZGVmZW5zaXZlLAorKiAgICBpbiBjYXNlIGEgd2FrZSB1cCBpcyBsb3N0LgorKiAgLSBGb2xsb3dpbmcgRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2tlcm5lbC1sb2NraW5nLnBkZiBubyBzcGluIGxvY2tzCisqICAgIGFyZSBoZWxkIHdoZW4gY2FsbGluZyBjb3B5X3RvL2Zyb21fdXNlciBvciBwcmludGsuCisqICAgIAorKiAgJElkOiBkaWdpX2FjY2VsZXBvcnQuYyx2IDEuODAuMS4yIDIwMDAvMTEvMDIgMDU6NDU6MDggcm9vdCBFeHAgJAorKi8KKworI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC90dHkuaD4KKyNpbmNsdWRlIDxsaW51eC90dHlfZHJpdmVyLmg+CisjaW5jbHVkZSA8bGludXgvdHR5X2ZsaXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgorI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvdXNiLmg+CisjaW5jbHVkZSA8bGludXgvd2FpdC5oPgorI2luY2x1ZGUgInVzYi1zZXJpYWwuaCIKKworLyogRGVmaW5lcyAqLworCisvKgorICogVmVyc2lvbiBJbmZvcm1hdGlvbgorICovCisjZGVmaW5lIERSSVZFUl9WRVJTSU9OICJ2MS44MC4xLjIiCisjZGVmaW5lIERSSVZFUl9BVVRIT1IgIlBldGVyIEJlcmdlciA8cGJlcmdlckBicmltc29uLmNvbT4sIEFsIEJvcmNoZXJzIDxib3JjaGVyc0BzdGVpbmVycG9pbnQuY29tPiIKKyNkZWZpbmUgRFJJVkVSX0RFU0MgIkRpZ2kgQWNjZWxlUG9ydCBVU0ItMi9VU0ItNCBTZXJpYWwgQ29udmVydGVyIGRyaXZlciIKKworLyogcG9ydCBvdXRwdXQgYnVmZmVyIGxlbmd0aCAtLSBtdXN0IGJlIDw9IHRyYW5zZmVyIGJ1ZmZlciBsZW5ndGggLSAyICovCisvKiBzbyB3ZSBjYW4gYmUgc3VyZSB0byBzZW5kIHRoZSBmdWxsIGJ1ZmZlciBpbiBvbmUgdXJiICovCisjZGVmaW5lIERJR0lfT1VUX0JVRl9TSVpFCQk4CisKKy8qIHBvcnQgaW5wdXQgYnVmZmVyIGxlbmd0aCAtLSBtdXN0IGJlID49IHRyYW5zZmVyIGJ1ZmZlciBsZW5ndGggLSAzICovCisvKiBzbyB3ZSBjYW4gYmUgc3VyZSB0byBob2xkIGF0IGxlYXN0IG9uZSBmdWxsIGJ1ZmZlciBmcm9tIG9uZSB1cmIgKi8KKyNkZWZpbmUgRElHSV9JTl9CVUZfU0laRQkJNjQKKworLyogcmV0cnkgdGltZW91dCB3aGlsZSBzbGVlcGluZyAqLworI2RlZmluZSBESUdJX1JFVFJZX1RJTUVPVVQJCShIWi8xMCkKKworLyogdGltZW91dCB3aGlsZSB3YWl0aW5nIGZvciB0dHkgb3V0cHV0IHRvIGRyYWluIGluIGNsb3NlICovCisvKiB0aGlzIGRlbGF5IGlzIHVzZWQgdHdpY2UgaW4gY2xvc2UsIHNvIHRoZSB0b3RhbCBkZWxheSBjb3VsZCAqLworLyogYmUgdHdpY2UgdGhpcyB2YWx1ZSAqLworI2RlZmluZSBESUdJX0NMT1NFX1RJTUVPVVQJCSg1KkhaKQorCisKKy8qIEFjY2VsZVBvcnQgVVNCIERlZmluZXMgKi8KKworLyogaWRzICovCisjZGVmaW5lIERJR0lfVkVORE9SX0lECQkJMHgwNWM1CisjZGVmaW5lIERJR0lfMl9JRAkJCTB4MDAwMgkvKiBVU0ItMiAqLworI2RlZmluZSBESUdJXzRfSUQJCQkweDAwMDQJLyogVVNCLTQgKi8KKworLyogY29tbWFuZHMKKyAqICJJTkIiOiBjYW4gYmUgdXNlZCBvbiB0aGUgaW4tYmFuZCBlbmRwb2ludAorICogIk9PQiI6IGNhbiBiZSB1c2VkIG9uIHRoZSBvdXQtb2YtYmFuZCBlbmRwb2ludAorICovCisjZGVmaW5lIERJR0lfQ01EX1NFVF9CQVVEX1JBVEUJCQkwCS8qIElOQiwgT09CICovCisjZGVmaW5lIERJR0lfQ01EX1NFVF9XT1JEX1NJWkUJCQkxCS8qIElOQiwgT09CICovCisjZGVmaW5lIERJR0lfQ01EX1NFVF9QQVJJVFkJCQkyCS8qIElOQiwgT09CICovCisjZGVmaW5lIERJR0lfQ01EX1NFVF9TVE9QX0JJVFMJCQkzCS8qIElOQiwgT09CICovCisjZGVmaW5lIERJR0lfQ01EX1NFVF9JTlBVVF9GTE9XX0NPTlRST0wJCTQJLyogSU5CLCBPT0IgKi8KKyNkZWZpbmUgRElHSV9DTURfU0VUX09VVFBVVF9GTE9XX0NPTlRST0wJNQkvKiBJTkIsIE9PQiAqLworI2RlZmluZSBESUdJX0NNRF9TRVRfRFRSX1NJR05BTAkJCTYJLyogSU5CLCBPT0IgKi8KKyNkZWZpbmUgRElHSV9DTURfU0VUX1JUU19TSUdOQUwJCQk3CS8qIElOQiwgT09CICovCisjZGVmaW5lIERJR0lfQ01EX1JFQURfSU5QVVRfU0lHTkFMUwkJOAkvKiAgICAgIE9PQiAqLworI2RlZmluZSBESUdJX0NNRF9JRkxVU0hfRklGTwkJCTkJLyogICAgICBPT0IgKi8KKyNkZWZpbmUgRElHSV9DTURfUkVDRUlWRV9FTkFCTEUJCQkxMAkvKiBJTkIsIE9PQiAqLworI2RlZmluZSBESUdJX0NNRF9CUkVBS19DT05UUk9MCQkJMTEJLyogSU5CLCBPT0IgKi8KKyNkZWZpbmUgRElHSV9DTURfTE9DQUxfTE9PUEJBQ0sJCQkxMgkvKiBJTkIsIE9PQiAqLworI2RlZmluZSBESUdJX0NNRF9UUkFOU01JVF9JRExFCQkJMTMJLyogSU5CLCBPT0IgKi8KKyNkZWZpbmUgRElHSV9DTURfUkVBRF9VQVJUX1JFR0lTVEVSCQkxNAkvKiAgICAgIE9PQiAqLworI2RlZmluZSBESUdJX0NNRF9XUklURV9VQVJUX1JFR0lTVEVSCQkxNQkvKiBJTkIsIE9PQiAqLworI2RlZmluZSBESUdJX0NNRF9BTkRfVUFSVF9SRUdJU1RFUgkJMTYJLyogSU5CLCBPT0IgKi8KKyNkZWZpbmUgRElHSV9DTURfT1JfVUFSVF9SRUdJU1RFUgkJMTcJLyogSU5CLCBPT0IgKi8KKyNkZWZpbmUgRElHSV9DTURfU0VORF9EQVRBCQkJMTgJLyogSU5CICAgICAgKi8KKyNkZWZpbmUgRElHSV9DTURfUkVDRUlWRV9EQVRBCQkJMTkJLyogSU5CICAgICAgKi8KKyNkZWZpbmUgRElHSV9DTURfUkVDRUlWRV9ESVNBQkxFCQkyMAkvKiBJTkIgICAgICAqLworI2RlZmluZSBESUdJX0NNRF9HRVRfUE9SVF9UWVBFCQkJMjEJLyogICAgICBPT0IgKi8KKworLyogYmF1ZCByYXRlcyAqLworI2RlZmluZSBESUdJX0JBVURfNTAJCQkJMAorI2RlZmluZSBESUdJX0JBVURfNzUJCQkJMQorI2RlZmluZSBESUdJX0JBVURfMTEwCQkJCTIKKyNkZWZpbmUgRElHSV9CQVVEXzE1MAkJCQkzCisjZGVmaW5lIERJR0lfQkFVRF8yMDAJCQkJNAorI2RlZmluZSBESUdJX0JBVURfMzAwCQkJCTUKKyNkZWZpbmUgRElHSV9CQVVEXzYwMAkJCQk2CisjZGVmaW5lIERJR0lfQkFVRF8xMjAwCQkJCTcKKyNkZWZpbmUgRElHSV9CQVVEXzE4MDAJCQkJOAorI2RlZmluZSBESUdJX0JBVURfMjQwMAkJCQk5CisjZGVmaW5lIERJR0lfQkFVRF80ODAwCQkJCTEwCisjZGVmaW5lIERJR0lfQkFVRF83MjAwCQkJCTExCisjZGVmaW5lIERJR0lfQkFVRF85NjAwCQkJCTEyCisjZGVmaW5lIERJR0lfQkFVRF8xNDQwMAkJCQkxMworI2RlZmluZSBESUdJX0JBVURfMTkyMDAJCQkJMTQKKyNkZWZpbmUgRElHSV9CQVVEXzI4ODAwCQkJCTE1CisjZGVmaW5lIERJR0lfQkFVRF8zODQwMAkJCQkxNgorI2RlZmluZSBESUdJX0JBVURfNTc2MDAJCQkJMTcKKyNkZWZpbmUgRElHSV9CQVVEXzc2ODAwCQkJCTE4CisjZGVmaW5lIERJR0lfQkFVRF8xMTUyMDAJCQkxOQorI2RlZmluZSBESUdJX0JBVURfMTUzNjAwCQkJMjAKKyNkZWZpbmUgRElHSV9CQVVEXzIzMDQwMAkJCTIxCisjZGVmaW5lIERJR0lfQkFVRF80NjA4MDAJCQkyMgorCisvKiBhcmd1bWVudHMgKi8KKyNkZWZpbmUgRElHSV9XT1JEX1NJWkVfNQkJCTAKKyNkZWZpbmUgRElHSV9XT1JEX1NJWkVfNgkJCTEKKyNkZWZpbmUgRElHSV9XT1JEX1NJWkVfNwkJCTIKKyNkZWZpbmUgRElHSV9XT1JEX1NJWkVfOAkJCTMKKworI2RlZmluZSBESUdJX1BBUklUWV9OT05FCQkJMAorI2RlZmluZSBESUdJX1BBUklUWV9PREQJCQkJMQorI2RlZmluZSBESUdJX1BBUklUWV9FVkVOCQkJMgorI2RlZmluZSBESUdJX1BBUklUWV9NQVJLCQkJMworI2RlZmluZSBESUdJX1BBUklUWV9TUEFDRQkJCTQKKworI2RlZmluZSBESUdJX1NUT1BfQklUU18xCQkJMAorI2RlZmluZSBESUdJX1NUT1BfQklUU18yCQkJMQorCisjZGVmaW5lIERJR0lfSU5QVVRfRkxPV19DT05UUk9MX1hPTl9YT0ZGCTEKKyNkZWZpbmUgRElHSV9JTlBVVF9GTE9XX0NPTlRST0xfUlRTCQkyCisjZGVmaW5lIERJR0lfSU5QVVRfRkxPV19DT05UUk9MX0RUUgkJNAorCisjZGVmaW5lIERJR0lfT1VUUFVUX0ZMT1dfQ09OVFJPTF9YT05fWE9GRgkxCisjZGVmaW5lIERJR0lfT1VUUFVUX0ZMT1dfQ09OVFJPTF9DVFMJCTIKKyNkZWZpbmUgRElHSV9PVVRQVVRfRkxPV19DT05UUk9MX0RTUgkJNAorCisjZGVmaW5lIERJR0lfRFRSX0lOQUNUSVZFCQkJMAorI2RlZmluZSBESUdJX0RUUl9BQ1RJVkUJCQkJMQorI2RlZmluZSBESUdJX0RUUl9JTlBVVF9GTE9XX0NPTlRST0wJCTIKKworI2RlZmluZSBESUdJX1JUU19JTkFDVElWRQkJCTAKKyNkZWZpbmUgRElHSV9SVFNfQUNUSVZFCQkJCTEKKyNkZWZpbmUgRElHSV9SVFNfSU5QVVRfRkxPV19DT05UUk9MCQkyCisjZGVmaW5lIERJR0lfUlRTX1RPR0dMRQkJCQkzCisKKyNkZWZpbmUgRElHSV9GTFVTSF9UWAkJCQkxCisjZGVmaW5lIERJR0lfRkxVU0hfUlgJCQkJMgorI2RlZmluZSBESUdJX1JFU1VNRV9UWAkJCQk0IC8qIGNsZWFycyB4b2ZmIGNvbmRpdGlvbiAqLworCisjZGVmaW5lIERJR0lfVFJBTlNNSVRfTk9UX0lETEUJCQkwCisjZGVmaW5lIERJR0lfVFJBTlNNSVRfSURMRQkJCTEKKworI2RlZmluZSBESUdJX0RJU0FCTEUJCQkJMAorI2RlZmluZSBESUdJX0VOQUJMRQkJCQkxCisKKyNkZWZpbmUgRElHSV9ERUFTU0VSVAkJCQkwCisjZGVmaW5lIERJR0lfQVNTRVJUCQkJCTEKKworLyogaW4gYmFuZCBzdGF0dXMgY29kZXMgKi8KKyNkZWZpbmUgRElHSV9PVkVSUlVOX0VSUk9SCQkJNAorI2RlZmluZSBESUdJX1BBUklUWV9FUlJPUgkJCTgKKyNkZWZpbmUgRElHSV9GUkFNSU5HX0VSUk9SCQkJMTYKKyNkZWZpbmUgRElHSV9CUkVBS19FUlJPUgkJCTMyCisKKy8qIG91dCBvZiBiYW5kIHN0YXR1cyAqLworI2RlZmluZSBESUdJX05PX0VSUk9SCQkJCTAKKyNkZWZpbmUgRElHSV9CQURfRklSU1RfUEFSQU1FVEVSCQkxCisjZGVmaW5lIERJR0lfQkFEX1NFQ09ORF9QQVJBTUVURVIJCTIKKyNkZWZpbmUgRElHSV9JTlZBTElEX0xJTkUJCQkzCisjZGVmaW5lIERJR0lfSU5WQUxJRF9PUENPREUJCQk0CisKKy8qIGlucHV0IHNpZ25hbHMgKi8KKyNkZWZpbmUgRElHSV9SRUFEX0lOUFVUX1NJR05BTFNfU0xPVAkJMQorI2RlZmluZSBESUdJX1JFQURfSU5QVVRfU0lHTkFMU19FUlIJCTIKKyNkZWZpbmUgRElHSV9SRUFEX0lOUFVUX1NJR05BTFNfQlVTWQkJNAorI2RlZmluZSBESUdJX1JFQURfSU5QVVRfU0lHTkFMU19QRQkJOAorI2RlZmluZSBESUdJX1JFQURfSU5QVVRfU0lHTkFMU19DVFMJCTE2CisjZGVmaW5lIERJR0lfUkVBRF9JTlBVVF9TSUdOQUxTX0RTUgkJMzIKKyNkZWZpbmUgRElHSV9SRUFEX0lOUFVUX1NJR05BTFNfUkkJCTY0CisjZGVmaW5lIERJR0lfUkVBRF9JTlBVVF9TSUdOQUxTX0RDRAkJMTI4CisKKworLyogU3RydWN0dXJlcyAqLworCitzdHJ1Y3QgZGlnaV9zZXJpYWwgeworCXNwaW5sb2NrX3QgZHNfc2VyaWFsX2xvY2s7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqZHNfb29iX3BvcnQ7CS8qIG91dC1vZi1iYW5kIHBvcnQgKi8KKwlpbnQgZHNfb29iX3BvcnRfbnVtOwkJCS8qIGluZGV4IG9mIG91dC1vZi1iYW5kIHBvcnQgKi8KKwlpbnQgZHNfZGV2aWNlX3N0YXJ0ZWQ7Cit9OworCitzdHJ1Y3QgZGlnaV9wb3J0IHsKKwlzcGlubG9ja190IGRwX3BvcnRfbG9jazsKKwlpbnQgZHBfcG9ydF9udW07CisJaW50IGRwX291dF9idWZfbGVuOworCXVuc2lnbmVkIGNoYXIgZHBfb3V0X2J1ZltESUdJX09VVF9CVUZfU0laRV07CisJaW50IGRwX2luX2J1Zl9sZW47CisJdW5zaWduZWQgY2hhciBkcF9pbl9idWZbRElHSV9JTl9CVUZfU0laRV07CisJdW5zaWduZWQgY2hhciBkcF9pbl9mbGFnX2J1ZltESUdJX0lOX0JVRl9TSVpFXTsKKwlpbnQgZHBfd3JpdGVfdXJiX2luX3VzZTsKKwl1bnNpZ25lZCBpbnQgZHBfbW9kZW1fc2lnbmFsczsKKwl3YWl0X3F1ZXVlX2hlYWRfdCBkcF9tb2RlbV9jaGFuZ2Vfd2FpdDsKKwlpbnQgZHBfdHJhbnNtaXRfaWRsZTsKKwl3YWl0X3F1ZXVlX2hlYWRfdCBkcF90cmFuc21pdF9pZGxlX3dhaXQ7CisJaW50IGRwX3Rocm90dGxlZDsKKwlpbnQgZHBfdGhyb3R0bGVfcmVzdGFydDsKKwl3YWl0X3F1ZXVlX2hlYWRfdCBkcF9mbHVzaF93YWl0OworCWludCBkcF9pbl9jbG9zZTsJCQkvKiBjbG9zZSBpbiBwcm9ncmVzcyAqLworCXdhaXRfcXVldWVfaGVhZF90IGRwX2Nsb3NlX3dhaXQ7CS8qIHdhaXQgcXVldWUgZm9yIGNsb3NlICovCisJc3RydWN0IHdvcmtfc3RydWN0IGRwX3dha2V1cF93b3JrOworfTsKKworCisvKiBMb2NhbCBGdW5jdGlvbiBEZWNsYXJhdGlvbnMgKi8KKworc3RhdGljIHZvaWQgZGlnaV93YWtldXBfd3JpdGUoIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgKTsKK3N0YXRpYyB2b2lkIGRpZ2lfd2FrZXVwX3dyaXRlX2xvY2sodm9pZCAqKTsKK3N0YXRpYyBpbnQgZGlnaV93cml0ZV9vb2JfY29tbWFuZCggc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwKKwl1bnNpZ25lZCBjaGFyICpidWYsIGludCBjb3VudCwgaW50IGludGVycnVwdGlibGUgKTsKK3N0YXRpYyBpbnQgZGlnaV93cml0ZV9pbmJfY29tbWFuZCggc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwKKwl1bnNpZ25lZCBjaGFyICpidWYsIGludCBjb3VudCwgdW5zaWduZWQgbG9uZyB0aW1lb3V0ICk7CitzdGF0aWMgaW50IGRpZ2lfc2V0X21vZGVtX3NpZ25hbHMoIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCisJdW5zaWduZWQgaW50IG1vZGVtX3NpZ25hbHMsIGludCBpbnRlcnJ1cHRpYmxlICk7CitzdGF0aWMgaW50IGRpZ2lfdHJhbnNtaXRfaWRsZSggc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwKKwl1bnNpZ25lZCBsb25nIHRpbWVvdXQgKTsKK3N0YXRpYyB2b2lkIGRpZ2lfcnhfdGhyb3R0bGUgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworc3RhdGljIHZvaWQgZGlnaV9yeF91bnRocm90dGxlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KTsKK3N0YXRpYyB2b2lkIGRpZ2lfc2V0X3Rlcm1pb3MoIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIAorCXN0cnVjdCB0ZXJtaW9zICpvbGRfdGVybWlvcyApOworc3RhdGljIHZvaWQgZGlnaV9icmVha19jdGwoIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIGludCBicmVha19zdGF0ZSApOworc3RhdGljIGludCBkaWdpX2lvY3RsKCBzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlsZSwKKwl1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyApOworc3RhdGljIGludCBkaWdpX3Rpb2NtZ2V0KCBzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlsZSApOworc3RhdGljIGludCBkaWdpX3Rpb2Ntc2V0KCBzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlsZSwKKwl1bnNpZ25lZCBpbnQgc2V0LCB1bnNpZ25lZCBpbnQgY2xlYXIgKTsKK3N0YXRpYyBpbnQgZGlnaV93cml0ZSggc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQgKTsKK3N0YXRpYyB2b2lkIGRpZ2lfd3JpdGVfYnVsa19jYWxsYmFjayggc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyApOworc3RhdGljIGludCBkaWdpX3dyaXRlX3Jvb20oIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgKTsKK3N0YXRpYyBpbnQgZGlnaV9jaGFyc19pbl9idWZmZXIoIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgKTsKK3N0YXRpYyBpbnQgZGlnaV9vcGVuKCBzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlscCApOworc3RhdGljIHZvaWQgZGlnaV9jbG9zZSggc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbHAgKTsKK3N0YXRpYyBpbnQgZGlnaV9zdGFydHVwX2RldmljZSggc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCApOworc3RhdGljIGludCBkaWdpX3N0YXJ0dXAoIHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgKTsKK3N0YXRpYyB2b2lkIGRpZ2lfc2h1dGRvd24oIHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgKTsKK3N0YXRpYyB2b2lkIGRpZ2lfcmVhZF9idWxrX2NhbGxiYWNrKCBzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzICk7CitzdGF0aWMgaW50IGRpZ2lfcmVhZF9pbmJfY2FsbGJhY2soIHN0cnVjdCB1cmIgKnVyYiApOworc3RhdGljIGludCBkaWdpX3JlYWRfb29iX2NhbGxiYWNrKCBzdHJ1Y3QgdXJiICp1cmIgKTsKKworCisvKiBTdGF0aWNzICovCisKK3N0YXRpYyBpbnQgZGVidWc7CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90YWJsZV9jb21iaW5lZCBbXSA9IHsKKwl7IFVTQl9ERVZJQ0UoRElHSV9WRU5ET1JfSUQsIERJR0lfMl9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoRElHSV9WRU5ET1JfSUQsIERJR0lfNF9JRCkgfSwKKwl7IH0JCQkJCQkvKiBUZXJtaW5hdGluZyBlbnRyeSAqLworfTsKKworc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlXzIgW10gPSB7CisJeyBVU0JfREVWSUNFKERJR0lfVkVORE9SX0lELCBESUdJXzJfSUQpIH0sCisJeyB9CQkJCQkJLyogVGVybWluYXRpbmcgZW50cnkgKi8KK307CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90YWJsZV80IFtdID0geworCXsgVVNCX0RFVklDRShESUdJX1ZFTkRPUl9JRCwgRElHSV80X0lEKSB9LAorCXsgfQkJCQkJCS8qIFRlcm1pbmF0aW5nIGVudHJ5ICovCit9OworCitNT0RVTEVfREVWSUNFX1RBQkxFICh1c2IsIGlkX3RhYmxlX2NvbWJpbmVkKTsKKworc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIGRpZ2lfZHJpdmVyID0geworCS5vd25lciA9CVRISVNfTU9EVUxFLAorCS5uYW1lID0JCSJkaWdpX2FjY2VsZXBvcnQiLAorCS5wcm9iZSA9CXVzYl9zZXJpYWxfcHJvYmUsCisJLmRpc2Nvbm5lY3QgPQl1c2Jfc2VyaWFsX2Rpc2Nvbm5lY3QsCisJLmlkX3RhYmxlID0JaWRfdGFibGVfY29tYmluZWQsCit9OworCisKKy8qIGRldmljZSBpbmZvIG5lZWRlZCBmb3IgdGhlIERpZ2kgc2VyaWFsIGNvbnZlcnRlciAqLworCitzdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUgZGlnaV9hY2NlbGVwb3J0XzJfZGV2aWNlID0geworCS5vd25lciA9CQkJVEhJU19NT0RVTEUsCisJLm5hbWUgPQkJCQkiRGlnaSAyIHBvcnQgVVNCIGFkYXB0ZXIiLAorCS5zaG9ydF9uYW1lID0JCQkiZGlnaV8yIiwKKwkuaWRfdGFibGUgPQkJCWlkX3RhYmxlXzIsCisJLm51bV9pbnRlcnJ1cHRfaW4gPQkJMCwKKwkubnVtX2J1bGtfaW4gPQkJCTQsCisJLm51bV9idWxrX291dCA9CQkJNCwKKwkubnVtX3BvcnRzID0JCQkzLAorCS5vcGVuID0JCQkJZGlnaV9vcGVuLAorCS5jbG9zZSA9CQkJZGlnaV9jbG9zZSwKKwkud3JpdGUgPQkJCWRpZ2lfd3JpdGUsCisJLndyaXRlX3Jvb20gPQkJCWRpZ2lfd3JpdGVfcm9vbSwKKwkud3JpdGVfYnVsa19jYWxsYmFjayA9IAkJZGlnaV93cml0ZV9idWxrX2NhbGxiYWNrLAorCS5yZWFkX2J1bGtfY2FsbGJhY2sgPQkJZGlnaV9yZWFkX2J1bGtfY2FsbGJhY2ssCisJLmNoYXJzX2luX2J1ZmZlciA9CQlkaWdpX2NoYXJzX2luX2J1ZmZlciwKKwkudGhyb3R0bGUgPQkJCWRpZ2lfcnhfdGhyb3R0bGUsCisJLnVudGhyb3R0bGUgPQkJCWRpZ2lfcnhfdW50aHJvdHRsZSwKKwkuaW9jdGwgPQkJCWRpZ2lfaW9jdGwsCisJLnNldF90ZXJtaW9zID0JCQlkaWdpX3NldF90ZXJtaW9zLAorCS5icmVha19jdGwgPQkJCWRpZ2lfYnJlYWtfY3RsLAorCS50aW9jbWdldCA9CQkJZGlnaV90aW9jbWdldCwKKwkudGlvY21zZXQgPQkJCWRpZ2lfdGlvY21zZXQsCisJLmF0dGFjaCA9CQkJZGlnaV9zdGFydHVwLAorCS5zaHV0ZG93biA9CQkJZGlnaV9zaHV0ZG93biwKK307CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kZXZpY2VfdHlwZSBkaWdpX2FjY2VsZXBvcnRfNF9kZXZpY2UgPSB7CisJLm93bmVyID0JCQlUSElTX01PRFVMRSwKKwkubmFtZSA9CQkJCSJEaWdpIDQgcG9ydCBVU0IgYWRhcHRlciIsCisJLnNob3J0X25hbWUgPQkJCSJkaWdpXzQiLAorCS5pZF90YWJsZSA9CQkJaWRfdGFibGVfNCwKKwkubnVtX2ludGVycnVwdF9pbiA9CQkwLAorCS5udW1fYnVsa19pbiA9CQkJNSwKKwkubnVtX2J1bGtfb3V0ID0JCQk1LAorCS5udW1fcG9ydHMgPQkJCTQsCisJLm9wZW4gPQkJCQlkaWdpX29wZW4sCisJLmNsb3NlID0JCQlkaWdpX2Nsb3NlLAorCS53cml0ZSA9CQkJZGlnaV93cml0ZSwKKwkud3JpdGVfcm9vbSA9CQkJZGlnaV93cml0ZV9yb29tLAorCS53cml0ZV9idWxrX2NhbGxiYWNrID0gCQlkaWdpX3dyaXRlX2J1bGtfY2FsbGJhY2ssCisJLnJlYWRfYnVsa19jYWxsYmFjayA9CQlkaWdpX3JlYWRfYnVsa19jYWxsYmFjaywKKwkuY2hhcnNfaW5fYnVmZmVyID0JCWRpZ2lfY2hhcnNfaW5fYnVmZmVyLAorCS50aHJvdHRsZSA9CQkJZGlnaV9yeF90aHJvdHRsZSwKKwkudW50aHJvdHRsZSA9CQkJZGlnaV9yeF91bnRocm90dGxlLAorCS5pb2N0bCA9CQkJZGlnaV9pb2N0bCwKKwkuc2V0X3Rlcm1pb3MgPQkJCWRpZ2lfc2V0X3Rlcm1pb3MsCisJLmJyZWFrX2N0bCA9CQkJZGlnaV9icmVha19jdGwsCisJLnRpb2NtZ2V0ID0JCQlkaWdpX3Rpb2NtZ2V0LAorCS50aW9jbXNldCA9CQkJZGlnaV90aW9jbXNldCwKKwkuYXR0YWNoID0JCQlkaWdpX3N0YXJ0dXAsCisJLnNodXRkb3duID0JCQlkaWdpX3NodXRkb3duLAorfTsKKworCisvKiBGdW5jdGlvbnMgKi8KKworLyoKKyogIENvbmQgV2FpdCBJbnRlcnJ1cHRpYmxlIFRpbWVvdXQgSXJxcmVzdG9yZQorKgorKiAgRG8gc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSBhbmQgaW50ZXJydXB0aWJsZV9zbGVlcF9vbl90aW1lb3V0CisqICBzbyB0aGF0IHdha2UgdXBzIGFyZSBub3QgbG9zdCBpZiB0aGV5IG9jY3VyIGJldHdlZW4gdGhlIHVubG9jaworKiAgYW5kIHRoZSBzbGVlcC4gIEluIG90aGVyIHdvcmRzLCBzcGluX3VubG9ja19pcnFyZXN0b3JlIGFuZAorKiAgaW50ZXJydXB0aWJsZV9zbGVlcF9vbl90aW1lb3V0IGFyZSAiYXRvbWljIiB3aXRoIHJlc3BlY3QgdG8KKyogIHdha2UgdXBzLiAgVGhpcyBpcyB1c2VkIHRvIGltcGxlbWVudCBjb25kaXRpb24gdmFyaWFibGVzLgorKi8KKworc3RhdGljIGlubGluZSBsb25nIGNvbmRfd2FpdF9pbnRlcnJ1cHRpYmxlX3RpbWVvdXRfaXJxcmVzdG9yZSgKKwl3YWl0X3F1ZXVlX2hlYWRfdCAqcSwgbG9uZyB0aW1lb3V0LAorCXNwaW5sb2NrX3QgKmxvY2ssIHVuc2lnbmVkIGxvbmcgZmxhZ3MgKQoreworCURFRklORV9XQUlUKHdhaXQpOworCisJcHJlcGFyZV90b193YWl0KHEsICZ3YWl0LCBUQVNLX1VOSU5URVJSVVBUSUJMRSk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShsb2NrLCBmbGFncyk7CisJdGltZW91dCA9IHNjaGVkdWxlX3RpbWVvdXQodGltZW91dCk7CisJZmluaXNoX3dhaXQocSwgJndhaXQpOworCisJcmV0dXJuIHRpbWVvdXQ7CisKK30KKworCisvKgorKiAgRGlnaSBXYWtldXAgV3JpdGUKKyoKKyogIFdha2UgdXAgcG9ydCwgbGluZSBkaXNjaXBsaW5lLCBhbmQgdHR5IHByb2Nlc3NlcyBzbGVlcGluZworKiAgb24gd3JpdGVzLgorKi8KKworc3RhdGljIHZvaWQgZGlnaV93YWtldXBfd3JpdGVfbG9jayh2b2lkICphcmcpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IGFyZzsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXN0cnVjdCBkaWdpX3BvcnQgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisKKworCXNwaW5fbG9ja19pcnFzYXZlKCAmcHJpdi0+ZHBfcG9ydF9sb2NrLCBmbGFncyApOworCWRpZ2lfd2FrZXVwX3dyaXRlKCBwb3J0ICk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSggJnByaXYtPmRwX3BvcnRfbG9jaywgZmxhZ3MgKTsKK30KKworc3RhdGljIHZvaWQgZGlnaV93YWtldXBfd3JpdGUoIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgKQoreworCisJc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSA9IHBvcnQtPnR0eTsKKworCisJLyogd2FrZSB1cCBwb3J0IHByb2Nlc3NlcyAqLworCXdha2VfdXBfaW50ZXJydXB0aWJsZSggJnBvcnQtPndyaXRlX3dhaXQgKTsKKworCS8qIHdha2UgdXAgbGluZSBkaXNjaXBsaW5lICovCisJdHR5X3dha2V1cCh0dHkpOworfQorCisKKy8qCisqICBEaWdpIFdyaXRlIE9PQiBDb21tYW5kCisqCisqICBXcml0ZSBjb21tYW5kcyBvbiB0aGUgb3V0IG9mIGJhbmQgcG9ydC4gIENvbW1hbmRzIGFyZSA0CisqICBieXRlcyBlYWNoLCBtdWx0aXBsZSBjb21tYW5kcyBjYW4gYmUgc2VudCBhdCBvbmNlLCBhbmQKKyogIG5vIGNvbW1hbmQgd2lsbCBiZSBzcGxpdCBhY3Jvc3MgVVNCIHBhY2tldHMuICBSZXR1cm5zIDAKKyogIGlmIHN1Y2Nlc3NmdWwsIC1FSU5UUiBpZiBpbnRlcnJ1cHRlZCB3aGlsZSBzbGVlcGluZyBhbmQKKyogIHRoZSBpbnRlcnJ1cHRpYmxlIGZsYWcgaXMgdHJ1ZSwgb3IgYSBuZWdhdGl2ZSBlcnJvcgorKiAgcmV0dXJuZWQgYnkgdXNiX3N1Ym1pdF91cmIuCisqLworCitzdGF0aWMgaW50IGRpZ2lfd3JpdGVfb29iX2NvbW1hbmQoIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCisJdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQsIGludCBpbnRlcnJ1cHRpYmxlICkKK3sKKworCWludCByZXQgPSAwOworCWludCBsZW47CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqb29iX3BvcnQgPSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqKSgoc3RydWN0IGRpZ2lfc2VyaWFsICopKHVzYl9nZXRfc2VyaWFsX2RhdGEocG9ydC0+c2VyaWFsKSkpLT5kc19vb2JfcG9ydDsKKwlzdHJ1Y3QgZGlnaV9wb3J0ICpvb2JfcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShvb2JfcG9ydCk7CisJdW5zaWduZWQgbG9uZyBmbGFncyA9IDA7CisKKworZGJnKCAiZGlnaV93cml0ZV9vb2JfY29tbWFuZDogVE9QOiBwb3J0PSVkLCBjb3VudD0lZCIsIG9vYl9wcml2LT5kcF9wb3J0X251bSwgY291bnQgKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCAmb29iX3ByaXYtPmRwX3BvcnRfbG9jaywgZmxhZ3MgKTsKKworCXdoaWxlKCBjb3VudCA+IDAgKSB7CisKKwkJd2hpbGUoIG9vYl9wb3J0LT53cml0ZV91cmItPnN0YXR1cyA9PSAtRUlOUFJPR1JFU1MKKwkJfHwgb29iX3ByaXYtPmRwX3dyaXRlX3VyYl9pbl91c2UgKSB7CisJCQljb25kX3dhaXRfaW50ZXJydXB0aWJsZV90aW1lb3V0X2lycXJlc3RvcmUoCisJCQkJJm9vYl9wb3J0LT53cml0ZV93YWl0LCBESUdJX1JFVFJZX1RJTUVPVVQsCisJCQkJJm9vYl9wcml2LT5kcF9wb3J0X2xvY2ssIGZsYWdzICk7CisJCQlpZiggaW50ZXJydXB0aWJsZSAmJiBzaWduYWxfcGVuZGluZyhjdXJyZW50KSApIHsKKwkJCQlyZXR1cm4oIC1FSU5UUiApOworCQkJfQorCQkJc3Bpbl9sb2NrX2lycXNhdmUoICZvb2JfcHJpdi0+ZHBfcG9ydF9sb2NrLCBmbGFncyApOworCQl9CisKKwkJLyogbGVuIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA0LCBzbyBjb21tYW5kcyBhcmUgbm90IHNwbGl0ICovCisJCWxlbiA9IG1pbihjb3VudCwgb29iX3BvcnQtPmJ1bGtfb3V0X3NpemUgKTsKKwkJaWYoIGxlbiA+IDQgKQorCQkJbGVuICY9IH4zOworCisJCW1lbWNweSggb29iX3BvcnQtPndyaXRlX3VyYi0+dHJhbnNmZXJfYnVmZmVyLCBidWYsIGxlbiApOworCQlvb2JfcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoID0gbGVuOworCQlvb2JfcG9ydC0+d3JpdGVfdXJiLT5kZXYgPSBwb3J0LT5zZXJpYWwtPmRldjsKKworCQlpZiggKHJldD11c2Jfc3VibWl0X3VyYihvb2JfcG9ydC0+d3JpdGVfdXJiLCBHRlBfQVRPTUlDKSkgPT0gMCApIHsKKwkJCW9vYl9wcml2LT5kcF93cml0ZV91cmJfaW5fdXNlID0gMTsKKwkJCWNvdW50IC09IGxlbjsKKwkJCWJ1ZiArPSBsZW47CisJCX0KKworCX0KKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoICZvb2JfcHJpdi0+ZHBfcG9ydF9sb2NrLCBmbGFncyApOworCisJaWYoIHJldCApIHsKKwkJZXJyKCIlczogdXNiX3N1Ym1pdF91cmIgZmFpbGVkLCByZXQ9JWQiLCBfX0ZVTkNUSU9OX18sCisJCQlyZXQgKTsKKwl9CisKKwlyZXR1cm4oIHJldCApOworCit9CisKKworLyoKKyogIERpZ2kgV3JpdGUgSW4gQmFuZCBDb21tYW5kCisqCisqICBXcml0ZSBjb21tYW5kcyBvbiB0aGUgZ2l2ZW4gcG9ydC4gIENvbW1hbmRzIGFyZSA0CisqICBieXRlcyBlYWNoLCBtdWx0aXBsZSBjb21tYW5kcyBjYW4gYmUgc2VudCBhdCBvbmNlLCBhbmQKKyogIG5vIGNvbW1hbmQgd2lsbCBiZSBzcGxpdCBhY3Jvc3MgVVNCIHBhY2tldHMuICBJZiB0aW1lb3V0CisqICBpcyBub24temVybywgd3JpdGUgaW4gYmFuZCBjb21tYW5kIHdpbGwgcmV0dXJuIGFmdGVyCisqICB3YWl0aW5nIHVuc3VjY2Vzc2Z1bGx5IGZvciB0aGUgVVJCIHN0YXR1cyB0byBjbGVhciBmb3IKKyogIHRpbWVvdXQgdGlja3MuICBSZXR1cm5zIDAgaWYgc3VjY2Vzc2Z1bCwgb3IgYSBuZWdhdGl2ZQorKiAgZXJyb3IgcmV0dXJuZWQgYnkgZGlnaV93cml0ZS4KKyovCisKK3N0YXRpYyBpbnQgZGlnaV93cml0ZV9pbmJfY29tbWFuZCggc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwKKwl1bnNpZ25lZCBjaGFyICpidWYsIGludCBjb3VudCwgdW5zaWduZWQgbG9uZyB0aW1lb3V0ICkKK3sKKworCWludCByZXQgPSAwOworCWludCBsZW47CisJc3RydWN0IGRpZ2lfcG9ydCAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwl1bnNpZ25lZCBjaGFyICpkYXRhID0gcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXI7CisJdW5zaWduZWQgbG9uZyBmbGFncyA9IDA7CisKKworZGJnKCAiZGlnaV93cml0ZV9pbmJfY29tbWFuZDogVE9QOiBwb3J0PSVkLCBjb3VudD0lZCIsIHByaXYtPmRwX3BvcnRfbnVtLAorY291bnQgKTsKKworCWlmKCB0aW1lb3V0ICkKKwkJdGltZW91dCArPSBqaWZmaWVzOworCWVsc2UKKwkJdGltZW91dCA9IFVMT05HX01BWDsKKworCXNwaW5fbG9ja19pcnFzYXZlKCAmcHJpdi0+ZHBfcG9ydF9sb2NrLCBmbGFncyApOworCisJd2hpbGUoIGNvdW50ID4gMCAmJiByZXQgPT0gMCApIHsKKworCQl3aGlsZSggKHBvcnQtPndyaXRlX3VyYi0+c3RhdHVzID09IC1FSU5QUk9HUkVTUworCQl8fCBwcml2LT5kcF93cml0ZV91cmJfaW5fdXNlKSAmJiB0aW1lX2JlZm9yZShqaWZmaWVzLCB0aW1lb3V0KSkgeworCQkJY29uZF93YWl0X2ludGVycnVwdGlibGVfdGltZW91dF9pcnFyZXN0b3JlKAorCQkJCSZwb3J0LT53cml0ZV93YWl0LCBESUdJX1JFVFJZX1RJTUVPVVQsCisJCQkJJnByaXYtPmRwX3BvcnRfbG9jaywgZmxhZ3MgKTsKKwkJCWlmKCBzaWduYWxfcGVuZGluZyhjdXJyZW50KSApIHsKKwkJCQlyZXR1cm4oIC1FSU5UUiApOworCQkJfQorCQkJc3Bpbl9sb2NrX2lycXNhdmUoICZwcml2LT5kcF9wb3J0X2xvY2ssIGZsYWdzICk7CisJCX0KKworCQkvKiBsZW4gbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQgYW5kIHNtYWxsIGVub3VnaCB0byAqLworCQkvKiBndWFyYW50ZWUgdGhlIHdyaXRlIHdpbGwgc2VuZCBidWZmZXJlZCBkYXRhIGZpcnN0LCAqLworCQkvKiBzbyBjb21tYW5kcyBhcmUgaW4gb3JkZXIgd2l0aCBkYXRhIGFuZCBub3Qgc3BsaXQgKi8KKwkJbGVuID0gbWluKGNvdW50LCBwb3J0LT5idWxrX291dF9zaXplLTItcHJpdi0+ZHBfb3V0X2J1Zl9sZW4gKTsKKwkJaWYoIGxlbiA+IDQgKQorCQkJbGVuICY9IH4zOworCisJCS8qIHdyaXRlIGFueSBidWZmZXJlZCBkYXRhIGZpcnN0ICovCisJCWlmKCBwcml2LT5kcF9vdXRfYnVmX2xlbiA+IDAgKSB7CisJCQlkYXRhWzBdID0gRElHSV9DTURfU0VORF9EQVRBOworCQkJZGF0YVsxXSA9IHByaXYtPmRwX291dF9idWZfbGVuOworCQkJbWVtY3B5KCBkYXRhKzIsIHByaXYtPmRwX291dF9idWYsCisJCQkJcHJpdi0+ZHBfb3V0X2J1Zl9sZW4gKTsKKwkJCW1lbWNweSggZGF0YSsyK3ByaXYtPmRwX291dF9idWZfbGVuLCBidWYsIGxlbiApOworCQkJcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoCisJCQkJPSBwcml2LT5kcF9vdXRfYnVmX2xlbisyK2xlbjsKKwkJfSBlbHNlIHsKKwkJCW1lbWNweSggZGF0YSwgYnVmLCBsZW4gKTsKKwkJCXBvcnQtPndyaXRlX3VyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCA9IGxlbjsKKwkJfQorCQlwb3J0LT53cml0ZV91cmItPmRldiA9IHBvcnQtPnNlcmlhbC0+ZGV2OworCisJCWlmKCAocmV0PXVzYl9zdWJtaXRfdXJiKHBvcnQtPndyaXRlX3VyYiwgR0ZQX0FUT01JQykpID09IDAgKSB7CisJCQlwcml2LT5kcF93cml0ZV91cmJfaW5fdXNlID0gMTsKKwkJCXByaXYtPmRwX291dF9idWZfbGVuID0gMDsKKwkJCWNvdW50IC09IGxlbjsKKwkJCWJ1ZiArPSBsZW47CisJCX0KKworCX0KKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoICZwcml2LT5kcF9wb3J0X2xvY2ssIGZsYWdzICk7CisKKwlpZiggcmV0ICkgeworCQllcnIoIiVzOiB1c2Jfc3VibWl0X3VyYiBmYWlsZWQsIHJldD0lZCwgcG9ydD0lZCIsIF9fRlVOQ1RJT05fXywKKwkJcmV0LCBwcml2LT5kcF9wb3J0X251bSApOworCX0KKworCXJldHVybiggcmV0ICk7CisKK30KKworCisvKgorKiAgRGlnaSBTZXQgTW9kZW0gU2lnbmFscworKgorKiAgU2V0cyBvciBjbGVhcnMgRFRSIGFuZCBSVFMgb24gdGhlIHBvcnQsIGFjY29yZGluZyB0byB0aGUKKyogIG1vZGVtX3NpZ25hbHMgYXJndW1lbnQuICBVc2UgVElPQ01fRFRSIGFuZCBUSU9DTV9SVFMgZmxhZ3MKKyogIGZvciB0aGUgbW9kZW1fc2lnbmFscyBhcmd1bWVudC4gIFJldHVybnMgMCBpZiBzdWNjZXNzZnVsLAorKiAgLUVJTlRSIGlmIGludGVycnVwdGVkIHdoaWxlIHNsZWVwaW5nLCBvciBhIG5vbi16ZXJvIGVycm9yCisqICByZXR1cm5lZCBieSB1c2Jfc3VibWl0X3VyYi4KKyovCisKK3N0YXRpYyBpbnQgZGlnaV9zZXRfbW9kZW1fc2lnbmFscyggc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwKKwl1bnNpZ25lZCBpbnQgbW9kZW1fc2lnbmFscywgaW50IGludGVycnVwdGlibGUgKQoreworCisJaW50IHJldDsKKwlzdHJ1Y3QgZGlnaV9wb3J0ICpwb3J0X3ByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqb29iX3BvcnQgPSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqKSgoc3RydWN0IGRpZ2lfc2VyaWFsICopKHVzYl9nZXRfc2VyaWFsX2RhdGEocG9ydC0+c2VyaWFsKSkpLT5kc19vb2JfcG9ydDsKKwlzdHJ1Y3QgZGlnaV9wb3J0ICpvb2JfcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShvb2JfcG9ydCk7CisJdW5zaWduZWQgY2hhciAqZGF0YSA9IG9vYl9wb3J0LT53cml0ZV91cmItPnRyYW5zZmVyX2J1ZmZlcjsKKwl1bnNpZ25lZCBsb25nIGZsYWdzID0gMDsKKworCitkYmcoICJkaWdpX3NldF9tb2RlbV9zaWduYWxzOiBUT1A6IHBvcnQ9JWQsIG1vZGVtX3NpZ25hbHM9MHgleCIsCitwb3J0X3ByaXYtPmRwX3BvcnRfbnVtLCBtb2RlbV9zaWduYWxzICk7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSggJm9vYl9wcml2LT5kcF9wb3J0X2xvY2ssIGZsYWdzICk7CisJc3Bpbl9sb2NrKCAmcG9ydF9wcml2LT5kcF9wb3J0X2xvY2sgKTsKKworCXdoaWxlKCBvb2JfcG9ydC0+d3JpdGVfdXJiLT5zdGF0dXMgPT0gLUVJTlBST0dSRVNTCisJfHwgb29iX3ByaXYtPmRwX3dyaXRlX3VyYl9pbl91c2UgKSB7CisJCXNwaW5fdW5sb2NrKCAmcG9ydF9wcml2LT5kcF9wb3J0X2xvY2sgKTsKKwkJY29uZF93YWl0X2ludGVycnVwdGlibGVfdGltZW91dF9pcnFyZXN0b3JlKAorCQkJJm9vYl9wb3J0LT53cml0ZV93YWl0LCBESUdJX1JFVFJZX1RJTUVPVVQsCisJCQkmb29iX3ByaXYtPmRwX3BvcnRfbG9jaywgZmxhZ3MgKTsKKwkJaWYoIGludGVycnVwdGlibGUgJiYgc2lnbmFsX3BlbmRpbmcoY3VycmVudCkgKSB7CisJCQlyZXR1cm4oIC1FSU5UUiApOworCQl9CisJCXNwaW5fbG9ja19pcnFzYXZlKCAmb29iX3ByaXYtPmRwX3BvcnRfbG9jaywgZmxhZ3MgKTsKKwkJc3Bpbl9sb2NrKCAmcG9ydF9wcml2LT5kcF9wb3J0X2xvY2sgKTsKKwl9CisKKwlkYXRhWzBdID0gRElHSV9DTURfU0VUX0RUUl9TSUdOQUw7CisJZGF0YVsxXSA9IHBvcnRfcHJpdi0+ZHBfcG9ydF9udW07CisJZGF0YVsyXSA9IChtb2RlbV9zaWduYWxzJlRJT0NNX0RUUikgPworCQlESUdJX0RUUl9BQ1RJVkUgOiBESUdJX0RUUl9JTkFDVElWRTsKKwlkYXRhWzNdID0gMDsKKworCWRhdGFbNF0gPSBESUdJX0NNRF9TRVRfUlRTX1NJR05BTDsKKwlkYXRhWzVdID0gcG9ydF9wcml2LT5kcF9wb3J0X251bTsKKwlkYXRhWzZdID0gKG1vZGVtX3NpZ25hbHMmVElPQ01fUlRTKSA/CisJCURJR0lfUlRTX0FDVElWRSA6IERJR0lfUlRTX0lOQUNUSVZFOworCWRhdGFbN10gPSAwOworCisJb29iX3BvcnQtPndyaXRlX3VyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCA9IDg7CisJb29iX3BvcnQtPndyaXRlX3VyYi0+ZGV2ID0gcG9ydC0+c2VyaWFsLT5kZXY7CisKKwlpZiggKHJldD11c2Jfc3VibWl0X3VyYihvb2JfcG9ydC0+d3JpdGVfdXJiLCBHRlBfQVRPTUlDKSkgPT0gMCApIHsKKwkJb29iX3ByaXYtPmRwX3dyaXRlX3VyYl9pbl91c2UgPSAxOworCQlwb3J0X3ByaXYtPmRwX21vZGVtX3NpZ25hbHMgPQorCQkJKHBvcnRfcHJpdi0+ZHBfbW9kZW1fc2lnbmFscyZ+KFRJT0NNX0RUUnxUSU9DTV9SVFMpKQorCQkJfCAobW9kZW1fc2lnbmFscyYoVElPQ01fRFRSfFRJT0NNX1JUUykpOworCX0KKworCXNwaW5fdW5sb2NrKCAmcG9ydF9wcml2LT5kcF9wb3J0X2xvY2sgKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCAmb29iX3ByaXYtPmRwX3BvcnRfbG9jaywgZmxhZ3MgKTsKKworCWlmKCByZXQgKSB7CisJCWVycigiJXM6IHVzYl9zdWJtaXRfdXJiIGZhaWxlZCwgcmV0PSVkIiwgX19GVU5DVElPTl9fLAorCQlyZXQgKTsKKwl9CisKKwlyZXR1cm4oIHJldCApOworCit9CisKKworLyoKKyogIERpZ2kgVHJhbnNtaXQgSWRsZQorKgorKiAgRGlnaSB0cmFuc21pdCBpZGxlIHdhaXRzLCB1cCB0byB0aW1lb3V0IHRpY2tzLCBmb3IgdGhlIHRyYW5zbWl0dGVyCisqICB0byBnbyBpZGxlLiAgSXQgcmV0dXJucyAwIGlmIHN1Y2Nlc3NmdWwgb3IgYSBuZWdhdGl2ZSBlcnJvci4KKyoKKyogIFRoZXJlIGFyZSByYWNlIGNvbmRpdGlvbnMgaGVyZSBpZiBtb3JlIHRoYW4gb25lIHByb2Nlc3MgaXMgY2FsbGluZworKiAgZGlnaV90cmFuc21pdF9pZGxlIG9uIHRoZSBzYW1lIHBvcnQgYXQgdGhlIHNhbWUgdGltZS4gIEhvd2V2ZXIsIHRoaXMKKyogIGlzIG9ubHkgY2FsbGVkIGZyb20gY2xvc2UsIGFuZCBvbmx5IG9uZSBwcm9jZXNzIGNhbiBiZSBpbiBjbG9zZSBvbiBhCisqICBwb3J0IGF0IGEgdGltZSwgc28gaXRzIG9rLgorKi8KKworc3RhdGljIGludCBkaWdpX3RyYW5zbWl0X2lkbGUoIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCisJdW5zaWduZWQgbG9uZyB0aW1lb3V0ICkKK3sKKworCWludCByZXQ7CisJdW5zaWduZWQgY2hhciBidWZbMl07CisJc3RydWN0IGRpZ2lfcG9ydCAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzID0gMDsKKworCisJc3Bpbl9sb2NrX2lycXNhdmUoICZwcml2LT5kcF9wb3J0X2xvY2ssIGZsYWdzICk7CisJcHJpdi0+ZHBfdHJhbnNtaXRfaWRsZSA9IDA7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSggJnByaXYtPmRwX3BvcnRfbG9jaywgZmxhZ3MgKTsKKworCWJ1ZlswXSA9IERJR0lfQ01EX1RSQU5TTUlUX0lETEU7CisJYnVmWzFdID0gMDsKKworCXRpbWVvdXQgKz0gamlmZmllczsKKworCWlmKCAocmV0PWRpZ2lfd3JpdGVfaW5iX2NvbW1hbmQoIHBvcnQsIGJ1ZiwgMiwgdGltZW91dC1qaWZmaWVzICkpICE9IDAgKQorCQlyZXR1cm4oIHJldCApOworCisJc3Bpbl9sb2NrX2lycXNhdmUoICZwcml2LT5kcF9wb3J0X2xvY2ssIGZsYWdzICk7CisKKwl3aGlsZSggdGltZV9iZWZvcmUoamlmZmllcywgdGltZW91dCkgJiYgIXByaXYtPmRwX3RyYW5zbWl0X2lkbGUgKSB7CisJCWNvbmRfd2FpdF9pbnRlcnJ1cHRpYmxlX3RpbWVvdXRfaXJxcmVzdG9yZSgKKwkJCSZwcml2LT5kcF90cmFuc21pdF9pZGxlX3dhaXQsIERJR0lfUkVUUllfVElNRU9VVCwKKwkJCSZwcml2LT5kcF9wb3J0X2xvY2ssIGZsYWdzICk7CisJCWlmKCBzaWduYWxfcGVuZGluZyhjdXJyZW50KSApIHsKKwkJCXJldHVybiggLUVJTlRSICk7CisJCX0KKwkJc3Bpbl9sb2NrX2lycXNhdmUoICZwcml2LT5kcF9wb3J0X2xvY2ssIGZsYWdzICk7CisJfQorCisJcHJpdi0+ZHBfdHJhbnNtaXRfaWRsZSA9IDA7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSggJnByaXYtPmRwX3BvcnRfbG9jaywgZmxhZ3MgKTsKKworCXJldHVybiggMCApOworCit9CisKKworc3RhdGljIHZvaWQgZGlnaV9yeF90aHJvdHRsZSggc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCApCit7CisKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXN0cnVjdCBkaWdpX3BvcnQgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisKKworZGJnKCAiZGlnaV9yeF90aHJvdHRsZTogVE9QOiBwb3J0PSVkIiwgcHJpdi0+ZHBfcG9ydF9udW0gKTsKKworCS8qIHN0b3AgcmVjZWl2aW5nIGNoYXJhY3RlcnMgYnkgbm90IHJlc3VibWl0dGluZyB0aGUgcmVhZCB1cmIgKi8KKwlzcGluX2xvY2tfaXJxc2F2ZSggJnByaXYtPmRwX3BvcnRfbG9jaywgZmxhZ3MgKTsKKwlwcml2LT5kcF90aHJvdHRsZWQgPSAxOworCXByaXYtPmRwX3Rocm90dGxlX3Jlc3RhcnQgPSAwOworCXByaXYtPmRwX2luX2J1Zl9sZW4gPSAwOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoICZwcml2LT5kcF9wb3J0X2xvY2ssIGZsYWdzICk7CisKK30KKworCitzdGF0aWMgdm9pZCBkaWdpX3J4X3VudGhyb3R0bGUoIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgKQoreworCisJaW50IHJldCA9IDA7CisJaW50IGxlbjsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXN0cnVjdCBkaWdpX3BvcnQgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSA9IHBvcnQtPnR0eTsKKworCitkYmcoICJkaWdpX3J4X3VudGhyb3R0bGU6IFRPUDogcG9ydD0lZCIsIHByaXYtPmRwX3BvcnRfbnVtICk7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSggJnByaXYtPmRwX3BvcnRfbG9jaywgZmxhZ3MgKTsKKworCS8qIHNlbmQgYW55IGJ1ZmZlcmVkIGNoYXJzIGZyb20gdGhyb3R0bGUgdGltZSBvbiB0byB0dHkgc3Vic3lzdGVtICovCisJbGVuID0gbWluKHByaXYtPmRwX2luX2J1Zl9sZW4sIFRUWV9GTElQQlVGX1NJWkUgLSB0dHktPmZsaXAuY291bnQgKTsKKwlpZiggbGVuID4gMCApIHsKKwkJbWVtY3B5KCB0dHktPmZsaXAuY2hhcl9idWZfcHRyLCBwcml2LT5kcF9pbl9idWYsIGxlbiApOworCQltZW1jcHkoIHR0eS0+ZmxpcC5mbGFnX2J1Zl9wdHIsIHByaXYtPmRwX2luX2ZsYWdfYnVmLCBsZW4gKTsKKwkJdHR5LT5mbGlwLmNoYXJfYnVmX3B0ciArPSBsZW47CisJCXR0eS0+ZmxpcC5mbGFnX2J1Zl9wdHIgKz0gbGVuOworCQl0dHktPmZsaXAuY291bnQgKz0gbGVuOworCQl0dHlfZmxpcF9idWZmZXJfcHVzaCggdHR5ICk7CisJfQorCisJLyogcmVzdGFydCByZWFkIGNoYWluICovCisJaWYoIHByaXYtPmRwX3Rocm90dGxlX3Jlc3RhcnQgKSB7CisJCXBvcnQtPnJlYWRfdXJiLT5kZXYgPSBwb3J0LT5zZXJpYWwtPmRldjsKKwkJcmV0ID0gdXNiX3N1Ym1pdF91cmIoIHBvcnQtPnJlYWRfdXJiLCBHRlBfQVRPTUlDICk7CisJfQorCisJLyogdHVybiB0aHJvdHRsZSBvZmYgKi8KKwlwcml2LT5kcF90aHJvdHRsZWQgPSAwOworCXByaXYtPmRwX2luX2J1Zl9sZW4gPSAwOworCXByaXYtPmRwX3Rocm90dGxlX3Jlc3RhcnQgPSAwOworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSggJnByaXYtPmRwX3BvcnRfbG9jaywgZmxhZ3MgKTsKKworCWlmKCByZXQgKSB7CisJCWVycigiJXM6IHVzYl9zdWJtaXRfdXJiIGZhaWxlZCwgcmV0PSVkLCBwb3J0PSVkIiwgX19GVU5DVElPTl9fLAorCQkJcmV0LCBwcml2LT5kcF9wb3J0X251bSApOworCX0KKworfQorCisKK3N0YXRpYyB2b2lkIGRpZ2lfc2V0X3Rlcm1pb3MoIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIAorCXN0cnVjdCB0ZXJtaW9zICpvbGRfdGVybWlvcyApCit7CisKKwlzdHJ1Y3QgZGlnaV9wb3J0ICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXVuc2lnbmVkIGludCBpZmxhZyA9IHBvcnQtPnR0eS0+dGVybWlvcy0+Y19pZmxhZzsKKwl1bnNpZ25lZCBpbnQgY2ZsYWcgPSBwb3J0LT50dHktPnRlcm1pb3MtPmNfY2ZsYWc7CisJdW5zaWduZWQgaW50IG9sZF9pZmxhZyA9IG9sZF90ZXJtaW9zLT5jX2lmbGFnOworCXVuc2lnbmVkIGludCBvbGRfY2ZsYWcgPSBvbGRfdGVybWlvcy0+Y19jZmxhZzsKKwl1bnNpZ25lZCBjaGFyIGJ1ZlszMl07CisJdW5zaWduZWQgaW50IG1vZGVtX3NpZ25hbHM7CisJaW50IGFyZyxyZXQ7CisJaW50IGkgPSAwOworCisKK2RiZyggImRpZ2lfc2V0X3Rlcm1pb3M6IFRPUDogcG9ydD0lZCwgaWZsYWc9MHgleCwgb2xkX2lmbGFnPTB4JXgsIGNmbGFnPTB4JXgsIG9sZF9jZmxhZz0weCV4IiwgcHJpdi0+ZHBfcG9ydF9udW0sIGlmbGFnLCBvbGRfaWZsYWcsIGNmbGFnLCBvbGRfY2ZsYWcgKTsKKworCS8qIHNldCBiYXVkIHJhdGUgKi8KKwlpZiggKGNmbGFnJkNCQVVEKSAhPSAob2xkX2NmbGFnJkNCQVVEKSApIHsKKworCQlhcmcgPSAtMTsKKworCQkvKiByZWFzc2VydCBEVFIgYW5kIChtYXliZSkgUlRTIG9uIHRyYW5zaXRpb24gZnJvbSBCMCAqLworCQlpZiggKG9sZF9jZmxhZyZDQkFVRCkgPT0gQjAgKSB7CisJCQkvKiBkb24ndCBzZXQgUlRTIGlmIHVzaW5nIGhhcmR3YXJlIGZsb3cgY29udHJvbCAqLworCQkJLyogYW5kIHRocm90dGxpbmcgaW5wdXQgKi8KKwkJCW1vZGVtX3NpZ25hbHMgPSBUSU9DTV9EVFI7CisJCQlpZiggIShwb3J0LT50dHktPnRlcm1pb3MtPmNfY2ZsYWcgJiBDUlRTQ1RTKSB8fAorCQkJIXRlc3RfYml0KFRUWV9USFJPVFRMRUQsICZwb3J0LT50dHktPmZsYWdzKSApIHsKKwkJCQltb2RlbV9zaWduYWxzIHw9IFRJT0NNX1JUUzsKKwkJCX0KKwkJCWRpZ2lfc2V0X21vZGVtX3NpZ25hbHMoIHBvcnQsIG1vZGVtX3NpZ25hbHMsIDEgKTsKKwkJfQorCisJCXN3aXRjaCggKGNmbGFnJkNCQVVEKSApIHsKKwkJCS8qIGRyb3AgRFRSIGFuZCBSVFMgb24gdHJhbnNpdGlvbiB0byBCMCAqLworCQljYXNlIEIwOiBkaWdpX3NldF9tb2RlbV9zaWduYWxzKCBwb3J0LCAwLCAxICk7IGJyZWFrOworCQljYXNlIEI1MDogYXJnID0gRElHSV9CQVVEXzUwOyBicmVhazsKKwkJY2FzZSBCNzU6IGFyZyA9IERJR0lfQkFVRF83NTsgYnJlYWs7CisJCWNhc2UgQjExMDogYXJnID0gRElHSV9CQVVEXzExMDsgYnJlYWs7CisJCWNhc2UgQjE1MDogYXJnID0gRElHSV9CQVVEXzE1MDsgYnJlYWs7CisJCWNhc2UgQjIwMDogYXJnID0gRElHSV9CQVVEXzIwMDsgYnJlYWs7CisJCWNhc2UgQjMwMDogYXJnID0gRElHSV9CQVVEXzMwMDsgYnJlYWs7CisJCWNhc2UgQjYwMDogYXJnID0gRElHSV9CQVVEXzYwMDsgYnJlYWs7CisJCWNhc2UgQjEyMDA6IGFyZyA9IERJR0lfQkFVRF8xMjAwOyBicmVhazsKKwkJY2FzZSBCMTgwMDogYXJnID0gRElHSV9CQVVEXzE4MDA7IGJyZWFrOworCQljYXNlIEIyNDAwOiBhcmcgPSBESUdJX0JBVURfMjQwMDsgYnJlYWs7CisJCWNhc2UgQjQ4MDA6IGFyZyA9IERJR0lfQkFVRF80ODAwOyBicmVhazsKKwkJY2FzZSBCOTYwMDogYXJnID0gRElHSV9CQVVEXzk2MDA7IGJyZWFrOworCQljYXNlIEIxOTIwMDogYXJnID0gRElHSV9CQVVEXzE5MjAwOyBicmVhazsKKwkJY2FzZSBCMzg0MDA6IGFyZyA9IERJR0lfQkFVRF8zODQwMDsgYnJlYWs7CisJCWNhc2UgQjU3NjAwOiBhcmcgPSBESUdJX0JBVURfNTc2MDA7IGJyZWFrOworCQljYXNlIEIxMTUyMDA6IGFyZyA9IERJR0lfQkFVRF8xMTUyMDA7IGJyZWFrOworCQljYXNlIEIyMzA0MDA6IGFyZyA9IERJR0lfQkFVRF8yMzA0MDA7IGJyZWFrOworCQljYXNlIEI0NjA4MDA6IGFyZyA9IERJR0lfQkFVRF80NjA4MDA7IGJyZWFrOworCQlkZWZhdWx0OgorCQkJZGJnKCAiZGlnaV9zZXRfdGVybWlvczogY2FuJ3QgaGFuZGxlIGJhdWQgcmF0ZSAweCV4IiwKKwkJCQkoY2ZsYWcmQ0JBVUQpICk7CisJCQlicmVhazsKKwkJfQorCisJCWlmKCBhcmcgIT0gLTEgKSB7CisJCQlidWZbaSsrXSA9IERJR0lfQ01EX1NFVF9CQVVEX1JBVEU7CisJCQlidWZbaSsrXSA9IHByaXYtPmRwX3BvcnRfbnVtOworCQkJYnVmW2krK10gPSBhcmc7CisJCQlidWZbaSsrXSA9IDA7CisJCX0KKworCX0KKworCS8qIHNldCBwYXJpdHkgKi8KKwlpZiggKGNmbGFnJihQQVJFTkJ8UEFST0REKSkgIT0gKG9sZF9jZmxhZyYoUEFSRU5CfFBBUk9ERCkpICkgeworCisJCWlmKCAoY2ZsYWcmUEFSRU5CKSApIHsKKwkJCWlmKCAoY2ZsYWcmUEFST0REKSApCisJCQkJYXJnID0gRElHSV9QQVJJVFlfT0REOworCQkJZWxzZQorCQkJCWFyZyA9IERJR0lfUEFSSVRZX0VWRU47CisJCX0gZWxzZSB7CisJCQlhcmcgPSBESUdJX1BBUklUWV9OT05FOworCQl9CisKKwkJYnVmW2krK10gPSBESUdJX0NNRF9TRVRfUEFSSVRZOworCQlidWZbaSsrXSA9IHByaXYtPmRwX3BvcnRfbnVtOworCQlidWZbaSsrXSA9IGFyZzsKKwkJYnVmW2krK10gPSAwOworCisJfQorCisJLyogc2V0IHdvcmQgc2l6ZSAqLworCWlmKCAoY2ZsYWcmQ1NJWkUpICE9IChvbGRfY2ZsYWcmQ1NJWkUpICkgeworCisJCWFyZyA9IC0xOworCisJCXN3aXRjaCggKGNmbGFnJkNTSVpFKSApIHsKKwkJY2FzZSBDUzU6IGFyZyA9IERJR0lfV09SRF9TSVpFXzU7IGJyZWFrOworCQljYXNlIENTNjogYXJnID0gRElHSV9XT1JEX1NJWkVfNjsgYnJlYWs7CisJCWNhc2UgQ1M3OiBhcmcgPSBESUdJX1dPUkRfU0laRV83OyBicmVhazsKKwkJY2FzZSBDUzg6IGFyZyA9IERJR0lfV09SRF9TSVpFXzg7IGJyZWFrOworCQlkZWZhdWx0OgorCQkJZGJnKCAiZGlnaV9zZXRfdGVybWlvczogY2FuJ3QgaGFuZGxlIHdvcmQgc2l6ZSAlZCIsCisJCQkJKGNmbGFnJkNTSVpFKSApOworCQkJYnJlYWs7CisJCX0KKworCQlpZiggYXJnICE9IC0xICkgeworCQkJYnVmW2krK10gPSBESUdJX0NNRF9TRVRfV09SRF9TSVpFOworCQkJYnVmW2krK10gPSBwcml2LT5kcF9wb3J0X251bTsKKwkJCWJ1ZltpKytdID0gYXJnOworCQkJYnVmW2krK10gPSAwOworCQl9CisKKwl9CisKKwkvKiBzZXQgc3RvcCBiaXRzICovCisJaWYoIChjZmxhZyZDU1RPUEIpICE9IChvbGRfY2ZsYWcmQ1NUT1BCKSApIHsKKworCQlpZiggKGNmbGFnJkNTVE9QQikgKQorCQkJYXJnID0gRElHSV9TVE9QX0JJVFNfMjsKKwkJZWxzZQorCQkJYXJnID0gRElHSV9TVE9QX0JJVFNfMTsKKworCQlidWZbaSsrXSA9IERJR0lfQ01EX1NFVF9TVE9QX0JJVFM7CisJCWJ1ZltpKytdID0gcHJpdi0+ZHBfcG9ydF9udW07CisJCWJ1ZltpKytdID0gYXJnOworCQlidWZbaSsrXSA9IDA7CisKKwl9CisKKwkvKiBzZXQgaW5wdXQgZmxvdyBjb250cm9sICovCisJaWYoIChpZmxhZyZJWE9GRikgIT0gKG9sZF9pZmxhZyZJWE9GRikKKwl8fCAoY2ZsYWcmQ1JUU0NUUykgIT0gKG9sZF9jZmxhZyZDUlRTQ1RTKSApIHsKKworCQlhcmcgPSAwOworCisJCWlmKCAoaWZsYWcmSVhPRkYpICkKKwkJCWFyZyB8PSBESUdJX0lOUFVUX0ZMT1dfQ09OVFJPTF9YT05fWE9GRjsKKwkJZWxzZQorCQkJYXJnICY9IH5ESUdJX0lOUFVUX0ZMT1dfQ09OVFJPTF9YT05fWE9GRjsKKworCQlpZiggKGNmbGFnJkNSVFNDVFMpICkgeworCisJCQlhcmcgfD0gRElHSV9JTlBVVF9GTE9XX0NPTlRST0xfUlRTOworCisJCQkvKiBPbiBVU0ItNCBpdCBpcyBuZWNlc3NhcnkgdG8gYXNzZXJ0IFJUUyBwcmlvciAqLworCQkJLyogdG8gc2VsZWN0aW5nIFJUUyBpbnB1dCBmbG93IGNvbnRyb2wuICAqLworCQkJYnVmW2krK10gPSBESUdJX0NNRF9TRVRfUlRTX1NJR05BTDsKKwkJCWJ1ZltpKytdID0gcHJpdi0+ZHBfcG9ydF9udW07CisJCQlidWZbaSsrXSA9IERJR0lfUlRTX0FDVElWRTsKKwkJCWJ1ZltpKytdID0gMDsKKworCQl9IGVsc2UgeworCQkJYXJnICY9IH5ESUdJX0lOUFVUX0ZMT1dfQ09OVFJPTF9SVFM7CisJCX0KKworCQlidWZbaSsrXSA9IERJR0lfQ01EX1NFVF9JTlBVVF9GTE9XX0NPTlRST0w7CisJCWJ1ZltpKytdID0gcHJpdi0+ZHBfcG9ydF9udW07CisJCWJ1ZltpKytdID0gYXJnOworCQlidWZbaSsrXSA9IDA7CisKKwl9CisKKwkvKiBzZXQgb3V0cHV0IGZsb3cgY29udHJvbCAqLworCWlmKCAoaWZsYWcmSVhPTikgIT0gKG9sZF9pZmxhZyZJWE9OKQorCXx8IChjZmxhZyZDUlRTQ1RTKSAhPSAob2xkX2NmbGFnJkNSVFNDVFMpICkgeworCisJCWFyZyA9IDA7CisKKwkJaWYoIChpZmxhZyZJWE9OKSApCisJCQlhcmcgfD0gRElHSV9PVVRQVVRfRkxPV19DT05UUk9MX1hPTl9YT0ZGOworCQllbHNlCisJCQlhcmcgJj0gfkRJR0lfT1VUUFVUX0ZMT1dfQ09OVFJPTF9YT05fWE9GRjsKKworCQlpZiggKGNmbGFnJkNSVFNDVFMpICkgeworCQkJYXJnIHw9IERJR0lfT1VUUFVUX0ZMT1dfQ09OVFJPTF9DVFM7CisJCX0gZWxzZSB7CisJCQlhcmcgJj0gfkRJR0lfT1VUUFVUX0ZMT1dfQ09OVFJPTF9DVFM7CisJCQlwb3J0LT50dHktPmh3X3N0b3BwZWQgPSAwOworCQl9CisKKwkJYnVmW2krK10gPSBESUdJX0NNRF9TRVRfT1VUUFVUX0ZMT1dfQ09OVFJPTDsKKwkJYnVmW2krK10gPSBwcml2LT5kcF9wb3J0X251bTsKKwkJYnVmW2krK10gPSBhcmc7CisJCWJ1ZltpKytdID0gMDsKKworCX0KKworCS8qIHNldCByZWNlaXZlIGVuYWJsZS9kaXNhYmxlICovCisJaWYoIChjZmxhZyZDUkVBRCkgIT0gKG9sZF9jZmxhZyZDUkVBRCkgKSB7CisKKwkJaWYoIChjZmxhZyZDUkVBRCkgKQorCQkJYXJnID0gRElHSV9FTkFCTEU7CisJCWVsc2UKKwkJCWFyZyA9IERJR0lfRElTQUJMRTsKKworCQlidWZbaSsrXSA9IERJR0lfQ01EX1JFQ0VJVkVfRU5BQkxFOworCQlidWZbaSsrXSA9IHByaXYtPmRwX3BvcnRfbnVtOworCQlidWZbaSsrXSA9IGFyZzsKKwkJYnVmW2krK10gPSAwOworCisJfQorCisJaWYoIChyZXQ9ZGlnaV93cml0ZV9vb2JfY29tbWFuZCggcG9ydCwgYnVmLCBpLCAxICkpICE9IDAgKQorCQlkYmcoICJkaWdpX3NldF90ZXJtaW9zOiB3cml0ZSBvb2IgZmFpbGVkLCByZXQ9JWQiLCByZXQgKTsKKworfQorCisKK3N0YXRpYyB2b2lkIGRpZ2lfYnJlYWtfY3RsKCBzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBpbnQgYnJlYWtfc3RhdGUgKQoreworCisJdW5zaWduZWQgY2hhciBidWZbNF07CisKKworCWJ1ZlswXSA9IERJR0lfQ01EX0JSRUFLX0NPTlRST0w7CisJYnVmWzFdID0gMjsJCQkJLyogbGVuZ3RoICovCisJYnVmWzJdID0gYnJlYWtfc3RhdGUgPyAxIDogMDsKKwlidWZbM10gPSAwOwkJCQkvKiBwYWQgKi8KKworCWRpZ2lfd3JpdGVfaW5iX2NvbW1hbmQoIHBvcnQsIGJ1ZiwgNCwgMCApOworCit9CisKKworc3RhdGljIGludCBkaWdpX3Rpb2NtZ2V0KCBzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlsZSApCit7CisJc3RydWN0IGRpZ2lfcG9ydCAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwl1bnNpZ25lZCBpbnQgdmFsOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlkYmcoIiVzOiBUT1A6IHBvcnQ9JWQiLCBfX0ZVTkNUSU9OX18sIHByaXYtPmRwX3BvcnRfbnVtKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCAmcHJpdi0+ZHBfcG9ydF9sb2NrLCBmbGFncyApOworCXZhbCA9IHByaXYtPmRwX21vZGVtX3NpZ25hbHM7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSggJnByaXYtPmRwX3BvcnRfbG9jaywgZmxhZ3MgKTsKKwlyZXR1cm4gdmFsOworfQorCisKK3N0YXRpYyBpbnQgZGlnaV90aW9jbXNldCggc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbGUsCisJdW5zaWduZWQgaW50IHNldCwgdW5zaWduZWQgaW50IGNsZWFyICkKK3sKKwlzdHJ1Y3QgZGlnaV9wb3J0ICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXVuc2lnbmVkIGludCB2YWw7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCWRiZygiJXM6IFRPUDogcG9ydD0lZCIsIF9fRlVOQ1RJT05fXywgcHJpdi0+ZHBfcG9ydF9udW0pOworCisJc3Bpbl9sb2NrX2lycXNhdmUoICZwcml2LT5kcF9wb3J0X2xvY2ssIGZsYWdzICk7CisJdmFsID0gKHByaXYtPmRwX21vZGVtX3NpZ25hbHMgJiB+Y2xlYXIpIHwgc2V0OworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoICZwcml2LT5kcF9wb3J0X2xvY2ssIGZsYWdzICk7CisJcmV0dXJuIGRpZ2lfc2V0X21vZGVtX3NpZ25hbHMoIHBvcnQsIHZhbCwgMSApOworfQorCisKK3N0YXRpYyBpbnQgZGlnaV9pb2N0bCggc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbGUsCisJdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcgKQoreworCisJc3RydWN0IGRpZ2lfcG9ydCAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKworZGJnKCAiZGlnaV9pb2N0bDogVE9QOiBwb3J0PSVkLCBjbWQ9MHgleCIsIHByaXYtPmRwX3BvcnRfbnVtLCBjbWQgKTsKKworCXN3aXRjaCAoY21kKSB7CisKKwljYXNlIFRJT0NNSVdBSVQ6CisJCS8qIHdhaXQgZm9yIGFueSBvZiB0aGUgNCBtb2RlbSBpbnB1dHMgKERDRCxSSSxEU1IsQ1RTKSovCisJCS8qIFRPRE8gKi8KKwkJcmV0dXJuKCAwICk7CisKKwljYXNlIFRJT0NHSUNPVU5UOgorCQkvKiByZXR1cm4gY291bnQgb2YgbW9kZW1saW5lIHRyYW5zaXRpb25zICovCisJCS8qIFRPRE8gKi8KKwkJcmV0dXJuIDA7CisKKwl9CisKKwlyZXR1cm4oIC1FTk9JT0NUTENNRCApOworCit9CisKKworc3RhdGljIGludCBkaWdpX3dyaXRlKCBzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBjb3VudCApCit7CisKKwlpbnQgcmV0LGRhdGFfbGVuLG5ld19sZW47CisJc3RydWN0IGRpZ2lfcG9ydCAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwl1bnNpZ25lZCBjaGFyICpkYXRhID0gcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXI7CisJdW5zaWduZWQgbG9uZyBmbGFncyA9IDA7CisKKworZGJnKCAiZGlnaV93cml0ZTogVE9QOiBwb3J0PSVkLCBjb3VudD0lZCwgaW5faW50ZXJydXB0PSVsZCIsCitwcml2LT5kcF9wb3J0X251bSwgY291bnQsIGluX2ludGVycnVwdCgpICk7CisKKwkvKiBjb3B5IHVzZXIgZGF0YSAod2hpY2ggY2FuIHNsZWVwKSBiZWZvcmUgZ2V0dGluZyBzcGluIGxvY2sgKi8KKwljb3VudCA9IG1pbiggY291bnQsIHBvcnQtPmJ1bGtfb3V0X3NpemUtMiApOworCWNvdW50ID0gbWluKCA2NCwgY291bnQpOworCisJLyogYmUgc3VyZSBvbmx5IG9uZSB3cml0ZSBwcm9jZWVkcyBhdCBhIHRpbWUgKi8KKwkvKiB0aGVyZSBhcmUgcmFjZXMgb24gdGhlIHBvcnQgcHJpdmF0ZSBidWZmZXIgKi8KKwkvKiBhbmQgcmFjZXMgdG8gY2hlY2sgd3JpdGVfdXJiLT5zdGF0dXMgKi8KKwlzcGluX2xvY2tfaXJxc2F2ZSggJnByaXYtPmRwX3BvcnRfbG9jaywgZmxhZ3MgKTsKKworCS8qIHdhaXQgZm9yIHVyYiBzdGF0dXMgY2xlYXIgdG8gc3VibWl0IGFub3RoZXIgdXJiICovCisJaWYoIHBvcnQtPndyaXRlX3VyYi0+c3RhdHVzID09IC1FSU5QUk9HUkVTUworCXx8IHByaXYtPmRwX3dyaXRlX3VyYl9pbl91c2UgKSB7CisKKwkJLyogYnVmZmVyIGRhdGEgaWYgY291bnQgaXMgMSAocHJvYmFibHkgcHV0X2NoYXIpIGlmIHBvc3NpYmxlICovCisJCWlmKCBjb3VudCA9PSAxICYmIHByaXYtPmRwX291dF9idWZfbGVuIDwgRElHSV9PVVRfQlVGX1NJWkUgKSB7CisJCQlwcml2LT5kcF9vdXRfYnVmW3ByaXYtPmRwX291dF9idWZfbGVuKytdID0gKmJ1ZjsKKwkJCW5ld19sZW4gPSAxOworCQl9IGVsc2UgeworCQkJbmV3X2xlbiA9IDA7CisJCX0KKworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCAmcHJpdi0+ZHBfcG9ydF9sb2NrLCBmbGFncyApOworCisJCXJldHVybiggbmV3X2xlbiApOworCisJfQorCisJLyogYWxsb3cgc3BhY2UgZm9yIGFueSBidWZmZXJlZCBkYXRhIGFuZCBmb3IgbmV3IGRhdGEsIHVwIHRvICovCisJLyogdHJhbnNmZXIgYnVmZmVyIHNpemUgLSAyIChmb3IgY29tbWFuZCBhbmQgbGVuZ3RoIGJ5dGVzKSAqLworCW5ld19sZW4gPSBtaW4oY291bnQsIHBvcnQtPmJ1bGtfb3V0X3NpemUtMi1wcml2LT5kcF9vdXRfYnVmX2xlbik7CisJZGF0YV9sZW4gPSBuZXdfbGVuICsgcHJpdi0+ZHBfb3V0X2J1Zl9sZW47CisKKwlpZiggZGF0YV9sZW4gPT0gMCApIHsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSggJnByaXYtPmRwX3BvcnRfbG9jaywgZmxhZ3MgKTsKKwkJcmV0dXJuKCAwICk7CisJfQorCisJcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoID0gZGF0YV9sZW4rMjsKKwlwb3J0LT53cml0ZV91cmItPmRldiA9IHBvcnQtPnNlcmlhbC0+ZGV2OworCisJKmRhdGErKyA9IERJR0lfQ01EX1NFTkRfREFUQTsKKwkqZGF0YSsrID0gZGF0YV9sZW47CisKKwkvKiBjb3B5IGluIGJ1ZmZlcmVkIGRhdGEgZmlyc3QgKi8KKwltZW1jcHkoIGRhdGEsIHByaXYtPmRwX291dF9idWYsIHByaXYtPmRwX291dF9idWZfbGVuICk7CisJZGF0YSArPSBwcml2LT5kcF9vdXRfYnVmX2xlbjsKKworCS8qIGNvcHkgaW4gbmV3IGRhdGEgKi8KKwltZW1jcHkoIGRhdGEsIGJ1ZiwgbmV3X2xlbiApOworCisJaWYoIChyZXQ9dXNiX3N1Ym1pdF91cmIocG9ydC0+d3JpdGVfdXJiLCBHRlBfQVRPTUlDKSkgPT0gMCApIHsKKwkJcHJpdi0+ZHBfd3JpdGVfdXJiX2luX3VzZSA9IDE7CisJCXJldCA9IG5ld19sZW47CisJCXByaXYtPmRwX291dF9idWZfbGVuID0gMDsKKwl9CisKKwkvKiByZXR1cm4gbGVuZ3RoIG9mIG5ldyBkYXRhIHdyaXR0ZW4sIG9yIGVycm9yICovCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSggJnByaXYtPmRwX3BvcnRfbG9jaywgZmxhZ3MgKTsKKwlpZiggcmV0IDwgMCApIHsKKwkJZXJyKCIlczogdXNiX3N1Ym1pdF91cmIgZmFpbGVkLCByZXQ9JWQsIHBvcnQ9JWQiLCBfX0ZVTkNUSU9OX18sCisJCQlyZXQsIHByaXYtPmRwX3BvcnRfbnVtICk7CisJfQorCitkYmcoICJkaWdpX3dyaXRlOiByZXR1cm5pbmcgJWQiLCByZXQgKTsKKwlyZXR1cm4oIHJldCApOworCit9IAorCisKK3N0YXRpYyB2b2lkIGRpZ2lfd3JpdGVfYnVsa19jYWxsYmFjayggc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyApCit7CisKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ID0gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKil1cmItPmNvbnRleHQ7CisJc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbDsKKwlzdHJ1Y3QgZGlnaV9wb3J0ICpwcml2OworCXN0cnVjdCBkaWdpX3NlcmlhbCAqc2VyaWFsX3ByaXY7CisJaW50IHJldCA9IDA7CisKKworZGJnKCAiZGlnaV93cml0ZV9idWxrX2NhbGxiYWNrOiBUT1AsIHVyYi0+c3RhdHVzPSVkIiwgdXJiLT5zdGF0dXMgKTsKKworCS8qIHBvcnQgYW5kIHNlcmlhbCBzYW5pdHkgY2hlY2sgKi8KKwlpZiggcG9ydCA9PSBOVUxMIHx8IChwcml2PXVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KSkgPT0gTlVMTCApIHsKKwkJZXJyKCIlczogcG9ydCBvciBwb3J0LT5wcml2YXRlIGlzIE5VTEwsIHN0YXR1cz0lZCIsIF9fRlVOQ1RJT05fXywKKwkJCXVyYi0+c3RhdHVzICk7CisJCXJldHVybjsKKwl9CisJc2VyaWFsID0gcG9ydC0+c2VyaWFsOworCWlmKCBzZXJpYWwgPT0gTlVMTCB8fCAoc2VyaWFsX3ByaXY9dXNiX2dldF9zZXJpYWxfZGF0YShzZXJpYWwpKSA9PSBOVUxMICkgeworCQllcnIoIiVzOiBzZXJpYWwgb3Igc2VyaWFsLT5wcml2YXRlIGlzIE5VTEwsIHN0YXR1cz0lZCIsIF9fRlVOQ1RJT05fXywgdXJiLT5zdGF0dXMgKTsKKwkJcmV0dXJuOworCX0KKworCS8qIGhhbmRsZSBvb2IgY2FsbGJhY2sgKi8KKwlpZiggcHJpdi0+ZHBfcG9ydF9udW0gPT0gc2VyaWFsX3ByaXYtPmRzX29vYl9wb3J0X251bSApIHsKKwkJZGJnKCAiZGlnaV93cml0ZV9idWxrX2NhbGxiYWNrOiBvb2IgY2FsbGJhY2siICk7CisJCXNwaW5fbG9jayggJnByaXYtPmRwX3BvcnRfbG9jayApOworCQlwcml2LT5kcF93cml0ZV91cmJfaW5fdXNlID0gMDsKKwkJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCAmcG9ydC0+d3JpdGVfd2FpdCApOworCQlzcGluX3VubG9jayggJnByaXYtPmRwX3BvcnRfbG9jayApOworCQlyZXR1cm47CisJfQorCisJLyogdHJ5IHRvIHNlbmQgYW55IGJ1ZmZlcmVkIGRhdGEgb24gdGhpcyBwb3J0LCBpZiBpdCBpcyBvcGVuICovCisJc3Bpbl9sb2NrKCAmcHJpdi0+ZHBfcG9ydF9sb2NrICk7CisJcHJpdi0+ZHBfd3JpdGVfdXJiX2luX3VzZSA9IDA7CisJaWYoIHBvcnQtPm9wZW5fY291bnQgJiYgcG9ydC0+d3JpdGVfdXJiLT5zdGF0dXMgIT0gLUVJTlBST0dSRVNTCisJJiYgcHJpdi0+ZHBfb3V0X2J1Zl9sZW4gPiAwICkgeworCisJCSooKHVuc2lnbmVkIGNoYXIgKikocG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXIpKQorCQkJPSAodW5zaWduZWQgY2hhcilESUdJX0NNRF9TRU5EX0RBVEE7CisJCSooKHVuc2lnbmVkIGNoYXIgKikocG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXIpKzEpCisJCQk9ICh1bnNpZ25lZCBjaGFyKXByaXYtPmRwX291dF9idWZfbGVuOworCisJCXBvcnQtPndyaXRlX3VyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aAorCQkJPSBwcml2LT5kcF9vdXRfYnVmX2xlbisyOworCQlwb3J0LT53cml0ZV91cmItPmRldiA9IHNlcmlhbC0+ZGV2OworCisJCW1lbWNweSggcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXIrMiwgcHJpdi0+ZHBfb3V0X2J1ZiwKKwkJCXByaXYtPmRwX291dF9idWZfbGVuICk7CisKKwkJaWYoIChyZXQ9dXNiX3N1Ym1pdF91cmIocG9ydC0+d3JpdGVfdXJiLCBHRlBfQVRPTUlDKSkgPT0gMCApIHsKKwkJCXByaXYtPmRwX3dyaXRlX3VyYl9pbl91c2UgPSAxOworCQkJcHJpdi0+ZHBfb3V0X2J1Zl9sZW4gPSAwOworCQl9CisKKwl9CisKKwkvKiB3YWtlIHVwIHByb2Nlc3NlcyBzbGVlcGluZyBvbiB3cml0ZXMgaW1tZWRpYXRlbHkgKi8KKwlkaWdpX3dha2V1cF93cml0ZSggcG9ydCApOworCisJLyogYWxzbyBxdWV1ZSB1cCBhIHdha2V1cCBhdCBzY2hlZHVsZXIgdGltZSwgaW4gY2FzZSB3ZSAqLworCS8qIGxvc3QgdGhlIHJhY2UgaW4gd3JpdGVfY2hhbigpLiAqLworCXNjaGVkdWxlX3dvcmsoJnByaXYtPmRwX3dha2V1cF93b3JrKTsKKworCXNwaW5fdW5sb2NrKCAmcHJpdi0+ZHBfcG9ydF9sb2NrICk7CisKKwlpZiggcmV0ICkgeworCQllcnIoIiVzOiB1c2Jfc3VibWl0X3VyYiBmYWlsZWQsIHJldD0lZCwgcG9ydD0lZCIsIF9fRlVOQ1RJT05fXywKKwkJCXJldCwgcHJpdi0+ZHBfcG9ydF9udW0gKTsKKwl9CisKK30KKworCitzdGF0aWMgaW50IGRpZ2lfd3JpdGVfcm9vbSggc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCApCit7CisKKwlpbnQgcm9vbTsKKwlzdHJ1Y3QgZGlnaV9wb3J0ICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXVuc2lnbmVkIGxvbmcgZmxhZ3MgPSAwOworCisKKwlzcGluX2xvY2tfaXJxc2F2ZSggJnByaXYtPmRwX3BvcnRfbG9jaywgZmxhZ3MgKTsKKworCWlmKCBwb3J0LT53cml0ZV91cmItPnN0YXR1cyA9PSAtRUlOUFJPR1JFU1MKKwl8fCBwcml2LT5kcF93cml0ZV91cmJfaW5fdXNlICkKKwkJcm9vbSA9IDA7CisJZWxzZQorCQlyb29tID0gcG9ydC0+YnVsa19vdXRfc2l6ZSAtIDIgLSBwcml2LT5kcF9vdXRfYnVmX2xlbjsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoICZwcml2LT5kcF9wb3J0X2xvY2ssIGZsYWdzICk7CisKK2RiZyggImRpZ2lfd3JpdGVfcm9vbTogcG9ydD0lZCwgcm9vbT0lZCIsIHByaXYtPmRwX3BvcnRfbnVtLCByb29tICk7CisJcmV0dXJuKCByb29tICk7CisKK30KKworCitzdGF0aWMgaW50IGRpZ2lfY2hhcnNfaW5fYnVmZmVyKCBzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ICkKK3sKKworCXN0cnVjdCBkaWdpX3BvcnQgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisKKworCWlmKCBwb3J0LT53cml0ZV91cmItPnN0YXR1cyA9PSAtRUlOUFJPR1JFU1MKKwl8fCBwcml2LT5kcF93cml0ZV91cmJfaW5fdXNlICkgeworZGJnKCAiZGlnaV9jaGFyc19pbl9idWZmZXI6IHBvcnQ9JWQsIGNoYXJzPSVkIiwgcHJpdi0+ZHBfcG9ydF9udW0sIHBvcnQtPmJ1bGtfb3V0X3NpemUgLSAyICk7CisJCS8qIHJldHVybiggcG9ydC0+YnVsa19vdXRfc2l6ZSAtIDIgKTsgKi8KKwkJcmV0dXJuKCAyNTYgKTsKKwl9IGVsc2UgeworZGJnKCAiZGlnaV9jaGFyc19pbl9idWZmZXI6IHBvcnQ9JWQsIGNoYXJzPSVkIiwgcHJpdi0+ZHBfcG9ydF9udW0sIHByaXYtPmRwX291dF9idWZfbGVuICk7CisJCXJldHVybiggcHJpdi0+ZHBfb3V0X2J1Zl9sZW4gKTsKKwl9CisKK30KKworCitzdGF0aWMgaW50IGRpZ2lfb3Blbiggc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbHAgKQoreworCisJaW50IHJldDsKKwl1bnNpZ25lZCBjaGFyIGJ1ZlszMl07CisJc3RydWN0IGRpZ2lfcG9ydCAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlzdHJ1Y3QgdGVybWlvcyBub3RfdGVybWlvczsKKwl1bnNpZ25lZCBsb25nIGZsYWdzID0gMDsKKworCitkYmcoICJkaWdpX29wZW46IFRPUDogcG9ydD0lZCwgb3Blbl9jb3VudD0lZCIsIHByaXYtPmRwX3BvcnRfbnVtLCBwb3J0LT5vcGVuX2NvdW50ICk7CisKKwkvKiBiZSBzdXJlIHRoZSBkZXZpY2UgaXMgc3RhcnRlZCB1cCAqLworCWlmKCBkaWdpX3N0YXJ0dXBfZGV2aWNlKCBwb3J0LT5zZXJpYWwgKSAhPSAwICkKKwkJcmV0dXJuKCAtRU5YSU8gKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCAmcHJpdi0+ZHBfcG9ydF9sb2NrLCBmbGFncyApOworCisJLyogZG9uJ3Qgd2FpdCBvbiBhIGNsb3NlIGluIHByb2dyZXNzIGZvciBub24tYmxvY2tpbmcgb3BlbnMgKi8KKwlpZiggcHJpdi0+ZHBfaW5fY2xvc2UgJiYgKGZpbHAtPmZfZmxhZ3MmKE9fTkRFTEFZfE9fTk9OQkxPQ0spKSA9PSAwICkgeworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCAmcHJpdi0+ZHBfcG9ydF9sb2NrLCBmbGFncyApOworCQlyZXR1cm4oIC1FQUdBSU4gKTsKKwl9CisKKwkvKiB3YWl0IGZvciBhIGNsb3NlIGluIHByb2dyZXNzIHRvIGZpbmlzaCAqLworCXdoaWxlKCBwcml2LT5kcF9pbl9jbG9zZSApIHsKKwkJY29uZF93YWl0X2ludGVycnVwdGlibGVfdGltZW91dF9pcnFyZXN0b3JlKAorCQkJJnByaXYtPmRwX2Nsb3NlX3dhaXQsIERJR0lfUkVUUllfVElNRU9VVCwKKwkJCSZwcml2LT5kcF9wb3J0X2xvY2ssIGZsYWdzICk7CisJCWlmKCBzaWduYWxfcGVuZGluZyhjdXJyZW50KSApIHsKKwkJCXJldHVybiggLUVJTlRSICk7CisJCX0KKwkJc3Bpbl9sb2NrX2lycXNhdmUoICZwcml2LT5kcF9wb3J0X2xvY2ssIGZsYWdzICk7CisJfQorCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSggJnByaXYtPmRwX3BvcnRfbG9jaywgZmxhZ3MgKTsKKyAKKwkvKiByZWFkIG1vZGVtIHNpZ25hbHMgYXV0b21hdGljYWxseSB3aGVuZXZlciB0aGV5IGNoYW5nZSAqLworCWJ1ZlswXSA9IERJR0lfQ01EX1JFQURfSU5QVVRfU0lHTkFMUzsKKwlidWZbMV0gPSBwcml2LT5kcF9wb3J0X251bTsKKwlidWZbMl0gPSBESUdJX0VOQUJMRTsKKwlidWZbM10gPSAwOworCisJLyogZmx1c2ggZmlmb3MgKi8KKwlidWZbNF0gPSBESUdJX0NNRF9JRkxVU0hfRklGTzsKKwlidWZbNV0gPSBwcml2LT5kcF9wb3J0X251bTsKKwlidWZbNl0gPSBESUdJX0ZMVVNIX1RYIHwgRElHSV9GTFVTSF9SWDsKKwlidWZbN10gPSAwOworCisJaWYoIChyZXQ9ZGlnaV93cml0ZV9vb2JfY29tbWFuZCggcG9ydCwgYnVmLCA4LCAxICkpICE9IDAgKQorCQlkYmcoICJkaWdpX29wZW46IHdyaXRlIG9vYiBmYWlsZWQsIHJldD0lZCIsIHJldCApOworCisJLyogc2V0IHRlcm1pb3Mgc2V0dGluZ3MgKi8KKwlub3RfdGVybWlvcy5jX2NmbGFnID0gfnBvcnQtPnR0eS0+dGVybWlvcy0+Y19jZmxhZzsKKwlub3RfdGVybWlvcy5jX2lmbGFnID0gfnBvcnQtPnR0eS0+dGVybWlvcy0+Y19pZmxhZzsKKwlkaWdpX3NldF90ZXJtaW9zKCBwb3J0LCAmbm90X3Rlcm1pb3MgKTsKKworCS8qIHNldCBEVFIgYW5kIFJUUyAqLworCWRpZ2lfc2V0X21vZGVtX3NpZ25hbHMoIHBvcnQsIFRJT0NNX0RUUnxUSU9DTV9SVFMsIDEgKTsKKworCXJldHVybiggMCApOworCit9CisKKworc3RhdGljIHZvaWQgZGlnaV9jbG9zZSggc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbHAgKQoreworCURFRklORV9XQUlUKHdhaXQpOworCWludCByZXQ7CisJdW5zaWduZWQgY2hhciBidWZbMzJdOworCXN0cnVjdCB0dHlfc3RydWN0ICp0dHkgPSBwb3J0LT50dHk7CisJc3RydWN0IGRpZ2lfcG9ydCAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzID0gMDsKKworCitkYmcoICJkaWdpX2Nsb3NlOiBUT1A6IHBvcnQ9JWQsIG9wZW5fY291bnQ9JWQiLCBwcml2LT5kcF9wb3J0X251bSwgcG9ydC0+b3Blbl9jb3VudCApOworCisKKwkvKiBpZiBkaXNjb25uZWN0ZWQsIGp1c3QgY2xlYXIgZmxhZ3MgKi8KKwlpZiAoIXVzYl9nZXRfaW50ZmRhdGEocG9ydC0+c2VyaWFsLT5pbnRlcmZhY2UpKQorCQlnb3RvIGV4aXQ7CisKKwkvKiBkbyBjbGVhbnVwIG9ubHkgYWZ0ZXIgZmluYWwgY2xvc2Ugb24gdGhpcyBwb3J0ICovCisJc3Bpbl9sb2NrX2lycXNhdmUoICZwcml2LT5kcF9wb3J0X2xvY2ssIGZsYWdzICk7CisJcHJpdi0+ZHBfaW5fY2xvc2UgPSAxOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoICZwcml2LT5kcF9wb3J0X2xvY2ssIGZsYWdzICk7CisKKwkvKiB0ZWxsIGxpbmUgZGlzY2lwbGluZSB0byBwcm9jZXNzIG9ubHkgWE9OL1hPRkYgKi8KKwl0dHktPmNsb3NpbmcgPSAxOworCisJLyogd2FpdCBmb3Igb3V0cHV0IHRvIGRyYWluICovCisJaWYoIChmaWxwLT5mX2ZsYWdzJihPX05ERUxBWXxPX05PTkJMT0NLKSkgPT0gMCApIHsKKwkJdHR5X3dhaXRfdW50aWxfc2VudCggdHR5LCBESUdJX0NMT1NFX1RJTUVPVVQgKTsKKwl9CisKKwkvKiBmbHVzaCBkcml2ZXIgYW5kIGxpbmUgZGlzY2lwbGluZSBidWZmZXJzICovCisJaWYoIHR0eS0+ZHJpdmVyLT5mbHVzaF9idWZmZXIgKQorCQl0dHktPmRyaXZlci0+Zmx1c2hfYnVmZmVyKCB0dHkgKTsKKwl0dHlfbGRpc2NfZmx1c2godHR5KTsKKworCWlmIChwb3J0LT5zZXJpYWwtPmRldikgeworCQkvKiB3YWl0IGZvciB0cmFuc21pdCBpZGxlICovCisJCWlmKCAoZmlscC0+Zl9mbGFncyYoT19OREVMQVl8T19OT05CTE9DSykpID09IDAgKSB7CisJCQlkaWdpX3RyYW5zbWl0X2lkbGUoIHBvcnQsIERJR0lfQ0xPU0VfVElNRU9VVCApOworCQl9CisKKwkJLyogZHJvcCBEVFIgYW5kIFJUUyAqLworCQlkaWdpX3NldF9tb2RlbV9zaWduYWxzKCBwb3J0LCAwLCAwICk7CisKKwkJLyogZGlzYWJsZSBpbnB1dCBmbG93IGNvbnRyb2wgKi8KKwkJYnVmWzBdID0gRElHSV9DTURfU0VUX0lOUFVUX0ZMT1dfQ09OVFJPTDsKKwkJYnVmWzFdID0gcHJpdi0+ZHBfcG9ydF9udW07CisJCWJ1ZlsyXSA9IERJR0lfRElTQUJMRTsKKwkJYnVmWzNdID0gMDsKKworCQkvKiBkaXNhYmxlIG91dHB1dCBmbG93IGNvbnRyb2wgKi8KKwkJYnVmWzRdID0gRElHSV9DTURfU0VUX09VVFBVVF9GTE9XX0NPTlRST0w7CisJCWJ1Zls1XSA9IHByaXYtPmRwX3BvcnRfbnVtOworCQlidWZbNl0gPSBESUdJX0RJU0FCTEU7CisJCWJ1Zls3XSA9IDA7CisKKwkJLyogZGlzYWJsZSByZWFkaW5nIG1vZGVtIHNpZ25hbHMgYXV0b21hdGljYWxseSAqLworCQlidWZbOF0gPSBESUdJX0NNRF9SRUFEX0lOUFVUX1NJR05BTFM7CisJCWJ1Zls5XSA9IHByaXYtPmRwX3BvcnRfbnVtOworCQlidWZbMTBdID0gRElHSV9ESVNBQkxFOworCQlidWZbMTFdID0gMDsKKworCQkvKiBkaXNhYmxlIHJlY2VpdmUgKi8KKwkJYnVmWzEyXSA9IERJR0lfQ01EX1JFQ0VJVkVfRU5BQkxFOworCQlidWZbMTNdID0gcHJpdi0+ZHBfcG9ydF9udW07CisJCWJ1ZlsxNF0gPSBESUdJX0RJU0FCTEU7CisJCWJ1ZlsxNV0gPSAwOworCisJCS8qIGZsdXNoIGZpZm9zICovCisJCWJ1ZlsxNl0gPSBESUdJX0NNRF9JRkxVU0hfRklGTzsKKwkJYnVmWzE3XSA9IHByaXYtPmRwX3BvcnRfbnVtOworCQlidWZbMThdID0gRElHSV9GTFVTSF9UWCB8IERJR0lfRkxVU0hfUlg7CisJCWJ1ZlsxOV0gPSAwOworCisJCWlmKCAocmV0PWRpZ2lfd3JpdGVfb29iX2NvbW1hbmQoIHBvcnQsIGJ1ZiwgMjAsIDAgKSkgIT0gMCApCisJCQlkYmcoICJkaWdpX2Nsb3NlOiB3cml0ZSBvb2IgZmFpbGVkLCByZXQ9JWQiLCByZXQgKTsKKworCQkvKiB3YWl0IGZvciBmaW5hbCBjb21tYW5kcyBvbiBvb2IgcG9ydCB0byBjb21wbGV0ZSAqLworCQlwcmVwYXJlX3RvX3dhaXQoJnByaXYtPmRwX2ZsdXNoX3dhaXQsICZ3YWl0LCBUQVNLX1VOSU5URVJSVVBUSUJMRSk7CisJCXNjaGVkdWxlX3RpbWVvdXQoRElHSV9DTE9TRV9USU1FT1VUKTsKKwkJZmluaXNoX3dhaXQoJnByaXYtPmRwX2ZsdXNoX3dhaXQsICZ3YWl0KTsKKworCQkvKiBzaHV0ZG93biBhbnkgb3V0c3RhbmRpbmcgYnVsayB3cml0ZXMgKi8KKwkJdXNiX2tpbGxfdXJiKHBvcnQtPndyaXRlX3VyYik7CisJfQorCisJdHR5LT5jbG9zaW5nID0gMDsKKworZXhpdDoKKwlzcGluX2xvY2tfaXJxc2F2ZSggJnByaXYtPmRwX3BvcnRfbG9jaywgZmxhZ3MgKTsKKwlwcml2LT5kcF93cml0ZV91cmJfaW5fdXNlID0gMDsKKwlwcml2LT5kcF9pbl9jbG9zZSA9IDA7CisJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCAmcHJpdi0+ZHBfY2xvc2Vfd2FpdCApOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoICZwcml2LT5kcF9wb3J0X2xvY2ssIGZsYWdzICk7CisKK2RiZyggImRpZ2lfY2xvc2U6IGRvbmUiICk7Cit9CisKKworLyoKKyogIERpZ2kgU3RhcnR1cCBEZXZpY2UKKyoKKyogIFN0YXJ0cyByZWFkcyBvbiBhbGwgcG9ydHMuICBNdXN0IGJlIGNhbGxlZCBBRlRFUiBzdGFydHVwLCB3aXRoCisqICB1cmJzIGluaXRpYWxpemVkLiAgUmV0dXJucyAwIGlmIHN1Y2Nlc3NmdWwsIG5vbi16ZXJvIGVycm9yIG90aGVyd2lzZS4KKyovCisKK3N0YXRpYyBpbnQgZGlnaV9zdGFydHVwX2RldmljZSggc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCApCit7CisKKwlpbnQgaSxyZXQgPSAwOworCXN0cnVjdCBkaWdpX3NlcmlhbCAqc2VyaWFsX3ByaXYgPSB1c2JfZ2V0X3NlcmlhbF9kYXRhKHNlcmlhbCk7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydDsKKworCisJLyogYmUgc3VyZSB0aGlzIGhhcHBlbnMgZXhhY3RseSBvbmNlICovCisJc3Bpbl9sb2NrKCAmc2VyaWFsX3ByaXYtPmRzX3NlcmlhbF9sb2NrICk7CisJaWYoIHNlcmlhbF9wcml2LT5kc19kZXZpY2Vfc3RhcnRlZCApIHsKKwkJc3Bpbl91bmxvY2soICZzZXJpYWxfcHJpdi0+ZHNfc2VyaWFsX2xvY2sgKTsKKwkJcmV0dXJuKCAwICk7CisJfQorCXNlcmlhbF9wcml2LT5kc19kZXZpY2Vfc3RhcnRlZCA9IDE7CisJc3Bpbl91bmxvY2soICZzZXJpYWxfcHJpdi0+ZHNfc2VyaWFsX2xvY2sgKTsKKworCS8qIHN0YXJ0IHJlYWRpbmcgZnJvbSBlYWNoIGJ1bGsgaW4gZW5kcG9pbnQgZm9yIHRoZSBkZXZpY2UgKi8KKwkvKiBzZXQgVVNCX0RJU0FCTEVfU1BEIGZsYWcgZm9yIHdyaXRlIGJ1bGsgdXJicyAqLworCWZvciggaT0wOyBpPHNlcmlhbC0+dHlwZS0+bnVtX3BvcnRzKzE7IGkrKyApIHsKKworCQlwb3J0ID0gc2VyaWFsLT5wb3J0W2ldOworCisJCXBvcnQtPndyaXRlX3VyYi0+ZGV2ID0gcG9ydC0+c2VyaWFsLT5kZXY7CisKKwkJaWYoIChyZXQ9dXNiX3N1Ym1pdF91cmIocG9ydC0+cmVhZF91cmIsIEdGUF9LRVJORUwpKSAhPSAwICkgeworCQkJZXJyKCIlczogdXNiX3N1Ym1pdF91cmIgZmFpbGVkLCByZXQ9JWQsIHBvcnQ9JWQiLCBfX0ZVTkNUSU9OX18sCisJCQlyZXQsIGkgKTsKKwkJCWJyZWFrOworCQl9CisKKwl9CisKKwlyZXR1cm4oIHJldCApOworCit9CisKKworc3RhdGljIGludCBkaWdpX3N0YXJ0dXAoIHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgKQoreworCisJaW50IGk7CisJc3RydWN0IGRpZ2lfcG9ydCAqcHJpdjsKKwlzdHJ1Y3QgZGlnaV9zZXJpYWwgKnNlcmlhbF9wcml2OworCisKK2RiZyggImRpZ2lfc3RhcnR1cDogVE9QIiApOworCisJLyogYWxsb2NhdGUgdGhlIHByaXZhdGUgZGF0YSBzdHJ1Y3R1cmVzIGZvciBhbGwgcG9ydHMgKi8KKwkvKiBudW1iZXIgb2YgcmVndWxhciBwb3J0cyArIDEgZm9yIHRoZSBvdXQtb2YtYmFuZCBwb3J0ICovCisJZm9yKCBpPTA7IGk8c2VyaWFsLT50eXBlLT5udW1fcG9ydHMrMTsgaSsrICkgeworCisJCS8qIGFsbG9jYXRlIHBvcnQgcHJpdmF0ZSBzdHJ1Y3R1cmUgKi8KKwkJcHJpdiA9IChzdHJ1Y3QgZGlnaV9wb3J0ICopa21hbGxvYyggc2l6ZW9mKHN0cnVjdCBkaWdpX3BvcnQpLAorCQkJR0ZQX0tFUk5FTCApOworCQlpZiggcHJpdiA9PSAoc3RydWN0IGRpZ2lfcG9ydCAqKTAgKSB7CisJCQl3aGlsZSggLS1pID49IDAgKQorCQkJCWtmcmVlKCB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEoc2VyaWFsLT5wb3J0W2ldKSApOworCQkJcmV0dXJuKCAxICk7CQkJLyogZXJyb3IgKi8KKwkJfQorCisJCS8qIGluaXRpYWxpemUgcG9ydCBwcml2YXRlIHN0cnVjdHVyZSAqLworCQlzcGluX2xvY2tfaW5pdCggJnByaXYtPmRwX3BvcnRfbG9jayApOworCQlwcml2LT5kcF9wb3J0X251bSA9IGk7CisJCXByaXYtPmRwX291dF9idWZfbGVuID0gMDsKKwkJcHJpdi0+ZHBfaW5fYnVmX2xlbiA9IDA7CisJCXByaXYtPmRwX3dyaXRlX3VyYl9pbl91c2UgPSAwOworCQlwcml2LT5kcF9tb2RlbV9zaWduYWxzID0gMDsKKwkJaW5pdF93YWl0cXVldWVfaGVhZCggJnByaXYtPmRwX21vZGVtX2NoYW5nZV93YWl0ICk7CisJCXByaXYtPmRwX3RyYW5zbWl0X2lkbGUgPSAwOworCQlpbml0X3dhaXRxdWV1ZV9oZWFkKCAmcHJpdi0+ZHBfdHJhbnNtaXRfaWRsZV93YWl0ICk7CisJCXByaXYtPmRwX3Rocm90dGxlZCA9IDA7CisJCXByaXYtPmRwX3Rocm90dGxlX3Jlc3RhcnQgPSAwOworCQlpbml0X3dhaXRxdWV1ZV9oZWFkKCAmcHJpdi0+ZHBfZmx1c2hfd2FpdCApOworCQlwcml2LT5kcF9pbl9jbG9zZSA9IDA7CisJCWluaXRfd2FpdHF1ZXVlX2hlYWQoICZwcml2LT5kcF9jbG9zZV93YWl0ICk7CisJCUlOSVRfV09SSygmcHJpdi0+ZHBfd2FrZXVwX3dvcmssCisJCQkJZGlnaV93YWtldXBfd3JpdGVfbG9jaywgc2VyaWFsLT5wb3J0W2ldKTsKKworCQkvKiBpbml0aWFsaXplIHdyaXRlIHdhaXQgcXVldWUgZm9yIHRoaXMgcG9ydCAqLworCQlpbml0X3dhaXRxdWV1ZV9oZWFkKCAmc2VyaWFsLT5wb3J0W2ldLT53cml0ZV93YWl0ICk7CisKKwkJdXNiX3NldF9zZXJpYWxfcG9ydF9kYXRhKHNlcmlhbC0+cG9ydFtpXSwgcHJpdik7CisJfQorCisJLyogYWxsb2NhdGUgc2VyaWFsIHByaXZhdGUgc3RydWN0dXJlICovCisJc2VyaWFsX3ByaXYgPSAoc3RydWN0IGRpZ2lfc2VyaWFsICopa21hbGxvYyggc2l6ZW9mKHN0cnVjdCBkaWdpX3NlcmlhbCksCisJCUdGUF9LRVJORUwgKTsKKwlpZiggc2VyaWFsX3ByaXYgPT0gKHN0cnVjdCBkaWdpX3NlcmlhbCAqKTAgKSB7CisJCWZvciggaT0wOyBpPHNlcmlhbC0+dHlwZS0+bnVtX3BvcnRzKzE7IGkrKyApCisJCQlrZnJlZSggdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHNlcmlhbC0+cG9ydFtpXSkgKTsKKwkJcmV0dXJuKCAxICk7CQkJLyogZXJyb3IgKi8KKwl9CisKKwkvKiBpbml0aWFsaXplIHNlcmlhbCBwcml2YXRlIHN0cnVjdHVyZSAqLworCXNwaW5fbG9ja19pbml0KCAmc2VyaWFsX3ByaXYtPmRzX3NlcmlhbF9sb2NrICk7CisJc2VyaWFsX3ByaXYtPmRzX29vYl9wb3J0X251bSA9IHNlcmlhbC0+dHlwZS0+bnVtX3BvcnRzOworCXNlcmlhbF9wcml2LT5kc19vb2JfcG9ydCA9IHNlcmlhbC0+cG9ydFtzZXJpYWxfcHJpdi0+ZHNfb29iX3BvcnRfbnVtXTsKKwlzZXJpYWxfcHJpdi0+ZHNfZGV2aWNlX3N0YXJ0ZWQgPSAwOworCXVzYl9zZXRfc2VyaWFsX2RhdGEoc2VyaWFsLCBzZXJpYWxfcHJpdik7CisKKwlyZXR1cm4oIDAgKTsKKworfQorCisKK3N0YXRpYyB2b2lkIGRpZ2lfc2h1dGRvd24oIHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgKQoreworCisJaW50IGk7CisKKworZGJnKCAiZGlnaV9zaHV0ZG93bjogVE9QLCBpbl9pbnRlcnJ1cHQoKT0lbGQiLCBpbl9pbnRlcnJ1cHQoKSApOworCisJLyogc3RvcCByZWFkcyBhbmQgd3JpdGVzIG9uIGFsbCBwb3J0cyAqLworCWZvciggaT0wOyBpPHNlcmlhbC0+dHlwZS0+bnVtX3BvcnRzKzE7IGkrKyApIHsKKwkJdXNiX2tpbGxfdXJiKHNlcmlhbC0+cG9ydFtpXS0+cmVhZF91cmIpOworCQl1c2Jfa2lsbF91cmIoc2VyaWFsLT5wb3J0W2ldLT53cml0ZV91cmIpOworCX0KKworCS8qIGZyZWUgdGhlIHByaXZhdGUgZGF0YSBzdHJ1Y3R1cmVzIGZvciBhbGwgcG9ydHMgKi8KKwkvKiBudW1iZXIgb2YgcmVndWxhciBwb3J0cyArIDEgZm9yIHRoZSBvdXQtb2YtYmFuZCBwb3J0ICovCisJZm9yKCBpPTA7IGk8c2VyaWFsLT50eXBlLT5udW1fcG9ydHMrMTsgaSsrICkKKwkJa2ZyZWUoIHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShzZXJpYWwtPnBvcnRbaV0pICk7CisJa2ZyZWUoIHVzYl9nZXRfc2VyaWFsX2RhdGEoc2VyaWFsKSApOworfQorCisKK3N0YXRpYyB2b2lkIGRpZ2lfcmVhZF9idWxrX2NhbGxiYWNrKCBzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzICkKK3sKKworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqKXVyYi0+Y29udGV4dDsKKwlzdHJ1Y3QgZGlnaV9wb3J0ICpwcml2OworCXN0cnVjdCBkaWdpX3NlcmlhbCAqc2VyaWFsX3ByaXY7CisJaW50IHJldDsKKworCitkYmcoICJkaWdpX3JlYWRfYnVsa19jYWxsYmFjazogVE9QIiApOworCisJLyogcG9ydCBzYW5pdHkgY2hlY2ssIGRvIG5vdCByZXN1Ym1pdCBpZiBwb3J0IGlzIG5vdCB2YWxpZCAqLworCWlmKCBwb3J0ID09IE5VTEwgfHwgKHByaXY9dXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpKSA9PSBOVUxMICkgeworCQllcnIoIiVzOiBwb3J0IG9yIHBvcnQtPnByaXZhdGUgaXMgTlVMTCwgc3RhdHVzPSVkIiwgX19GVU5DVElPTl9fLAorCQkJdXJiLT5zdGF0dXMgKTsKKwkJcmV0dXJuOworCX0KKwlpZiggcG9ydC0+c2VyaWFsID09IE5VTEwKKwl8fCAoc2VyaWFsX3ByaXY9dXNiX2dldF9zZXJpYWxfZGF0YShwb3J0LT5zZXJpYWwpKSA9PSBOVUxMICkgeworCQllcnIoIiVzOiBzZXJpYWwgaXMgYmFkIG9yIHNlcmlhbC0+cHJpdmF0ZSBpcyBOVUxMLCBzdGF0dXM9JWQiLCBfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzICk7CisJCXJldHVybjsKKwl9CisKKwkvKiBkbyBub3QgcmVzdWJtaXQgdXJiIGlmIGl0IGhhcyBhbnkgc3RhdHVzIGVycm9yICovCisJaWYoIHVyYi0+c3RhdHVzICkgeworCQllcnIoIiVzOiBub256ZXJvIHJlYWQgYnVsayBzdGF0dXM6IHN0YXR1cz0lZCwgcG9ydD0lZCIsIF9fRlVOQ1RJT05fXywgdXJiLT5zdGF0dXMsIHByaXYtPmRwX3BvcnRfbnVtICk7CisJCXJldHVybjsKKwl9CisKKwkvKiBoYW5kbGUgb29iIG9yIGluYiBjYWxsYmFjaywgZG8gbm90IHJlc3VibWl0IGlmIGVycm9yICovCisJaWYoIHByaXYtPmRwX3BvcnRfbnVtID09IHNlcmlhbF9wcml2LT5kc19vb2JfcG9ydF9udW0gKSB7CisJCWlmKCBkaWdpX3JlYWRfb29iX2NhbGxiYWNrKCB1cmIgKSAhPSAwICkKKwkJCXJldHVybjsKKwl9IGVsc2UgeworCQlpZiggZGlnaV9yZWFkX2luYl9jYWxsYmFjayggdXJiICkgIT0gMCApCisJCQlyZXR1cm47CisJfQorCisJLyogY29udGludWUgcmVhZCAqLworCXVyYi0+ZGV2ID0gcG9ydC0+c2VyaWFsLT5kZXY7CisJaWYoIChyZXQ9dXNiX3N1Ym1pdF91cmIodXJiLCBHRlBfQVRPTUlDKSkgIT0gMCApIHsKKwkJZXJyKCIlczogZmFpbGVkIHJlc3VibWl0dGluZyB1cmIsIHJldD0lZCwgcG9ydD0lZCIsIF9fRlVOQ1RJT05fXywKKwkJCXJldCwgcHJpdi0+ZHBfcG9ydF9udW0gKTsKKwl9CisKK30KKworCisvKiAKKyogIERpZ2kgUmVhZCBJTkIgQ2FsbGJhY2sKKyoKKyogIERpZ2kgUmVhZCBJTkIgQ2FsbGJhY2sgaGFuZGxlcyByZWFkcyBvbiB0aGUgaW4gYmFuZCBwb3J0cywgc2VuZGluZworKiAgdGhlIGRhdGEgb24gdG8gdGhlIHR0eSBzdWJzeXN0ZW0uICBXaGVuIGNhbGxlZCB3ZSBrbm93IHBvcnQgYW5kCisqICBwb3J0LT5wcml2YXRlIGFyZSBub3QgTlVMTCBhbmQgcG9ydC0+c2VyaWFsIGhhcyBiZWVuIHZhbGlkYXRlZC4KKyogIEl0IHJldHVybnMgMCBpZiBzdWNjZXNzZnVsLCAxIGlmIHN1Y2Nlc3NmdWwgYnV0IHRoZSBwb3J0IGlzCisqICB0aHJvdHRsZWQsIGFuZCAtMSBpZiB0aGUgc2FuaXR5IGNoZWNrcyBmYWlsZWQuCisqLworCitzdGF0aWMgaW50IGRpZ2lfcmVhZF9pbmJfY2FsbGJhY2soIHN0cnVjdCB1cmIgKnVyYiApCit7CisKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ID0gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKil1cmItPmNvbnRleHQ7CisJc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSA9IHBvcnQtPnR0eTsKKwlzdHJ1Y3QgZGlnaV9wb3J0ICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCWludCBvcGNvZGUgPSAoKHVuc2lnbmVkIGNoYXIgKil1cmItPnRyYW5zZmVyX2J1ZmZlcilbMF07CisJaW50IGxlbiA9ICgodW5zaWduZWQgY2hhciAqKXVyYi0+dHJhbnNmZXJfYnVmZmVyKVsxXTsKKwlpbnQgc3RhdHVzID0gKCh1bnNpZ25lZCBjaGFyICopdXJiLT50cmFuc2Zlcl9idWZmZXIpWzJdOworCXVuc2lnbmVkIGNoYXIgKmRhdGEgPSAoKHVuc2lnbmVkIGNoYXIgKil1cmItPnRyYW5zZmVyX2J1ZmZlcikrMzsKKwlpbnQgZmxhZyx0aHJvdHRsZWQ7CisKKwkvKiBkbyBub3QgcHJvY2VzcyBjYWxsYmFja3Mgb24gY2xvc2VkIHBvcnRzICovCisJLyogYnV0IGRvIGNvbnRpbnVlIHRoZSByZWFkIGNoYWluICovCisJaWYoIHBvcnQtPm9wZW5fY291bnQgPT0gMCApCisJCXJldHVybiggMCApOworCisJLyogc2hvcnQvbXVsdGlwbGUgcGFja2V0IGNoZWNrICovCisJaWYoIHVyYi0+YWN0dWFsX2xlbmd0aCAhPSBsZW4gKyAyICkgeworICAgICAJCWVycigiJXM6IElOQ09NUExFVEUgT1IgTVVMVElQTEUgUEFDS0VULCB1cmItPnN0YXR1cz0lZCwgcG9ydD0lZCwgb3Bjb2RlPSVkLCBsZW49JWQsIGFjdHVhbF9sZW5ndGg9JWQsIHN0YXR1cz0lZCIsIF9fRlVOQ1RJT05fXywgdXJiLT5zdGF0dXMsIHByaXYtPmRwX3BvcnRfbnVtLCBvcGNvZGUsIGxlbiwgdXJiLT5hY3R1YWxfbGVuZ3RoLCBzdGF0dXMgKTsKKwkJcmV0dXJuKCAtMSApOworCX0KKworCXNwaW5fbG9jayggJnByaXYtPmRwX3BvcnRfbG9jayApOworCisJLyogY2hlY2sgZm9yIHRocm90dGxlOyBpZiBzZXQsIGRvIG5vdCByZXN1Ym1pdCByZWFkIHVyYiAqLworCS8qIGluZGljYXRlIHRoZSByZWFkIGNoYWluIG5lZWRzIHRvIGJlIHJlc3RhcnRlZCBvbiB1bnRocm90dGxlICovCisJdGhyb3R0bGVkID0gcHJpdi0+ZHBfdGhyb3R0bGVkOworCWlmKCB0aHJvdHRsZWQgKQorCQlwcml2LT5kcF90aHJvdHRsZV9yZXN0YXJ0ID0gMTsKKworCS8qIHJlY2VpdmUgZGF0YSAqLworCWlmKCBvcGNvZGUgPT0gRElHSV9DTURfUkVDRUlWRV9EQVRBICkgeworCisJCS8qIGdldCBmbGFnIGZyb20gc3RhdHVzICovCisJCWZsYWcgPSAwOworCisJCS8qIG92ZXJydW4gaXMgc3BlY2lhbCwgbm90IGFzc29jaWF0ZWQgd2l0aCBhIGNoYXIgKi8KKwkJaWYoIHN0YXR1cyAmIERJR0lfT1ZFUlJVTl9FUlJPUiApIHsKKwkJCXR0eV9pbnNlcnRfZmxpcF9jaGFyKCB0dHksIDAsIFRUWV9PVkVSUlVOICk7CisJCX0KKworCQkvKiBicmVhayB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgcGFyaXR5LCAqLworCQkvKiB3aGljaCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgZnJhbWluZyBlcnJvcnMgKi8KKwkJaWYoIHN0YXR1cyAmIERJR0lfQlJFQUtfRVJST1IgKSB7CisJCQlmbGFnID0gVFRZX0JSRUFLOworCQl9IGVsc2UgaWYoIHN0YXR1cyAmIERJR0lfUEFSSVRZX0VSUk9SICkgeworCQkJZmxhZyA9IFRUWV9QQVJJVFk7CisJCX0gZWxzZSBpZiggc3RhdHVzICYgRElHSV9GUkFNSU5HX0VSUk9SICkgeworCQkJZmxhZyA9IFRUWV9GUkFNRTsKKwkJfQorCisJCS8qIGRhdGEgbGVuZ3RoIGlzIGxlbi0xIChvbmUgYnl0ZSBvZiBsZW4gaXMgc3RhdHVzKSAqLworCQktLWxlbjsKKworCQlpZiggdGhyb3R0bGVkICkgeworCisJCQlsZW4gPSBtaW4oIGxlbiwKKwkJCQlESUdJX0lOX0JVRl9TSVpFIC0gcHJpdi0+ZHBfaW5fYnVmX2xlbiApOworCisJCQlpZiggbGVuID4gMCApIHsKKwkJCQltZW1jcHkoIHByaXYtPmRwX2luX2J1ZiArIHByaXYtPmRwX2luX2J1Zl9sZW4sCisJCQkJCWRhdGEsIGxlbiApOworCQkJCW1lbXNldCggcHJpdi0+ZHBfaW5fZmxhZ19idWYKKwkJCQkJKyBwcml2LT5kcF9pbl9idWZfbGVuLCBmbGFnLCBsZW4gKTsKKwkJCQlwcml2LT5kcF9pbl9idWZfbGVuICs9IGxlbjsKKwkJCX0KKworCQl9IGVsc2UgeworCisJCQlsZW4gPSBtaW4oIGxlbiwgVFRZX0ZMSVBCVUZfU0laRSAtIHR0eS0+ZmxpcC5jb3VudCApOworCisJCQlpZiggbGVuID4gMCApIHsKKwkJCQltZW1jcHkoIHR0eS0+ZmxpcC5jaGFyX2J1Zl9wdHIsIGRhdGEsIGxlbiApOworCQkJCW1lbXNldCggdHR5LT5mbGlwLmZsYWdfYnVmX3B0ciwgZmxhZywgbGVuICk7CisJCQkJdHR5LT5mbGlwLmNoYXJfYnVmX3B0ciArPSBsZW47CisJCQkJdHR5LT5mbGlwLmZsYWdfYnVmX3B0ciArPSBsZW47CisJCQkJdHR5LT5mbGlwLmNvdW50ICs9IGxlbjsKKwkJCQl0dHlfZmxpcF9idWZmZXJfcHVzaCggdHR5ICk7CisJCQl9CisKKwkJfQorCisJfQorCisJc3Bpbl91bmxvY2soICZwcml2LT5kcF9wb3J0X2xvY2sgKTsKKworCWlmKCBvcGNvZGUgPT0gRElHSV9DTURfUkVDRUlWRV9ESVNBQkxFICkgeworCQlkYmcoIiVzOiBnb3QgUkVDRUlWRV9ESVNBQkxFIiwgX19GVU5DVElPTl9fICk7CisJfSBlbHNlIGlmKCBvcGNvZGUgIT0gRElHSV9DTURfUkVDRUlWRV9EQVRBICkgeworCQlkYmcoIiVzOiB1bmtub3duIG9wY29kZTogJWQiLCBfX0ZVTkNUSU9OX18sIG9wY29kZSApOworCX0KKworCXJldHVybiggdGhyb3R0bGVkID8gMSA6IDAgKTsKKworfQorCisKKy8qIAorKiAgRGlnaSBSZWFkIE9PQiBDYWxsYmFjaworKgorKiAgRGlnaSBSZWFkIE9PQiBDYWxsYmFjayBoYW5kbGVzIHJlYWRzIG9uIHRoZSBvdXQgb2YgYmFuZCBwb3J0LgorKiAgV2hlbiBjYWxsZWQgd2Uga25vdyBwb3J0IGFuZCBwb3J0LT5wcml2YXRlIGFyZSBub3QgTlVMTCBhbmQKKyogIHRoZSBwb3J0LT5zZXJpYWwgaXMgdmFsaWQuICBJdCByZXR1cm5zIDAgaWYgc3VjY2Vzc2Z1bCwgYW5kCisqICAtMSBpZiB0aGUgc2FuaXR5IGNoZWNrcyBmYWlsZWQuCisqLworCitzdGF0aWMgaW50IGRpZ2lfcmVhZF9vb2JfY2FsbGJhY2soIHN0cnVjdCB1cmIgKnVyYiApCit7CisKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ID0gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKil1cmItPmNvbnRleHQ7CisJc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCA9IHBvcnQtPnNlcmlhbDsKKwlzdHJ1Y3QgZGlnaV9wb3J0ICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCWludCBvcGNvZGUsIGxpbmUsIHN0YXR1cywgdmFsOworCWludCBpOworCisKK2RiZyggImRpZ2lfcmVhZF9vb2JfY2FsbGJhY2s6IHBvcnQ9JWQsIGxlbj0lZCIsIHByaXYtPmRwX3BvcnRfbnVtLAordXJiLT5hY3R1YWxfbGVuZ3RoICk7CisKKwkvKiBoYW5kbGUgZWFjaCBvb2IgY29tbWFuZCAqLworCWZvciggaT0wOyBpPHVyYi0+YWN0dWFsX2xlbmd0aC0zOyApIHsKKworCQlvcGNvZGUgPSAoKHVuc2lnbmVkIGNoYXIgKil1cmItPnRyYW5zZmVyX2J1ZmZlcilbaSsrXTsKKwkJbGluZSA9ICgodW5zaWduZWQgY2hhciAqKXVyYi0+dHJhbnNmZXJfYnVmZmVyKVtpKytdOworCQlzdGF0dXMgPSAoKHVuc2lnbmVkIGNoYXIgKil1cmItPnRyYW5zZmVyX2J1ZmZlcilbaSsrXTsKKwkJdmFsID0gKCh1bnNpZ25lZCBjaGFyICopdXJiLT50cmFuc2Zlcl9idWZmZXIpW2krK107CisKK2RiZyggImRpZ2lfcmVhZF9vb2JfY2FsbGJhY2s6IG9wY29kZT0lZCwgbGluZT0lZCwgc3RhdHVzPSVkLCB2YWw9JWQiLAorb3Bjb2RlLCBsaW5lLCBzdGF0dXMsIHZhbCApOworCisJCWlmKCBzdGF0dXMgIT0gMCB8fCBsaW5lID49IHNlcmlhbC0+dHlwZS0+bnVtX3BvcnRzICkKKwkJCWNvbnRpbnVlOworCisJCXBvcnQgPSBzZXJpYWwtPnBvcnRbbGluZV07CisKKwkJaWYgKChwcml2PXVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KSkgPT0gTlVMTCApCisJCQlyZXR1cm4gLTE7CisKKwkJaWYoIG9wY29kZSA9PSBESUdJX0NNRF9SRUFEX0lOUFVUX1NJR05BTFMgKSB7CisKKwkJCXNwaW5fbG9jayggJnByaXYtPmRwX3BvcnRfbG9jayApOworCisJCQkvKiBjb252ZXJ0IGZyb20gZGlnaSBmbGFncyB0byB0ZXJtaW94IGZsYWdzICovCisJCQlpZiggdmFsICYgRElHSV9SRUFEX0lOUFVUX1NJR05BTFNfQ1RTICkgeworCQkJCXByaXYtPmRwX21vZGVtX3NpZ25hbHMgfD0gVElPQ01fQ1RTOworCQkJCS8qIHBvcnQgbXVzdCBiZSBvcGVuIHRvIHVzZSB0dHkgc3RydWN0ICovCisJCQkJaWYoIHBvcnQtPm9wZW5fY291bnQKKwkJCQkmJiBwb3J0LT50dHktPnRlcm1pb3MtPmNfY2ZsYWcgJiBDUlRTQ1RTICkgeworCQkJCQlwb3J0LT50dHktPmh3X3N0b3BwZWQgPSAwOworCQkJCQlkaWdpX3dha2V1cF93cml0ZSggcG9ydCApOworCQkJCX0KKwkJCX0gZWxzZSB7CisJCQkJcHJpdi0+ZHBfbW9kZW1fc2lnbmFscyAmPSB+VElPQ01fQ1RTOworCQkJCS8qIHBvcnQgbXVzdCBiZSBvcGVuIHRvIHVzZSB0dHkgc3RydWN0ICovCisJCQkJaWYoIHBvcnQtPm9wZW5fY291bnQKKwkJCQkmJiBwb3J0LT50dHktPnRlcm1pb3MtPmNfY2ZsYWcgJiBDUlRTQ1RTICkgeworCQkJCQlwb3J0LT50dHktPmh3X3N0b3BwZWQgPSAxOworCQkJCX0KKwkJCX0KKwkJCWlmKCB2YWwgJiBESUdJX1JFQURfSU5QVVRfU0lHTkFMU19EU1IgKQorCQkJCXByaXYtPmRwX21vZGVtX3NpZ25hbHMgfD0gVElPQ01fRFNSOworCQkJZWxzZQorCQkJCXByaXYtPmRwX21vZGVtX3NpZ25hbHMgJj0gflRJT0NNX0RTUjsKKwkJCWlmKCB2YWwgJiBESUdJX1JFQURfSU5QVVRfU0lHTkFMU19SSSApCisJCQkJcHJpdi0+ZHBfbW9kZW1fc2lnbmFscyB8PSBUSU9DTV9SSTsKKwkJCWVsc2UKKwkJCQlwcml2LT5kcF9tb2RlbV9zaWduYWxzICY9IH5USU9DTV9SSTsKKwkJCWlmKCB2YWwgJiBESUdJX1JFQURfSU5QVVRfU0lHTkFMU19EQ0QgKQorCQkJCXByaXYtPmRwX21vZGVtX3NpZ25hbHMgfD0gVElPQ01fQ0Q7CisJCQllbHNlCisJCQkJcHJpdi0+ZHBfbW9kZW1fc2lnbmFscyAmPSB+VElPQ01fQ0Q7CisKKwkJCXdha2VfdXBfaW50ZXJydXB0aWJsZSggJnByaXYtPmRwX21vZGVtX2NoYW5nZV93YWl0ICk7CisJCQlzcGluX3VubG9jayggJnByaXYtPmRwX3BvcnRfbG9jayApOworCisJCX0gZWxzZSBpZiggb3Bjb2RlID09IERJR0lfQ01EX1RSQU5TTUlUX0lETEUgKSB7CisKKwkJCXNwaW5fbG9jayggJnByaXYtPmRwX3BvcnRfbG9jayApOworCQkJcHJpdi0+ZHBfdHJhbnNtaXRfaWRsZSA9IDE7CisJCQl3YWtlX3VwX2ludGVycnVwdGlibGUoICZwcml2LT5kcF90cmFuc21pdF9pZGxlX3dhaXQgKTsKKwkJCXNwaW5fdW5sb2NrKCAmcHJpdi0+ZHBfcG9ydF9sb2NrICk7CisKKwkJfSBlbHNlIGlmKCBvcGNvZGUgPT0gRElHSV9DTURfSUZMVVNIX0ZJRk8gKSB7CisKKwkJCXdha2VfdXAoICZwcml2LT5kcF9mbHVzaF93YWl0ICk7CisKKwkJfQorCisJfQorCisJcmV0dXJuKCAwICk7CisKK30KKworCitzdGF0aWMgaW50IF9faW5pdCBkaWdpX2luaXQgKHZvaWQpCit7CisJaW50IHJldHZhbDsKKwlyZXR2YWwgPSB1c2Jfc2VyaWFsX3JlZ2lzdGVyKCZkaWdpX2FjY2VsZXBvcnRfMl9kZXZpY2UpOworCWlmIChyZXR2YWwpCisJCWdvdG8gZmFpbGVkX2FjY2VsZXBvcnRfMl9kZXZpY2U7CisJcmV0dmFsID0gdXNiX3NlcmlhbF9yZWdpc3RlcigmZGlnaV9hY2NlbGVwb3J0XzRfZGV2aWNlKTsKKwlpZiAocmV0dmFsKSAKKwkJZ290byBmYWlsZWRfYWNjZWxlcG9ydF80X2RldmljZTsKKwlyZXR2YWwgPSB1c2JfcmVnaXN0ZXIoJmRpZ2lfZHJpdmVyKTsKKwlpZiAocmV0dmFsKQorCQlnb3RvIGZhaWxlZF91c2JfcmVnaXN0ZXI7CisJaW5mbyhEUklWRVJfVkVSU0lPTiAiOiIgRFJJVkVSX0RFU0MpOworCXJldHVybiAwOworZmFpbGVkX3VzYl9yZWdpc3RlcjoKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIoJmRpZ2lfYWNjZWxlcG9ydF80X2RldmljZSk7CitmYWlsZWRfYWNjZWxlcG9ydF80X2RldmljZToKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIoJmRpZ2lfYWNjZWxlcG9ydF8yX2RldmljZSk7CitmYWlsZWRfYWNjZWxlcG9ydF8yX2RldmljZToKKwlyZXR1cm4gcmV0dmFsOworfQorCisKK3N0YXRpYyB2b2lkIF9fZXhpdCBkaWdpX2V4aXQgKHZvaWQpCit7CisJdXNiX2RlcmVnaXN0ZXIgKCZkaWdpX2RyaXZlcik7CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyICgmZGlnaV9hY2NlbGVwb3J0XzJfZGV2aWNlKTsKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIgKCZkaWdpX2FjY2VsZXBvcnRfNF9kZXZpY2UpOworfQorCisKK21vZHVsZV9pbml0KGRpZ2lfaW5pdCk7Cittb2R1bGVfZXhpdChkaWdpX2V4aXQpOworCisKK01PRFVMRV9BVVRIT1IoIERSSVZFUl9BVVRIT1IgKTsKK01PRFVMRV9ERVNDUklQVElPTiggRFJJVkVSX0RFU0MgKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKKworbW9kdWxlX3BhcmFtKGRlYnVnLCBib29sLCBTX0lSVUdPIHwgU19JV1VTUik7CitNT0RVTEVfUEFSTV9ERVNDKGRlYnVnLCAiRGVidWcgZW5hYmxlZCBvciBub3QiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9lbXBlZy5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2VtcGVnLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQ0NjM5NAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9lbXBlZy5jCkBAIC0wLDAgKzEsNTk2IEBACisvKgorICogVVNCIEVtcGVnIGVtcGVnLWNhciBwbGF5ZXIgZHJpdmVyCisgKgorICoJQ29weXJpZ2h0IChDKSAyMDAwLCAyMDAxCisgKgkgICAgR2FyeSBCcnViYWtlciAoeGF2eWVyQGl4Lm5ldGNvbS5jb20pCisgKgorICoJQ29weXJpZ2h0IChDKSAxOTk5IC0gMjAwMQorICoJICAgIEdyZWcgS3JvYWgtSGFydG1hbiAoZ3JlZ0Brcm9haC5jb20pCisgKgorICoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqCWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGFzIHB1Ymxpc2hlZCBieQorICoJdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgdmVyc2lvbiAyLgorICoKKyAqIFNlZSBEb2N1bWVudGF0aW9uL3VzYi91c2Itc2VyaWFsLnR4dCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB1c2luZyB0aGlzIGRyaXZlcgorICogCisgKiAoMDcvMTYvMjAwMSkgZ2IKKyAqCXJlbW92ZSB1bnVzZWQgY29kZSBpbiBlbXBlZ19jbG9zZSgpICh0aGFua3MgdG8gT2xpdmVyIE5ldWt1bSBmb3IgcG9pbnRpbmcgdGhpcworICoJb3V0KSBhbmQgcmV3cm90ZSBlbXBlZ19zZXRfdGVybWlvcygpLgorICogCisgKiAoMDUvMzAvMjAwMSkgZ2toCisgKglzd2l0Y2hlZCBmcm9tIHVzaW5nIHNwaW5sb2NrIHRvIGEgc2VtYXBob3JlLCB3aGljaCBmaXhlcyBsb3RzIG9mIHByb2JsZW1zLgorICoKKyAqICgwNC8wOC8yMDAxKSBnYgorICogICAgICBJZGVudGlmeSB2ZXJzaW9uIG9uIG1vZHVsZSBsb2FkLgorICogCisgKiAoMDEvMjIvMjAwMSkgZ2IKKyAqCUFkZGVkIHdyaXRlX3Jvb20oKSBhbmQgY2hhcnNfaW5fYnVmZmVyKCkgc3VwcG9ydC4gCisgKiAKKyAqICgxMi8yMS8yMDAwKSBnYgorICoJTW92ZWQgdGVybWlvIHN0dWZmIGluc2lkZSB0aGUgcG9ydC0+YWN0aXZlIGNoZWNrLgorICoJTW92ZWQgTU9EX0RFQ19VU0VfQ09VTlQgdG8gZW5kIG9mIGVtcGVnX2Nsb3NlKCkuCisgKiAKKyAqICgxMi8wMy8yMDAwKSBnYgorICoJQWRkZWQgcG9ydC0+dHR5LT5sZGlzYy5zZXRfdGVybWlvcyhwb3J0LT50dHksIE5VTEwpIHRvIGVtcGVnX29wZW4oKQorICoJVGhpcyBub3RpZmllcyB0aGUgdHR5IGRyaXZlciB0aGF0IHRoZSB0ZXJtaW9zIGhhdmUgY2hhbmdlZC4KKyAqIAorICogKDExLzEzLzIwMDApIGdiCisgKglNb3ZlZCB0dHktPmxvd19sYXRlbmN5ID0gMSBmcm9tIGVtcGVnX3JlYWRfYnVsa19jYWxsYmFjaygpIHRvIGVtcGVnX29wZW4oKQorICoJKEl0IG9ubHkgbmVlZHMgdG8gYmUgc2V0IG9uY2UgLSBEb2ghKQorICogCisgKiAoMTEvMTEvMjAwMCkgZ2IKKyAqCVVwZGF0ZWQgdG8gd29yayB3aXRoIGlkX3RhYmxlIHN0cnVjdHVyZS4KKyAqIAorICogKDExLzA0LzIwMDApIGdiCisgKglGb3JrZWQgdGhpcyBmcm9tIHZpc29yLmMsIGFuZCBoYWNrZWQgaXQgdXAgdG8gd29yayB3aXRoIGFuCisgKglFbXBlZyBsdGQuIGVtcGVnLWNhciBwbGF5ZXIuICBDb25zdHJ1Y3RpdmUgY3JpdGljaXNtIHdlbGNvbWVkLgorICoJSSB3b3VsZCBsaWtlIHRvIHNheSwgJ1RoYW5rIFlvdScgdG8gR3JlZyBLcm9haC1IYXJ0bWFuIGZvciB0aGUKKyAqCXVzZSBvZiBoaXMgY29kZSwgYW5kIGZvciBoaXMgZ3VpZGFuY2UsIGFkdmljZSBhbmQgcGF0aWVuY2UuIDopCisgKglBICdUaGFuayBZb3UnIGlzIGluIG9yZGVyIGZvciBKb2huIFJpcGxleSBvZiBFbXBlZyBsdGQgZm9yIGhpcworICoJYWR2aWNlLCBhbmQgcGF0aWVuY2UgdG9vLgorICogCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC90dHkuaD4KKyNpbmNsdWRlIDxsaW51eC90dHlfZHJpdmVyLmg+CisjaW5jbHVkZSA8bGludXgvdHR5X2ZsaXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvdXNiLmg+CisjaW5jbHVkZSAidXNiLXNlcmlhbC5oIgorCitzdGF0aWMgaW50IGRlYnVnOworCisvKgorICogVmVyc2lvbiBJbmZvcm1hdGlvbgorICovCisjZGVmaW5lIERSSVZFUl9WRVJTSU9OICJ2MS4yIgorI2RlZmluZSBEUklWRVJfQVVUSE9SICJHcmVnIEtyb2FoLUhhcnRtYW4gPGdyZWdAa3JvYWguY29tPiwgR2FyeSBCcnViYWtlciA8eGF2eWVyQGl4Lm5ldGNvbS5jb20+IgorI2RlZmluZSBEUklWRVJfREVTQyAiVVNCIEVtcGVnIE1hcmsgSS9JSSBEcml2ZXIiCisKKyNkZWZpbmUgRU1QRUdfVkVORE9SX0lECQkJMHgwODRmCisjZGVmaW5lIEVNUEVHX1BST0RVQ1RfSUQJCTB4MDAwMQorCisvKiBmdW5jdGlvbiBwcm90b3R5cGVzIGZvciBhbiBlbXBlZy1jYXIgcGxheWVyICovCitzdGF0aWMgaW50ICBlbXBlZ19vcGVuCQkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKTsKK3N0YXRpYyB2b2lkIGVtcGVnX2Nsb3NlCQkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKTsKK3N0YXRpYyBpbnQgIGVtcGVnX3dyaXRlCQkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCisJCQkJCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZiwKKwkJCQkJaW50IGNvdW50KTsKK3N0YXRpYyBpbnQgIGVtcGVnX3dyaXRlX3Jvb20JCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KTsKK3N0YXRpYyBpbnQgIGVtcGVnX2NoYXJzX2luX2J1ZmZlcgkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCk7CitzdGF0aWMgdm9pZCBlbXBlZ190aHJvdHRsZQkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworc3RhdGljIHZvaWQgZW1wZWdfdW50aHJvdHRsZQkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworc3RhdGljIGludCAgZW1wZWdfc3RhcnR1cAkJKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpOworc3RhdGljIHZvaWQgZW1wZWdfc2h1dGRvd24JCShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKTsKK3N0YXRpYyBpbnQgIGVtcGVnX2lvY3RsCQkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCisJCQkJCXN0cnVjdCBmaWxlICogZmlsZSwKKwkJCQkJdW5zaWduZWQgaW50IGNtZCwKKwkJCQkJdW5zaWduZWQgbG9uZyBhcmcpOworc3RhdGljIHZvaWQgZW1wZWdfc2V0X3Rlcm1pb3MJCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgdGVybWlvcyAqb2xkX3Rlcm1pb3MpOworc3RhdGljIHZvaWQgZW1wZWdfd3JpdGVfYnVsa19jYWxsYmFjawkoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CitzdGF0aWMgdm9pZCBlbXBlZ19yZWFkX2J1bGtfY2FsbGJhY2sJKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOworCitzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgaWRfdGFibGUgW10gPSB7CisJeyBVU0JfREVWSUNFKEVNUEVHX1ZFTkRPUl9JRCwgRU1QRUdfUFJPRFVDVF9JRCkgfSwKKwl7IH0JCQkJCS8qIFRlcm1pbmF0aW5nIGVudHJ5ICovCit9OworCitNT0RVTEVfREVWSUNFX1RBQkxFICh1c2IsIGlkX3RhYmxlKTsKKworc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIGVtcGVnX2RyaXZlciA9IHsKKwkub3duZXIgPQlUSElTX01PRFVMRSwKKwkubmFtZSA9CQkiZW1wZWciLAorCS5wcm9iZSA9CXVzYl9zZXJpYWxfcHJvYmUsCisJLmRpc2Nvbm5lY3QgPQl1c2Jfc2VyaWFsX2Rpc2Nvbm5lY3QsCisJLmlkX3RhYmxlID0JaWRfdGFibGUsCit9OworCitzdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUgZW1wZWdfZGV2aWNlID0geworCS5vd25lciA9CQlUSElTX01PRFVMRSwKKwkubmFtZSA9CQkJIkVtcGVnIiwKKwkuaWRfdGFibGUgPQkJaWRfdGFibGUsCisJLm51bV9pbnRlcnJ1cHRfaW4gPQkwLAorCS5udW1fYnVsa19pbiA9CQkxLAorCS5udW1fYnVsa19vdXQgPQkJMSwKKwkubnVtX3BvcnRzID0JCTEsCisJLm9wZW4gPQkJCWVtcGVnX29wZW4sCisJLmNsb3NlID0JCWVtcGVnX2Nsb3NlLAorCS50aHJvdHRsZSA9CQllbXBlZ190aHJvdHRsZSwKKwkudW50aHJvdHRsZSA9CQllbXBlZ191bnRocm90dGxlLAorCS5hdHRhY2ggPQkJZW1wZWdfc3RhcnR1cCwKKwkuc2h1dGRvd24gPQkJZW1wZWdfc2h1dGRvd24sCisJLmlvY3RsID0JCWVtcGVnX2lvY3RsLAorCS5zZXRfdGVybWlvcyA9CQllbXBlZ19zZXRfdGVybWlvcywKKwkud3JpdGUgPQkJZW1wZWdfd3JpdGUsCisJLndyaXRlX3Jvb20gPQkJZW1wZWdfd3JpdGVfcm9vbSwKKwkuY2hhcnNfaW5fYnVmZmVyID0JZW1wZWdfY2hhcnNfaW5fYnVmZmVyLAorCS53cml0ZV9idWxrX2NhbGxiYWNrID0JZW1wZWdfd3JpdGVfYnVsa19jYWxsYmFjaywKKwkucmVhZF9idWxrX2NhbGxiYWNrID0JZW1wZWdfcmVhZF9idWxrX2NhbGxiYWNrLAorfTsKKworI2RlZmluZSBOVU1fVVJCUwkJCTE2CisjZGVmaW5lIFVSQl9UUkFOU0ZFUl9CVUZGRVJfU0laRQk0MDk2CisKK3N0YXRpYyBzdHJ1Y3QgdXJiCSp3cml0ZV91cmJfcG9vbFtOVU1fVVJCU107CitzdGF0aWMgc3BpbmxvY2tfdAl3cml0ZV91cmJfcG9vbF9sb2NrOworc3RhdGljIGludAkJYnl0ZXNfaW47CitzdGF0aWMgaW50CQlieXRlc19vdXQ7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEVtcGVnIHNwZWNpZmljIGRyaXZlciBmdW5jdGlvbnMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgaW50IGVtcGVnX29wZW4gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgPSBwb3J0LT5zZXJpYWw7CisJaW50IHJlc3VsdCA9IDA7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCS8qIEZvcmNlIGRlZmF1bHQgdGVybWlvIHNldHRpbmdzICovCisJZW1wZWdfc2V0X3Rlcm1pb3MgKHBvcnQsIE5VTEwpIDsKKworCWJ5dGVzX2luID0gMDsKKwlieXRlc19vdXQgPSAwOworCisJLyogU3RhcnQgcmVhZGluZyBmcm9tIHRoZSBkZXZpY2UgKi8KKwl1c2JfZmlsbF9idWxrX3VyYigKKwkJcG9ydC0+cmVhZF91cmIsCisJCXNlcmlhbC0+ZGV2LCAKKwkJdXNiX3JjdmJ1bGtwaXBlKHNlcmlhbC0+ZGV2LAorCQkJcG9ydC0+YnVsa19pbl9lbmRwb2ludEFkZHJlc3MpLAorCQlwb3J0LT5yZWFkX3VyYi0+dHJhbnNmZXJfYnVmZmVyLAorCQlwb3J0LT5yZWFkX3VyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCwKKwkJZW1wZWdfcmVhZF9idWxrX2NhbGxiYWNrLAorCQlwb3J0KTsKKworCXJlc3VsdCA9IHVzYl9zdWJtaXRfdXJiKHBvcnQtPnJlYWRfdXJiLCBHRlBfS0VSTkVMKTsKKworCWlmIChyZXN1bHQpCisJCWRldl9lcnIoJnBvcnQtPmRldiwgIiVzIC0gZmFpbGVkIHN1Ym1pdHRpbmcgcmVhZCB1cmIsIGVycm9yICVkXG4iLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCisKK3N0YXRpYyB2b2lkIGVtcGVnX2Nsb3NlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqIGZpbHApCit7CisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwkvKiBzaHV0ZG93biBvdXIgYnVsayByZWFkICovCisJdXNiX2tpbGxfdXJiKHBvcnQtPnJlYWRfdXJiKTsKKwkvKiBVbmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIGlmIHlvdSB3YW50IHRvIHNlZSBzb21lIHN0YXRpc3RpY3MgaW4geW91ciBzeXNsb2cgKi8KKwkvKiBkZXZfaW5mbyAoJnBvcnQtPmRldiwgIkJ5dGVzIEluID0gJWQgIEJ5dGVzIE91dCA9ICVkXG4iLCBieXRlc19pbiwgYnl0ZXNfb3V0KTsgKi8KK30KKworCitzdGF0aWMgaW50IGVtcGVnX3dyaXRlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBjb3VudCkKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsID0gcG9ydC0+c2VyaWFsOworCXN0cnVjdCB1cmIgKnVyYjsKKwljb25zdCB1bnNpZ25lZCBjaGFyICpjdXJyZW50X3Bvc2l0aW9uID0gYnVmOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJaW50IHN0YXR1czsKKwlpbnQgaTsKKwlpbnQgYnl0ZXNfc2VudCA9IDA7CisJaW50IHRyYW5zZmVyX3NpemU7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCXdoaWxlIChjb3VudCA+IDApIHsKKworCQkvKiB0cnkgdG8gZmluZCBhIGZyZWUgdXJiIGluIG91ciBsaXN0IG9mIHRoZW0gKi8KKwkJdXJiID0gTlVMTDsKKworCQlzcGluX2xvY2tfaXJxc2F2ZSAoJndyaXRlX3VyYl9wb29sX2xvY2ssIGZsYWdzKTsKKworCQlmb3IgKGkgPSAwOyBpIDwgTlVNX1VSQlM7ICsraSkgeworCQkJaWYgKHdyaXRlX3VyYl9wb29sW2ldLT5zdGF0dXMgIT0gLUVJTlBST0dSRVNTKSB7CisJCQkJdXJiID0gd3JpdGVfdXJiX3Bvb2xbaV07CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlICgmd3JpdGVfdXJiX3Bvb2xfbG9jaywgZmxhZ3MpOworCisJCWlmICh1cmIgPT0gTlVMTCkgeworCQkJZGJnKCIlcyAtIG5vIG1vcmUgZnJlZSB1cmJzIiwgX19GVU5DVElPTl9fKTsKKwkJCWdvdG8gZXhpdDsKKwkJfQorCisJCWlmICh1cmItPnRyYW5zZmVyX2J1ZmZlciA9PSBOVUxMKSB7CisJCQl1cmItPnRyYW5zZmVyX2J1ZmZlciA9IGttYWxsb2MgKFVSQl9UUkFOU0ZFUl9CVUZGRVJfU0laRSwgR0ZQX0FUT01JQyk7CisJCQlpZiAodXJiLT50cmFuc2Zlcl9idWZmZXIgPT0gTlVMTCkgeworCQkJCWRldl9lcnIoJnBvcnQtPmRldiwgIiVzIG5vIG1vcmUga2VybmVsIG1lbW9yeS4uLlxuIiwgX19GVU5DVElPTl9fKTsKKwkJCQlnb3RvIGV4aXQ7CisJCQl9CisJCX0KKworCQl0cmFuc2Zlcl9zaXplID0gbWluIChjb3VudCwgVVJCX1RSQU5TRkVSX0JVRkZFUl9TSVpFKTsKKworCQltZW1jcHkgKHVyYi0+dHJhbnNmZXJfYnVmZmVyLCBjdXJyZW50X3Bvc2l0aW9uLCB0cmFuc2Zlcl9zaXplKTsKKworCQl1c2Jfc2VyaWFsX2RlYnVnX2RhdGEoZGVidWcsICZwb3J0LT5kZXYsIF9fRlVOQ1RJT05fXywgdHJhbnNmZXJfc2l6ZSwgdXJiLT50cmFuc2Zlcl9idWZmZXIpOworCisJCS8qIGJ1aWxkIHVwIG91ciB1cmIgKi8KKwkJdXNiX2ZpbGxfYnVsa191cmIgKAorCQkJdXJiLAorCQkJc2VyaWFsLT5kZXYsCisJCQl1c2Jfc25kYnVsa3BpcGUoc2VyaWFsLT5kZXYsCisJCQkJcG9ydC0+YnVsa19vdXRfZW5kcG9pbnRBZGRyZXNzKSwgCisJCQl1cmItPnRyYW5zZmVyX2J1ZmZlciwKKwkJCXRyYW5zZmVyX3NpemUsCisJCQllbXBlZ193cml0ZV9idWxrX2NhbGxiYWNrLAorCQkJcG9ydCk7CisKKwkJLyogc2VuZCBpdCBkb3duIHRoZSBwaXBlICovCisJCXN0YXR1cyA9IHVzYl9zdWJtaXRfdXJiKHVyYiwgR0ZQX0FUT01JQyk7CisJCWlmIChzdGF0dXMpIHsKKwkJCWRldl9lcnIoJnBvcnQtPmRldiwgIiVzIC0gdXNiX3N1Ym1pdF91cmIod3JpdGUgYnVsaykgZmFpbGVkIHdpdGggc3RhdHVzID0gJWRcbiIsIF9fRlVOQ1RJT05fXywgc3RhdHVzKTsKKwkJCWJ5dGVzX3NlbnQgPSBzdGF0dXM7CisJCQlicmVhazsKKwkJfQorCisJCWN1cnJlbnRfcG9zaXRpb24gKz0gdHJhbnNmZXJfc2l6ZTsKKwkJYnl0ZXNfc2VudCArPSB0cmFuc2Zlcl9zaXplOworCQljb3VudCAtPSB0cmFuc2Zlcl9zaXplOworCQlieXRlc19vdXQgKz0gdHJhbnNmZXJfc2l6ZTsKKworCX0KKworZXhpdDoKKwlyZXR1cm4gYnl0ZXNfc2VudDsKKworfSAKKworCitzdGF0aWMgaW50IGVtcGVnX3dyaXRlX3Jvb20gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQgaTsKKwlpbnQgcm9vbSA9IDA7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCXNwaW5fbG9ja19pcnFzYXZlICgmd3JpdGVfdXJiX3Bvb2xfbG9jaywgZmxhZ3MpOworCisJLyogdGFsbHkgdXAgdGhlIG51bWJlciBvZiBieXRlcyBhdmFpbGFibGUgKi8KKwlmb3IgKGkgPSAwOyBpIDwgTlVNX1VSQlM7ICsraSkgeworCQlpZiAod3JpdGVfdXJiX3Bvb2xbaV0tPnN0YXR1cyAhPSAtRUlOUFJPR1JFU1MpIHsKKwkJCXJvb20gKz0gVVJCX1RSQU5TRkVSX0JVRkZFUl9TSVpFOworCQl9CisJfSAKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUgKCZ3cml0ZV91cmJfcG9vbF9sb2NrLCBmbGFncyk7CisKKwlkYmcoIiVzIC0gcmV0dXJucyAlZCIsIF9fRlVOQ1RJT05fXywgcm9vbSk7CisKKwlyZXR1cm4gKHJvb20pOworCit9CisKKworc3RhdGljIGludCBlbXBlZ19jaGFyc19pbl9idWZmZXIgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQgaTsKKwlpbnQgY2hhcnMgPSAwOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSAoJndyaXRlX3VyYl9wb29sX2xvY2ssIGZsYWdzKTsKKworCS8qIHRhbGx5IHVwIHRoZSBudW1iZXIgb2YgYnl0ZXMgd2FpdGluZyAqLworCWZvciAoaSA9IDA7IGkgPCBOVU1fVVJCUzsgKytpKSB7CisJCWlmICh3cml0ZV91cmJfcG9vbFtpXS0+c3RhdHVzID09IC1FSU5QUk9HUkVTUykgeworCQkJY2hhcnMgKz0gVVJCX1RSQU5TRkVSX0JVRkZFUl9TSVpFOworCQl9CisJfQorCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSAoJndyaXRlX3VyYl9wb29sX2xvY2ssIGZsYWdzKTsKKworCWRiZygiJXMgLSByZXR1cm5zICVkIiwgX19GVU5DVElPTl9fLCBjaGFycyk7CisKKwlyZXR1cm4gKGNoYXJzKTsKKworfQorCisKK3N0YXRpYyB2b2lkIGVtcGVnX3dyaXRlX2J1bGtfY2FsbGJhY2sgKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopdXJiLT5jb250ZXh0OworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAodXJiLT5zdGF0dXMpIHsKKwkJZGJnKCIlcyAtIG5vbnplcm8gd3JpdGUgYnVsayBzdGF0dXMgcmVjZWl2ZWQ6ICVkIiwgX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyk7CisJCXJldHVybjsKKwl9CisKKwlzY2hlZHVsZV93b3JrKCZwb3J0LT53b3JrKTsKK30KKworCitzdGF0aWMgdm9pZCBlbXBlZ19yZWFkX2J1bGtfY2FsbGJhY2sgKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopdXJiLT5jb250ZXh0OworCXN0cnVjdCB0dHlfc3RydWN0ICp0dHk7CisJdW5zaWduZWQgY2hhciAqZGF0YSA9IHVyYi0+dHJhbnNmZXJfYnVmZmVyOworCWludCBpOworCWludCByZXN1bHQ7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCWlmICh1cmItPnN0YXR1cykgeworCQlkYmcoIiVzIC0gbm9uemVybyByZWFkIGJ1bGsgc3RhdHVzIHJlY2VpdmVkOiAlZCIsIF9fRlVOQ1RJT05fXywgdXJiLT5zdGF0dXMpOworCQlyZXR1cm47CisJfQorCisJdXNiX3NlcmlhbF9kZWJ1Z19kYXRhKGRlYnVnLCAmcG9ydC0+ZGV2LCBfX0ZVTkNUSU9OX18sIHVyYi0+YWN0dWFsX2xlbmd0aCwgZGF0YSk7CisKKwl0dHkgPSBwb3J0LT50dHk7CisKKwlpZiAodXJiLT5hY3R1YWxfbGVuZ3RoKSB7CisJCWZvciAoaSA9IDA7IGkgPCB1cmItPmFjdHVhbF9sZW5ndGggOyArK2kpIHsKKwkJCS8qIGdiIC0gMjAwMC8xMS8xMworCQkJICogSWYgd2UgaW5zZXJ0IHRvbyBtYW55IGNoYXJhY3RlcnMgd2UnbGwgb3ZlcmZsb3cgdGhlIGJ1ZmZlci4KKwkJCSAqIFRoaXMgbWVhbnMgd2UnbGwgbG9zZSBieXRlcyAtIERlY2lkZWRseSBiYWQuCisJCQkgKi8KKwkJCWlmKHR0eS0+ZmxpcC5jb3VudCA+PSBUVFlfRkxJUEJVRl9TSVpFKSB7CisJCQkJdHR5X2ZsaXBfYnVmZmVyX3B1c2godHR5KTsKKwkJCQl9CisJCQl0dHlfaW5zZXJ0X2ZsaXBfY2hhcih0dHksIGRhdGFbaV0sIDApOworCQl9CisJCS8qIGdiIC0gMjAwMC8xMS8xMworCQkgKiBHb2VzIHN0cmFpZ2h0IHRocm91Z2ggaW5zdGVhZCBvZiBzY2hlZHVsaW5nIC0gaWYgdHR5LT5sb3dfbGF0ZW5jeSBpcyBzZXQuCisJCSAqLworCQl0dHlfZmxpcF9idWZmZXJfcHVzaCh0dHkpOworCQlieXRlc19pbiArPSB1cmItPmFjdHVhbF9sZW5ndGg7CisJfQorCisJLyogQ29udGludWUgdHJ5aW5nIHRvIGFsd2F5cyByZWFkICAqLworCXVzYl9maWxsX2J1bGtfdXJiKAorCQlwb3J0LT5yZWFkX3VyYiwKKwkJcG9ydC0+c2VyaWFsLT5kZXYsIAorCQl1c2JfcmN2YnVsa3BpcGUocG9ydC0+c2VyaWFsLT5kZXYsCisJCQlwb3J0LT5idWxrX2luX2VuZHBvaW50QWRkcmVzcyksCisJCXBvcnQtPnJlYWRfdXJiLT50cmFuc2Zlcl9idWZmZXIsCisJCXBvcnQtPnJlYWRfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoLAorCQllbXBlZ19yZWFkX2J1bGtfY2FsbGJhY2ssCisJCXBvcnQpOworCisJcmVzdWx0ID0gdXNiX3N1Ym1pdF91cmIocG9ydC0+cmVhZF91cmIsIEdGUF9BVE9NSUMpOworCisJaWYgKHJlc3VsdCkKKwkJZGV2X2VycigmdXJiLT5kZXYtPmRldiwgIiVzIC0gZmFpbGVkIHJlc3VibWl0dGluZyByZWFkIHVyYiwgZXJyb3IgJWRcbiIsIF9fRlVOQ1RJT05fXywgcmVzdWx0KTsKKworCXJldHVybjsKKworfQorCisKK3N0YXRpYyB2b2lkIGVtcGVnX3Rocm90dGxlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCXVzYl9raWxsX3VyYihwb3J0LT5yZWFkX3VyYik7Cit9CisKKworc3RhdGljIHZvaWQgZW1wZWdfdW50aHJvdHRsZSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKK3sKKwlpbnQgcmVzdWx0OworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlwb3J0LT5yZWFkX3VyYi0+ZGV2ID0gcG9ydC0+c2VyaWFsLT5kZXY7CisKKwlyZXN1bHQgPSB1c2Jfc3VibWl0X3VyYihwb3J0LT5yZWFkX3VyYiwgR0ZQX0FUT01JQyk7CisKKwlpZiAocmVzdWx0KQorCQlkZXZfZXJyKCZwb3J0LT5kZXYsICIlcyAtIGZhaWxlZCBzdWJtaXR0aW5nIHJlYWQgdXJiLCBlcnJvciAlZFxuIiwgX19GVU5DVElPTl9fLCByZXN1bHQpOworCisJcmV0dXJuOworfQorCisKK3N0YXRpYyBpbnQgIGVtcGVnX3N0YXJ0dXAgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7CisJaW50IHI7CisKKwlkYmcoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCWlmIChzZXJpYWwtPmRldi0+YWN0Y29uZmlnLT5kZXNjLmJDb25maWd1cmF0aW9uVmFsdWUgIT0gMSkgeworCQllcnIoImFjdGl2ZSBjb25maWcgIyVkICE9IDEgPz8iLAorCQkJc2VyaWFsLT5kZXYtPmFjdGNvbmZpZy0+ZGVzYy5iQ29uZmlndXJhdGlvblZhbHVlKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCWRiZygiJXMgLSByZXNldCBjb25maWciLCBfX0ZVTkNUSU9OX18pOworCXIgPSB1c2JfcmVzZXRfY29uZmlndXJhdGlvbiAoc2VyaWFsLT5kZXYpOworCisJLyogY29udGludWUgb24gd2l0aCBpbml0aWFsaXphdGlvbiAqLworCXJldHVybiByOworCit9CisKKworc3RhdGljIHZvaWQgZW1wZWdfc2h1dGRvd24gKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7CisJZGJnICgiJXMiLCBfX0ZVTkNUSU9OX18pOworfQorCisKK3N0YXRpYyBpbnQgZW1wZWdfaW9jdGwgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICogZmlsZSwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCit7CisJZGJnKCIlcyAtIHBvcnQgJWQsIGNtZCAweCUuNHgiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlciwgY21kKTsKKworCXJldHVybiAtRU5PSU9DVExDTUQ7Cit9CisKKworc3RhdGljIHZvaWQgZW1wZWdfc2V0X3Rlcm1pb3MgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCB0ZXJtaW9zICpvbGRfdGVybWlvcykKK3sKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJaWYgKCghcG9ydC0+dHR5KSB8fCAoIXBvcnQtPnR0eS0+dGVybWlvcykpIHsKKwkJZGJnKCIlcyAtIG5vIHR0eSBzdHJ1Y3R1cmVzIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuOworCX0KKworCS8qCisgICAgICAgICAqIFRoZSBlbXBlZy1jYXIgcGxheWVyIHdhbnRzIHRoZXNlIHBhcnRpY3VsYXIgdHR5IHNldHRpbmdzLgorICAgICAgICAgKiBZb3UgY291bGQsIGZvciBleGFtcGxlLCBjaGFuZ2UgdGhlIGJhdWQgcmF0ZSwgaG93ZXZlciB0aGUKKyAgICAgICAgICogcGxheWVyIG9ubHkgc3VwcG9ydHMgMTE1MjAwIChjdXJyZW50bHkpLCBzbyB0aGVyZSBpcyByZWFsbHkKKyAgICAgICAgICogbm8gcG9pbnQgaW4gc3VwcG9ydCBmb3IgY2hhbmdlcyB0byB0aGUgdHR5IHNldHRpbmdzLgorICAgICAgICAgKiAoYXQgbGVhc3QgZm9yIG5vdykKKyAgICAgICAgICoKKyAgICAgICAgICogVGhlIGRlZmF1bHQgcmVxdWlyZW1lbnRzIGZvciB0aGlzIGRldmljZSBhcmU6CisgICAgICAgICAqLworCXBvcnQtPnR0eS0+dGVybWlvcy0+Y19pZmxhZworCQkmPSB+KElHTkJSSwkvKiBkaXNhYmxlIGlnbm9yZSBicmVhayAqLworCQl8IEJSS0lOVAkvKiBkaXNhYmxlIGJyZWFrIGNhdXNlcyBpbnRlcnJ1cHQgKi8KKwkJfCBQQVJNUksJLyogZGlzYWJsZSBtYXJrIHBhcml0eSBlcnJvcnMgKi8KKwkJfCBJU1RSSVAJLyogZGlzYWJsZSBjbGVhciBoaWdoIGJpdCBvZiBpbnB1dCBjaGFyYWN0ZXJzICovCisJCXwgSU5MQ1IJCS8qIGRpc2FibGUgdHJhbnNsYXRlIE5MIHRvIENSICovCisJCXwgSUdOQ1IJCS8qIGRpc2FibGUgaWdub3JlIENSICovCisJCXwgSUNSTkwJCS8qIGRpc2FibGUgdHJhbnNsYXRlIENSIHRvIE5MICovCisJCXwgSVhPTik7CS8qIGRpc2FibGUgZW5hYmxlIFhPTi9YT0ZGIGZsb3cgY29udHJvbCAqLworCisJcG9ydC0+dHR5LT50ZXJtaW9zLT5jX29mbGFnCisJCSY9IH5PUE9TVDsJLyogZGlzYWJsZSBwb3N0cHJvY2VzcyBvdXRwdXQgY2hhcmFjdGVycyAqLworCisJcG9ydC0+dHR5LT50ZXJtaW9zLT5jX2xmbGFnCisJCSY9IH4oRUNITwkvKiBkaXNhYmxlIGVjaG8gaW5wdXQgY2hhcmFjdGVycyAqLworCQl8IEVDSE9OTAkvKiBkaXNhYmxlIGVjaG8gbmV3IGxpbmUgKi8KKwkJfCBJQ0FOT04JLyogZGlzYWJsZSBlcmFzZSwga2lsbCwgd2VyYXNlLCBhbmQgcnBybnQgc3BlY2lhbCBjaGFyYWN0ZXJzICovCisJCXwgSVNJRwkJLyogZGlzYWJsZSBpbnRlcnJ1cHQsIHF1aXQsIGFuZCBzdXNwZW5kIHNwZWNpYWwgY2hhcmFjdGVycyAqLworCQl8IElFWFRFTik7CS8qIGRpc2FibGUgbm9uLVBPU0lYIHNwZWNpYWwgY2hhcmFjdGVycyAqLworCisJcG9ydC0+dHR5LT50ZXJtaW9zLT5jX2NmbGFnCisJCSY9IH4oQ1NJWkUJLyogbm8gc2l6ZSAqLworCQl8IFBBUkVOQgkvKiBkaXNhYmxlIHBhcml0eSBiaXQgKi8KKwkJfCBDQkFVRCk7CS8qIGNsZWFyIGN1cnJlbnQgYmF1ZCByYXRlICovCisKKwlwb3J0LT50dHktPnRlcm1pb3MtPmNfY2ZsYWcKKwkJfD0gKENTOAkJLyogY2hhcmFjdGVyIHNpemUgOCBiaXRzICovCisJCXwgQjExNTIwMCk7CS8qIGJhdWQgcmF0ZSAxMTUyMDAgKi8KKworCS8qCisJICogRm9yY2UgbG93X2xhdGVuY3kgb247IG90aGVyd2lzZSB0aGUgcHVzaGVzIGFyZSBzY2hlZHVsZWQ7CisJICogdGhpcyBpcyBiYWQgYXMgaXQgb3BlbnMgdXAgdGhlIHBvc3NpYmlsaXR5IG9mIGRyb3BwaW5nIGJ5dGVzCisJICogb24gdGhlIGZsb29yLiAgV2UgZG9uJ3Qgd2FudCB0byBkcm9wIGJ5dGVzIG9uIHRoZSBmbG9vci4gOikKKwkgKi8KKwlwb3J0LT50dHktPmxvd19sYXRlbmN5ID0gMTsKKworCXJldHVybjsKK30KKworCitzdGF0aWMgaW50IF9faW5pdCBlbXBlZ19pbml0ICh2b2lkKQoreworCXN0cnVjdCB1cmIgKnVyYjsKKwlpbnQgaSwgcmV0dmFsOworCisJLyogY3JlYXRlIG91ciB3cml0ZSB1cmIgcG9vbCBhbmQgdHJhbnNmZXIgYnVmZmVycyAqLyAKKwlzcGluX2xvY2tfaW5pdCAoJndyaXRlX3VyYl9wb29sX2xvY2spOworCWZvciAoaSA9IDA7IGkgPCBOVU1fVVJCUzsgKytpKSB7CisJCXVyYiA9IHVzYl9hbGxvY191cmIoMCwgR0ZQX0tFUk5FTCk7CisJCXdyaXRlX3VyYl9wb29sW2ldID0gdXJiOworCQlpZiAodXJiID09IE5VTEwpIHsKKwkJCWVycigiTm8gbW9yZSB1cmJzPz8/Iik7CisJCQljb250aW51ZTsKKwkJfQorCisJCXVyYi0+dHJhbnNmZXJfYnVmZmVyID0ga21hbGxvYyAoVVJCX1RSQU5TRkVSX0JVRkZFUl9TSVpFLCBHRlBfS0VSTkVMKTsKKwkJaWYgKCF1cmItPnRyYW5zZmVyX2J1ZmZlcikgeworCQkJZXJyKCIlcyAtIG91dCBvZiBtZW1vcnkgZm9yIHVyYiBidWZmZXJzLiIsIAorCQkJICAgIF9fRlVOQ1RJT05fXyk7CisJCQljb250aW51ZTsKKwkJfQorCX0KKworCXJldHZhbCA9IHVzYl9zZXJpYWxfcmVnaXN0ZXIoJmVtcGVnX2RldmljZSk7CisJaWYgKHJldHZhbCkKKwkJZ290byBmYWlsZWRfdXNiX3NlcmlhbF9yZWdpc3RlcjsKKwlyZXR2YWwgPSB1c2JfcmVnaXN0ZXIoJmVtcGVnX2RyaXZlcik7CisJaWYgKHJldHZhbCkKKwkJZ290byBmYWlsZWRfdXNiX3JlZ2lzdGVyOworCisJaW5mbyhEUklWRVJfVkVSU0lPTiAiOiIgRFJJVkVSX0RFU0MpOworCisJcmV0dXJuIDA7CitmYWlsZWRfdXNiX3JlZ2lzdGVyOgorCXVzYl9zZXJpYWxfZGVyZWdpc3RlcigmZW1wZWdfZGV2aWNlKTsKK2ZhaWxlZF91c2Jfc2VyaWFsX3JlZ2lzdGVyOgorCWZvciAoaSA9IDA7IGkgPCBOVU1fVVJCUzsgKytpKSB7CisJCWlmICh3cml0ZV91cmJfcG9vbFtpXSkgeworCQkJaWYgKHdyaXRlX3VyYl9wb29sW2ldLT50cmFuc2Zlcl9idWZmZXIpCisJCQkJa2ZyZWUod3JpdGVfdXJiX3Bvb2xbaV0tPnRyYW5zZmVyX2J1ZmZlcik7CisJCQl1c2JfZnJlZV91cmIod3JpdGVfdXJiX3Bvb2xbaV0pOworCQl9CisJfQorCXJldHVybiByZXR2YWw7Cit9CisKKworc3RhdGljIHZvaWQgX19leGl0IGVtcGVnX2V4aXQgKHZvaWQpCit7CisJaW50IGk7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXVzYl9kZXJlZ2lzdGVyKCZlbXBlZ19kcml2ZXIpOworCXVzYl9zZXJpYWxfZGVyZWdpc3RlciAoJmVtcGVnX2RldmljZSk7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSAoJndyaXRlX3VyYl9wb29sX2xvY2ssIGZsYWdzKTsKKworCWZvciAoaSA9IDA7IGkgPCBOVU1fVVJCUzsgKytpKSB7CisJCWlmICh3cml0ZV91cmJfcG9vbFtpXSkgeworCQkJLyogRklYTUUgLSB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyB1c2Jfa2lsbF91cmIgY2FsbCB3aGVuCisJCQkgKiB0aGUgaG9zdCBjb250cm9sbGVycyBnZXQgZml4ZWQgdG8gc2V0IHVyYi0+ZGV2ID0gTlVMTCBhZnRlcgorCQkJICogdGhlIHVyYiBpcyBmaW5pc2hlZC4gIE90aGVyd2lzZSB0aGlzIGNhbGwgb29wc2VzLiAqLworCQkJLyogdXNiX2tpbGxfdXJiKHdyaXRlX3VyYl9wb29sW2ldKTsgKi8KKwkJCWlmICh3cml0ZV91cmJfcG9vbFtpXS0+dHJhbnNmZXJfYnVmZmVyKQorCQkJCWtmcmVlKHdyaXRlX3VyYl9wb29sW2ldLT50cmFuc2Zlcl9idWZmZXIpOworCQkJdXNiX2ZyZWVfdXJiICh3cml0ZV91cmJfcG9vbFtpXSk7CisJCX0KKwl9CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlICgmd3JpdGVfdXJiX3Bvb2xfbG9jaywgZmxhZ3MpOworfQorCisKK21vZHVsZV9pbml0KGVtcGVnX2luaXQpOworbW9kdWxlX2V4aXQoZW1wZWdfZXhpdCk7CisKK01PRFVMRV9BVVRIT1IoIERSSVZFUl9BVVRIT1IgKTsKK01PRFVMRV9ERVNDUklQVElPTiggRFJJVkVSX0RFU0MgKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKKworbW9kdWxlX3BhcmFtKGRlYnVnLCBib29sLCBTX0lSVUdPIHwgU19JV1VTUik7CitNT0RVTEVfUEFSTV9ERVNDKGRlYnVnLCAiRGVidWcgZW5hYmxlZCBvciBub3QiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9lenVzYi5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2V6dXNiLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWU0MTljOAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9lenVzYi5jCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBFWi1VU0Igc3BlY2lmaWMgZnVuY3Rpb25zIHVzZWQgYnkgc29tZSBvZiB0aGUgVVNCIHRvIFNlcmlhbCBkcml2ZXJzLgorICoKKyAqIENvcHlyaWdodCAoQykgMTk5OSAtIDIwMDIgR3JlZyBLcm9haC1IYXJ0bWFuIChncmVnQGtyb2FoLmNvbSkKKyAqCisgKglUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKgltb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uCisgKgkyIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9jb25maWcuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvdHR5Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvdXNiLmg+CisjaW5jbHVkZSAidXNiLXNlcmlhbC5oIgorCisvKiBFWi1VU0IgQ29udHJvbCBhbmQgU3RhdHVzIFJlZ2lzdGVyLiAgQml0IDAgY29udHJvbHMgODA1MSByZXNldCAqLworI2RlZmluZSBDUFVDU19SRUcgICAgMHg3RjkyCisKK2ludCBlenVzYl93cml0ZW1lbW9yeSAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwgaW50IGFkZHJlc3MsIHVuc2lnbmVkIGNoYXIgKmRhdGEsIGludCBsZW5ndGgsIF9fdTggYlJlcXVlc3QpCit7CisJaW50IHJlc3VsdDsKKwl1bnNpZ25lZCBjaGFyICp0cmFuc2Zlcl9idWZmZXI7CisKKwkvKiBkYmcoImV6dXNiX3dyaXRlbWVtb3J5ICV4LCAlZCIsIGFkZHJlc3MsIGxlbmd0aCk7ICovCisJaWYgKCFzZXJpYWwtPmRldikgeworCQllcnIoIiVzIC0gbm8gcGh5c2ljYWwgZGV2aWNlIHByZXNlbnQsIGZhaWxpbmcuIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJdHJhbnNmZXJfYnVmZmVyID0gIGttYWxsb2MgKGxlbmd0aCwgR0ZQX0tFUk5FTCk7CisJaWYgKCF0cmFuc2Zlcl9idWZmZXIpIHsKKwkJZGV2X2Vycigmc2VyaWFsLT5kZXYtPmRldiwgIiVzIC0ga21hbGxvYyglZCkgZmFpbGVkLlxuIiwgX19GVU5DVElPTl9fLCBsZW5ndGgpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisJbWVtY3B5ICh0cmFuc2Zlcl9idWZmZXIsIGRhdGEsIGxlbmd0aCk7CisJcmVzdWx0ID0gdXNiX2NvbnRyb2xfbXNnIChzZXJpYWwtPmRldiwgdXNiX3NuZGN0cmxwaXBlKHNlcmlhbC0+ZGV2LCAwKSwgYlJlcXVlc3QsIDB4NDAsIGFkZHJlc3MsIDAsIHRyYW5zZmVyX2J1ZmZlciwgbGVuZ3RoLCAzMDAwKTsKKwlrZnJlZSAodHJhbnNmZXJfYnVmZmVyKTsKKwlyZXR1cm4gcmVzdWx0OworfQorCitpbnQgZXp1c2Jfc2V0X3Jlc2V0IChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLCB1bnNpZ25lZCBjaGFyIHJlc2V0X2JpdCkKK3sKKwlpbnQgcmVzcG9uc2U7CisKKwkvKiBkYmcoIiVzIC0gJWQiLCBfX0ZVTkNUSU9OX18sIHJlc2V0X2JpdCk7ICovCisJcmVzcG9uc2UgPSBlenVzYl93cml0ZW1lbW9yeSAoc2VyaWFsLCBDUFVDU19SRUcsICZyZXNldF9iaXQsIDEsIDB4YTApOworCWlmIChyZXNwb25zZSA8IDApCisJCWRldl9lcnIoJnNlcmlhbC0+ZGV2LT5kZXYsICIlcy0gJWQgZmFpbGVkXG4iLCBfX0ZVTkNUSU9OX18sIHJlc2V0X2JpdCk7CisJcmV0dXJuIHJlc3BvbnNlOworfQorCisKK0VYUE9SVF9TWU1CT0woZXp1c2Jfd3JpdGVtZW1vcnkpOworRVhQT1JUX1NZTUJPTChlenVzYl9zZXRfcmVzZXQpOworCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvZXp1c2JfY29udmVydC5wbCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9lenVzYl9jb252ZXJ0LnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzZjExNDYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvZXp1c2JfY29udmVydC5wbApAQCAtMCwwICsxLDUwIEBACisjISAvdXNyL2Jpbi9wZXJsIC13CisKKworIyBjb252ZXJ0IGFuIEludGVsIEhFWCBmaWxlIGludG8gYSBzZXQgb2YgQyByZWNvcmRzIHVzYWJsZSBieSB0aGUgZmlybXdhcmUKKyMgbG9hZGluZyBjb2RlIGluIHVzYi1zZXJpYWwuYyAob3Igb3RoZXJzKQorCisjIGFjY2VwdHMgdGhlIC5oZXggZmlsZShzKSBvbiBzdGRpbiwgYSBiYXNlbmFtZSAodG8gbmFtZSB0aGUgaW5pdGlhbGl6ZWQKKyMgYXJyYXkpIGFzIGFuIGFyZ3VtZW50LCBhbmQgcHJpbnRzIHRoZSAuaCBmaWxlIHRvIHN0ZG91dC4gVHlwaWNhbCB1c2FnZToKKyMgIHBlcmwgZXp1c2JfY29udmVydC5wbCBmb28gPGZvby5oZXggPmZ3X2Zvby5oCisKKworbXkgJGJhc2VuYW1lID0gJEFSR1ZbMF07CitkaWUgIm5vIGJhc2UgbmFtZSBzcGVjaWZpZWQiIHVubGVzcyAkYmFzZW5hbWU7CisKK3doaWxlICg8U1RESU4+KSB7CisgICAgIyAnOicgPGxlbj4gPGFkZHI+IDx0eXBlPiA8bGVuLWRhdGE+IDxjcmM+ICdccicKKyAgICAjICBsZW4sIHR5cGUsIGNyYyBhcmUgMi1jaGFyIGhleCwgYWRkciBpcyA0LWNoYXIgaGV4LiB0eXBlIGlzIDAwIGZvcgorICAgICMgbm9ybWFsIHJlY29yZHMsIDAxIGZvciBFT0YKKyAgICBteSgkbGVuc3RyaW5nLCAkYWRkcnN0cmluZywgJHR5cGVzdHJpbmcsICRyZXN0c3RyaW5nLCAkZG9zY3JhcCkgPQorICAgICAgL146KFx3XHcpKFx3XHdcd1x3KShcd1x3KShcdyspKFxyPykkLzsKKyAgICBkaWUgIm1hbGZvcm1lZCBsaW5lOiAkXyIgdW5sZXNzICRyZXN0c3RyaW5nOworICAgIGxhc3QgaWYgJHR5cGVzdHJpbmcgZXEgJzAxJzsKKyAgICBteSgkbGVuKSA9IGhleCgkbGVuc3RyaW5nKTsKKyAgICBteSgkYWRkcikgPSBoZXgoJGFkZHJzdHJpbmcpOworICAgIG15KEBieXRlcykgPSB1bnBhY2soIkMqIiwgcGFjaygiSCIuKDIqJGxlbiksICRyZXN0c3RyaW5nKSk7CisgICAgI3BvcChAYnl0ZXMpOyAjIGxhc3QgYnl0ZSBpcyBhIENSQworICAgIHB1c2goQHJlY29yZHMsIFskYWRkciwgXEBieXRlc10pOworfQorCitAc29ydGVkX3JlY29yZHMgPSBzb3J0IHsgJGEtPlswXSA8PT4gJGItPlswXSB9IEByZWNvcmRzOworCitwcmludCA8PCJFT0YiOworLyoKKyAqICR7YmFzZW5hbWV9X2Z3LmgKKyAqCisgKiBHZW5lcmF0ZWQgZnJvbSAke2Jhc2VuYW1lfS5zIGJ5IGV6dXNiX2NvbnZlcnQucGwKKyAqIFRoaXMgZmlsZSBpcyBwcmVzdW1lZCB0byBiZSB1bmRlciB0aGUgc2FtZSBjb3B5cmlnaHQgYXMgdGhlIHNvdXJjZSBmaWxlCisgKiBmcm9tIHdoaWNoIGl0IHdhcyBkZXJpdmVkLgorICovCisKK0VPRgorCitwcmludCAic3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICR7YmFzZW5hbWV9X2Zpcm13YXJlW10gPSB7XG4iOworZm9yZWFjaCAkciAoQHNvcnRlZF9yZWNvcmRzKSB7CisgICAgcHJpbnRmKCJ7IDB4JTA0eCxcdCVkLFx0eyIsICRyLT5bMF0sIHNjYWxhcihAeyRyLT5bMV19KSk7CisgICAgcHJpbnQgam9pbigiLCAiLCBtYXAge3NwcmludGYoJzB4JTAyeCcsICRfKTt9IEB7JHItPlsxXX0pOworICAgIHByaW50ICJ9IH0sXG4iOworfQorcHJpbnQgInsgMHhmZmZmLFx0MCxcdHsweDAwfSB9XG4iOworcHJpbnQgIn07XG4iOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW8uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YWZkOTA1Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMKQEAgLTAsMCArMSwyNDk2IEBACisvKgorICogVVNCIEZUREkgU0lPIGRyaXZlcgorICoKKyAqIAlDb3B5cmlnaHQgKEMpIDE5OTkgLSAyMDAxCisgKiAJICAgIEdyZWcgS3JvYWgtSGFydG1hbiAoZ3JlZ0Brcm9haC5jb20pCisgKiAgICAgICAgICBCaWxsIFJ5ZGVyIChicnlkZXJAc2dpLmNvbSkKKyAqCUNvcHlyaWdodCAoQykgMjAwMgorICoJICAgIEt1YmEgT2JlciAoa3ViYUBtYXJlaW1icml1bS5vcmcpCisgKgorICogCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAJaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIAl0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogCShhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogU2VlIERvY3VtZW50YXRpb24vdXNiL3VzYi1zZXJpYWwudHh0IGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHVzaW5nIHRoaXMgZHJpdmVyCisgKgorICogU2VlIGh0dHA6Ly9mdGRpLXVzYi1zaW8uc291cmNlZm9yZ2UubmV0IGZvciB1cHRvIGRhdGUgdGVzdGluZyBpbmZvCisgKglhbmQgZXh0cmEgZG9jdW1lbnRhdGlvbgorICoKKyAqICgyMS9KdWwvMjAwNCkgSWFuIEFiYm90dAorICogICAgICBJbmNvcnBvcmF0ZWQgU3RldmVuIFR1cm5lcidzIGNvZGUgdG8gYWRkIHN1cHBvcnQgZm9yIHRoZSBGVDIyMzJDIGNoaXAuCisgKiAgICAgIFRoZSBwcmVsaW1pbGFyeSBwb3J0IHRvIHRoZSAyLjYga2VybmVsIHdhcyBieSBSdXMgVi4gQnJ1c2hrb2ZmLiAgSSBoYXZlCisgKiAgICAgIGZpeGVkIGEgY291cGxlIG9mIHRoaW5ncy4KKyAqCisgKiAoMjcvTWF5LzIwMDQpIElhbiBBYmJvdHQKKyAqICAgICAgSW1wcm92ZWQgdGhyb3R0bGluZyBjb2RlLCBtb3N0bHkgc3RvbGVuIGZyb20gdGhlIFdoaXRlSEVBVCBkcml2ZXIuCisgKgorICogKDI2L01hci8yMDA0KSBKYW4gQ2FwZWsKKyAqICAgICAgQWRkZWQgUElEJ3MgZm9yIElDRC1VMjAvSUNELVU0MCAtIGluY2lyY3VpdCBQSUMgZGVidWdnZXJzIGZyb20gQ0NTIEluYy4KKyAqCisgKiAoMDkvRmViLzIwMDQpIElhbiBBYmJvdHQKKyAqICAgICAgQ2hhbmdlZCBmdWxsIG5hbWUgb2YgVVNCLVVJUlQgZGV2aWNlIHRvIGF2b2lkICIvIiBjaGFyYWN0ZXIuCisgKiAgICAgIEFkZGVkIEZUREkncyBhbHRlcm5hdGUgUElEICgweDYwMDYpIGZvciBGVDIzMi8yNDUgZGV2aWNlcy4KKyAqICAgICAgQWRkZWQgUElEIGZvciAiRUxWIFVTQiBNb2R1bGUgVU8xMDAiIGZyb20gU3RlZmFuIEZyaW5ncy4KKyAqIAorICogKDIxL09jdC8yMDAzKSBJYW4gQWJib3R0CisgKiAgICAgIFJlbmFtZWQgc29tZSBWSUQvUElEIG1hY3JvcyBmb3IgTWF0cml4IE9yYml0YWwgYW5kIFBlcmxlIFN5c3RlbXMKKyAqICAgICAgZGV2aWNlcy4gIFJlbW92ZWQgTWF0cml4IE9yYml0YWwgYW5kIFBlcmxlIFN5c3RlbXMgZGV2aWNlcyBmcm9tIHRoZQorICogICAgICA4VTIzMkFNIGRldmljZSB0YWJsZSwgYnV0IGxlZnQgdGhlbSBpbiB0aGUgRlQyMzJCTSB0YWJsZSwgYXMgdGhleSBhcmUKKyAqICAgICAga25vd24gdG8gdXNlIG9ubHkgRlQyMzJCTS4KKyAqCisgKiAoMTcvT2N0LzIwMDMpIFNjb3R0IEFsbGVuCisgKiAgICAgIEFkZGVkIHZpZC9waWQgZm9yIFBlcmxlIFN5c3RlbXMgVWx0cmFQb3J0IFVTQiBzZXJpYWwgY29udmVydGVycworICoKKyAqICgyMS9TZXAvMjAwMykgSWFuIEFiYm90dAorICogICAgICBBZGRlZCBWSUQvUElEIGZvciBPbW5pZGlyZWN0aW9uYWwgQ29udHJvbCBUZWNobm9sb2d5IFVTMTAxIFVTQiB0bworICogICAgICBSUy0yMzIgYWRhcHRlciAoYWxzbyByZWJhZGdlZCBhcyBEaWNrIFNtaXRoIEVsZWN0cm9uaWNzIFhINjM4MSkuCisgKiAgICAgIFZJRC9QSUQgc3VwcGxpZWQgYnkgRG9uYWxkIEdvcmRvbi4KKyAqCisgKiAoMTkvQXVnLzIwMDMpIElhbiBBYmJvdHQKKyAqICAgICAgRnJlZWQgdXJiJ3MgdHJhbnNmZXIgYnVmZmVyIGluIHdyaXRlIGJ1bGsgY2FsbGJhY2suCisgKiAgICAgIE9taXR0ZWQgc29tZSBwYXJhbm9pZCBjaGVja3MgaW4gd3JpdGUgYnVsayBjYWxsYmFjayB0aGF0IGRvbid0IG1hdHRlci4KKyAqICAgICAgU2NoZWR1bGVkIHdvcmsgaW4gd3JpdGUgYnVsayBjYWxsYmFjayByZWdhcmRsZXNzIG9mIHBvcnQncyBvcGVuIGNvdW50LgorICoKKyAqICgwNS9BdWcvMjAwMykgSWFuIEFiYm90dAorICogICAgICBBZGRlZCBWSUQvUElEIGZvciBJRCBURUNIIElEVDEyMjFVIFVTQiB0byBSUy0yMzIgYWRhcHRlci4KKyAqICAgICAgVklEL1BJRCBwcm92aWRlZCBieSBTdGV2ZSBCcmlnZ3MuCisgKgorICogKDIzL0p1bC8yMDAzKSBJYW4gQWJib3R0CisgKiAgICAgIEFkZGVkIFBJRHMgZm9yIENyeXN0YWxGb250eiA1NDcsIDYzMywgNjMxLCA2MzUsIDY0MCBhbmQgNjQwIGZyb20KKyAqICAgICAgV2F5bmUgV3lsdXBza2kuCisgKgorICogKDEwL0p1bC8yMDAzKSBEYXZpZCBHbGFuY2UKKyAqICAgICAgQWRkZWQgUElEIGZvciBEU1MtMjAgU3luY1N0YXRpb24gY3JhZGxlIGZvciBTb255LUVyaWNzc29uIFA4MDAuCisgKgorICogKDI3L0p1bi8yMDAzKSBJYW4gQWJib3R0CisgKglSZXdvcmtlZCB0aGUgdXJiIGhhbmRsaW5nIGxvZ2ljLiAgV2UgaGF2ZSBubyBtb3JlIHBvb2wsIGJ1dCBkeW5hbWljYWxseQorICoJYWxsb2NhdGUgdGhlIHVyYiBhbmQgdGhlIHRyYW5zZmVyIGJ1ZmZlciBvbiB0aGUgZmx5LiAgSW4gdGVzdGluZyB0aGlzCisgKglkb2VzIG5vdCBpbmN1cmUgYW55IG1lYXN1cmFibGUgb3ZlcmhlYWQuICBUaGlzIGFsc28gcmVsaWVzIG9uIHRoZSBmYWN0CisgKgl0aGF0IHdlIGhhdmUgcHJvcGVyIHJlZmVyZW5jZSBjb3VudGluZyBsb2dpYyBmb3IgdXJicy4gIEkgbmlja2VkIHRoaXMKKyAqCWZyb20gR3JlZyBLSCdzIFZpc29yIGRyaXZlci4KKyAqICAgICAgCisgKiAoMjMvSnVuLzIwMDMpIElhbiBBYmJvdHQKKyAqICAgICAgUmVkdWNlZCBmbGlwIGJ1ZmZlciBwdXNoZXMgYW5kIGNvcnJlY3RlZCBhIGRhdGEgbGVuZ3RoIHRlc3QgaW4KKyAqICAgICAgZnRkaV9yZWFkX2J1bGtfY2FsbGJhY2suCisgKiAgICAgIERlZmVyZXJlbmNlIHBvaW50ZXJzIGFmdGVyIGFueSBwYXJhbm9pZCBjaGVja3MsIG5vdCBiZWZvcmUuCisgKgorICogKDIxL0p1bi8yMDAzKSBFcmlrIE55Z3JlbgorICogICAgICBBZGRlZCBzdXBwb3J0IGZvciBIb21lIEVsZWN0cm9uaWNzIFRpcmEtMSBJUiB0cmFuY2VpdmVyIHVzaW5nIEZUMjMyQk0gY2hpcC4KKyAqICAgICAgU2VlIDxodHRwOi8vd3d3LmhvbWUtZWxlY3Ryby5jb20vdGlyYTEuaHRtPi4gIE9ubHkgb3BlcmF0ZXMgcHJvcGVybHkgCisgKiAgICAgIGF0IDEwMDAwMCBhbmQgUlRTLUNUUywgc28gc2V0IGN1c3RvbSBkaXZpc29yIG1vZGUgb24gc3RhcnR1cC4KKyAqICAgICAgQWxzbyBmb3JjZSB0aGUgVGlyYS0xIGFuZCBVU0ItVUlSVCB0byBvbmx5IHVzZSB0aGVpciBjdXN0b20gYmF1ZCByYXRlcy4KKyAqCisgKiAoMTgvSnVuLzIwMDMpIElhbiBBYmJvdHQKKyAqICAgICAgQWRkZWQgRGV2aWNlIElEIG9mIHRoZSBVU0IgcmVsYWlzIGZyb20gUnVkb2xmIEd1Z2xlciAoYmFja3BvcnRlZCBmcm9tCisgKiAgICAgIFBoaWxpcHAgR/xocmluZydzIHBhdGNoIGZvciAyLjUueCBrZXJuZWwpLgorICogICAgICBNb3ZlZCByZWFkIHRyYW5zZmVyIGJ1ZmZlciByZWFsbG9jYXRpb24gaW50byBzdGFydHVwIGZ1bmN0aW9uLgorICogICAgICBGcmVlIGV4aXN0aW5nIHdyaXRlIHVyYiBhbmQgdHJhbnNmZXIgYnVmZmVyIGluIHN0YXJ0dXAgZnVuY3Rpb24uCisgKiAgICAgIE9ubHkgdXNlIHVyYnMgaW4gd3JpdGUgdXJiIHBvb2wgdGhhdCB3ZXJlIHN1Y2Nlc3NmdWxseSBhbGxvY2F0ZWQuCisgKiAgICAgIE1vdmVkIHNvbWUgY29uc3RhbnQgbWFjcm9zIG91dCBvZiBmdW5jdGlvbnMuCisgKiAgICAgIE1pbm9yIHdoaXRlc3BhY2UgYW5kIGNvbW1lbnQgY2hhbmdlcy4KKyAqCisgKiAoMTIvSnVuLzIwMDMpIERhdmlkIE5vcndvb2QKKyAqICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgVVNCLVVJUlQgSVIgdHJhbmNlaXZlciB1c2luZyA4VTIzMkFNIGNoaXAuCisgKiAgICAgIFNlZSA8aHR0cDovL2hvbWUuZWFydGhsaW5rLm5ldC9+anJoZWVzL1VTQlVJUlQvaW5kZXguaHRtPi4gIE9ubHkKKyAqICAgICAgb3BlcmF0ZXMgcHJvcGVybHkgYXQgMzEyNTAwLCBzbyBzZXQgY3VzdG9tIGRpdmlzb3IgbW9kZSBvbiBzdGFydHVwLgorICoKKyAqICgxMi9KdW4vMjAwMykgSWFuIEFiYm90dAorICogICAgICBBZGRlZCBTZWFsZXZlbCBTZWFMSU5LKyAyMTB4LCAyMjB4LCAyNDB4LCAyODB4IHZpZC9waWRzIGZyb20gVHVhbiBIb2FuZworICogICAgICAtIEkndmUgZWxpbWluYXRlZCBzb21lIHRoYXQgZG9uJ3Qgc2VlbSB0byBleGlzdCEKKyAqICAgICAgQWRkZWQgSG9tZSBFbGVjdHJvbmljcyBUaXJhLTEgSVIgdHJhbnNjZWl2ZXIgcGlkIGZyb20gQ2hyaXMgSG9ybgorICogICAgICBTb21lIHdoaXRlc3BhY2UvY29kaW5nLXN0eWxlIGNsZWFudXBzCisgKgorICogKDExL0p1bi8yMDAzKSBJYW4gQWJib3R0CisgKiAgICAgIEZpeGVkIHVuc2FmZSBzcGlubG9jayB1c2FnZSBpbiBmdGRpX3dyaXRlCisgKgorICogKDI0L0ZlYi8yMDAzKSBSaWNoYXJkIFNob290ZXIKKyAqICAgICAgSW5jcmVhc2UgcmVhZCBidWZmZXIgc2l6ZSB0byBpbXByb3ZlIHJlYWQgc3BlZWRzIGF0IGhpZ2hlciBiYXVkIHJhdGVzCisgKiAgICAgIChzcGVjaWZpY2FsbHkgdGVzdGVkIHdpdGggdXAgdG8gMU1iL3NlYyBhdCAxLjVNIGJhdWQpCisgKgorICogKDIzL0ZlYi8yMDAzKSBKb2huIFdpbGtpbnMKKyAqICAgICAgQWRkZWQgWG9uL3hvZmYgZmxvdyBjb250cm9sIChhY3RpdmF0aW5nIHN1cHBvcnQgaW4gdGhlIGZ0ZGkgZGV2aWNlKQorICogICAgICBBZGRlZCB2aWQvcGlkIGZvciBWaWRlb25ldHdvcmtzL0hvbWVjaG9pY2UgKFVLIElTUCkKKyAqCisgKiAoMjMvRmViLzIwMDMpIEJpbGwgUnlkZXIKKyAqICAgICAgQWRkZWQgbWF0cml4IG9yYiBkZXZpY2UgdmlkL3BpZHMgZnJvbSBXYXluZSBXeWx1cHNraQorICoKKyAqICgxOS9GZWIvMjAwMykgSWFuIEFiYm90dAorICogICAgICBGb3IgVElPQ1NTRVJJQUwsIHNldCBhbHRfc3BlZWQgdG8gMCB3aGVuIEFTWU5DX1NQRF9NQVNLIHZhbHVlIGhhcworICogICAgICBjaGFuZ2VkIHRvIHNvbWV0aGluZyBvdGhlciB0aGFuIEFTWU5DX1NQRF9ISSwgQVNZTkNfU1BEX1ZISSwKKyAqICAgICAgQVNZTkNfU1BEX1NISSBvciBBU1lOQ19TUERfV0FSUC4gIEFsc28sIHVubGVzcyBBU1lOQ19TUERfQ1VTVCBpcyBpbgorICogICAgICBmb3JjZSwgZG9uJ3QgYm90aGVyIGNoYW5naW5nIGJhdWQgcmF0ZSB3aGVuIGN1c3RvbV9kaXZpc29yIGhhcyBjaGFuZ2VkLgorICoKKyAqICgxOC9GZWIvMjAwMykgSWFuIEFiYm90dAorICogICAgICBGaXhlZCBUSU9DTUdFVCBoYW5kbGluZyB0byBpbmNsdWRlIHN0YXRlIG9mIERUUiBhbmQgUlRTLCB0aGUgc3RhdGUKKyAqICAgICAgb2Ygd2hpY2ggYXJlIG5vdyBzYXZlZCBieSBzZXRfZHRyKCkgYW5kIHNldF9ydHMoKS4KKyAqICAgICAgRml4ZWQgaW1wcm9wZXIgc3RvcmFnZSBjbGFzcyBmb3IgYnVmIGluIHNldF9kdHIoKSBhbmQgc2V0X3J0cygpLgorICogICAgICBBZGRlZCBGVDIzMkJNIGNoaXAgdHlwZSBhbmQgc3VwcG9ydCBmb3IgaXRzIGV4dHJhIGJhdWQgcmF0ZXMgKGNvbXBhcmVkCisgKiAgICAgIHRvIEZUOFUyMzJBTSkuCisgKiAgICAgIFRvb2sgYWNjb3VudCBvZiBzcGVjaWFsIGNhc2UgZGl2aXNvciB2YWx1ZXMgZm9yIGhpZ2hlc3QgYmF1ZCByYXRlcyBvZgorICogICAgICBGVDhVMjMyQU0gYW5kIEZUMjMyQk0uCisgKiAgICAgIEZvciBUSU9DU1NFUklBTCwgZm9yY2VkIGFsdF9zcGVlZCB0byAwIHdoZW4gQVNZTkNfU1BEX0NVU1Qga2x1ZGdlIHVzZWQsCisgKiAgICAgIGFzIHByZXZpb3VzIGFsdF9zcGVlZCBzZXR0aW5nIGlzIG5vdyBzdGFsZS4KKyAqICAgICAgTW92ZWQgc3RhcnR1cCBjb2RlIGNvbW1vbiBiZXR3ZWVuIHRoZSBzdGFydHVwIHJvdXRpbmVzIGZvciB0aGUKKyAqICAgICAgZGlmZmVyZW50IGNoaXAgdHlwZXMgaW50byBhIGNvbW1vbiBzdWJyb3V0aW5lLgorICoKKyAqICgxNy9GZWIvMjAwMykgQmlsbCBSeWRlcgorICogICAgICBBZGRlZCB3cml0ZSB1cmIgYnVmZmVyIHBvb2wgb24gYSBwZXIgZGV2aWNlIGJhc2lzCisgKiAgICAgIEFkZGVkIG1vcmUgY2hlY2tpbmcgZm9yIG9wZW4gZmlsZSBvbiBjYWxsYmFja3MgKGZpeGVkIE9PUFMpCisgKiAgICAgIEFkZGVkIENyeXN0YWxGb250eiA2MzIgYW5kIDYzNCBQSURzIAorICogICAgICAgICAodGhhbnggdG8gQ3J5c3RhbEZvbnR6IGZvciB0aGUgc2FtcGxlIGRldmljZXMgLSB0aGV5IGZsdXNoZWQgb3V0CisgKiAgICAgICAgICAgc29tZSBkcml2ZXIgYnVncykKKyAqICAgICAgTWlub3IgZGVidWdnaW5nIG1lc3NhZ2UgY2hhbmdlcworICogICAgICBBZGRlZCB0aHJvdHRsZSwgdW50aHJvdHRsZSBhbmQgY2hhcnNfaW5fYnVmZmVyIGZ1bmN0aW9ucworICogICAgICBGaXhlZCBGVERJX1NJTyAodGhlIG9yaWdpbmFsIGRldmljZSkgYnVnCisgKiAgICAgIEZpeGVkIHNvbWUgc2h1dGRvd24gaGFuZGxpbmcKKyAqICAgICAgCisgKiAKKyAqIAorICogCisgKiAoMDcvSnVuLzIwMDIpIEt1YmEgT2JlcgorICoJQ2hhbmdlZCBGVERJX1NJT19CQVNFX0JBVURfVE9fRElWSVNPUiBtYWNybyBpbnRvIGZ0ZGlfYmF1ZF90b19kaXZpc29yCisgKglmdW5jdGlvbi4gSXQgd2FzIGdldHRpbmcgdG9vIGNvbXBsZXguCisgKglGaXggdGhlIGRpdmlzb3IgY2FsY3VsYXRpb24gbG9naWMgd2hpY2ggd2FzIHNldHRpbmcgZGl2aXNvciBvZiAwLjEyNQorICoJaW5zdGVhZCBvZiAwLjUgZm9yIGZyYWN0aW9uYWwgcGFydHMgb2YgZGl2aXNvciBlcXVhbCB0byA1LzgsIDYvOCwgNy84LgorICoJQWxzbyBtYWtlIGl0IGJ1bXAgdXAgdGhlIGRpdmlzb3IgdG8gbmV4dCBpbnRlZ2VyIGluIGNhc2Ugb2YgNy84IC0gaXQncworICoJYSBiZXR0ZXIgYXBwcm94aW1hdGlvbi4KKyAqCisgKiAoMjUvSnVsLzIwMDIpIEJpbGwgUnlkZXIgaW5zZXJ0ZWQgRG1pdHJpJ3MgVElPQ01JV0FJVCBwYXRjaAorICogICAgICBOb3QgdGVzdGVkIGJ5IG1lIGJ1dCBpdCBkb2Vzbid0IGJyZWFrIGFueXRoaW5nIEkgdXNlLgorICogCisgKiAoMDQvSmFuLzIwMDIpIEt1YmEgT2JlcgorICoJSW1wbGVtZW50ZWQgMzg0MDAgYmF1ZHJhdGUga2x1ZGdlLCB3aGVyZSBpdCBjYW4gYmUgc3Vic3RpdHV0ZWQgd2l0aCBvdGhlcgorICoJICB2YWx1ZXMuIFRoYXQncyB0aGUgb25seSB3YXkgdG8gc2V0IGN1c3RvbSBiYXVkcmF0ZXMuCisgKglJbXBsZW1lbnRlZCBUSU9DU1NFUklBTCwgVElPQ0dTRVJJQUwgaW9jdGwncyBzbyB0aGF0IHNldHNlcmlhbCBpcyBoYXBweS4KKyAqCUZJWE1FOiBib3RoIGJhdWRyYXRlIHRoaW5ncyBzaG91bGQgZXZlbnR1YWxseSBnbyB0byB1c2JzZXJpYWwuYyBhcyBvdGhlcgorICoJICBkZXZpY2VzIG1heSBuZWVkIHRoYXQgZnVuY3Rpb25hbGl0eSB0b28uIEFjdHVhbGx5LCBpdCBjYW4gcHJvYmFibHkgYmUKKyAqCSAgbWVyZ2VkIGluIHNlcmlhbC5jIHNvbWVob3cgLSB0b28gbWFueSBkcml2ZXJzIHJlcGVhdCB0aGlzIGNvZGUgb3ZlcgorICoJICBhbmQgb3Zlci4KKyAqCUZpeGVkIGJhdWRyYXRlIGZvcmdldGZ1bG5lc3MgLSBvcGVuKCkgdXNlZCB0byByZXNldCBiYXVkcmF0ZSB0byA5NjAwIGV2ZXJ5IHRpbWUuCisgKglEaXZpc29ycyBmb3IgYmF1ZHJhdGVzIGFyZSBjYWxjdWxhdGVkIGJ5IGEgbWFjcm8uCisgKglTbWFsbCBjb2RlIGNsZWFudXBzLiBVZ2x5IHdoaXRlc3BhY2UgY2hhbmdlcyBmb3IgUGxhdG8ncyBzYWtlIG9ubHkgOy1dLgorICoKKyAqICgwNC9Ob3YvMjAwMSkgQmlsbCBSeWRlcgorICoJRml4ZWQgYnVnIGluIHJlYWRfYnVsa19jYWxsYmFjayB3aGVyZSBpbmNvcnJlY3QgdXJiIGJ1ZmZlciB3YXMgdXNlZC4KKyAqCUNsZWFuZWQgdXAgd3JpdGUgb2Zmc2V0IGNhbGN1bGF0aW9uCisgKglBZGRlZCB3cml0ZV9yb29tIHNpbmNlIGRlZmF1bHQgdmFsdWVzIGNhbiBiZSBpbmNvcnJlY3QgZm9yIHNpbworICoJQ2hhbmdlZCB3cml0ZV9idWxrX2NhbGxiYWNrIHRvIHVzZSBzYW1lIHF1ZXVlX3Rhc2sgYXMgb3RoZXIgZHJpdmVycworICogICAgICAgICh0aGUgcHJldmlvdXMgdmVyc2lvbiBjYXVzZWQgcGFuaWNzKQorICoJUmVtb3ZlZCBwb3J0IGl0ZXJhdGlvbiBjb2RlIHNpbmNlIHRoZSBkZXZpY2Ugb25seSBoYXMgb25lIEkvTyBwb3J0IGFuZCBpdAorICoJICB3YXMgd3JvbmcgYW55d2F5LgorICogCisgKiAoMzEvTWF5LzIwMDEpIGdraAorICoJU3dpdGNoZWQgZnJvbSB1c2luZyBzcGlubG9jayB0byBhIHNlbWFwaG9yZSwgd2hpY2ggZml4ZXMgbG90cyBvZiBwcm9ibGVtcy4KKyAqCisgKiAoMjMvTWF5LzIwMDEpICAgQmlsbCBSeWRlcgorICoJQWRkZWQgcnVudGltZSBkZWJ1ZyBwYXRjaCAodGhhbnggVHlzb24gRCBTYXd5ZXIpLgorICoJQ2xlYW5lZCB1cCBjb21tZW50cyBmb3IgOFUyMzIKKyAqCUFkZGVkIHBhcml0eSwgZnJhbWluZyBhbmQgb3ZlcnJ1biBlcnJvciBoYW5kbGluZworICoJQWRkZWQgcmVjZWl2ZSBicmVhayBoYW5kbGluZy4KKyAqIAorICogKDA0LzA4LzIwMDEpIGdiCisgKglJZGVudGlmeSB2ZXJzaW9uIG9uIG1vZHVsZSBsb2FkLgorICogICAgICAgCisgKiAoMTgvTWFyY2gvMjAwMSkgQmlsbCBSeWRlcgorICoJKE5vdCByZWxlYXNlZCkKKyAqCUFkZGVkIHNlbmQgYnJlYWsgaGFuZGxpbmcuIChyZXF1aXJlcyBrZXJuZWwgcGF0Y2ggdG9vKQorICoJRml4ZWQgOFUyMzJBTSBoYXJkd2FyZSBSVFMvQ1RTIGV0YyBzdGF0dXMgcmVwb3J0aW5nLgorICoJQWRkZWQgZmxpcGJ1ZiBmaXggY29waWVkIGZyb20gZ2VuZXJpYyBkZXZpY2UKKyAqIAorICogKDEyLzMvMjAwMCkgQmlsbCBSeWRlcgorICoJQWRkZWQgc3VwcG9ydCBmb3IgOFUyMzJBTSBkZXZpY2UuCisgKglNb3ZlZCBQSUQgYW5kIFZJRHMgaW50byBoZWFkZXIgZmlsZSBvbmx5LgorICoJVHVybmVkIG9uIGxvdy1sYXRlbmN5IGZvciB0aGUgdHR5IChkZXZpY2Ugd2lsbCBkbyBoaWdoIGJhdWRyYXRlcykKKyAqCUFkZGVkIHNodXRkb3duIHJvdXRpbmUgdG8gY2xvc2UgZmlsZXMgd2hlbiBkZXZpY2UgcmVtb3ZlZC4KKyAqCU1vcmUgZGVidWcgYW5kIGVycm9yIG1lc3NhZ2UgY2xlYW51cHMuCisgKgorICogKDExLzEzLzIwMDApIEJpbGwgUnlkZXIKKyAqCUFkZGVkIHNwaW5sb2NrIHByb3RlY3RlZCBvcGVuIGNvZGUgYW5kIGNsb3NlIGNvZGUuCisgKglNdWx0aXBsZSBvcGVucyB3b3JrIChzb3J0IG9mIC0gc2VlIHdlYnBhZ2UgbWVudGlvbmVkIGFib3ZlKS4KKyAqCUNsZWFuZWQgdXAgY29tbWVudHMuIFJlbW92ZWQgbXVsdGlwbGUgUElEL1ZJRCBkZWZpbml0aW9ucy4KKyAqCUZhY3RvcmlzZWQgY3RzL2R0ciBjb2RlCisgKglNYWRlIHVzZSBvZiBfX0ZVTkNUSU9OX18gaW4gZGJnJ3MKKyAqICAgICAgCisgKiAoMTEvMDEvMjAwMCkgQWRhbSBKLiBSaWNodGVyCisgKgl1c2JfZGV2aWNlX2lkIHRhYmxlIHN1cHBvcnQKKyAqIAorICogKDEwLzA1LzIwMDApIGdraAorICoJRml4ZWQgYnVnIHdpdGggdXJiLT5kZXYgbm90IGJlaW5nIHNldCBwcm9wZXJseSwgbm93IHRoYXQgdGhlIHVzYgorICoJY29yZSBuZWVkcyBpdC4KKyAqIAorICogKDA5LzExLzIwMDApIGdraAorICoJUmVtb3ZlZCBERUJVRyAjaWZkZWZzIHdpdGggY2FsbCB0byB1c2Jfc2VyaWFsX2RlYnVnX2RhdGEKKyAqCisgKiAoMDcvMTkvMjAwMCkgZ2toCisgKglBZGRlZCBtb2R1bGVfaW5pdCBhbmQgbW9kdWxlX2V4aXQgZnVuY3Rpb25zIHRvIGhhbmRsZSB0aGUgZmFjdCB0aGF0IHRoaXMKKyAqCWRyaXZlciBpcyBhIGxvYWRhYmxlIG1vZHVsZSBub3cuCisgKgorICogKDA0LzA0LzIwMDApIEJpbGwgUnlkZXIgCisgKglGaXhlZCBidWdzIGluIFRDR0VUL1RDU0VUIGlvY3RscyAoYnkgcmVtb3ZpbmcgdGhlbSAtIHRoZXkgYXJlCisgKiAgICAgICAgaGFuZGxlZCBlbHNld2hlcmUgaW4gdGhlIHR0eSBpbyBkcml2ZXIgY2hhaW4pLgorICoKKyAqICgwMy8zMC8yMDAwKSBCaWxsIFJ5ZGVyIAorICoJSW1wbGVtZW50ZWQgbG90cyBvZiBpb2N0bHMKKyAqCUZpeGVkIGEgcmFjZSBjb25kaXRpb24gaW4gd3JpdGUKKyAqCUNoYW5nZWQgc29tZSBkYmcncyB0byBlcnJzCisgKgorICogKDAzLzI2LzIwMDApIGdraAorICoJU3BsaXQgZHJpdmVyIHVwIGludG8gZGV2aWNlIHNwZWNpZmljIHBpZWNlcy4KKyAqCisgKi8KKworLyogQmlsbCBSeWRlciAtIGJyeWRlckBzZ2kuY29tIC0gd3JvdGUgdGhlIEZURElfU0lPIGltcGxlbWVudGF0aW9uICovCisvKiBUaGFueCB0byBGVERJIGZvciBzbyBraW5kbHkgcHJvdmlkaW5nIGRldGFpbHMgb2YgdGhlIHByb3RvY29sIHJlcXVpcmVkICovCisvKiAgIHRvIHRhbGsgdG8gdGhlIGRldmljZSAqLworLyogVGhhbnggdG8gZ2toIGFuZCB0aGUgcmVzdCBvZiB0aGUgdXNiIGRldiBncm91cCBmb3IgYWxsIGNvZGUgSSBoYXZlIGFzc2ltaWxhdGVkIDotKSAqLworCisjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eS5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eV9kcml2ZXIuaD4KKyNpbmNsdWRlIDxsaW51eC90dHlfZmxpcC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC91c2IuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpYWwuaD4KKyNpbmNsdWRlICJ1c2Itc2VyaWFsLmgiCisjaW5jbHVkZSAiZnRkaV9zaW8uaCIKKworLyoKKyAqIFZlcnNpb24gSW5mb3JtYXRpb24KKyAqLworI2RlZmluZSBEUklWRVJfVkVSU0lPTiAidjEuNC4xIgorI2RlZmluZSBEUklWRVJfQVVUSE9SICJHcmVnIEtyb2FoLUhhcnRtYW4gPGdyZWdAa3JvYWguY29tPiwgQmlsbCBSeWRlciA8YnJ5ZGVyQHNnaS5jb20+LCBLdWJhIE9iZXIgPGt1YmFAbWFyZWltYnJpdW0ub3JnPiIKKyNkZWZpbmUgRFJJVkVSX0RFU0MgIlVTQiBGVERJIFNlcmlhbCBDb252ZXJ0ZXJzIERyaXZlciIKKworc3RhdGljIGludCBkZWJ1ZzsKKworc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlX3NpbyBbXSA9IHsKKwl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfU0lPX1BJRCkgfSwKKwl7IH0JCQkJCQkvKiBUZXJtaW5hdGluZyBlbnRyeSAqLworfTsKKworLyoKKyAqIFRoZSA4VTIzMkFNIGhhcyB0aGUgc2FtZSBBUEkgYXMgdGhlIHNpbyBleGNlcHQgZm9yOgorICogLSBpdCBjYW4gc3VwcG9ydCBNVUNIIGhpZ2hlciBiYXVkcmF0ZXM7IHVwIHRvOgorICogICBvIDkyMTYwMCBmb3IgUlMyMzIgYW5kIDIwMDAwMDAgZm9yIFJTNDIyLzQ4NSBhdCA0OE1IegorICogICBvIDIzMDQwMCBhdCAxMk1IegorICogICBzbyAuLiA4VTIzMkFNJ3MgYmF1ZHJhdGUgc2V0dGluZyBjb2RlcyBhcmUgZGlmZmVyZW50CisgKiAtIGl0IGhhcyBhIHR3byBieXRlIHN0YXR1cyBjb2RlLgorICogLSBpdCByZXR1cm5zIGNoYXJhY3RlcnMgZXZlcnkgMTZtcyAodGhlIEZUREkgZG9lcyBpdCBldmVyeSA0MG1zKQorICoKKyAqIHRoZSBiY2REZXZpY2UgdmFsdWUgaXMgdXNlZCB0byBkaWZmZXJlbnRpYXRlIEZUMjMyQk0gYW5kIEZUMjQ1Qk0gZnJvbQorICogdGhlIGVhcmxpZXIgRlQ4VTIzMkFNIGFuZCBGVDhVMjMyQk0uICBGb3Igbm93LCBpbmNsdWRlIGFsbCBrbm93biBWSUQvUElECisgKiBjb21iaW5hdGlvbnMgaW4gYm90aCB0YWJsZXMuCisgKiBGSVhNRTogcGVyaGFwcyBiY2REZXZpY2UgY2FuIGFsc28gaWRlbnRpZnkgMTJNSHogZGV2aWNlcywgYnV0IEkgZG9uJ3Qga25vdworICogaWYgdGhvc2UgZXZlciB3ZW50IGludG8gbWFzcyBwcm9kdWN0aW9uLiBbSWFuIEFiYm90dF0KKyAqLworCisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90YWJsZV84VTIzMkFNIFtdID0geworCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfSVJUUkFOU19QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfOFUyMzJBTV9QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfOFUyMzJBTV9BTFRfUElELCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJXzhVMjMyQU1fQUxUX0FMVF9QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfUkVMQUlTX1BJRCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFKElOVEVSQklPTUVUUklDU19WSUQsIElOVEVSQklPTUVUUklDU19JT0JPQVJEX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoSU5URVJCSU9NRVRSSUNTX1ZJRCwgSU5URVJCSU9NRVRSSUNTX01JTklfSU9CT0FSRF9QSUQpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihGVERJX05GX1JJQ19WSUQsIEZURElfTkZfUklDX1BJRCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgRlRESV9YRl82MzJfUElELCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX1hGXzYzNF9QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfWEZfNTQ3X1BJRCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgRlRESV9YRl82MzNfUElELCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX1hGXzYzMV9QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfWEZfNjM1X1BJRCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgRlRESV9YRl82NDBfUElELCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX1hGXzY0Ml9QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfVk5IQ1BDVVNCX0RfUElELCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX0RTUzIwX1BJRCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzIxMDFfUElELCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjEwMl9QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yMTAzX1BJRCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzIxMDRfUElELCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjIwMV8xX1BJRCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzIyMDFfMl9QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yMjAyXzFfUElELCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjIwMl8yX1BJRCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzIyMDNfMV9QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yMjAzXzJfUElELCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjQwMV8xX1BJRCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI0MDFfMl9QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yNDAxXzNfUElELCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjQwMV80X1BJRCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI0MDJfMV9QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yNDAyXzJfUElELCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjQwMl8zX1BJRCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI0MDJfNF9QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yNDAzXzFfUElELCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjQwM18yX1BJRCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI0MDNfM19QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yNDAzXzRfUElELCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjgwMV8xX1BJRCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDFfMl9QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yODAxXzNfUElELCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjgwMV80X1BJRCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDFfNV9QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yODAxXzZfUElELCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjgwMV83X1BJRCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDFfOF9QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yODAyXzFfUElELCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjgwMl8yX1BJRCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDJfM19QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yODAyXzRfUElELCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjgwMl81X1BJRCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDJfNl9QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yODAyXzdfUElELCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjgwMl84X1BJRCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDNfMV9QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yODAzXzJfUElELCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjgwM18zX1BJRCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDNfNF9QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yODAzXzVfUElELCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjgwM182X1BJRCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDNfN19QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yODAzXzhfUElELCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKElEVEVDSF9WSUQsIElEVEVDSF9JRFQxMjIxVV9QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoT0NUX1ZJRCwgT0NUX1VTMTAxX1BJRCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgUFJPVEVHT19TUEVDSUFMXzEsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIFBST1RFR09fUjJYMCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgUFJPVEVHT19TUEVDSUFMXzMsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIFBST1RFR09fU1BFQ0lBTF80LCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX0VMVl9VTzEwMF9QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIElOU0lERV9BQ0NFU1NPLCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKElOVFJFUElEX1ZJRCwgSU5UUkVQSURfVkFMVUVDQU5fUElELCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKElOVFJFUElEX1ZJRCwgSU5UUkVQSURfTkVPVklfUElELCAwLCAweDNmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZBTENPTV9WSUQsIEZBTENPTV9UV0lTVF9QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfU1VVTlRPX1NQT1JUU19QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9STV9WSUQsIEZURElfUk1DQU5WSUVXX1BJRCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihCQU5EQl9WSUQsIEJBTkRCX1VTT1RMNF9QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoQkFOREJfVklELCBCQU5EQl9VU1RMNF9QSUQsIDAsIDB4M2ZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoQkFOREJfVklELCBCQU5EQl9VU085TUwyX1BJRCwgMCwgMHgzZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgRVZFUl9FQ09fUFJPX0NEUywgMCwgMHgzZmYpIH0sCisJeyB9CQkJCQkJLyogVGVybWluYXRpbmcgZW50cnkgKi8KK307CisKKworc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlX0ZUMjMyQk0gW10gPSB7CisJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgRlRESV9JUlRSQU5TX1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJXzhVMjMyQU1fUElELCAweDQwMCwgMHhmZmZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfOFUyMzJBTV9BTFRfUElELCAweDQwMCwgMHhmZmZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfOFUyMzJBTV9BTFRfQUxUX1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX1JFTEFJU19QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihGVERJX05GX1JJQ19WSUQsIEZURElfTkZfUklDX1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX1hGXzYzMl9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgRlRESV9YRl82MzRfUElELCAweDQwMCwgMHhmZmZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfWEZfNTQ3X1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX1hGXzYzM19QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgRlRESV9YRl82MzFfUElELCAweDQwMCwgMHhmZmZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfWEZfNjM1X1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX1hGXzY0MF9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgRlRESV9YRl82NDJfUElELCAweDQwMCwgMHhmZmZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfVk5IQ1BDVVNCX0RfUElELCAweDQwMCwgMHhmZmZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfRFNTMjBfUElELCAweDQwMCwgMHhmZmZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfTVRYT1JCXzBfUElELCAweDQwMCwgMHhmZmZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfTVRYT1JCXzFfUElELCAweDQwMCwgMHhmZmZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfTVRYT1JCXzJfUElELCAweDQwMCwgMHhmZmZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfTVRYT1JCXzNfUElELCAweDQwMCwgMHhmZmZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfTVRYT1JCXzRfUElELCAweDQwMCwgMHhmZmZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfTVRYT1JCXzVfUElELCAweDQwMCwgMHhmZmZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfTVRYT1JCXzZfUElELCAweDQwMCwgMHhmZmZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfUEVSTEVfVUxUUkFQT1JUX1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX1BJRUdST1VQX1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjEwMV9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzIxMDJfUElELCAweDQwMCwgMHhmZmZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yMTAzX1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjEwNF9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzIyMDFfMV9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzIyMDFfMl9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzIyMDJfMV9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzIyMDJfMl9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzIyMDNfMV9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzIyMDNfMl9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI0MDFfMV9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI0MDFfMl9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI0MDFfM19QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI0MDFfNF9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI0MDJfMV9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI0MDJfMl9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI0MDJfM19QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI0MDJfNF9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI0MDNfMV9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI0MDNfMl9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI0MDNfM19QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI0MDNfNF9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDFfMV9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDFfMl9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDFfM19QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDFfNF9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDFfNV9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDFfNl9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDFfN19QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDFfOF9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDJfMV9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDJfMl9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDJfM19QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDJfNF9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDJfNV9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDJfNl9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDJfN19QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDJfOF9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDNfMV9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDNfMl9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDNfM19QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDNfNF9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDNfNV9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDNfNl9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDNfN19QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDNfOF9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihJRFRFQ0hfVklELCBJRFRFQ0hfSURUMTIyMVVfUElELCAweDQwMCwgMHhmZmZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoT0NUX1ZJRCwgT0NUX1VTMTAxX1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBQUk9URUdPX1NQRUNJQUxfMSwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBQUk9URUdPX1IyWDAsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgUFJPVEVHT19TUEVDSUFMXzMsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgUFJPVEVHT19TUEVDSUFMXzQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgRlRESV9HVURFQURTX0U4MDhfUElELCAweDQwMCwgMHhmZmZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfR1VERUFEU19FODA5X1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX0dVREVBRFNfRTgwQV9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgRlRESV9HVURFQURTX0U4MEJfUElELCAweDQwMCwgMHhmZmZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfR1VERUFEU19FODBDX1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX0dVREVBRFNfRTgwRF9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgRlRESV9HVURFQURTX0U4MEVfUElELCAweDQwMCwgMHhmZmZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfR1VERUFEU19FODBGX1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX0dVREVBRFNfRTg4OF9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgRlRESV9HVURFQURTX0U4ODlfUElELCAweDQwMCwgMHhmZmZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfR1VERUFEU19FODhBX1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX0dVREVBRFNfRTg4Ql9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgRlRESV9HVURFQURTX0U4OENfUElELCAweDQwMCwgMHhmZmZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfR1VERUFEU19FODhEX1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX0dVREVBRFNfRTg4RV9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgRlRESV9HVURFQURTX0U4OEZfUElELCAweDQwMCwgMHhmZmZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIEZURElfRUxWX1VPMTAwX1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKyAJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgTElOWF9TRE1VU0JRU1NfUElELCAweDQwMCwgMHhmZmZmKSB9LAorIAl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBMSU5YX01BU1RFUkRFVkVMMl9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisgCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIExJTlhfRlVUVVJFXzBfUElELCAweDQwMCwgMHhmZmZmKSB9LAorIAl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBMSU5YX0ZVVFVSRV8xX1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKyAJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgTElOWF9GVVRVUkVfMl9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX0NDU0lDRFUyMF8wX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfQ0NTSUNEVTQwXzFfUElEKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIElOU0lERV9BQ0NFU1NPLCAweDQwMCwgMHhmZmZmKSB9LAorCXsgVVNCX0RFVklDRV9WRVIoSU5UUkVQSURfVklELCBJTlRSRVBJRF9WQUxVRUNBTl9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihJTlRSRVBJRF9WSUQsIElOVFJFUElEX05FT1ZJX1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZBTENPTV9WSUQsIEZBTENPTV9UV0lTVF9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgRlRESV9TVVVOVE9fU1BPUlRTX1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfUk1fVklELCBGVERJX1JNQ0FOVklFV19QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihCQU5EQl9WSUQsIEJBTkRCX1VTT1RMNF9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihCQU5EQl9WSUQsIEJBTkRCX1VTVEw0X1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEJBTkRCX1ZJRCwgQkFOREJfVVNPOU1MMl9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgRVZFUl9FQ09fUFJPX0NEUywgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IH0JCQkJCQkvKiBUZXJtaW5hdGluZyBlbnRyeSAqLworfTsKKworCitzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgaWRfdGFibGVfVVNCX1VJUlQgW10gPSB7CisJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX1VTQl9VSVJUX1BJRCkgfSwKKwl7IH0JCQkJCQkvKiBUZXJtaW5hdGluZyBlbnRyeSAqLworfTsKKworCitzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgaWRfdGFibGVfSEVfVElSQTEgW10gPSB7CisJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgRlRESV9IRV9USVJBMV9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyB9CQkJCQkJLyogVGVybWluYXRpbmcgZW50cnkgKi8KK307CisKKworc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlX0ZUMjIzMkNbXSA9IHsKKwl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfOFUyMjMyQ19QSUQpIH0sCisJeyB9CQkJCQkJLyogVGVybWluYXRpbmcgZW50cnkgKi8KK307CisKKworc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlX2NvbWJpbmVkIFtdID0geworCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRlRESV9JUlRSQU5TX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfU0lPX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfOFUyMzJBTV9QSUQpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJXzhVMjMyQU1fQUxUX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfOFUyMzJBTV9BTFRfQUxUX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfOFUyMjMyQ19QSUQpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX1JFTEFJU19QSUQpIH0sCisJeyBVU0JfREVWSUNFKElOVEVSQklPTUVUUklDU19WSUQsIElOVEVSQklPTUVUUklDU19JT0JPQVJEX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoSU5URVJCSU9NRVRSSUNTX1ZJRCwgSU5URVJCSU9NRVRSSUNTX01JTklfSU9CT0FSRF9QSUQpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX1hGXzYzMl9QSUQpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX1hGXzYzNF9QSUQpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX1hGXzU0N19QSUQpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX1hGXzYzM19QSUQpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX1hGXzYzMV9QSUQpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX1hGXzYzNV9QSUQpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX1hGXzY0MF9QSUQpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX1hGXzY0Ml9QSUQpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX0RTUzIwX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoRlRESV9ORl9SSUNfVklELCBGVERJX05GX1JJQ19QSUQpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX1ZOSENQQ1VTQl9EX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX01UWE9SQl8wX1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX01UWE9SQl8xX1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX01UWE9SQl8yX1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX01UWE9SQl8zX1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX01UWE9SQl80X1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX01UWE9SQl81X1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX01UWE9SQl82X1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX1BFUkxFX1VMVFJBUE9SVF9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX1BJRUdST1VQX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yMTAxX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yMTAyX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yMTAzX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yMTA0X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yMjAxXzFfUElEKSB9LAorCXsgVVNCX0RFVklDRShTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzIyMDFfMl9QSUQpIH0sCisJeyBVU0JfREVWSUNFKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjIwMl8xX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yMjAyXzJfUElEKSB9LAorCXsgVVNCX0RFVklDRShTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzIyMDNfMV9QSUQpIH0sCisJeyBVU0JfREVWSUNFKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjIwM18yX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yNDAxXzFfUElEKSB9LAorCXsgVVNCX0RFVklDRShTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI0MDFfMl9QSUQpIH0sCisJeyBVU0JfREVWSUNFKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjQwMV8zX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yNDAxXzRfUElEKSB9LAorCXsgVVNCX0RFVklDRShTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI0MDJfMV9QSUQpIH0sCisJeyBVU0JfREVWSUNFKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjQwMl8yX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yNDAyXzNfUElEKSB9LAorCXsgVVNCX0RFVklDRShTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI0MDJfNF9QSUQpIH0sCisJeyBVU0JfREVWSUNFKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjQwM18xX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yNDAzXzJfUElEKSB9LAorCXsgVVNCX0RFVklDRShTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI0MDNfM19QSUQpIH0sCisJeyBVU0JfREVWSUNFKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjQwM180X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yODAxXzFfUElEKSB9LAorCXsgVVNCX0RFVklDRShTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDFfMl9QSUQpIH0sCisJeyBVU0JfREVWSUNFKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjgwMV8zX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yODAxXzRfUElEKSB9LAorCXsgVVNCX0RFVklDRShTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDFfNV9QSUQpIH0sCisJeyBVU0JfREVWSUNFKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjgwMV82X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yODAxXzdfUElEKSB9LAorCXsgVVNCX0RFVklDRShTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDFfOF9QSUQpIH0sCisJeyBVU0JfREVWSUNFKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjgwMl8xX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yODAyXzJfUElEKSB9LAorCXsgVVNCX0RFVklDRShTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDJfM19QSUQpIH0sCisJeyBVU0JfREVWSUNFKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjgwMl80X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yODAyXzVfUElEKSB9LAorCXsgVVNCX0RFVklDRShTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDJfNl9QSUQpIH0sCisJeyBVU0JfREVWSUNFKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjgwMl83X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yODAyXzhfUElEKSB9LAorCXsgVVNCX0RFVklDRShTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDNfMV9QSUQpIH0sCisJeyBVU0JfREVWSUNFKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjgwM18yX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yODAzXzNfUElEKSB9LAorCXsgVVNCX0RFVklDRShTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDNfNF9QSUQpIH0sCisJeyBVU0JfREVWSUNFKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjgwM181X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoU0VBTEVWRUxfVklELCBTRUFMRVZFTF8yODAzXzZfUElEKSB9LAorCXsgVVNCX0RFVklDRShTRUFMRVZFTF9WSUQsIFNFQUxFVkVMXzI4MDNfN19QSUQpIH0sCisJeyBVU0JfREVWSUNFKFNFQUxFVkVMX1ZJRCwgU0VBTEVWRUxfMjgwM184X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoSURURUNIX1ZJRCwgSURURUNIX0lEVDEyMjFVX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoT0NUX1ZJRCwgT0NUX1VTMTAxX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBGVERJX0hFX1RJUkExX1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKwl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfVVNCX1VJUlRfUElEKSB9LAorCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgUFJPVEVHT19TUEVDSUFMXzEpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBQUk9URUdPX1IyWDApIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBQUk9URUdPX1NQRUNJQUxfMykgfSwKKwl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIFBST1RFR09fU1BFQ0lBTF80KSB9LAorCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRlRESV9FTFZfVU8xMDBfUElEKSB9LAorIAl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBMSU5YX1NETVVTQlFTU19QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisgCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIExJTlhfTUFTVEVSREVWRUwyX1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKyAJeyBVU0JfREVWSUNFX1ZFUihGVERJX1ZJRCwgTElOWF9GVVRVUkVfMF9QSUQsIDB4NDAwLCAweGZmZmYpIH0sCisgCXsgVVNCX0RFVklDRV9WRVIoRlRESV9WSUQsIExJTlhfRlVUVVJFXzFfUElELCAweDQwMCwgMHhmZmZmKSB9LAorIAl7IFVTQl9ERVZJQ0VfVkVSKEZURElfVklELCBMSU5YX0ZVVFVSRV8yX1BJRCwgMHg0MDAsIDB4ZmZmZikgfSwKKyAJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX0NDU0lDRFUyMF8wX1BJRCkgfSwKKyAJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX0NDU0lDRFU0MF8xX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIElOU0lERV9BQ0NFU1NPKSB9LAorCXsgVVNCX0RFVklDRShJTlRSRVBJRF9WSUQsIElOVFJFUElEX1ZBTFVFQ0FOX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoSU5UUkVQSURfVklELCBJTlRSRVBJRF9ORU9WSV9QSUQpIH0sCisJeyBVU0JfREVWSUNFKEZBTENPTV9WSUQsIEZBTENPTV9UV0lTVF9QSUQpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX1NVVU5UT19TUE9SVFNfUElEKSB9LAorCXsgVVNCX0RFVklDRShGVERJX1JNX1ZJRCwgRlRESV9STUNBTlZJRVdfUElEKSB9LAorCXsgVVNCX0RFVklDRShCQU5EQl9WSUQsIEJBTkRCX1VTT1RMNF9QSUQpIH0sCisJeyBVU0JfREVWSUNFKEJBTkRCX1ZJRCwgQkFOREJfVVNUTDRfUElEKSB9LAorCXsgVVNCX0RFVklDRShCQU5EQl9WSUQsIEJBTkRCX1VTTzlNTDJfUElEKSB9LAorCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRVZFUl9FQ09fUFJPX0NEUykgfSwKKwl7IH0JCQkJCQkvKiBUZXJtaW5hdGluZyBlbnRyeSAqLworfTsKKworTU9EVUxFX0RFVklDRV9UQUJMRSAodXNiLCBpZF90YWJsZV9jb21iaW5lZCk7CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBmdGRpX2RyaXZlciA9IHsKKwkubmFtZSA9CQkiZnRkaV9zaW8iLAorCS5wcm9iZSA9CXVzYl9zZXJpYWxfcHJvYmUsCisJLmRpc2Nvbm5lY3QgPQl1c2Jfc2VyaWFsX2Rpc2Nvbm5lY3QsCisJLmlkX3RhYmxlID0JaWRfdGFibGVfY29tYmluZWQsCit9OworCitzdGF0aWMgY2hhciAqZnRkaV9jaGlwX25hbWVbXSA9IHsKKwlbU0lPXSA9ICJTSU8iLAkvKiB0aGUgc2VyaWFsIHBhcnQgb2YgRlQ4VTEwMEFYICovCisJW0ZUOFUyMzJBTV0gPSAiRlQ4VTIzMkFNIiwKKwlbRlQyMzJCTV0gPSAiRlQyMzJCTSIsCisJW0ZUMjIzMkNdID0gIkZUMjIzMkMiLAorfTsKKworCisvKiBDb25zdGFudHMgZm9yIHJlYWQgdXJiIGFuZCB3cml0ZSB1cmIgKi8KKyNkZWZpbmUgQlVGU1ogNTEyCisjZGVmaW5lIFBLVFNaIDY0CisKKy8qIHJ4X2ZsYWdzICovCisjZGVmaW5lIFRIUk9UVExFRAkJMHgwMQorI2RlZmluZSBBQ1RVQUxMWV9USFJPVFRMRUQJMHgwMgorCitzdHJ1Y3QgZnRkaV9wcml2YXRlIHsKKwlmdGRpX2NoaXBfdHlwZV90IGNoaXBfdHlwZTsKKwkJCQkvKiB0eXBlIG9mIHRoZSBkZXZpY2UsIGVpdGhlciBTSU8gb3IgRlQ4VTIzMkFNICovCisJaW50IGJhdWRfYmFzZTsJCS8qIGJhdWQgYmFzZSBjbG9jayBmb3IgZGl2aXNvciBzZXR0aW5nICovCisJaW50IGN1c3RvbV9kaXZpc29yOwkvKiBjdXN0b21fZGl2aXNvciBrbHVkZ2UsIHRoaXMgaXMgZm9yIGJhdWRfYmFzZSAoZGlmZmVyZW50IGZyb20gd2hhdCBnb2VzIHRvIHRoZSBjaGlwISkgKi8KKwlfX3UxNiBsYXN0X3NldF9kYXRhX3VyYl92YWx1ZSA7CisJCQkJLyogdGhlIGxhc3QgZGF0YSBzdGF0ZSBzZXQgLSBuZWVkZWQgZm9yIGRvaW5nIGEgYnJlYWsgKi8KKyAgICAgICAgaW50IHdyaXRlX29mZnNldDsgICAgICAgLyogVGhpcyBpcyB0aGUgb2Zmc2V0IGluIHRoZSB1c2IgZGF0YSBibG9jayB0byB3cml0ZSB0aGUgc2VyaWFsIGRhdGEgLSAKKwkJCQkgKiBpdCBpcyBkaWZmZXJlbnQgYmV0d2VlbiBkZXZpY2VzCisJCQkJICovCisJaW50IGZsYWdzOwkJLyogc29tZSBBU1lOQ194eHh4IGZsYWdzIGFyZSBzdXBwb3J0ZWQgKi8KKwl1bnNpZ25lZCBsb25nIGxhc3RfZHRyX3J0czsJLyogc2F2ZWQgbW9kZW0gY29udHJvbCBvdXRwdXRzICovCisgICAgICAgIHdhaXRfcXVldWVfaGVhZF90IGRlbHRhX21zcl93YWl0OyAvKiBVc2VkIGZvciBUSU9DTUlXQUlUICovCisgCWNoYXIgcHJldl9zdGF0dXMsIGRpZmZfc3RhdHVzOyAgICAgICAgLyogVXNlZCBmb3IgVElPQ01JV0FJVCAqLworCV9fdTggcnhfZmxhZ3M7CQkvKiByZWNlaXZlIHN0YXRlIGZsYWdzICh0aHJvdHRsaW5nKSAqLworCXNwaW5sb2NrX3QgcnhfbG9jazsJLyogc3BpbmxvY2sgZm9yIHJlY2VpdmUgc3RhdGUgKi8KKworCV9fdTE2IGludGVyZmFjZTsJLyogRlQyMjMyQyBwb3J0IGludGVyZmFjZSAoMCBmb3IgRlQyMzIvMjQ1KSAqLworCisJaW50IGZvcmNlX2JhdWQ7CQkvKiBpZiBub24temVybywgZm9yY2UgdGhlIGJhdWQgcmF0ZSB0byB0aGlzIHZhbHVlICovCisJaW50IGZvcmNlX3J0c2N0czsJLyogaWYgbm9uLXplcm8sIGZvcmNlIFJUUy1DVFMgdG8gYWx3YXlzIGJlIGVuYWJsZWQgKi8KK307CisKKy8qIFVzZWQgZm9yIFRJT0NNSVdBSVQgKi8KKyNkZWZpbmUgRlRESV9TVEFUVVNfQjBfTUFTSwkoRlRESV9SUzBfQ1RTIHwgRlRESV9SUzBfRFNSIHwgRlRESV9SUzBfUkkgfCBGVERJX1JTMF9STFNEKQorI2RlZmluZSBGVERJX1NUQVRVU19CMV9NQVNLCShGVERJX1JTX0JJKQorLyogRW5kIFRJT0NNSVdBSVQgKi8KKworI2RlZmluZSBGVERJX0lNUExfQVNZTkNfRkxBR1MgPSAoIEFTWU5DX1NQRF9ISSB8IEFTWU5DX1NQRF9WSEkgXAorIEFTWU5DX1NQRF9DVVNUIHwgQVNZTkNfU1BEX1NISSB8IEFTWU5DX1NQRF9XQVJQICkKKworLyogZnVuY3Rpb24gcHJvdG90eXBlcyBmb3IgYSBGVERJIHNlcmlhbCBjb252ZXJ0ZXIgKi8KK3N0YXRpYyBpbnQgIGZ0ZGlfU0lPX3N0YXJ0dXAJCShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKTsKK3N0YXRpYyBpbnQgIGZ0ZGlfOFUyMzJBTV9zdGFydHVwCShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKTsKK3N0YXRpYyBpbnQgIGZ0ZGlfRlQyMzJCTV9zdGFydHVwCShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKTsKK3N0YXRpYyBpbnQgIGZ0ZGlfRlQyMjMyQ19zdGFydHVwCShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKTsKK3N0YXRpYyBpbnQgIGZ0ZGlfVVNCX1VJUlRfc3RhcnR1cAkoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCk7CitzdGF0aWMgaW50ICBmdGRpX0hFX1RJUkExX3N0YXJ0dXAJKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpOworc3RhdGljIHZvaWQgZnRkaV9zaHV0ZG93bgkJKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpOworc3RhdGljIGludCAgZnRkaV9vcGVuCQkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKTsKK3N0YXRpYyB2b2lkIGZ0ZGlfY2xvc2UJCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbHApOworc3RhdGljIGludCAgZnRkaV93cml0ZQkJCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBjb3VudCk7CitzdGF0aWMgaW50ICBmdGRpX3dyaXRlX3Jvb20JCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KTsKK3N0YXRpYyBpbnQgIGZ0ZGlfY2hhcnNfaW5fYnVmZmVyCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KTsKK3N0YXRpYyB2b2lkIGZ0ZGlfd3JpdGVfYnVsa19jYWxsYmFjawkoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CitzdGF0aWMgdm9pZCBmdGRpX3JlYWRfYnVsa19jYWxsYmFjawkoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CitzdGF0aWMgdm9pZCBmdGRpX3Byb2Nlc3NfcmVhZAkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworc3RhdGljIHZvaWQgZnRkaV9zZXRfdGVybWlvcwkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCB0ZXJtaW9zICogb2xkKTsKK3N0YXRpYyBpbnQgIGZ0ZGlfdGlvY21nZXQgICAgICAgICAgICAgICAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbGUpOworc3RhdGljIGludCAgZnRkaV90aW9jbXNldAkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICogZmlsZSwgdW5zaWduZWQgaW50IHNldCwgdW5zaWduZWQgaW50IGNsZWFyKTsKK3N0YXRpYyBpbnQgIGZ0ZGlfaW9jdGwJCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKiBmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7CitzdGF0aWMgdm9pZCBmdGRpX2JyZWFrX2N0bAkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIGludCBicmVha19zdGF0ZSApOworc3RhdGljIHZvaWQgZnRkaV90aHJvdHRsZQkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworc3RhdGljIHZvaWQgZnRkaV91bnRocm90dGxlCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCk7CisKK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBpbnQgZnRkaV8yMzJhbV9iYXVkX2Jhc2VfdG9fZGl2aXNvciAoaW50IGJhdWQsIGludCBiYXNlKTsKK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBpbnQgZnRkaV8yMzJhbV9iYXVkX3RvX2Rpdmlzb3IgKGludCBiYXVkKTsKK3N0YXRpYyBfX3UzMiBmdGRpXzIzMmJtX2JhdWRfYmFzZV90b19kaXZpc29yIChpbnQgYmF1ZCwgaW50IGJhc2UpOworc3RhdGljIF9fdTMyIGZ0ZGlfMjMyYm1fYmF1ZF90b19kaXZpc29yIChpbnQgYmF1ZCk7CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kZXZpY2VfdHlwZSBmdGRpX1NJT19kZXZpY2UgPSB7CisJLm93bmVyID0JCVRISVNfTU9EVUxFLAorCS5uYW1lID0JCQkiRlRESSBTSU8iLAorCS5pZF90YWJsZSA9CQlpZF90YWJsZV9zaW8sCisJLm51bV9pbnRlcnJ1cHRfaW4gPQkwLAorCS5udW1fYnVsa19pbiA9CQkxLAorCS5udW1fYnVsa19vdXQgPQkJMSwKKwkubnVtX3BvcnRzID0JCTEsCisJLm9wZW4gPQkJCWZ0ZGlfb3BlbiwKKwkuY2xvc2UgPQkJZnRkaV9jbG9zZSwKKwkudGhyb3R0bGUgPQkJZnRkaV90aHJvdHRsZSwKKwkudW50aHJvdHRsZSA9CQlmdGRpX3VudGhyb3R0bGUsCisJLndyaXRlID0JCWZ0ZGlfd3JpdGUsCisJLndyaXRlX3Jvb20gPQkJZnRkaV93cml0ZV9yb29tLAorCS5jaGFyc19pbl9idWZmZXIgPQlmdGRpX2NoYXJzX2luX2J1ZmZlciwKKwkucmVhZF9idWxrX2NhbGxiYWNrID0JZnRkaV9yZWFkX2J1bGtfY2FsbGJhY2ssCisJLndyaXRlX2J1bGtfY2FsbGJhY2sgPQlmdGRpX3dyaXRlX2J1bGtfY2FsbGJhY2ssCisJLnRpb2NtZ2V0ID0gICAgICAgICAgICAgZnRkaV90aW9jbWdldCwKKwkudGlvY21zZXQgPSAgICAgICAgICAgICBmdGRpX3Rpb2Ntc2V0LAorCS5pb2N0bCA9CQlmdGRpX2lvY3RsLAorCS5zZXRfdGVybWlvcyA9CQlmdGRpX3NldF90ZXJtaW9zLAorCS5icmVha19jdGwgPQkJZnRkaV9icmVha19jdGwsCisJLmF0dGFjaCA9CQlmdGRpX1NJT19zdGFydHVwLAorCS5zaHV0ZG93biA9CQlmdGRpX3NodXRkb3duLAorfTsKKworc3RhdGljIHN0cnVjdCB1c2Jfc2VyaWFsX2RldmljZV90eXBlIGZ0ZGlfOFUyMzJBTV9kZXZpY2UgPSB7CisJLm93bmVyID0JCVRISVNfTU9EVUxFLAorCS5uYW1lID0JCQkiRlRESSA4VTIzMkFNIENvbXBhdGlibGUiLAorCS5pZF90YWJsZSA9CQlpZF90YWJsZV84VTIzMkFNLAorCS5udW1faW50ZXJydXB0X2luID0JMCwKKwkubnVtX2J1bGtfaW4gPQkJMSwKKwkubnVtX2J1bGtfb3V0ID0JCTEsCisJLm51bV9wb3J0cyA9CQkxLAorCS5vcGVuID0JCQlmdGRpX29wZW4sCisJLmNsb3NlID0JCWZ0ZGlfY2xvc2UsCisJLnRocm90dGxlID0JCWZ0ZGlfdGhyb3R0bGUsCisJLnVudGhyb3R0bGUgPQkJZnRkaV91bnRocm90dGxlLAorCS53cml0ZSA9CQlmdGRpX3dyaXRlLAorCS53cml0ZV9yb29tID0JCWZ0ZGlfd3JpdGVfcm9vbSwKKwkuY2hhcnNfaW5fYnVmZmVyID0JZnRkaV9jaGFyc19pbl9idWZmZXIsCisJLnJlYWRfYnVsa19jYWxsYmFjayA9CWZ0ZGlfcmVhZF9idWxrX2NhbGxiYWNrLAorCS53cml0ZV9idWxrX2NhbGxiYWNrID0JZnRkaV93cml0ZV9idWxrX2NhbGxiYWNrLAorCS50aW9jbWdldCA9ICAgICAgICAgICAgIGZ0ZGlfdGlvY21nZXQsCisJLnRpb2Ntc2V0ID0gICAgICAgICAgICAgZnRkaV90aW9jbXNldCwKKwkuaW9jdGwgPQkJZnRkaV9pb2N0bCwKKwkuc2V0X3Rlcm1pb3MgPQkJZnRkaV9zZXRfdGVybWlvcywKKwkuYnJlYWtfY3RsID0JCWZ0ZGlfYnJlYWtfY3RsLAorCS5hdHRhY2ggPQkJZnRkaV84VTIzMkFNX3N0YXJ0dXAsCisJLnNodXRkb3duID0JCWZ0ZGlfc2h1dGRvd24sCit9OworCitzdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUgZnRkaV9GVDIzMkJNX2RldmljZSA9IHsKKwkub3duZXIgPQkJVEhJU19NT0RVTEUsCisJLm5hbWUgPQkJCSJGVERJIEZUMjMyQk0gQ29tcGF0aWJsZSIsCisJLmlkX3RhYmxlID0JCWlkX3RhYmxlX0ZUMjMyQk0sCisJLm51bV9pbnRlcnJ1cHRfaW4gPQkwLAorCS5udW1fYnVsa19pbiA9CQkxLAorCS5udW1fYnVsa19vdXQgPQkJMSwKKwkubnVtX3BvcnRzID0JCTEsCisJLm9wZW4gPQkJCWZ0ZGlfb3BlbiwKKwkuY2xvc2UgPQkJZnRkaV9jbG9zZSwKKwkudGhyb3R0bGUgPQkJZnRkaV90aHJvdHRsZSwKKwkudW50aHJvdHRsZSA9CQlmdGRpX3VudGhyb3R0bGUsCisJLndyaXRlID0JCWZ0ZGlfd3JpdGUsCisJLndyaXRlX3Jvb20gPQkJZnRkaV93cml0ZV9yb29tLAorCS5jaGFyc19pbl9idWZmZXIgPQlmdGRpX2NoYXJzX2luX2J1ZmZlciwKKwkucmVhZF9idWxrX2NhbGxiYWNrID0JZnRkaV9yZWFkX2J1bGtfY2FsbGJhY2ssCisJLndyaXRlX2J1bGtfY2FsbGJhY2sgPQlmdGRpX3dyaXRlX2J1bGtfY2FsbGJhY2ssCisJLnRpb2NtZ2V0ID0gICAgICAgICAgICAgZnRkaV90aW9jbWdldCwKKwkudGlvY21zZXQgPSAgICAgICAgICAgICBmdGRpX3Rpb2Ntc2V0LAorCS5pb2N0bCA9CQlmdGRpX2lvY3RsLAorCS5zZXRfdGVybWlvcyA9CQlmdGRpX3NldF90ZXJtaW9zLAorCS5icmVha19jdGwgPQkJZnRkaV9icmVha19jdGwsCisJLmF0dGFjaCA9CQlmdGRpX0ZUMjMyQk1fc3RhcnR1cCwKKwkuc2h1dGRvd24gPQkJZnRkaV9zaHV0ZG93biwKK307CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kZXZpY2VfdHlwZSBmdGRpX0ZUMjIzMkNfZGV2aWNlID0geworCS5vd25lciA9CQlUSElTX01PRFVMRSwKKwkubmFtZSA9CQkJIkZUREkgRlQyMjMyQyBDb21wYXRpYmxlIiwKKwkuaWRfdGFibGUgPQkJaWRfdGFibGVfRlQyMjMyQywKKwkubnVtX2ludGVycnVwdF9pbiA9CTAsCisJLm51bV9idWxrX2luID0JCTEsCisJLm51bV9idWxrX291dCA9CQkxLAorCS5udW1fcG9ydHMgPQkJMSwKKwkub3BlbiA9CQkJZnRkaV9vcGVuLAorCS5jbG9zZSA9CQlmdGRpX2Nsb3NlLAorCS50aHJvdHRsZSA9CQlmdGRpX3Rocm90dGxlLAorCS51bnRocm90dGxlID0JCWZ0ZGlfdW50aHJvdHRsZSwKKwkud3JpdGUgPQkJZnRkaV93cml0ZSwKKwkud3JpdGVfcm9vbSA9CQlmdGRpX3dyaXRlX3Jvb20sCisJLmNoYXJzX2luX2J1ZmZlciA9CWZ0ZGlfY2hhcnNfaW5fYnVmZmVyLAorCS5yZWFkX2J1bGtfY2FsbGJhY2sgPQlmdGRpX3JlYWRfYnVsa19jYWxsYmFjaywKKwkud3JpdGVfYnVsa19jYWxsYmFjayA9CWZ0ZGlfd3JpdGVfYnVsa19jYWxsYmFjaywKKwkudGlvY21nZXQgPSAgICAgICAgICAgICBmdGRpX3Rpb2NtZ2V0LAorCS50aW9jbXNldCA9ICAgICAgICAgICAgIGZ0ZGlfdGlvY21zZXQsCisJLmlvY3RsID0JCWZ0ZGlfaW9jdGwsCisJLnNldF90ZXJtaW9zID0JCWZ0ZGlfc2V0X3Rlcm1pb3MsCisJLmJyZWFrX2N0bCA9CQlmdGRpX2JyZWFrX2N0bCwKKwkuYXR0YWNoID0JCWZ0ZGlfRlQyMjMyQ19zdGFydHVwLAorCS5zaHV0ZG93biA9CQlmdGRpX3NodXRkb3duLAorfTsKKworc3RhdGljIHN0cnVjdCB1c2Jfc2VyaWFsX2RldmljZV90eXBlIGZ0ZGlfVVNCX1VJUlRfZGV2aWNlID0geworCS5vd25lciA9CQlUSElTX01PRFVMRSwKKwkubmFtZSA9CQkJIlVTQi1VSVJUIEluZnJhcmVkIFRyYW5jZWl2ZXIiLAorCS5pZF90YWJsZSA9CQlpZF90YWJsZV9VU0JfVUlSVCwKKwkubnVtX2ludGVycnVwdF9pbiA9CTAsCisJLm51bV9idWxrX2luID0JCTEsCisJLm51bV9idWxrX291dCA9CQkxLAorCS5udW1fcG9ydHMgPQkJMSwKKwkub3BlbiA9CQkJZnRkaV9vcGVuLAorCS5jbG9zZSA9CQlmdGRpX2Nsb3NlLAorCS50aHJvdHRsZSA9CQlmdGRpX3Rocm90dGxlLAorCS51bnRocm90dGxlID0JCWZ0ZGlfdW50aHJvdHRsZSwKKwkud3JpdGUgPQkJZnRkaV93cml0ZSwKKwkud3JpdGVfcm9vbSA9CQlmdGRpX3dyaXRlX3Jvb20sCisJLmNoYXJzX2luX2J1ZmZlciA9CWZ0ZGlfY2hhcnNfaW5fYnVmZmVyLAorCS5yZWFkX2J1bGtfY2FsbGJhY2sgPQlmdGRpX3JlYWRfYnVsa19jYWxsYmFjaywKKwkud3JpdGVfYnVsa19jYWxsYmFjayA9CWZ0ZGlfd3JpdGVfYnVsa19jYWxsYmFjaywKKwkudGlvY21nZXQgPSAgICAgICAgICAgICBmdGRpX3Rpb2NtZ2V0LAorCS50aW9jbXNldCA9ICAgICAgICAgICAgIGZ0ZGlfdGlvY21zZXQsCisJLmlvY3RsID0JCWZ0ZGlfaW9jdGwsCisJLnNldF90ZXJtaW9zID0JCWZ0ZGlfc2V0X3Rlcm1pb3MsCisJLmJyZWFrX2N0bCA9CQlmdGRpX2JyZWFrX2N0bCwKKwkuYXR0YWNoID0JCWZ0ZGlfVVNCX1VJUlRfc3RhcnR1cCwKKwkuc2h1dGRvd24gPQkJZnRkaV9zaHV0ZG93biwKK307CisKKy8qIFRoZSBUSVJBMSBpcyBiYXNlZCBvbiBhICBGVDIzMkJNIHdoaWNoIHJlcXVpcmVzIGEgZml4ZWQgYmF1ZCByYXRlIG9mIDEwMDAwMAorICogYW5kIHdoaWNoIHJlcXVpcmVzIFJUUy1DVFMgdG8gYmUgZW5hYmxlZC4gKi8KK3N0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kZXZpY2VfdHlwZSBmdGRpX0hFX1RJUkExX2RldmljZSA9IHsKKwkub3duZXIgPQkJVEhJU19NT0RVTEUsCisJLm5hbWUgPQkJCSJIb21lLUVsZWN0cm9uaWNzIFRJUkEtMSBJUiBUcmFuc2NlaXZlciIsCisJLmlkX3RhYmxlID0JCWlkX3RhYmxlX0hFX1RJUkExLAorCS5udW1faW50ZXJydXB0X2luID0JMCwKKwkubnVtX2J1bGtfaW4gPQkJMSwKKwkubnVtX2J1bGtfb3V0ID0JCTEsCisJLm51bV9wb3J0cyA9CQkxLAorCS5vcGVuID0JCQlmdGRpX29wZW4sCisJLmNsb3NlID0JCWZ0ZGlfY2xvc2UsCisJLnRocm90dGxlID0JCWZ0ZGlfdGhyb3R0bGUsCisJLnVudGhyb3R0bGUgPQkJZnRkaV91bnRocm90dGxlLAorCS53cml0ZSA9CQlmdGRpX3dyaXRlLAorCS53cml0ZV9yb29tID0JCWZ0ZGlfd3JpdGVfcm9vbSwKKwkuY2hhcnNfaW5fYnVmZmVyID0JZnRkaV9jaGFyc19pbl9idWZmZXIsCisJLnJlYWRfYnVsa19jYWxsYmFjayA9CWZ0ZGlfcmVhZF9idWxrX2NhbGxiYWNrLAorCS53cml0ZV9idWxrX2NhbGxiYWNrID0JZnRkaV93cml0ZV9idWxrX2NhbGxiYWNrLAorCS50aW9jbWdldCA9ICAgICAgICAgICAgIGZ0ZGlfdGlvY21nZXQsCisJLnRpb2Ntc2V0ID0gICAgICAgICAgICAgZnRkaV90aW9jbXNldCwKKwkuaW9jdGwgPQkJZnRkaV9pb2N0bCwKKwkuc2V0X3Rlcm1pb3MgPQkJZnRkaV9zZXRfdGVybWlvcywKKwkuYnJlYWtfY3RsID0JCWZ0ZGlfYnJlYWtfY3RsLAorCS5hdHRhY2ggPQkJZnRkaV9IRV9USVJBMV9zdGFydHVwLAorCS5zaHV0ZG93biA9CQlmdGRpX3NodXRkb3duLAorfTsKKworCisKKyNkZWZpbmUgV0RSX1RJTUVPVVQgNTAwMCAvKiBkZWZhdWx0IHVyYiB0aW1lb3V0ICovCisKKy8qIEhpZ2ggYW5kIGxvdyBhcmUgZm9yIERUUiwgUlRTIGV0YyBldGMgKi8KKyNkZWZpbmUgSElHSCAxCisjZGVmaW5lIExPVyAwCisKKy8qCisgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFV0bGl0eSBmdW5jdGlvbnMKKyAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBpbnQgZnRkaV8yMzJhbV9iYXVkX2Jhc2VfdG9fZGl2aXNvcihpbnQgYmF1ZCwgaW50IGJhc2UpCit7CisJdW5zaWduZWQgc2hvcnQgaW50IGRpdmlzb3I7CisJaW50IGRpdmlzb3IzID0gYmFzZSAvIDIgLyBiYXVkOyAvLyBkaXZpc29yIHNoaWZ0ZWQgMyBiaXRzIHRvIHRoZSBsZWZ0CisJaWYgKChkaXZpc29yMyAmIDB4NykgPT0gNykgZGl2aXNvcjMgKys7IC8vIHJvdW5kIHguNy84IHVwIHRvIHgrMQorCWRpdmlzb3IgPSBkaXZpc29yMyA+PiAzOworCWRpdmlzb3IzICY9IDB4NzsKKwlpZiAoZGl2aXNvcjMgPT0gMSkgZGl2aXNvciB8PSAweGMwMDA7IGVsc2UgLy8gMC4xMjUKKwlpZiAoZGl2aXNvcjMgPj0gNCkgZGl2aXNvciB8PSAweDQwMDA7IGVsc2UgLy8gMC41CisJaWYgKGRpdmlzb3IzICE9IDApIGRpdmlzb3IgfD0gMHg4MDAwOyAgICAgIC8vIDAuMjUKKwlpZiAoZGl2aXNvciA9PSAxKSBkaXZpc29yID0gMDsJLyogc3BlY2lhbCBjYXNlIGZvciBtYXhpbXVtIGJhdWQgcmF0ZSAqLworCXJldHVybiBkaXZpc29yOworfQorCitzdGF0aWMgdW5zaWduZWQgc2hvcnQgaW50IGZ0ZGlfMjMyYW1fYmF1ZF90b19kaXZpc29yKGludCBiYXVkKQoreworCSByZXR1cm4oZnRkaV8yMzJhbV9iYXVkX2Jhc2VfdG9fZGl2aXNvcihiYXVkLCA0ODAwMDAwMCkpOworfQorCitzdGF0aWMgX191MzIgZnRkaV8yMzJibV9iYXVkX2Jhc2VfdG9fZGl2aXNvcihpbnQgYmF1ZCwgaW50IGJhc2UpCit7CisJc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGl2ZnJhY1s4XSA9IHsgMCwgMywgMiwgNCwgMSwgNSwgNiwgNyB9OworCV9fdTMyIGRpdmlzb3I7CisJaW50IGRpdmlzb3IzID0gYmFzZSAvIDIgLyBiYXVkOyAvLyBkaXZpc29yIHNoaWZ0ZWQgMyBiaXRzIHRvIHRoZSBsZWZ0CisJZGl2aXNvciA9IGRpdmlzb3IzID4+IDM7CisJZGl2aXNvciB8PSAoX191MzIpZGl2ZnJhY1tkaXZpc29yMyAmIDB4N10gPDwgMTQ7CisJLyogRGVhbCB3aXRoIHNwZWNpYWwgY2FzZXMgZm9yIGhpZ2hlc3QgYmF1ZCByYXRlcy4gKi8KKwlpZiAoZGl2aXNvciA9PSAxKSBkaXZpc29yID0gMDsgZWxzZQkvLyAxLjAKKwlpZiAoZGl2aXNvciA9PSAweDQwMDEpIGRpdmlzb3IgPSAxOwkvLyAxLjUKKwlyZXR1cm4gZGl2aXNvcjsKK30KKworc3RhdGljIF9fdTMyIGZ0ZGlfMjMyYm1fYmF1ZF90b19kaXZpc29yKGludCBiYXVkKQoreworCSByZXR1cm4oZnRkaV8yMzJibV9iYXVkX2Jhc2VfdG9fZGl2aXNvcihiYXVkLCA0ODAwMDAwMCkpOworfQorCitzdGF0aWMgaW50IHNldF9ydHMoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgaW50IGhpZ2hfb3JfbG93KQoreworCXN0cnVjdCBmdGRpX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJY2hhciAqYnVmOworCXVuc2lnbmVkIGZ0ZGlfaGlnaF9vcl9sb3c7CisJaW50IHJ2OworCQorCWJ1ZiA9IGttYWxsb2MoMSwgR0ZQX05PSU8pOworCWlmICghYnVmKQorCQlyZXR1cm4gLUVOT01FTTsKKwkKKwlpZiAoaGlnaF9vcl9sb3cpIHsKKwkJZnRkaV9oaWdoX29yX2xvdyA9IEZURElfU0lPX1NFVF9SVFNfSElHSDsKKwkJcHJpdi0+bGFzdF9kdHJfcnRzIHw9IFRJT0NNX1JUUzsKKwl9IGVsc2UgeworCQlmdGRpX2hpZ2hfb3JfbG93ID0gRlRESV9TSU9fU0VUX1JUU19MT1c7CisJCXByaXYtPmxhc3RfZHRyX3J0cyAmPSB+VElPQ01fUlRTOworCX0KKwlydiA9IHVzYl9jb250cm9sX21zZyhwb3J0LT5zZXJpYWwtPmRldiwKKwkJCSAgICAgICB1c2Jfc25kY3RybHBpcGUocG9ydC0+c2VyaWFsLT5kZXYsIDApLAorCQkJICAgICAgIEZURElfU0lPX1NFVF9NT0RFTV9DVFJMX1JFUVVFU1QsIAorCQkJICAgICAgIEZURElfU0lPX1NFVF9NT0RFTV9DVFJMX1JFUVVFU1RfVFlQRSwKKwkJCSAgICAgICBmdGRpX2hpZ2hfb3JfbG93LCBwcml2LT5pbnRlcmZhY2UsIAorCQkJICAgICAgIGJ1ZiwgMCwgV0RSX1RJTUVPVVQpOworCisJa2ZyZWUoYnVmKTsKKwlyZXR1cm4gcnY7Cit9CisKKworc3RhdGljIGludCBzZXRfZHRyKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIGludCBoaWdoX29yX2xvdykKK3sKKwlzdHJ1Y3QgZnRkaV9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCWNoYXIgKmJ1ZjsKKwl1bnNpZ25lZCBmdGRpX2hpZ2hfb3JfbG93OworCWludCBydjsKKwkKKwlidWYgPSBrbWFsbG9jKDEsIEdGUF9OT0lPKTsKKwlpZiAoIWJ1ZikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlpZiAoaGlnaF9vcl9sb3cpIHsKKwkJZnRkaV9oaWdoX29yX2xvdyA9IEZURElfU0lPX1NFVF9EVFJfSElHSDsKKwkJcHJpdi0+bGFzdF9kdHJfcnRzIHw9IFRJT0NNX0RUUjsKKwl9IGVsc2UgeworCQlmdGRpX2hpZ2hfb3JfbG93ID0gRlRESV9TSU9fU0VUX0RUUl9MT1c7CisJCXByaXYtPmxhc3RfZHRyX3J0cyAmPSB+VElPQ01fRFRSOworCX0KKwlydiA9IHVzYl9jb250cm9sX21zZyhwb3J0LT5zZXJpYWwtPmRldiwKKwkJCSAgICAgICB1c2Jfc25kY3RybHBpcGUocG9ydC0+c2VyaWFsLT5kZXYsIDApLAorCQkJICAgICAgIEZURElfU0lPX1NFVF9NT0RFTV9DVFJMX1JFUVVFU1QsIAorCQkJICAgICAgIEZURElfU0lPX1NFVF9NT0RFTV9DVFJMX1JFUVVFU1RfVFlQRSwKKwkJCSAgICAgICBmdGRpX2hpZ2hfb3JfbG93LCBwcml2LT5pbnRlcmZhY2UsIAorCQkJICAgICAgIGJ1ZiwgMCwgV0RSX1RJTUVPVVQpOworCisJa2ZyZWUoYnVmKTsKKwlyZXR1cm4gcnY7Cit9CisKKworc3RhdGljIF9fdTMyIGdldF9mdGRpX2Rpdmlzb3Ioc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqIHBvcnQpOworCisKK3N0YXRpYyBpbnQgY2hhbmdlX3NwZWVkKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpCit7CisJc3RydWN0IGZ0ZGlfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwljaGFyICpidWY7CisgICAgICAgIF9fdTE2IHVyYl92YWx1ZTsKKwlfX3UxNiB1cmJfaW5kZXg7CisJX191MzIgdXJiX2luZGV4X3ZhbHVlOworCWludCBydjsKKworCWJ1ZiA9IGttYWxsb2MoMSwgR0ZQX05PSU8pOworCWlmICghYnVmKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXVyYl9pbmRleF92YWx1ZSA9IGdldF9mdGRpX2Rpdmlzb3IocG9ydCk7CisJdXJiX3ZhbHVlID0gKF9fdTE2KXVyYl9pbmRleF92YWx1ZTsKKwl1cmJfaW5kZXggPSAoX191MTYpKHVyYl9pbmRleF92YWx1ZSA+PiAxNik7CisJaWYgKHByaXYtPmludGVyZmFjZSkgewkvKiBGVDIyMzJDICovCisJCXVyYl9pbmRleCA9IChfX3UxNikoKHVyYl9pbmRleCA8PCA4KSB8IHByaXYtPmludGVyZmFjZSk7CisJfQorCQorCXJ2ID0gdXNiX2NvbnRyb2xfbXNnKHBvcnQtPnNlcmlhbC0+ZGV2LAorCQkJICAgIHVzYl9zbmRjdHJscGlwZShwb3J0LT5zZXJpYWwtPmRldiwgMCksCisJCQkgICAgRlRESV9TSU9fU0VUX0JBVURSQVRFX1JFUVVFU1QsCisJCQkgICAgRlRESV9TSU9fU0VUX0JBVURSQVRFX1JFUVVFU1RfVFlQRSwKKwkJCSAgICB1cmJfdmFsdWUsIHVyYl9pbmRleCwKKwkJCSAgICBidWYsIDAsIDEwMCk7CisKKwlrZnJlZShidWYpOworCXJldHVybiBydjsKK30KKworCitzdGF0aWMgX191MzIgZ2V0X2Z0ZGlfZGl2aXNvcihzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICogcG9ydCkKK3sgLyogZ2V0X2Z0ZGlfZGl2aXNvciAqLworCXN0cnVjdCBmdGRpX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJX191MzIgZGl2X3ZhbHVlID0gMDsKKwlpbnQgZGl2X29rYXkgPSAxOworCWludCBiYXVkOworCisJLyoKKwkgKiBUaGUgbG9naWMgaW52b2x2ZWQgaW4gc2V0dGluZyB0aGUgYmF1ZHJhdGUgY2FuIGJlIGNsZWFubHkgc3BsaXQgaW4gMyBzdGVwcy4KKwkgKiBPYnRhaW5pbmcgdGhlIGFjdHVhbCBiYXVkIHJhdGUgaXMgYSBsaXR0bGUgdHJpY2t5IHNpbmNlIHVuaXggdHJhZGl0aW9uYWxseQorCSAqIHNvbWVob3cgaWdub3JlZCB0aGUgcG9zc2liaWxpdHkgdG8gc2V0IG5vbi1zdGFuZGFyZCBiYXVkIHJhdGVzLgorCSAqIDEuIFN0YW5kYXJkIGJhdWQgcmF0ZXMgYXJlIHNldCBpbiB0dHktPnRlcm1pb3MtPmNfY2ZsYWcKKwkgKiAyLiBJZiB0aGVzZSBhcmUgbm90IGVub3VnaCwgeW91IGNhbiBzZXQgYW55IHNwZWVkIHVzaW5nIGFsdF9zcGVlZCBhcyBmb2xsb3dzOgorCSAqICAgIC0gc2V0IHR0eS0+dGVybWlvcy0+Y19jZmxhZyBzcGVlZCB0byBCMzg0MDAKKwkgKiAgICAtIHNldCB5b3VyIHJlYWwgc3BlZWQgaW4gdHR5LT5hbHRfc3BlZWQ7IGl0IGdldHMgaWdub3JlZCB3aGVuCisJICogICAgICBhbHRfc3BlZWQ9PTAsIChvcikKKwkgKiAgICAtIGNhbGwgVElPQ1NTRVJJQUwgaW9jdGwgd2l0aCAoc3RydWN0IHNlcmlhbF9zdHJ1Y3QpIHNldCBhcyBmb2xsb3dzOgorCSAqICAgICAgZmxhZ3MgJiBBU1lOQ19TUERfTUFTSyA9PSBBU1lOQ19TUERfW0hJLCBWSEksIFNISSwgV0FSUF0sIHRoaXMganVzdAorCSAqICAgICAgc2V0cyBhbHRfc3BlZWQgdG8gKEhJOiA1NzYwMCwgVkhJOiAxMTUyMDAsIFNISTogMjMwNDAwLCBXQVJQOiA0NjA4MDApCisJICogKiogU3RlcHMgMSwgMiBhcmUgZG9uZSBjb3VydGVzeSBvZiB0dHlfZ2V0X2JhdWRfcmF0ZQorCSAqIDMuIFlvdSBjYW4gYWxzbyBzZXQgYmF1ZCByYXRlIGJ5IHNldHRpbmcgY3VzdG9tIGRpdmlzb3IgYXMgZm9sbG93cworCSAqICAgIC0gc2V0IHR0eS0+dGVybWlvcy0+Y19jZmxhZyBzcGVlZCB0byBCMzg0MDAKKwkgKiAgICAtIGNhbGwgVElPQ1NTRVJJQUwgaW9jdGwgd2l0aCAoc3RydWN0IHNlcmlhbF9zdHJ1Y3QpIHNldCBhcyBmb2xsb3dzOgorCSAqICAgICAgbyBmbGFncyAmIEFTWU5DX1NQRF9NQVNLID09IEFTWU5DX1NQRF9DVVNUCisJICogICAgICBvIGN1c3RvbV9kaXZpc29yIHNldCB0byBiYXVkX2Jhc2UgLyB5b3VyX25ld19iYXVkcmF0ZQorCSAqICoqIFN0ZXAgMyBpcyBkb25lIGNvdXJ0ZXN5IG9mIGNvZGUgYm9ycm93ZWQgZnJvbSBzZXJpYWwuYyAtIEkgc2hvdWxkIHJlYWxseQorCSAqICAgIHNwZW5kIHNvbWUgdGltZSBhbmQgc2VwYXJhdGUrbW92ZSB0aGlzIGNvbW1vbiBjb2RlIHRvIHNlcmlhbC5jLCBpdCBpcworCSAqICAgIHJlcGxpY2F0ZWQgaW4gbmVhcmx5IGV2ZXJ5IHNlcmlhbCBkcml2ZXIgeW91IHNlZS4KKwkgKi8KKworCS8qIDEuIEdldCB0aGUgYmF1ZCByYXRlIGZyb20gdGhlIHR0eSBzZXR0aW5ncywgdGhpcyBvYnNlcnZlcyBhbHRfc3BlZWQgaGFjayAqLworCisJYmF1ZCA9IHR0eV9nZXRfYmF1ZF9yYXRlKHBvcnQtPnR0eSk7CisJZGJnKCIlcyAtIHR0eV9nZXRfYmF1ZF9yYXRlIHJlcG9ydHMgc3BlZWQgJWQiLCBfX0ZVTkNUSU9OX18sIGJhdWQpOworCisJLyogMi4gT2JzZXJ2ZSBhc3luYy1jb21wYXRpYmxlIGN1c3RvbV9kaXZpc29yIGhhY2ssIHVwZGF0ZSBiYXVkcmF0ZSBpZiBuZWVkZWQgKi8KKworCWlmIChiYXVkID09IDM4NDAwICYmCisJICAgICgocHJpdi0+ZmxhZ3MgJiBBU1lOQ19TUERfTUFTSykgPT0gQVNZTkNfU1BEX0NVU1QpICYmCisJICAgICAocHJpdi0+Y3VzdG9tX2Rpdmlzb3IpKSB7CisJCWJhdWQgPSBwcml2LT5iYXVkX2Jhc2UgLyBwcml2LT5jdXN0b21fZGl2aXNvcjsKKwkJZGJnKCIlcyAtIGN1c3RvbSBkaXZpc29yICVkIHNldHMgYmF1ZCByYXRlIHRvICVkIiwgX19GVU5DVElPTl9fLCBwcml2LT5jdXN0b21fZGl2aXNvciwgYmF1ZCk7CisJfQorCisJLyogMy4gQ29udmVydCBiYXVkcmF0ZSB0byBkZXZpY2Utc3BlY2lmaWMgZGl2aXNvciAqLworCisJaWYgKCFiYXVkKSBiYXVkID0gOTYwMDsJCisJc3dpdGNoKHByaXYtPmNoaXBfdHlwZSkgeworCWNhc2UgU0lPOiAvKiBTSU8gY2hpcCAqLworCQlzd2l0Y2goYmF1ZCkgeworCQljYXNlIDMwMDogZGl2X3ZhbHVlID0gZnRkaV9zaW9fYjMwMDsgYnJlYWs7CisJCWNhc2UgNjAwOiBkaXZfdmFsdWUgPSBmdGRpX3Npb19iNjAwOyBicmVhazsKKwkJY2FzZSAxMjAwOiBkaXZfdmFsdWUgPSBmdGRpX3Npb19iMTIwMDsgYnJlYWs7CisJCWNhc2UgMjQwMDogZGl2X3ZhbHVlID0gZnRkaV9zaW9fYjI0MDA7IGJyZWFrOworCQljYXNlIDQ4MDA6IGRpdl92YWx1ZSA9IGZ0ZGlfc2lvX2I0ODAwOyBicmVhazsKKwkJY2FzZSA5NjAwOiBkaXZfdmFsdWUgPSBmdGRpX3Npb19iOTYwMDsgYnJlYWs7CisJCWNhc2UgMTkyMDA6IGRpdl92YWx1ZSA9IGZ0ZGlfc2lvX2IxOTIwMDsgYnJlYWs7CisJCWNhc2UgMzg0MDA6IGRpdl92YWx1ZSA9IGZ0ZGlfc2lvX2IzODQwMDsgYnJlYWs7CisJCWNhc2UgNTc2MDA6IGRpdl92YWx1ZSA9IGZ0ZGlfc2lvX2I1NzYwMDsgIGJyZWFrOworCQljYXNlIDExNTIwMDogZGl2X3ZhbHVlID0gZnRkaV9zaW9fYjExNTIwMDsgYnJlYWs7CisJCX0gLyogYmF1ZCAqLworCQlpZiAoZGl2X3ZhbHVlID09IDApIHsKKyAgCQkJZGJnKCIlcyAtIEJhdWRyYXRlICglZCkgcmVxdWVzdGVkIGlzIG5vdCBzdXBwb3J0ZWQiLCBfX0ZVTkNUSU9OX18sICBiYXVkKTsKKwkJCWRpdl92YWx1ZSA9IGZ0ZGlfc2lvX2I5NjAwOworCQkJZGl2X29rYXkgPSAwOworCQl9CisJCWJyZWFrOworCWNhc2UgRlQ4VTIzMkFNOiAvKiA4VTIzMkFNIGNoaXAgKi8KKwkJaWYgKGJhdWQgPD0gMzAwMDAwMCkgeworCQkJZGl2X3ZhbHVlID0gZnRkaV8yMzJhbV9iYXVkX3RvX2Rpdmlzb3IoYmF1ZCk7CisJCX0gZWxzZSB7CisJICAgICAgICAgICAgICAgIGRiZygiJXMgLSBCYXVkIHJhdGUgdG9vIGhpZ2ghIiwgX19GVU5DVElPTl9fKTsKKwkJCWRpdl92YWx1ZSA9IGZ0ZGlfMjMyYW1fYmF1ZF90b19kaXZpc29yKDk2MDApOworCQkJZGl2X29rYXkgPSAwOworCQl9CisJCWJyZWFrOworCWNhc2UgRlQyMzJCTTogLyogRlQyMzJCTSBjaGlwICovCisJY2FzZSBGVDIyMzJDOiAvKiBGVDIyMzJDIGNoaXAgKi8KKwkJaWYgKGJhdWQgPD0gMzAwMDAwMCkgeworCQkJZGl2X3ZhbHVlID0gZnRkaV8yMzJibV9iYXVkX3RvX2Rpdmlzb3IoYmF1ZCk7CisJCX0gZWxzZSB7CisJICAgICAgICAgICAgICAgIGRiZygiJXMgLSBCYXVkIHJhdGUgdG9vIGhpZ2ghIiwgX19GVU5DVElPTl9fKTsKKwkJCWRpdl92YWx1ZSA9IGZ0ZGlfMjMyYm1fYmF1ZF90b19kaXZpc29yKDk2MDApOworCQkJZGl2X29rYXkgPSAwOworCQl9CisJCWJyZWFrOworCX0gLyogcHJpdi0+Y2hpcF90eXBlICovCisKKwlpZiAoZGl2X29rYXkpIHsKKwkJZGJnKCIlcyAtIEJhdWQgcmF0ZSBzZXQgdG8gJWQgKGRpdmlzb3IgMHglbFgpIG9uIGNoaXAgJXMiLAorCQkJX19GVU5DVElPTl9fLCBiYXVkLCAodW5zaWduZWQgbG9uZylkaXZfdmFsdWUsCisJCQlmdGRpX2NoaXBfbmFtZVtwcml2LT5jaGlwX3R5cGVdKTsKKwl9CisKKwlyZXR1cm4oZGl2X3ZhbHVlKTsKK30KKworCitzdGF0aWMgaW50IGdldF9zZXJpYWxfaW5mbyhzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICogcG9ydCwgc3RydWN0IHNlcmlhbF9zdHJ1Y3QgX191c2VyICogcmV0aW5mbykKK3sKKwlzdHJ1Y3QgZnRkaV9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXN0cnVjdCBzZXJpYWxfc3RydWN0IHRtcDsKKworCWlmICghcmV0aW5mbykKKwkJcmV0dXJuIC1FRkFVTFQ7CisJbWVtc2V0KCZ0bXAsIDAsIHNpemVvZih0bXApKTsKKwl0bXAuZmxhZ3MgPSBwcml2LT5mbGFnczsKKwl0bXAuYmF1ZF9iYXNlID0gcHJpdi0+YmF1ZF9iYXNlOworCXRtcC5jdXN0b21fZGl2aXNvciA9IHByaXYtPmN1c3RvbV9kaXZpc29yOworCWlmIChjb3B5X3RvX3VzZXIocmV0aW5mbywgJnRtcCwgc2l6ZW9mKCpyZXRpbmZvKSkpCisJCXJldHVybiAtRUZBVUxUOworCXJldHVybiAwOworfSAvKiBnZXRfc2VyaWFsX2luZm8gKi8KKworCitzdGF0aWMgaW50IHNldF9zZXJpYWxfaW5mbyhzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICogcG9ydCwgc3RydWN0IHNlcmlhbF9zdHJ1Y3QgX191c2VyICogbmV3aW5mbykKK3sgLyogc2V0X3NlcmlhbF9pbmZvICovCisJc3RydWN0IGZ0ZGlfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlzdHJ1Y3Qgc2VyaWFsX3N0cnVjdCBuZXdfc2VyaWFsOworCXN0cnVjdCBmdGRpX3ByaXZhdGUgb2xkX3ByaXY7CisKKwlpZiAoY29weV9mcm9tX3VzZXIoJm5ld19zZXJpYWwsIG5ld2luZm8sIHNpemVvZihuZXdfc2VyaWFsKSkpCisJCXJldHVybiAtRUZBVUxUOworCW9sZF9wcml2ID0gKiBwcml2OworCisJLyogRG8gZXJyb3IgY2hlY2tpbmcgYW5kIHBlcm1pc3Npb24gY2hlY2tpbmcgKi8KKworCWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkgeworCQlpZiAoKChuZXdfc2VyaWFsLmZsYWdzICYgfkFTWU5DX1VTUl9NQVNLKSAhPQorCQkgICAgIChwcml2LT5mbGFncyAmIH5BU1lOQ19VU1JfTUFTSykpKQorCQkJcmV0dXJuIC1FUEVSTTsKKwkJcHJpdi0+ZmxhZ3MgPSAoKHByaXYtPmZsYWdzICYgfkFTWU5DX1VTUl9NQVNLKSB8CisJCQkgICAgICAgKG5ld19zZXJpYWwuZmxhZ3MgJiBBU1lOQ19VU1JfTUFTSykpOworCQlwcml2LT5jdXN0b21fZGl2aXNvciA9IG5ld19zZXJpYWwuY3VzdG9tX2Rpdmlzb3I7CisJCWdvdG8gY2hlY2tfYW5kX2V4aXQ7CisJfQorCisJaWYgKChuZXdfc2VyaWFsLmJhdWRfYmFzZSAhPSBwcml2LT5iYXVkX2Jhc2UpICYmCisJICAgIChuZXdfc2VyaWFsLmJhdWRfYmFzZSA8IDk2MDApKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCS8qIE1ha2UgdGhlIGNoYW5nZXMgLSB0aGVzZSBhcmUgcHJpdmlsZWdlZCBjaGFuZ2VzISAqLworCisJcHJpdi0+ZmxhZ3MgPSAoKHByaXYtPmZsYWdzICYgfkFTWU5DX0ZMQUdTKSB8CisJICAgICAgICAgICAgICAgKG5ld19zZXJpYWwuZmxhZ3MgJiBBU1lOQ19GTEFHUykpOwkKKwlwcml2LT5jdXN0b21fZGl2aXNvciA9IG5ld19zZXJpYWwuY3VzdG9tX2Rpdmlzb3I7CisKKwlwb3J0LT50dHktPmxvd19sYXRlbmN5ID0gKHByaXYtPmZsYWdzICYgQVNZTkNfTE9XX0xBVEVOQ1kpID8gMSA6IDA7CisKK2NoZWNrX2FuZF9leGl0OgorCWlmICgob2xkX3ByaXYuZmxhZ3MgJiBBU1lOQ19TUERfTUFTSykgIT0KKwkgICAgIChwcml2LT5mbGFncyAmIEFTWU5DX1NQRF9NQVNLKSkgeworCQlpZiAoKHByaXYtPmZsYWdzICYgQVNZTkNfU1BEX01BU0spID09IEFTWU5DX1NQRF9ISSkKKwkJCXBvcnQtPnR0eS0+YWx0X3NwZWVkID0gNTc2MDA7CisJCWVsc2UgaWYgKChwcml2LT5mbGFncyAmIEFTWU5DX1NQRF9NQVNLKSA9PSBBU1lOQ19TUERfVkhJKQorCQkJcG9ydC0+dHR5LT5hbHRfc3BlZWQgPSAxMTUyMDA7CisJCWVsc2UgaWYgKChwcml2LT5mbGFncyAmIEFTWU5DX1NQRF9NQVNLKSA9PSBBU1lOQ19TUERfU0hJKQorCQkJcG9ydC0+dHR5LT5hbHRfc3BlZWQgPSAyMzA0MDA7CisJCWVsc2UgaWYgKChwcml2LT5mbGFncyAmIEFTWU5DX1NQRF9NQVNLKSA9PSBBU1lOQ19TUERfV0FSUCkKKwkJCXBvcnQtPnR0eS0+YWx0X3NwZWVkID0gNDYwODAwOworCQllbHNlCisJCQlwb3J0LT50dHktPmFsdF9zcGVlZCA9IDA7CisJfQorCWlmICgoKG9sZF9wcml2LmZsYWdzICYgQVNZTkNfU1BEX01BU0spICE9CisJICAgICAocHJpdi0+ZmxhZ3MgJiBBU1lOQ19TUERfTUFTSykpIHx8CisJICAgICgoKHByaXYtPmZsYWdzICYgQVNZTkNfU1BEX01BU0spID09IEFTWU5DX1NQRF9DVVNUKSAmJgorCSAgICAgKG9sZF9wcml2LmN1c3RvbV9kaXZpc29yICE9IHByaXYtPmN1c3RvbV9kaXZpc29yKSkpIHsKKwkJY2hhbmdlX3NwZWVkKHBvcnQpOworCX0KKwkKKwlyZXR1cm4gKDApOworCit9IC8qIHNldF9zZXJpYWxfaW5mbyAqLworCisKKy8qCisgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFN5c2ZzIEF0dHJpYnV0ZQorICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworc3RhdGljIHNzaXplX3Qgc2hvd19sYXRlbmN5X3RpbWVyKHN0cnVjdCBkZXZpY2UgKmRldiwgY2hhciAqYnVmKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSB0b191c2Jfc2VyaWFsX3BvcnQoZGV2KTsKKwlzdHJ1Y3QgZnRkaV9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2OworCXVuc2lnbmVkIHNob3J0IGxhdGVuY3kgPSAwOworCWludCBydiA9IDA7CisJCisJdWRldiA9IHRvX3VzYl9kZXZpY2UoZGV2KTsKKwkKKwlkYmcoIiVzIixfX0ZVTkNUSU9OX18pOworCQorCXJ2ID0gdXNiX2NvbnRyb2xfbXNnKHVkZXYsCisJCQkgICAgIHVzYl9yY3ZjdHJscGlwZSh1ZGV2LCAwKSwKKwkJCSAgICAgRlRESV9TSU9fR0VUX0xBVEVOQ1lfVElNRVJfUkVRVUVTVCwKKwkJCSAgICAgRlRESV9TSU9fR0VUX0xBVEVOQ1lfVElNRVJfUkVRVUVTVF9UWVBFLAorCQkJICAgICAwLCBwcml2LT5pbnRlcmZhY2UsIAorCQkJICAgICAoY2hhciopICZsYXRlbmN5LCAxLCBXRFJfVElNRU9VVCk7CisJCisJaWYgKHJ2IDwgMCkgeworCQlkZXZfZXJyKGRldiwgIlVuYWJsZSB0byByZWFkIGxhdGVuY3kgdGltZXI6ICVpIiwgcnYpOworCQlyZXR1cm4gLUVJTzsKKwl9CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWlcbiIsIGxhdGVuY3kpOworfQorCisvKiBXcml0ZSBhIG5ldyB2YWx1ZSBvZiB0aGUgbGF0ZW5jeSB0aW1lciwgaW4gdW5pdHMgb2YgbWlsbGlzZWNvbmRzLiAqLworc3RhdGljIHNzaXplX3Qgc3RvcmVfbGF0ZW5jeV90aW1lcihzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKnZhbGJ1ZiwKKwkJCQkgICBzaXplX3QgY291bnQpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IHRvX3VzYl9zZXJpYWxfcG9ydChkZXYpOworCXN0cnVjdCBmdGRpX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJc3RydWN0IHVzYl9kZXZpY2UgKnVkZXY7CisJY2hhciBidWZbMV07CisJaW50IHYgPSBzaW1wbGVfc3RydG91bCh2YWxidWYsIE5VTEwsIDEwKTsKKwlpbnQgcnYgPSAwOworCQorCXVkZXYgPSB0b191c2JfZGV2aWNlKGRldik7CisJCisJZGJnKCIlczogc2V0dGluZyBsYXRlbmN5IHRpbWVyID0gJWkiLCBfX0ZVTkNUSU9OX18sIHYpOworCQorCXJ2ID0gdXNiX2NvbnRyb2xfbXNnKHVkZXYsCisJCQkgICAgIHVzYl9zbmRjdHJscGlwZSh1ZGV2LCAwKSwKKwkJCSAgICAgRlRESV9TSU9fU0VUX0xBVEVOQ1lfVElNRVJfUkVRVUVTVCwKKwkJCSAgICAgRlRESV9TSU9fU0VUX0xBVEVOQ1lfVElNRVJfUkVRVUVTVF9UWVBFLAorCQkJICAgICB2LCBwcml2LT5pbnRlcmZhY2UsIAorCQkJICAgICBidWYsIDAsIFdEUl9USU1FT1VUKTsKKwkKKwlpZiAocnYgPCAwKSB7CisJCWRldl9lcnIoZGV2LCAiVW5hYmxlIHRvIHdyaXRlIGxhdGVuY3kgdGltZXI6ICVpIiwgcnYpOworCQlyZXR1cm4gLUVJTzsKKwl9CisJCisJcmV0dXJuIGNvdW50OworfQorCisvKiBXcml0ZSBhbiBldmVudCBjaGFyYWN0ZXIgZGlyZWN0bHkgdG8gdGhlIEZUREkgcmVnaXN0ZXIuICBUaGUgQVNDSUkKKyAgIHZhbHVlIGlzIGluIHRoZSBsb3cgOCBiaXRzLCB3aXRoIHRoZSBlbmFibGUgYml0IGluIHRoZSA5dGggYml0LiAqLworc3RhdGljIHNzaXplX3Qgc3RvcmVfZXZlbnRfY2hhcihzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKnZhbGJ1ZiwKKwkJCQlzaXplX3QgY291bnQpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IHRvX3VzYl9zZXJpYWxfcG9ydChkZXYpOworCXN0cnVjdCBmdGRpX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJc3RydWN0IHVzYl9kZXZpY2UgKnVkZXY7CisJY2hhciBidWZbMV07CisJaW50IHYgPSBzaW1wbGVfc3RydG91bCh2YWxidWYsIE5VTEwsIDEwKTsKKwlpbnQgcnYgPSAwOworCQorCXVkZXYgPSB0b191c2JfZGV2aWNlKGRldik7CisJCisJZGJnKCIlczogc2V0dGluZyBldmVudCBjaGFyID0gJWkiLCBfX0ZVTkNUSU9OX18sIHYpOworCQorCXJ2ID0gdXNiX2NvbnRyb2xfbXNnKHVkZXYsCisJCQkgICAgIHVzYl9zbmRjdHJscGlwZSh1ZGV2LCAwKSwKKwkJCSAgICAgRlRESV9TSU9fU0VUX0VWRU5UX0NIQVJfUkVRVUVTVCwKKwkJCSAgICAgRlRESV9TSU9fU0VUX0VWRU5UX0NIQVJfUkVRVUVTVF9UWVBFLAorCQkJICAgICB2LCBwcml2LT5pbnRlcmZhY2UsIAorCQkJICAgICBidWYsIDAsIFdEUl9USU1FT1VUKTsKKwkKKwlpZiAocnYgPCAwKSB7CisJCWRiZygiVW5hYmxlIHRvIHdyaXRlIGV2ZW50IGNoYXJhY3RlcjogJWkiLCBydik7CisJCXJldHVybiAtRUlPOworCX0KKwkKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBERVZJQ0VfQVRUUihsYXRlbmN5X3RpbWVyLCBTX0lXVVNSIHwgU19JUlVHTywgc2hvd19sYXRlbmN5X3RpbWVyLCBzdG9yZV9sYXRlbmN5X3RpbWVyKTsKK3N0YXRpYyBERVZJQ0VfQVRUUihldmVudF9jaGFyLCBTX0lXVVNSLCBOVUxMLCBzdG9yZV9ldmVudF9jaGFyKTsKKworc3RhdGljIHZvaWQgY3JlYXRlX3N5c2ZzX2F0dHJzKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7CQorCXN0cnVjdCBmdGRpX3ByaXZhdGUgKnByaXY7CisJc3RydWN0IHVzYl9kZXZpY2UgKnVkZXY7CisKKwlkYmcoIiVzIixfX0ZVTkNUSU9OX18pOworCQorCXByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEoc2VyaWFsLT5wb3J0WzBdKTsKKwl1ZGV2ID0gc2VyaWFsLT5kZXY7CisJCisJLyogWFhYIEkndmUgbm8gaWRlYSBpZiB0aGUgb3JpZ2luYWwgU0lPIHN1cHBvcnRzIHRoZSBldmVudF9jaGFyCisJICogc3lzZnMgcGFyYW1ldGVyLCBzbyBJJ20gcGxheWluZyBpdCBzYWZlLiAgKi8KKwlpZiAocHJpdi0+Y2hpcF90eXBlICE9IFNJTykgeworCQlkYmcoInN5c2ZzIGF0dHJpYnV0ZXMgZm9yICVzIiwgZnRkaV9jaGlwX25hbWVbcHJpdi0+Y2hpcF90eXBlXSk7CisJCWRldmljZV9jcmVhdGVfZmlsZSgmdWRldi0+ZGV2LCAmZGV2X2F0dHJfZXZlbnRfY2hhcik7CisJCWlmIChwcml2LT5jaGlwX3R5cGUgPT0gRlQyMzJCTSB8fCBwcml2LT5jaGlwX3R5cGUgPT0gRlQyMjMyQykgeworCQkJZGV2aWNlX2NyZWF0ZV9maWxlKCZ1ZGV2LT5kZXYsICZkZXZfYXR0cl9sYXRlbmN5X3RpbWVyKTsKKwkJfQorCX0KK30KKworc3RhdGljIHZvaWQgcmVtb3ZlX3N5c2ZzX2F0dHJzKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7CisJc3RydWN0IGZ0ZGlfcHJpdmF0ZSAqcHJpdjsKKwlzdHJ1Y3QgdXNiX2RldmljZSAqdWRldjsKKworCWRiZygiJXMiLF9fRlVOQ1RJT05fXyk7CQorCisJcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShzZXJpYWwtPnBvcnRbMF0pOworCXVkZXYgPSBzZXJpYWwtPmRldjsKKwkKKwkvKiBYWFggc2VlIGNyZWF0ZV9zeXNmc19hdHRycyAqLworCWlmIChwcml2LT5jaGlwX3R5cGUgIT0gU0lPKSB7CisJCWRldmljZV9yZW1vdmVfZmlsZSgmdWRldi0+ZGV2LCAmZGV2X2F0dHJfZXZlbnRfY2hhcik7CisJCWlmIChwcml2LT5jaGlwX3R5cGUgPT0gRlQyMzJCTSB8fCBwcml2LT5jaGlwX3R5cGUgPT0gRlQyMjMyQykgeworCQkJZGV2aWNlX3JlbW92ZV9maWxlKCZ1ZGV2LT5kZXYsICZkZXZfYXR0cl9sYXRlbmN5X3RpbWVyKTsKKwkJfQorCX0KKwkKK30KKworLyoKKyAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRlRESSBkcml2ZXIgc3BlY2lmaWMgZnVuY3Rpb25zCisgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiBDb21tb24gc3RhcnR1cCBzdWJyb3V0aW5lICovCisvKiBDYWxsZWQgZnJvbSBmdGRpX1NJT19zdGFydHVwLCBldGMuICovCitzdGF0aWMgaW50IGZ0ZGlfY29tbW9uX3N0YXJ0dXAgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IHNlcmlhbC0+cG9ydFswXTsKKwlzdHJ1Y3QgZnRkaV9wcml2YXRlICpwcml2OworCQorCWRiZygiJXMiLF9fRlVOQ1RJT05fXyk7CisKKwlwcml2ID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IGZ0ZGlfcHJpdmF0ZSksIEdGUF9LRVJORUwpOworCWlmICghcHJpdil7CisJCWVycigiJXMtIGttYWxsb2MoJVpkKSBmYWlsZWQuIiwgX19GVU5DVElPTl9fLCBzaXplb2Yoc3RydWN0IGZ0ZGlfcHJpdmF0ZSkpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisJbWVtc2V0KHByaXYsIDAsIHNpemVvZigqcHJpdikpOworCisJc3Bpbl9sb2NrX2luaXQoJnByaXYtPnJ4X2xvY2spOworICAgICAgICBpbml0X3dhaXRxdWV1ZV9oZWFkKCZwcml2LT5kZWx0YV9tc3Jfd2FpdCk7CisJLyogVGhpcyB3aWxsIHB1c2ggdGhlIGNoYXJhY3RlcnMgdGhyb3VnaCBpbW1lZGlhdGVseSByYXRoZXIKKwkgICB0aGFuIHF1ZXVlIGEgdGFzayB0byBkZWxpdmVyIHRoZW0gKi8KKwlwcml2LT5mbGFncyA9IEFTWU5DX0xPV19MQVRFTkNZOworCisJLyogSW5jcmVhc2UgdGhlIHNpemUgb2YgcmVhZCBidWZmZXJzICovCisJaWYgKHBvcnQtPmJ1bGtfaW5fYnVmZmVyKSB7CisJCWtmcmVlIChwb3J0LT5idWxrX2luX2J1ZmZlcik7CisJfQorCXBvcnQtPmJ1bGtfaW5fYnVmZmVyID0ga21hbGxvYyAoQlVGU1osIEdGUF9LRVJORUwpOworCWlmICghcG9ydC0+YnVsa19pbl9idWZmZXIpIHsKKwkJa2ZyZWUgKHByaXYpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisJaWYgKHBvcnQtPnJlYWRfdXJiKSB7CisJCXBvcnQtPnJlYWRfdXJiLT50cmFuc2Zlcl9idWZmZXIgPSBwb3J0LT5idWxrX2luX2J1ZmZlcjsKKwkJcG9ydC0+cmVhZF91cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGggPSBCVUZTWjsKKwl9CisKKwkvKiBGcmVlIHBvcnQncyBleGlzdGluZyB3cml0ZSB1cmIgYW5kIHRyYW5zZmVyIGJ1ZmZlci4gKi8KKwlpZiAocG9ydC0+d3JpdGVfdXJiKSB7CisJCXVzYl9mcmVlX3VyYiAocG9ydC0+d3JpdGVfdXJiKTsKKwkJcG9ydC0+d3JpdGVfdXJiID0gTlVMTDsKKwl9CisJaWYgKHBvcnQtPmJ1bGtfb3V0X2J1ZmZlcikgeworCQlrZnJlZSAocG9ydC0+YnVsa19vdXRfYnVmZmVyKTsKKwkJcG9ydC0+YnVsa19vdXRfYnVmZmVyID0gTlVMTDsKKwl9CisKKwl1c2Jfc2V0X3NlcmlhbF9wb3J0X2RhdGEoc2VyaWFsLT5wb3J0WzBdLCBwcml2KTsKKwkKKwlyZXR1cm4gKDApOworfQorCisKKy8qIFN0YXJ0dXAgZm9yIHRoZSBTSU8gY2hpcCAqLworLyogQ2FsbGVkIGZyb20gdXNic2VyaWFsOnNlcmlhbF9wcm9iZSAqLworc3RhdGljIGludCBmdGRpX1NJT19zdGFydHVwIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQoreworCXN0cnVjdCBmdGRpX3ByaXZhdGUgKnByaXY7CisJaW50IGVycjsKKworCWRiZygiJXMiLF9fRlVOQ1RJT05fXyk7CisKKwllcnIgPSBmdGRpX2NvbW1vbl9zdGFydHVwKHNlcmlhbCk7CisJaWYgKGVycil7CisJCXJldHVybiAoZXJyKTsKKwl9CisKKwlwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHNlcmlhbC0+cG9ydFswXSk7CisJcHJpdi0+Y2hpcF90eXBlID0gU0lPOworCXByaXYtPmJhdWRfYmFzZSA9IDEyMDAwMDAwIC8gMTY7CisJcHJpdi0+d3JpdGVfb2Zmc2V0ID0gMTsKKwkKKwlyZXR1cm4gKDApOworfQorCisvKiBTdGFydHVwIGZvciB0aGUgOFUyMzJBTSBjaGlwICovCisvKiBDYWxsZWQgZnJvbSB1c2JzZXJpYWw6c2VyaWFsX3Byb2JlICovCitzdGF0aWMgaW50IGZ0ZGlfOFUyMzJBTV9zdGFydHVwIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQoreyAvKiBmdGRpXzhVMjMyQU1fc3RhcnR1cCAqLworCXN0cnVjdCBmdGRpX3ByaXZhdGUgKnByaXY7CisJaW50IGVycjsKKworCWRiZygiJXMiLF9fRlVOQ1RJT05fXyk7CisJZXJyID0gZnRkaV9jb21tb25fc3RhcnR1cChzZXJpYWwpOworCWlmIChlcnIpeworCQlyZXR1cm4gKGVycik7CisJfQorCisJcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShzZXJpYWwtPnBvcnRbMF0pOworCXByaXYtPmNoaXBfdHlwZSA9IEZUOFUyMzJBTTsKKwlwcml2LT5iYXVkX2Jhc2UgPSA0ODAwMDAwMCAvIDI7IC8qIFdvdWxkIGJlIC8gMTYsIGJ1dCBGVERJIHN1cHBvcnRzIDAuMTI1LCAwLjI1IGFuZCAwLjUgZGl2aXNvciBmcmFjdGlvbnMhICovCisJCisJY3JlYXRlX3N5c2ZzX2F0dHJzKHNlcmlhbCk7CisJCisJcmV0dXJuICgwKTsKK30gLyogZnRkaV84VTIzMkFNX3N0YXJ0dXAgKi8KKworLyogU3RhcnR1cCBmb3IgdGhlIEZUMjMyQk0gY2hpcCAqLworLyogQ2FsbGVkIGZyb20gdXNic2VyaWFsOnNlcmlhbF9wcm9iZSAqLworc3RhdGljIGludCBmdGRpX0ZUMjMyQk1fc3RhcnR1cCAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkKK3sgLyogZnRkaV9GVDIzMkJNX3N0YXJ0dXAgKi8KKwlzdHJ1Y3QgZnRkaV9wcml2YXRlICpwcml2OworCWludCBlcnI7CisKKwlkYmcoIiVzIixfX0ZVTkNUSU9OX18pOworCWVyciA9IGZ0ZGlfY29tbW9uX3N0YXJ0dXAoc2VyaWFsKTsKKwlpZiAoZXJyKXsKKwkJcmV0dXJuIChlcnIpOworCX0KKworCXByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEoc2VyaWFsLT5wb3J0WzBdKTsKKwlwcml2LT5jaGlwX3R5cGUgPSBGVDIzMkJNOworCXByaXYtPmJhdWRfYmFzZSA9IDQ4MDAwMDAwIC8gMjsgLyogV291bGQgYmUgLyAxNiwgYnV0IEZUMjMyQk0gc3VwcG9ydHMgbXVsdGlwbGUgb2YgMC4xMjUgZGl2aXNvciBmcmFjdGlvbnMhICovCisJCisJY3JlYXRlX3N5c2ZzX2F0dHJzKHNlcmlhbCk7CisKKwlyZXR1cm4gKDApOworfSAvKiBmdGRpX0ZUMjMyQk1fc3RhcnR1cCAqLworCisvKiBTdGFydHVwIGZvciB0aGUgRlQyMjMyQyBjaGlwICovCisvKiBDYWxsZWQgZnJvbSB1c2JzZXJpYWw6c2VyaWFsX3Byb2JlICovCitzdGF0aWMgaW50IGZ0ZGlfRlQyMjMyQ19zdGFydHVwIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQoreyAvKiBmdGRpX0ZUMjIzMkNfc3RhcnR1cCAqLworCXN0cnVjdCBmdGRpX3ByaXZhdGUgKnByaXY7CisJaW50IGVycjsKKwlpbnQgaW50ZXI7CisKKwlkYmcoIiVzIixfX0ZVTkNUSU9OX18pOworCWVyciA9IGZ0ZGlfY29tbW9uX3N0YXJ0dXAoc2VyaWFsKTsKKwlpZiAoZXJyKXsKKwkJcmV0dXJuIChlcnIpOworCX0KKworCXByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEoc2VyaWFsLT5wb3J0WzBdKTsKKwlwcml2LT5jaGlwX3R5cGUgPSBGVDIyMzJDOworCWludGVyID0gc2VyaWFsLT5pbnRlcmZhY2UtPmFsdHNldHRpbmctPmRlc2MuYkludGVyZmFjZU51bWJlcjsKKworCWlmIChpbnRlcikgeworCQlwcml2LT5pbnRlcmZhY2UgPSBJTlRFUkZBQ0VfQjsKKwl9CisJZWxzZSAgeworCQlwcml2LT5pbnRlcmZhY2UgPSBJTlRFUkZBQ0VfQTsKKwl9CisJcHJpdi0+YmF1ZF9iYXNlID0gNDgwMDAwMDAgLyAyOyAvKiBXb3VsZCBiZSAvIDE2LCBidXQgRlQyMjMyQyBzdXBwb3J0cyBtdWx0aXBsZSBvZiAwLjEyNSBkaXZpc29yIGZyYWN0aW9ucyEgKi8KKwkKKwljcmVhdGVfc3lzZnNfYXR0cnMoc2VyaWFsKTsKKworCXJldHVybiAoMCk7Cit9IC8qIGZ0ZGlfRlQyMjMyQ19zdGFydHVwICovCisKKy8qIFN0YXJ0dXAgZm9yIHRoZSBVU0ItVUlSVCBkZXZpY2UsIHdoaWNoIHJlcXVpcmVzIGhhcmR3aXJlZCBiYXVkcmF0ZSAoMzg0MDAgZ2V0cyBtYXBwZWQgdG8gMzEyNTAwKSAqLworLyogQ2FsbGVkIGZyb20gdXNic2VyaWFsOnNlcmlhbF9wcm9iZSAqLworc3RhdGljIGludCBmdGRpX1VTQl9VSVJUX3N0YXJ0dXAgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7IC8qIGZ0ZGlfVVNCX1VJUlRfc3RhcnR1cCAqLworCXN0cnVjdCBmdGRpX3ByaXZhdGUgKnByaXY7CisJaW50IGVycjsKKworCWRiZygiJXMiLF9fRlVOQ1RJT05fXyk7CisJZXJyID0gZnRkaV84VTIzMkFNX3N0YXJ0dXAoc2VyaWFsKTsKKwlpZiAoZXJyKXsKKwkJcmV0dXJuIChlcnIpOworCX0KKworCXByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEoc2VyaWFsLT5wb3J0WzBdKTsKKwlwcml2LT5mbGFncyB8PSBBU1lOQ19TUERfQ1VTVDsKKwlwcml2LT5jdXN0b21fZGl2aXNvciA9IDc3OworCXByaXYtPmZvcmNlX2JhdWQgPSBCMzg0MDA7CisJCisJcmV0dXJuICgwKTsKK30gLyogZnRkaV9VU0JfVUlSVF9zdGFydHVwICovCisKKy8qIFN0YXJ0dXAgZm9yIHRoZSBIRS1USVJBMSBkZXZpY2UsIHdoaWNoIHJlcXVpcmVzIGhhcmR3aXJlZAorICogYmF1ZHJhdGUgKDM4NDAwIGdldHMgbWFwcGVkIHRvIDEwMDAwMCkgKi8KK3N0YXRpYyBpbnQgZnRkaV9IRV9USVJBMV9zdGFydHVwIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQoreyAvKiBmdGRpX0hFX1RJUkExX3N0YXJ0dXAgKi8KKwlzdHJ1Y3QgZnRkaV9wcml2YXRlICpwcml2OworCWludCBlcnI7CisKKwlkYmcoIiVzIixfX0ZVTkNUSU9OX18pOworCWVyciA9IGZ0ZGlfRlQyMzJCTV9zdGFydHVwKHNlcmlhbCk7CisJaWYgKGVycil7CisJCXJldHVybiAoZXJyKTsKKwl9CisKKwlwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHNlcmlhbC0+cG9ydFswXSk7CisJcHJpdi0+ZmxhZ3MgfD0gQVNZTkNfU1BEX0NVU1Q7CisJcHJpdi0+Y3VzdG9tX2Rpdmlzb3IgPSAyNDA7CisJcHJpdi0+Zm9yY2VfYmF1ZCA9IEIzODQwMDsKKwlwcml2LT5mb3JjZV9ydHNjdHMgPSAxOworCQorCXJldHVybiAoMCk7Cit9IC8qIGZ0ZGlfSEVfVElSQTFfc3RhcnR1cCAqLworCisKKy8qIGZ0ZGlfc2h1dGRvd24gaXMgY2FsbGVkIGZyb20gdXNic2VyaWFsOnVzYl9zZXJpYWxfZGlzY29ubmVjdCAKKyAqICAgaXQgaXMgY2FsbGVkIHdoZW4gdGhlIHVzYiBkZXZpY2UgaXMgZGlzY29ubmVjdGVkCisgKgorICogICB1c2JzZXJpYWw6dXNiX3NlcmlhbF9kaXNjb25uZWN0CisgKiAgICAgIGNhbGxzIF9fc2VyaWFsX2Nsb3NlIGZvciBlYWNoIG9wZW4gb2YgdGhlIHBvcnQKKyAqICAgICAgc2h1dGRvd24gaXMgY2FsbGVkIHRoZW4gKGllIGZ0ZGlfc2h1dGRvd24pCisgKi8KKworCitzdGF0aWMgdm9pZCBmdGRpX3NodXRkb3duIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQoreyAvKiBmdGRpX3NodXRkb3duICovCisJCisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IHNlcmlhbC0+cG9ydFswXTsKKwlzdHJ1Y3QgZnRkaV9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCisJZGJnKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwlyZW1vdmVfc3lzZnNfYXR0cnMoc2VyaWFsKTsKKwkKKwkvKiBhbGwgb3BlbiBwb3J0cyBhcmUgY2xvc2VkIGF0IHRoaXMgcG9pbnQgCisgICAgICAgICAqICAgIChieSB1c2JzZXJpYWwuYzpfX3NlcmlhbF9jbG9zZSwgd2hpY2ggY2FsbHMgZnRkaV9jbG9zZSkgIAorCSAqLworCisJaWYgKHByaXYpIHsKKwkJdXNiX3NldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQsIE5VTEwpOworCQlrZnJlZShwcml2KTsKKwl9Cit9IC8qIGZ0ZGlfc2h1dGRvd24gKi8KKworCitzdGF0aWMgaW50ICBmdGRpX29wZW4gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKQoreyAvKiBmdGRpX29wZW4gKi8KKwlzdHJ1Y3QgdGVybWlvcyB0bXBfdGVybWlvczsKKwlzdHJ1Y3QgdXNiX2RldmljZSAqZGV2ID0gcG9ydC0+c2VyaWFsLT5kZXY7CisJc3RydWN0IGZ0ZGlfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCQorCWludCByZXN1bHQgPSAwOworCWNoYXIgYnVmWzFdOyAvKiBOZWVkZWQgZm9yIHRoZSB1c2JfY29udHJvbF9tc2cgSSB0aGluayAqLworCisJZGJnKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKworCXBvcnQtPnR0eS0+bG93X2xhdGVuY3kgPSAocHJpdi0+ZmxhZ3MgJiBBU1lOQ19MT1dfTEFURU5DWSkgPyAxIDogMDsKKworCS8qIE5vIGVycm9yIGNoZWNraW5nIGZvciB0aGlzICh3aWxsIGdldCBlcnJvcnMgbGF0ZXIgYW55d2F5KSAqLworCS8qIFNlZSBmdGRpX3Npby5oIGZvciBkZXNjcmlwdGlvbiBvZiB3aGF0IGlzIHJlc2V0ICovCisJdXNiX2NvbnRyb2xfbXNnKGRldiwgdXNiX3NuZGN0cmxwaXBlKGRldiwgMCksCisJCQlGVERJX1NJT19SRVNFVF9SRVFVRVNULCBGVERJX1NJT19SRVNFVF9SRVFVRVNUX1RZUEUsIAorCQkJRlRESV9TSU9fUkVTRVRfU0lPLCAKKwkJCXByaXYtPmludGVyZmFjZSwgYnVmLCAwLCBXRFJfVElNRU9VVCk7CisKKwkvKiBUZXJtaW9zIGRlZmF1bHRzIGFyZSBzZXQgYnkgdXNiX3NlcmlhbF9pbml0LiBXZSBkb24ndCBjaGFuZ2UKKwkgICBwb3J0LT50dHktPnRlcm1pb3MgLSB0aGlzIHdvdWxkIGxvb3NlIHNwZWVkIHNldHRpbmdzLCBldGMuCisJICAgVGhpcyBpcyBzYW1lIGJlaGF2aW91ciBhcyBzZXJpYWwuYy9yc19vcGVuKCkgLSBLdWJhICovCisKKwkvKiBmdGRpX3NldF90ZXJtaW9zICB3aWxsIHNlbmQgdXNiIGNvbnRyb2wgbWVzc2FnZXMgKi8KKwlmdGRpX3NldF90ZXJtaW9zKHBvcnQsICZ0bXBfdGVybWlvcyk7CisKKwkvKiBGSVhNRTogRmxvdyBjb250cm9sIG1pZ2h0IGJlIGVuYWJsZWQsIHNvIGl0IHNob3VsZCBiZSBjaGVja2VkIC0KKwkgICB3ZSBoYXZlIG5vIGNvbnRyb2wgb2YgZGVmYXVsdHMhICovCisJLyogVHVybiBvbiBSVFMgYW5kIERUUiBzaW5jZSB3ZSBhcmUgbm90IGZsb3cgY29udHJvbGxpbmcgYnkgZGVmYXVsdCAqLworCWlmIChzZXRfZHRyKHBvcnQsIEhJR0gpIDwgMCkgeworCQllcnIoIiVzIEVycm9yIGZyb20gRFRSIEhJR0ggdXJiIiwgX19GVU5DVElPTl9fKTsKKwl9CisJaWYgKHNldF9ydHMocG9ydCwgSElHSCkgPCAwKXsKKwkJZXJyKCIlcyBFcnJvciBmcm9tIFJUUyBISUdIIHVyYiIsIF9fRlVOQ1RJT05fXyk7CisJfQorCisJLyogTm90IHRocm90dGxlZCAqLworCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5yeF9sb2NrLCBmbGFncyk7CisJcHJpdi0+cnhfZmxhZ3MgJj0gfihUSFJPVFRMRUQgfCBBQ1RVQUxMWV9USFJPVFRMRUQpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPnJ4X2xvY2ssIGZsYWdzKTsKKworCS8qIFN0YXJ0IHJlYWRpbmcgZnJvbSB0aGUgZGV2aWNlICovCisJdXNiX2ZpbGxfYnVsa191cmIocG9ydC0+cmVhZF91cmIsIGRldiwKKwkJICAgICAgdXNiX3JjdmJ1bGtwaXBlKGRldiwgcG9ydC0+YnVsa19pbl9lbmRwb2ludEFkZHJlc3MpLAorCQkgICAgICBwb3J0LT5yZWFkX3VyYi0+dHJhbnNmZXJfYnVmZmVyLCBwb3J0LT5yZWFkX3VyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCwKKwkJICAgICAgZnRkaV9yZWFkX2J1bGtfY2FsbGJhY2ssIHBvcnQpOworCXJlc3VsdCA9IHVzYl9zdWJtaXRfdXJiKHBvcnQtPnJlYWRfdXJiLCBHRlBfS0VSTkVMKTsKKwlpZiAocmVzdWx0KQorCQllcnIoIiVzIC0gZmFpbGVkIHN1Ym1pdHRpbmcgcmVhZCB1cmIsIGVycm9yICVkIiwgX19GVU5DVElPTl9fLCByZXN1bHQpOworCisKKwlyZXR1cm4gcmVzdWx0OworfSAvKiBmdGRpX29wZW4gKi8KKworCisKKy8qIAorICogdXNic2VyaWFsOl9fc2VyaWFsX2Nsb3NlICBvbmx5IGNhbGxzIGZ0ZGlfY2xvc2UgaWYgdGhlIHBvaW50IGlzIG9wZW4KKyAqCisgKiAgIFRoaXMgb25seSBnZXRzIGNhbGxlZCB3aGVuIGl0IGlzIHRoZSBsYXN0IGNsb3NlCisgKiAgIAorICogICAKKyAqLworCitzdGF0aWMgdm9pZCBmdGRpX2Nsb3NlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sgLyogZnRkaV9jbG9zZSAqLworCXVuc2lnbmVkIGludCBjX2NmbGFnID0gcG9ydC0+dHR5LT50ZXJtaW9zLT5jX2NmbGFnOworCXN0cnVjdCBmdGRpX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJY2hhciBidWZbMV07CisKKwlkYmcoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCWlmIChjX2NmbGFnICYgSFVQQ0wpeworCQkvKiBEaXNhYmxlIGZsb3cgY29udHJvbCAqLworCQlpZiAodXNiX2NvbnRyb2xfbXNnKHBvcnQtPnNlcmlhbC0+ZGV2LCAKKwkJCQkgICAgdXNiX3NuZGN0cmxwaXBlKHBvcnQtPnNlcmlhbC0+ZGV2LCAwKSwKKwkJCQkgICAgRlRESV9TSU9fU0VUX0ZMT1dfQ1RSTF9SRVFVRVNULAorCQkJCSAgICBGVERJX1NJT19TRVRfRkxPV19DVFJMX1JFUVVFU1RfVFlQRSwKKwkJCQkgICAgMCwgcHJpdi0+aW50ZXJmYWNlLCBidWYsIDAsCisJCQkJICAgIFdEUl9USU1FT1VUKSA8IDApIHsKKwkJCWVycigiZXJyb3IgZnJvbSBmbG93Y29udHJvbCB1cmIiKTsKKwkJfQkgICAgCisKKwkJLyogZHJvcCBEVFIgKi8KKwkJaWYgKHNldF9kdHIocG9ydCwgTE9XKSA8IDApeworCQkJZXJyKCJFcnJvciBmcm9tIERUUiBMT1cgdXJiIik7CisJCX0KKwkJLyogZHJvcCBSVFMgKi8KKwkJaWYgKHNldF9ydHMocG9ydCwgTE9XKSA8IDApIHsKKwkJCWVycigiRXJyb3IgZnJvbSBSVFMgTE9XIHVyYiIpOworCQl9CisJfSAvKiBOb3RlIGNoYW5nZSBubyBsaW5lIGlmIGh1cGNsIGlzIG9mZiAqLworCQorCS8qIHNodXRkb3duIG91ciBidWxrIHJlYWQgKi8KKwlpZiAocG9ydC0+cmVhZF91cmIpCisJCXVzYl9raWxsX3VyYihwb3J0LT5yZWFkX3VyYik7Cit9IC8qIGZ0ZGlfY2xvc2UgKi8KKworCisgIAorLyogVGhlIFNJTyByZXF1aXJlcyB0aGUgZmlyc3QgYnl0ZSB0byBoYXZlOgorICogIEIwIDEKKyAqICBCMSAwCisgKiAgQjIuLjcgbGVuZ3RoIG9mIG1lc3NhZ2UgZXhjbHVkaW5nIGJ5dGUgMAorICoKKyAqIFRoZSBuZXcgZGV2aWNlcyBkbyBub3QgcmVxdWlyZSB0aGlzIGJ5dGUKKyAqLworc3RhdGljIGludCBmdGRpX3dyaXRlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LAorCQkJICAgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpCit7IC8qIGZ0ZGlfd3JpdGUgKi8KKwlzdHJ1Y3QgZnRkaV9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXN0cnVjdCB1cmIgKnVyYjsKKwl1bnNpZ25lZCBjaGFyICpidWZmZXI7CisJaW50IGRhdGFfb2Zmc2V0IDsgICAgICAgLyogd2lsbCBiZSAxIGZvciB0aGUgU0lPIGFuZCAwIG90aGVyd2lzZSAqLworCWludCBzdGF0dXM7CisJaW50IHRyYW5zZmVyX3NpemU7CisKKwlkYmcoIiVzIHBvcnQgJWQsICVkIGJ5dGVzIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIsIGNvdW50KTsKKworCWlmIChjb3VudCA9PSAwKSB7CisJCWRiZygid3JpdGUgcmVxdWVzdCBvZiAwIGJ5dGVzIik7CisJCXJldHVybiAwOworCX0KKwkKKwlkYXRhX29mZnNldCA9IHByaXYtPndyaXRlX29mZnNldDsKKyAgICAgICAgZGJnKCJkYXRhX29mZnNldCBzZXQgdG8gJWQiLGRhdGFfb2Zmc2V0KTsKKworCS8qIERldGVybWluZSB0b3RhbCB0cmFuc2ZlciBzaXplICovCisJdHJhbnNmZXJfc2l6ZSA9IGNvdW50OworCWlmIChkYXRhX29mZnNldCA+IDApIHsKKwkJLyogT3JpZ2luYWwgc2lvIG5lZWRzIGNvbnRyb2wgYnl0ZXMgdG9vLi4uICovCisJCXRyYW5zZmVyX3NpemUgKz0gKGRhdGFfb2Zmc2V0ICoKKwkJCQkoKGNvdW50ICsgKFBLVFNaIC0gMSAtIGRhdGFfb2Zmc2V0KSkgLworCQkJCSAoUEtUU1ogLSBkYXRhX29mZnNldCkpKTsKKwl9CisKKwlidWZmZXIgPSBrbWFsbG9jICh0cmFuc2Zlcl9zaXplLCBHRlBfQVRPTUlDKTsKKwlpZiAoIWJ1ZmZlcikgeworCQllcnIoIiVzIHJhbiBvdXQgb2Yga2VybmVsIG1lbW9yeSBmb3IgdXJiIC4uLiIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCXVyYiA9IHVzYl9hbGxvY191cmIoMCwgR0ZQX0FUT01JQyk7CisJaWYgKCF1cmIpIHsKKwkJZXJyKCIlcyAtIG5vIG1vcmUgZnJlZSB1cmJzIiwgX19GVU5DVElPTl9fKTsKKwkJa2ZyZWUgKGJ1ZmZlcik7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCS8qIENvcHkgZGF0YSAqLworCWlmIChkYXRhX29mZnNldCA+IDApIHsKKwkJLyogT3JpZ2luYWwgc2lvIHJlcXVpcmVzIGNvbnRyb2wgYnl0ZSBhdCBzdGFydCBvZiBlYWNoIHBhY2tldC4gKi8KKwkJaW50IHVzZXJfcGt0c3ogPSBQS1RTWiAtIGRhdGFfb2Zmc2V0OworCQlpbnQgdG9kbyA9IGNvdW50OworCQl1bnNpZ25lZCBjaGFyICpmaXJzdF9ieXRlID0gYnVmZmVyOworCQljb25zdCB1bnNpZ25lZCBjaGFyICpjdXJyZW50X3Bvc2l0aW9uID0gYnVmOworCisJCXdoaWxlICh0b2RvID4gMCkgeworCQkJaWYgKHVzZXJfcGt0c3ogPiB0b2RvKSB7CisJCQkJdXNlcl9wa3RzeiA9IHRvZG87CisJCQl9CisJCQkvKiBXcml0ZSB0aGUgY29udHJvbCBieXRlIGF0IHRoZSBmcm9udCBvZiB0aGUgcGFja2V0Ki8KKwkJCSpmaXJzdF9ieXRlID0gMSB8ICgodXNlcl9wa3RzeikgPDwgMik7IAorCQkJLyogQ29weSBkYXRhIGZvciBwYWNrZXQgKi8KKwkJCW1lbWNweSAoZmlyc3RfYnl0ZSArIGRhdGFfb2Zmc2V0LAorCQkJCWN1cnJlbnRfcG9zaXRpb24sIHVzZXJfcGt0c3opOworCQkJZmlyc3RfYnl0ZSArPSB1c2VyX3BrdHN6ICsgZGF0YV9vZmZzZXQ7CisJCQljdXJyZW50X3Bvc2l0aW9uICs9IHVzZXJfcGt0c3o7CisJCQl0b2RvIC09IHVzZXJfcGt0c3o7CisJCX0KKwl9IGVsc2UgeworCQkvKiBObyBjb250cm9sIGJ5dGUgcmVxdWlyZWQuICovCisJCS8qIENvcHkgaW4gdGhlIGRhdGEgdG8gc2VuZCAqLworCQltZW1jcHkgKGJ1ZmZlciwgYnVmLCBjb3VudCk7CisJfQorCisJdXNiX3NlcmlhbF9kZWJ1Z19kYXRhKGRlYnVnLCAmcG9ydC0+ZGV2LCBfX0ZVTkNUSU9OX18sIHRyYW5zZmVyX3NpemUsIGJ1ZmZlcik7CisKKwkvKiBmaWxsIHRoZSBidWZmZXIgYW5kIHNlbmQgaXQgKi8KKwl1c2JfZmlsbF9idWxrX3VyYih1cmIsIHBvcnQtPnNlcmlhbC0+ZGV2LCAKKwkJICAgICAgdXNiX3NuZGJ1bGtwaXBlKHBvcnQtPnNlcmlhbC0+ZGV2LCBwb3J0LT5idWxrX291dF9lbmRwb2ludEFkZHJlc3MpLAorCQkgICAgICBidWZmZXIsIHRyYW5zZmVyX3NpemUsCisJCSAgICAgIGZ0ZGlfd3JpdGVfYnVsa19jYWxsYmFjaywgcG9ydCk7CisKKwlzdGF0dXMgPSB1c2Jfc3VibWl0X3VyYih1cmIsIEdGUF9BVE9NSUMpOworCWlmIChzdGF0dXMpIHsKKwkJZXJyKCIlcyAtIGZhaWxlZCBzdWJtaXR0aW5nIHdyaXRlIHVyYiwgZXJyb3IgJWQiLCBfX0ZVTkNUSU9OX18sIHN0YXR1cyk7CisJCWNvdW50ID0gc3RhdHVzOworCQlrZnJlZSAoYnVmZmVyKTsKKwl9CisKKwkvKiB3ZSBhcmUgZG9uZSB3aXRoIHRoaXMgdXJiLCBzbyBsZXQgdGhlIGhvc3QgZHJpdmVyCisJICogcmVhbGx5IGZyZWUgaXQgd2hlbiBpdCBpcyBmaW5pc2hlZCB3aXRoIGl0ICovCisJdXNiX2ZyZWVfdXJiICh1cmIpOworCisJZGJnKCIlcyB3cml0ZSByZXR1cm5pbmc6ICVkIiwgX19GVU5DVElPTl9fLCBjb3VudCk7CisJcmV0dXJuIGNvdW50OworfSAvKiBmdGRpX3dyaXRlICovCisKKworLyogVGhpcyBmdW5jdGlvbiBtYXkgZ2V0IGNhbGxlZCB3aGVuIHRoZSBkZXZpY2UgaXMgY2xvc2VkICovCisKK3N0YXRpYyB2b2lkIGZ0ZGlfd3JpdGVfYnVsa19jYWxsYmFjayAoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ID0gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKil1cmItPmNvbnRleHQ7CisKKwkvKiBmcmVlIHVwIHRoZSB0cmFuc2ZlciBidWZmZXIsIGFzIHVzYl9mcmVlX3VyYigpIGRvZXMgbm90IGRvIHRoaXMgKi8KKwlrZnJlZSAodXJiLT50cmFuc2Zlcl9idWZmZXIpOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisJCisJaWYgKHVyYi0+c3RhdHVzKSB7CisJCWRiZygibm9uemVybyB3cml0ZSBidWxrIHN0YXR1cyByZWNlaXZlZDogJWQiLCB1cmItPnN0YXR1cyk7CisJCXJldHVybjsKKwl9CisKKwlzY2hlZHVsZV93b3JrKCZwb3J0LT53b3JrKTsKK30gLyogZnRkaV93cml0ZV9idWxrX2NhbGxiYWNrICovCisKKworc3RhdGljIGludCBmdGRpX3dyaXRlX3Jvb20oIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgKQoreworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJLyoKKwkgKiBXZSByZWFsbHkgY2FuIHRha2UgYW55dGhpbmcgdGhlIHVzZXIgdGhyb3dzIGF0IHVzCisJICogYnV0IGxldCdzIHBpY2sgYSBuaWNlIGJpZyBudW1iZXIgdG8gdGVsbCB0aGUgdHR5CisJICogbGF5ZXIgdGhhdCB3ZSBoYXZlIGxvdHMgb2YgZnJlZSBzcGFjZQorCSAqLworCXJldHVybiAyMDQ4OworfSAvKiBmdGRpX3dyaXRlX3Jvb20gKi8KKworCitzdGF0aWMgaW50IGZ0ZGlfY2hhcnNfaW5fYnVmZmVyIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreyAvKiBmdGRpX2NoYXJzX2luX2J1ZmZlciAqLworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJLyogCisJICogV2UgY2FuJ3QgcmVhbGx5IGFjY291bnQgZm9yIGhvdyBtdWNoIGRhdGEgd2UKKwkgKiBoYXZlIHNlbnQgb3V0LCBidXQgaGFzbid0IG1hZGUgaXQgdGhyb3VnaCB0byB0aGUKKwkgKiBkZXZpY2UsIHNvIGp1c3QgdGVsbCB0aGUgdHR5IGxheWVyIHRoYXQgZXZlcnl0aGluZworCSAqIGlzIGZsdXNoZWQuCisJICovCisJcmV0dXJuIDA7Cit9IC8qIGZ0ZGlfY2hhcnNfaW5fYnVmZmVyICovCisKKworCitzdGF0aWMgdm9pZCBmdGRpX3JlYWRfYnVsa19jYWxsYmFjayAoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sgLyogZnRkaV9yZWFkX2J1bGtfY2FsbGJhY2sgKi8KKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ID0gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKil1cmItPmNvbnRleHQ7CisJc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eTsKKwlzdHJ1Y3QgZnRkaV9wcml2YXRlICpwcml2OworCisJaWYgKHVyYi0+bnVtYmVyX29mX3BhY2tldHMgPiAwKSB7CisJCWVycigiJXMgdHJhbnNmZXJfYnVmZmVyX2xlbmd0aCAlZCBhY3R1YWxfbGVuZ3RoICVkIG51bWJlciBvZiBwYWNrZXRzICVkIixfX0ZVTkNUSU9OX18sCisJCSAgICB1cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGgsIHVyYi0+YWN0dWFsX2xlbmd0aCwgdXJiLT5udW1iZXJfb2ZfcGFja2V0cyApOworCQllcnIoIiVzIHRyYW5zZmVyX2ZsYWdzICV4ICIsIF9fRlVOQ1RJT05fXyx1cmItPnRyYW5zZmVyX2ZsYWdzICk7CisJfQorCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAocG9ydC0+b3Blbl9jb3VudCA8PSAwKQorCQlyZXR1cm47CisKKwl0dHkgPSBwb3J0LT50dHk7CisJaWYgKCF0dHkpIHsKKwkJZGJnKCIlcyAtIGJhZCB0dHkgcG9pbnRlciAtIGV4aXRpbmciLF9fRlVOQ1RJT05fXyk7CisJCXJldHVybjsKKwl9CisKKwlwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCWlmICghcHJpdikgeworCQlkYmcoIiVzIC0gYmFkIHBvcnQgcHJpdmF0ZSBkYXRhIHBvaW50ZXIgLSBleGl0aW5nIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuOworCX0KKworCWlmICh1cmIgIT0gcG9ydC0+cmVhZF91cmIpIHsKKwkJZXJyKCIlcyAtIE5vdCBteSB1cmIhIiwgX19GVU5DVElPTl9fKTsKKwl9CisKKwlpZiAodXJiLT5zdGF0dXMpIHsKKwkJLyogVGhpcyB3aWxsIGhhcHBlbiBhdCBjbG9zZSBldmVyeSB0aW1lIHNvIGl0IGlzIGEgZGJnIG5vdCBhbiBlcnIgKi8KKwkJZGJnKCIodGhpcyBpcyBvayBvbiBjbG9zZSkgbm9uemVybyByZWFkIGJ1bGsgc3RhdHVzIHJlY2VpdmVkOiAlZCIsIHVyYi0+c3RhdHVzKTsKKwkJcmV0dXJuOworCX0KKworCS8qIElmIHRocm90dGxlZCwgZGVsYXkgcmVjZWl2ZSBwcm9jZXNzaW5nIHVudGlsIHVudGhyb3R0bGVkLiAqLworCXNwaW5fbG9jaygmcHJpdi0+cnhfbG9jayk7CisJaWYgKHByaXYtPnJ4X2ZsYWdzICYgVEhST1RUTEVEKSB7CisJCWRiZygiRGVmZXJyaW5nIHJlYWQgdXJiIHByb2Nlc3NpbmcgdW50aWwgdW50aHJvdHRsZWQiKTsKKwkJcHJpdi0+cnhfZmxhZ3MgfD0gQUNUVUFMTFlfVEhST1RUTEVEOworCQlzcGluX3VubG9jaygmcHJpdi0+cnhfbG9jayk7CisJCXJldHVybjsKKwl9CisJc3Bpbl91bmxvY2soJnByaXYtPnJ4X2xvY2spOworCisJZnRkaV9wcm9jZXNzX3JlYWQocG9ydCk7CisKK30gLyogZnRkaV9yZWFkX2J1bGtfY2FsbGJhY2sgKi8KKworCitzdGF0aWMgdm9pZCBmdGRpX3Byb2Nlc3NfcmVhZCAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKK3sgLyogZnRkaV9wcm9jZXNzX3JlYWQgKi8KKwlzdHJ1Y3QgdXJiICp1cmI7CisJc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eTsKKwlzdHJ1Y3QgZnRkaV9wcml2YXRlICpwcml2OworCWNoYXIgZXJyb3JfZmxhZzsKKyAgICAgICAJdW5zaWduZWQgY2hhciAqZGF0YTsKKworCWludCBpOworCWludCByZXN1bHQ7CisJaW50IG5lZWRfZmxpcDsKKwlpbnQgcGFja2V0X29mZnNldDsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJaWYgKHBvcnQtPm9wZW5fY291bnQgPD0gMCkKKwkJcmV0dXJuOworCisJdHR5ID0gcG9ydC0+dHR5OworCWlmICghdHR5KSB7CisJCWRiZygiJXMgLSBiYWQgdHR5IHBvaW50ZXIgLSBleGl0aW5nIixfX0ZVTkNUSU9OX18pOworCQlyZXR1cm47CisJfQorCisJcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlpZiAoIXByaXYpIHsKKwkJZGJnKCIlcyAtIGJhZCBwb3J0IHByaXZhdGUgZGF0YSBwb2ludGVyIC0gZXhpdGluZyIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybjsKKwl9CisKKwl1cmIgPSBwb3J0LT5yZWFkX3VyYjsKKwlpZiAoIXVyYikgeworCQlkYmcoIiVzIC0gYmFkIHJlYWRfdXJiIHBvaW50ZXIgLSBleGl0aW5nIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuOworCX0KKworCWRhdGEgPSB1cmItPnRyYW5zZmVyX2J1ZmZlcjsKKworICAgICAgICAvKiBUaGUgZmlyc3QgdHdvIGJ5dGVzIG9mIGV2ZXJ5IHJlYWQgcGFja2V0IGFyZSBzdGF0dXMgKi8KKwlpZiAodXJiLT5hY3R1YWxfbGVuZ3RoID4gMikgeworCQl1c2Jfc2VyaWFsX2RlYnVnX2RhdGEoZGVidWcsICZwb3J0LT5kZXYsIF9fRlVOQ1RJT05fXywgdXJiLT5hY3R1YWxfbGVuZ3RoLCBkYXRhKTsKKwl9IGVsc2UgeworICAgICAgICAgICAgICAgIGRiZygiU3RhdHVzIG9ubHk6ICUwM29vICUwM29vIixkYXRhWzBdLGRhdGFbMV0pOworICAgICAgICB9CisKKworCS8qIFRPIERPIC0tIGNoZWNrIGZvciBodW5nIHVwIGxpbmUgYW5kIGhhbmRsZSBhcHByb3ByaWF0ZWx5OiAqLworCS8qICAgc2VuZCBoYW5ndXAgICovCisJLyogU2VlIGFjbS5jIC0geW91IGRvIGEgdHR5X2hhbmd1cCAgLSBlZyB0dHlfaGFuZ3VwKHR0eSkgKi8KKwkvKiBpZiBDRCBpcyBkcm9wcGVkIGFuZCB0aGUgbGluZSBpcyBub3QgQ0xPQ0FMIHRoZW4gd2Ugc2hvdWxkIGhhbmd1cCAqLworCisJbmVlZF9mbGlwID0gMDsKKwlmb3IgKHBhY2tldF9vZmZzZXQ9MDsgcGFja2V0X29mZnNldCA8IHVyYi0+YWN0dWFsX2xlbmd0aDsgcGFja2V0X29mZnNldCArPSBQS1RTWikgeworCQkvKiBDb21wYXJlIG5ldyBsaW5lIHN0YXR1cyB0byB0aGUgb2xkIG9uZSwgc2lnbmFsIGlmIGRpZmZlcmVudCAqLworCQlpZiAocHJpdiAhPSBOVUxMKSB7CisJCQljaGFyIG5ld19zdGF0dXMgPSBkYXRhW3BhY2tldF9vZmZzZXQrMF0gJiBGVERJX1NUQVRVU19CMF9NQVNLOworCQkJaWYgKG5ld19zdGF0dXMgIT0gcHJpdi0+cHJldl9zdGF0dXMpIHsKKwkJCQlwcml2LT5kaWZmX3N0YXR1cyB8PSBuZXdfc3RhdHVzIF4gcHJpdi0+cHJldl9zdGF0dXM7CisJCQkJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCZwcml2LT5kZWx0YV9tc3Jfd2FpdCk7CisJCQkJcHJpdi0+cHJldl9zdGF0dXMgPSBuZXdfc3RhdHVzOworCQkJfQorCQl9CisKKwkJLyogSGFuZGxlIGVycm9ycyBhbmQgYnJlYWsgKi8KKwkJZXJyb3JfZmxhZyA9IFRUWV9OT1JNQUw7CisJCS8qIEFsdGhvdWdoIHRoZSBkZXZpY2UgdXNlcyBhIGJpdG1hc2sgYW5kIGhlbmNlIGNhbiBoYXZlIG11bHRpcGxlICovCisJCS8qIGVycm9ycyBvbiBhIHBhY2tldCAtIHRoZSBvcmRlciBoZXJlIHNldHMgdGhlIHByaW9yaXR5IHRoZSAqLworCQkvKiBlcnJvciBpcyByZXR1cm5lZCB0byB0aGUgdHR5IGxheWVyICAqLworCisJCWlmICggZGF0YVtwYWNrZXRfb2Zmc2V0KzFdICYgRlRESV9SU19PRSApIHsKKwkJCWVycm9yX2ZsYWcgPSBUVFlfT1ZFUlJVTjsKKwkJCWRiZygiT1ZFUlJSVU4gZXJyb3IiKTsKKwkJfQorCQlpZiAoIGRhdGFbcGFja2V0X29mZnNldCsxXSAmIEZURElfUlNfQkkgKSB7CisJCQllcnJvcl9mbGFnID0gVFRZX0JSRUFLOworCQkJZGJnKCJCUkVBSyByZWNlaXZlZCIpOworCQl9CisJCWlmICggZGF0YVtwYWNrZXRfb2Zmc2V0KzFdICYgRlRESV9SU19QRSApIHsKKwkJCWVycm9yX2ZsYWcgPSBUVFlfUEFSSVRZOworCQkJZGJnKCJQQVJJVFkgZXJyb3IiKTsKKwkJfQorCQlpZiAoIGRhdGFbcGFja2V0X29mZnNldCsxXSAmIEZURElfUlNfRkUgKSB7CisJCQllcnJvcl9mbGFnID0gVFRZX0ZSQU1FOworCQkJZGJnKCJGUkFNSU5HIGVycm9yIik7CisJCX0KKwkJaWYgKHVyYi0+YWN0dWFsX2xlbmd0aCA+IHBhY2tldF9vZmZzZXQgKyAyKSB7CisJCQlmb3IgKGkgPSAyOyAoaSA8IFBLVFNaKSAmJiAoKGkrcGFja2V0X29mZnNldCkgPCB1cmItPmFjdHVhbF9sZW5ndGgpOyArK2kpIHsKKwkJCQkvKiBoYXZlIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBvdmVyZmxvdyB0aGUgYnVmZmVyCisJCQkJICB3aXRoIHR0eV9pbnNlcnRfZmxpcF9jaGFyJ3MgKi8KKwkJCQlpZih0dHktPmZsaXAuY291bnQgPj0gVFRZX0ZMSVBCVUZfU0laRSkgeworCQkJCQl0dHlfZmxpcF9idWZmZXJfcHVzaCh0dHkpOworCQkJCX0KKwkJCQkvKiBOb3RlIHRoYXQgdGhlIGVycm9yIGZsYWcgaXMgZHVwbGljYXRlZCBmb3IgCisJCQkJICAgZXZlcnkgY2hhcmFjdGVyIHJlY2VpdmVkIHNpbmNlIHdlIGRvbid0IGtub3cKKwkJCQkgICB3aGljaCBjaGFyYWN0ZXIgaXQgYXBwbGllZCB0byAqLworCQkJCXR0eV9pbnNlcnRfZmxpcF9jaGFyKHR0eSwgZGF0YVtwYWNrZXRfb2Zmc2V0K2ldLCBlcnJvcl9mbGFnKTsKKwkJCX0KKwkJCW5lZWRfZmxpcCA9IDE7CisJCX0KKworI2lmZGVmIE5PVF9DT1JSRUNUX0JVVF9LRUVQSU5HX0lUX0ZPUl9OT1cKKwkJLyogaWYgYSBwYXJpdHkgZXJyb3IgaXMgZGV0ZWN0ZWQgeW91IGdldCBzdGF0dXMgcGFja2V0cyBmb3JldmVyCisJCSAgIHVudGlsIGEgY2hhcmFjdGVyIGlzIHNlbnQgd2l0aG91dCBhIHBhcml0eSBlcnJvci4KKwkJICAgVGhpcyBkb2Vzbid0IHdvcmsgd2VsbCBzaW5jZSB0aGUgYXBwbGljYXRpb24gcmVjZWl2ZXMgYSBuZXZlcgorCQkgICBlbmRpbmcgc3RyZWFtIG9mIGJhZCBkYXRhIC0gZXZlbiB0aG91Z2ggbmV3IGRhdGEgaGFzbid0IGJlZW4gc2VudC4KKwkJICAgVGhlcmVmb3JlIEkgKGJpbGwpIGhhdmUgdGFrZW4gdGhpcyBvdXQuCisJCSAgIEhvd2V2ZXIgLSB0aGlzIG1pZ2h0IG1ha2Ugc2Vuc2UgZm9yIGZyYW1pbmcgZXJyb3JzIGFuZCBzbyBvbiAKKwkJICAgc28gSSBhbSBsZWF2aW5nIHRoZSBjb2RlIGluIGZvciBub3cuCisJCSovCisJCWVsc2UgeworCQkJaWYgKGVycm9yX2ZsYWcgIT0gVFRZX05PUk1BTCl7CisJCQkJZGJnKCJlcnJvcl9mbGFnIGlzIG5vdCBub3JtYWwiKTsKKwkJCQkvKiBJbiB0aGlzIGNhc2UgaXQgaXMganVzdCBzdGF0dXMgLSBpZiB0aGF0IGlzIGFuIGVycm9yIHNlbmQgYSBiYWQgY2hhcmFjdGVyICovCisJCQkJaWYodHR5LT5mbGlwLmNvdW50ID49IFRUWV9GTElQQlVGX1NJWkUpIHsKKwkJCQkJdHR5X2ZsaXBfYnVmZmVyX3B1c2godHR5KTsKKwkJCQl9CisJCQkJdHR5X2luc2VydF9mbGlwX2NoYXIodHR5LCAweGZmLCBlcnJvcl9mbGFnKTsKKwkJCQluZWVkX2ZsaXAgPSAxOworCQkJfQorCQl9CisjZW5kaWYKKwl9IC8qICJmb3IocGFja2V0X29mZnNldD0wLi4uIiAqLworCisJLyogTG93IGxhdGVuY3kgKi8KKwlpZiAobmVlZF9mbGlwKSB7CisJCXR0eV9mbGlwX2J1ZmZlcl9wdXNoKHR0eSk7CisJfQorCisJLyogaWYgdGhlIHBvcnQgaXMgY2xvc2VkIHN0b3AgdHJ5aW5nIHRvIHJlYWQgKi8KKwlpZiAocG9ydC0+b3Blbl9jb3VudCA+IDApeworCQkvKiBDb250aW51ZSB0cnlpbmcgdG8gYWx3YXlzIHJlYWQgICovCisJCXVzYl9maWxsX2J1bGtfdXJiKHBvcnQtPnJlYWRfdXJiLCBwb3J0LT5zZXJpYWwtPmRldiwgCisJCQkgICAgICB1c2JfcmN2YnVsa3BpcGUocG9ydC0+c2VyaWFsLT5kZXYsIHBvcnQtPmJ1bGtfaW5fZW5kcG9pbnRBZGRyZXNzKSwKKwkJCSAgICAgIHBvcnQtPnJlYWRfdXJiLT50cmFuc2Zlcl9idWZmZXIsIHBvcnQtPnJlYWRfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoLAorCQkJICAgICAgZnRkaV9yZWFkX2J1bGtfY2FsbGJhY2ssIHBvcnQpOworCisJCXJlc3VsdCA9IHVzYl9zdWJtaXRfdXJiKHBvcnQtPnJlYWRfdXJiLCBHRlBfQVRPTUlDKTsKKwkJaWYgKHJlc3VsdCkKKwkJCWVycigiJXMgLSBmYWlsZWQgcmVzdWJtaXR0aW5nIHJlYWQgdXJiLCBlcnJvciAlZCIsIF9fRlVOQ1RJT05fXywgcmVzdWx0KTsKKwl9CisKKwlyZXR1cm47Cit9IC8qIGZ0ZGlfcHJvY2Vzc19yZWFkICovCisKKworc3RhdGljIHZvaWQgZnRkaV9icmVha19jdGwoIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIGludCBicmVha19zdGF0ZSApCit7CisJc3RydWN0IGZ0ZGlfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlfX3UxNiB1cmJfdmFsdWUgPSAwOyAKKwljaGFyIGJ1ZlsxXTsKKwkKKwkvKiBicmVha19zdGF0ZSA9IC0xIHRvIHR1cm4gb24gYnJlYWssIGFuZCAwIHRvIHR1cm4gb2ZmIGJyZWFrICovCisJLyogc2VlIGRyaXZlcnMvY2hhci90dHlfaW8uYyB0byBzZWUgaXQgdXNlZCAqLworCS8qIGxhc3Rfc2V0X2RhdGFfdXJiX3ZhbHVlIE5FVkVSIGhhcyB0aGUgYnJlYWsgYml0IHNldCBpbiBpdCAqLworCisJaWYgKGJyZWFrX3N0YXRlKSB7CisJCXVyYl92YWx1ZSA9IHByaXYtPmxhc3Rfc2V0X2RhdGFfdXJiX3ZhbHVlIHwgRlRESV9TSU9fU0VUX0JSRUFLOworCX0gZWxzZSB7CisJCXVyYl92YWx1ZSA9IHByaXYtPmxhc3Rfc2V0X2RhdGFfdXJiX3ZhbHVlOyAKKwl9CisKKwkKKwlpZiAodXNiX2NvbnRyb2xfbXNnKHBvcnQtPnNlcmlhbC0+ZGV2LCB1c2Jfc25kY3RybHBpcGUocG9ydC0+c2VyaWFsLT5kZXYsIDApLAorCQkJICAgIEZURElfU0lPX1NFVF9EQVRBX1JFUVVFU1QsIAorCQkJICAgIEZURElfU0lPX1NFVF9EQVRBX1JFUVVFU1RfVFlQRSwKKwkJCSAgICB1cmJfdmFsdWUgLCBwcml2LT5pbnRlcmZhY2UsCisJCQkgICAgYnVmLCAwLCBXRFJfVElNRU9VVCkgPCAwKSB7CisJCWVycigiJXMgRkFJTEVEIHRvIGVuYWJsZS9kaXNhYmxlIGJyZWFrIHN0YXRlIChzdGF0ZSB3YXMgJWQpIiwgX19GVU5DVElPTl9fLGJyZWFrX3N0YXRlKTsKKwl9CSAgIAorCisJZGJnKCIlcyBicmVhayBzdGF0ZSBpcyAlZCAtIHVyYiBpcyAlZCIsIF9fRlVOQ1RJT05fXyxicmVha19zdGF0ZSwgdXJiX3ZhbHVlKTsKKwkKK30KKworCisvKiBvbGRfdGVybWlvcyBjb250YWlucyB0aGUgb3JpZ2luYWwgdGVybWlvcyBzZXR0aW5ncyBhbmQgdHR5LT50ZXJtaW9zIGNvbnRhaW5zCisgKiB0aGUgbmV3IHNldHRpbmcgdG8gYmUgdXNlZAorICogV0FSTklORzogc2V0X3Rlcm1pb3MgY2FsbHMgdGhpcyB3aXRoIG9sZF90ZXJtaW9zIGluIGtlcm5lbCBzcGFjZQorICovCisKK3N0YXRpYyB2b2lkIGZ0ZGlfc2V0X3Rlcm1pb3MgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCB0ZXJtaW9zICpvbGRfdGVybWlvcykKK3sgLyogZnRkaV90ZXJtaW9zICovCisJc3RydWN0IHVzYl9kZXZpY2UgKmRldiA9IHBvcnQtPnNlcmlhbC0+ZGV2OworCXVuc2lnbmVkIGludCBjZmxhZyA9IHBvcnQtPnR0eS0+dGVybWlvcy0+Y19jZmxhZzsKKwlzdHJ1Y3QgZnRkaV9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCV9fdTE2IHVyYl92YWx1ZTsgLyogd2lsbCBob2xkIHRoZSBuZXcgZmxhZ3MgKi8KKwljaGFyIGJ1ZlsxXTsgLyogUGVyaGFwcyBJIHNob3VsZCBkeW5hbWljYWxseSBhbGxvYyB0aGlzPyAqLworCQorCS8vIEFkZGVkIGZvciB4b24veG9mZiBzdXBwb3J0CisJdW5zaWduZWQgaW50IGlmbGFnID0gcG9ydC0+dHR5LT50ZXJtaW9zLT5jX2lmbGFnOworCXVuc2lnbmVkIGNoYXIgdnN0b3A7CisJdW5zaWduZWQgY2hhciB2c3RhcnQ7CisJCisJZGJnKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwkvKiBGb3JjZSBiYXVkIHJhdGUgaWYgdGhpcyBkZXZpY2UgcmVxdWlyZXMgaXQsIHVubGVzcyBpdCBpcyBzZXQgdG8gQjAuICovCisJaWYgKHByaXYtPmZvcmNlX2JhdWQgJiYgKChwb3J0LT50dHktPnRlcm1pb3MtPmNfY2ZsYWcgJiBDQkFVRCkgIT0gQjApKSB7CisJCWRiZygiJXM6IGZvcmNpbmcgYmF1ZCByYXRlIGZvciB0aGlzIGRldmljZSIsIF9fRlVOQ1RJT05fXyk7CisJCXBvcnQtPnR0eS0+dGVybWlvcy0+Y19jZmxhZyAmPSB+Q0JBVUQ7CisJCXBvcnQtPnR0eS0+dGVybWlvcy0+Y19jZmxhZyB8PSBwcml2LT5mb3JjZV9iYXVkOworCX0KKworCS8qIEZvcmNlIFJUUy1DVFMgaWYgdGhpcyBkZXZpY2UgcmVxdWlyZXMgaXQuICovCisJaWYgKHByaXYtPmZvcmNlX3J0c2N0cykgeworCQlkYmcoIiVzOiBmb3JjaW5nIHJ0c2N0cyBmb3IgdGhpcyBkZXZpY2UiLCBfX0ZVTkNUSU9OX18pOworCQlwb3J0LT50dHktPnRlcm1pb3MtPmNfY2ZsYWcgfD0gQ1JUU0NUUzsKKwl9CisKKwljZmxhZyA9IHBvcnQtPnR0eS0+dGVybWlvcy0+Y19jZmxhZzsKKworCS8qIEZJWE1FIC1Gb3IgdGhpcyBjdXQgSSBkb24ndCBjYXJlIGlmIHRoZSBsaW5lIGlzIHJlYWxseSBjaGFuZ2luZyBvciAKKwkgICBub3QgIC0gc28ganVzdCBkbyB0aGUgY2hhbmdlIHJlZ2FyZGxlc3MgIC0gc2hvdWxkIGJlIGFibGUgdG8gCisJICAgY29tcGFyZSBvbGRfdGVybWlvcyBhbmQgdHR5LT50ZXJtaW9zICovCisJLyogTk9URSBUaGVzZSByb3V0aW5lcyBjYW4gZ2V0IGludGVycnVwdGVkIGJ5IAorCSAgIGZ0ZGlfc2lvX3JlYWRfYnVsa19jYWxsYmFjayAgLSBuZWVkIHRvIGV4YW1pbmUgd2hhdCB0aGlzIAorICAgICAgICAgICBtZWFucyAtIGRvbid0IHNlZSBhbnkgcHJvYmxlbXMgeWV0ICovCisJCisJLyogU2V0IG51bWJlciBvZiBkYXRhIGJpdHMsIHBhcml0eSwgc3RvcCBiaXRzICovCisJCisJdXJiX3ZhbHVlID0gMDsKKwl1cmJfdmFsdWUgfD0gKGNmbGFnICYgQ1NUT1BCID8gRlRESV9TSU9fU0VUX0RBVEFfU1RPUF9CSVRTXzIgOgorCQkgICAgICBGVERJX1NJT19TRVRfREFUQV9TVE9QX0JJVFNfMSk7CisJdXJiX3ZhbHVlIHw9IChjZmxhZyAmIFBBUkVOQiA/IAorCQkgICAgICAoY2ZsYWcgJiBQQVJPREQgPyBGVERJX1NJT19TRVRfREFUQV9QQVJJVFlfT0REIDogCisJCSAgICAgICBGVERJX1NJT19TRVRfREFUQV9QQVJJVFlfRVZFTikgOgorCQkgICAgICBGVERJX1NJT19TRVRfREFUQV9QQVJJVFlfTk9ORSk7CisJaWYgKGNmbGFnICYgQ1NJWkUpIHsKKwkJc3dpdGNoIChjZmxhZyAmIENTSVpFKSB7CisJCWNhc2UgQ1M1OiB1cmJfdmFsdWUgfD0gNTsgZGJnKCJTZXR0aW5nIENTNSIpOyBicmVhazsKKwkJY2FzZSBDUzY6IHVyYl92YWx1ZSB8PSA2OyBkYmcoIlNldHRpbmcgQ1M2Iik7IGJyZWFrOworCQljYXNlIENTNzogdXJiX3ZhbHVlIHw9IDc7IGRiZygiU2V0dGluZyBDUzciKTsgYnJlYWs7CisJCWNhc2UgQ1M4OiB1cmJfdmFsdWUgfD0gODsgZGJnKCJTZXR0aW5nIENTOCIpOyBicmVhazsKKwkJZGVmYXVsdDoKKwkJCWVycigiQ1NJWkUgd2FzIHNldCBidXQgbm90IENTNS1DUzgiKTsKKwkJfQorCX0KKworCS8qIFRoaXMgaXMgbmVlZGVkIGJ5IHRoZSBicmVhayBjb21tYW5kIHNpbmNlIGl0IHVzZXMgdGhlIHNhbWUgY29tbWFuZCAtIGJ1dCBpcworCSAqICBvcidlZCB3aXRoIHRoaXMgdmFsdWUgICovCisJcHJpdi0+bGFzdF9zZXRfZGF0YV91cmJfdmFsdWUgPSB1cmJfdmFsdWU7CisJCisJaWYgKHVzYl9jb250cm9sX21zZyhkZXYsIHVzYl9zbmRjdHJscGlwZShkZXYsIDApLAorCQkJICAgIEZURElfU0lPX1NFVF9EQVRBX1JFUVVFU1QsIAorCQkJICAgIEZURElfU0lPX1NFVF9EQVRBX1JFUVVFU1RfVFlQRSwKKwkJCSAgICB1cmJfdmFsdWUgLCBwcml2LT5pbnRlcmZhY2UsCisJCQkgICAgYnVmLCAwLCAxMDApIDwgMCkgeworCQllcnIoIiVzIEZBSUxFRCB0byBzZXQgZGF0YWJpdHMvc3RvcGJpdHMvcGFyaXR5IiwgX19GVU5DVElPTl9fKTsKKwl9CSAgIAorCisJLyogTm93IGRvIHRoZSBiYXVkcmF0ZSAqLworCWlmICgoY2ZsYWcgJiBDQkFVRCkgPT0gQjAgKSB7CisJCS8qIERpc2FibGUgZmxvdyBjb250cm9sICovCisJCWlmICh1c2JfY29udHJvbF9tc2coZGV2LCB1c2Jfc25kY3RybHBpcGUoZGV2LCAwKSwKKwkJCQkgICAgRlRESV9TSU9fU0VUX0ZMT1dfQ1RSTF9SRVFVRVNULCAKKwkJCQkgICAgRlRESV9TSU9fU0VUX0ZMT1dfQ1RSTF9SRVFVRVNUX1RZUEUsCisJCQkJICAgIDAsIHByaXYtPmludGVyZmFjZSwgCisJCQkJICAgIGJ1ZiwgMCwgV0RSX1RJTUVPVVQpIDwgMCkgeworCQkJZXJyKCIlcyBlcnJvciBmcm9tIGRpc2FibGUgZmxvd2NvbnRyb2wgdXJiIiwgX19GVU5DVElPTl9fKTsKKwkJfQkgICAgCisJCS8qIERyb3AgUlRTIGFuZCBEVFIgKi8KKwkJaWYgKHNldF9kdHIocG9ydCwgTE9XKSA8IDApeworCQkJZXJyKCIlcyBFcnJvciBmcm9tIERUUiBMT1cgdXJiIiwgX19GVU5DVElPTl9fKTsKKwkJfQorCQlpZiAoc2V0X3J0cyhwb3J0LCBMT1cpIDwgMCl7CisJCQllcnIoIiVzIEVycm9yIGZyb20gUlRTIExPVyB1cmIiLCBfX0ZVTkNUSU9OX18pOworCQl9CQorCQkKKwl9IGVsc2UgeworCQkvKiBzZXQgdGhlIGJhdWRyYXRlIGRldGVybWluZWQgYmVmb3JlICovCisJCWlmIChjaGFuZ2Vfc3BlZWQocG9ydCkpIHsKKwkJCWVycigiJXMgdXJiIGZhaWxlZCB0byBzZXQgYmF1cmRyYXRlIiwgX19GVU5DVElPTl9fKTsKKwkJfQorCQkvKiBFbnN1cmUgIFJUUyBhbmQgRFRSIGFyZSByYWlzZWQgKi8KKwkJZWxzZSBpZiAoc2V0X2R0cihwb3J0LCBISUdIKSA8IDApeworCQkJZXJyKCIlcyBFcnJvciBmcm9tIERUUiBISUdIIHVyYiIsIF9fRlVOQ1RJT05fXyk7CisJCX0KKwkJZWxzZSBpZiAoc2V0X3J0cyhwb3J0LCBISUdIKSA8IDApeworCQkJZXJyKCIlcyBFcnJvciBmcm9tIFJUUyBISUdIIHVyYiIsIF9fRlVOQ1RJT05fXyk7CisJCX0JCisJfQorCisJLyogU2V0IGZsb3cgY29udHJvbCAqLworCS8qIE5vdGUgZGV2aWNlIGFsc28gc3VwcG9ydHMgRFRSL0NEICh1Z2gpIGFuZCBYb24vWG9mZiBpbiBoYXJkd2FyZSAqLworCWlmIChjZmxhZyAmIENSVFNDVFMpIHsKKwkJZGJnKCIlcyBTZXR0aW5nIHRvIENSVFNDVFMgZmxvdyBjb250cm9sIiwgX19GVU5DVElPTl9fKTsKKwkJaWYgKHVzYl9jb250cm9sX21zZyhkZXYsIAorCQkJCSAgICB1c2Jfc25kY3RybHBpcGUoZGV2LCAwKSwKKwkJCQkgICAgRlRESV9TSU9fU0VUX0ZMT1dfQ1RSTF9SRVFVRVNULCAKKwkJCQkgICAgRlRESV9TSU9fU0VUX0ZMT1dfQ1RSTF9SRVFVRVNUX1RZUEUsCisJCQkJICAgIDAgLCAoRlRESV9TSU9fUlRTX0NUU19IUyB8IHByaXYtPmludGVyZmFjZSksCisJCQkJICAgIGJ1ZiwgMCwgV0RSX1RJTUVPVVQpIDwgMCkgeworCQkJZXJyKCJ1cmIgZmFpbGVkIHRvIHNldCB0byBydHMvY3RzIGZsb3cgY29udHJvbCIpOworCQl9CQkKKwkJCisJfSBlbHNlIHsgCisJCS8qCisJCSAqIFhvbi9Yb2ZmIGNvZGUKKwkJICoKKwkJICogQ2hlY2sgdGhlIElYT0ZGIHN0YXR1cyBpbiB0aGUgaWZsYWcgY29tcG9uZW50IG9mIHRoZSB0ZXJtaW9zIHN0cnVjdHVyZQorCQkgKiBpZiBJWE9GRiBpcyBub3Qgc2V0LCB0aGUgcHJlLXhvbi94b2ZmIGNvZGUgaXMgZXhlY3V0ZWQuCisJCSovCisJCWlmIChpZmxhZyAmIElYT0ZGKSB7CisJCQlkYmcoIiVzICByZXF1ZXN0IHRvIGVuYWJsZSB4b254b2ZmIGlmbGFnPSUwNHgiLF9fRlVOQ1RJT05fXyxpZmxhZyk7CisJCQkvLyBUcnkgdG8gZW5hYmxlIHRoZSBYT04vWE9GRiBvbiB0aGUgZnRkaV9zaW8KKwkJCS8vIFNldCB0aGUgdnN0YXJ0IGFuZCB2c3RvcCAtLSBjb3VsZCBoYXZlIGJlZW4gZG9uZSB1cCBhYm92ZSB3aGVyZQorCQkJLy8gYSBsb3Qgb2Ygb3RoZXIgZGVyZWZlcmVuY2luZyBpcyBkb25lIGJ1dCB0aGF0IHdvdWxkIGJlIHZlcnkKKwkJCS8vIGluZWZmaWNpZW50IGFzIHZzdGFydCBhbmQgdnN0b3AgYXJlIG5vdCBhbHdheXMgbmVlZGVkCisJCQl2c3RhcnQ9cG9ydC0+dHR5LT50ZXJtaW9zLT5jX2NjW1ZTVEFSVF07CisJCQl2c3RvcD1wb3J0LT50dHktPnRlcm1pb3MtPmNfY2NbVlNUT1BdOworCQkJdXJiX3ZhbHVlPSh2c3RvcCA8PCA4KSB8ICh2c3RhcnQpOworCisJCQlpZiAodXNiX2NvbnRyb2xfbXNnKGRldiwKKwkJCQkJICAgIHVzYl9zbmRjdHJscGlwZShkZXYsIDApLAorCQkJCQkgICAgRlRESV9TSU9fU0VUX0ZMT1dfQ1RSTF9SRVFVRVNULAorCQkJCQkgICAgRlRESV9TSU9fU0VUX0ZMT1dfQ1RSTF9SRVFVRVNUX1RZUEUsCisJCQkJCSAgICB1cmJfdmFsdWUgLCAoRlRESV9TSU9fWE9OX1hPRkZfSFMKKwkJCQkJCQkgfCBwcml2LT5pbnRlcmZhY2UpLAorCQkJCQkgICAgYnVmLCAwLCBXRFJfVElNRU9VVCkgPCAwKSB7CisJCQkJZXJyKCJ1cmIgZmFpbGVkIHRvIHNldCB0byB4b24veG9mZiBmbG93IGNvbnRyb2wiKTsKKwkJCX0KKwkJfSBlbHNlIHsKKwkJCS8qIGVsc2UgY2xhdXNlIHRvIG9ubHkgcnVuIGlmIGNmYWcgISBDUlRTQ1RTIGFuZCBpZmxhZyAhIFhPRkYgKi8KKwkJCS8qIENIRUNLTUUgQXNzdW1pbmcgWE9OL1hPRkYgaGFuZGxlZCBieSB0dHkgc3RhY2sgLSBub3QgYnkgZGV2aWNlICovCisJCQlkYmcoIiVzIFR1cm5pbmcgb2ZmIGhhcmR3YXJlIGZsb3cgY29udHJvbCIsIF9fRlVOQ1RJT05fXyk7CisJCQlpZiAodXNiX2NvbnRyb2xfbXNnKGRldiwgCisJCQkJCSAgICB1c2Jfc25kY3RybHBpcGUoZGV2LCAwKSwKKwkJCQkJICAgIEZURElfU0lPX1NFVF9GTE9XX0NUUkxfUkVRVUVTVCwgCisJCQkJCSAgICBGVERJX1NJT19TRVRfRkxPV19DVFJMX1JFUVVFU1RfVFlQRSwKKwkJCQkJICAgIDAsIHByaXYtPmludGVyZmFjZSwgCisJCQkJCSAgICBidWYsIDAsIFdEUl9USU1FT1VUKSA8IDApIHsKKwkJCQllcnIoInVyYiBmYWlsZWQgdG8gY2xlYXIgZmxvdyBjb250cm9sIik7CisJCQl9CQkJCQorCQl9CisJCQorCX0KKwlyZXR1cm47Cit9IC8qIGZ0ZGlfdGVybWlvcyAqLworCisKK3N0YXRpYyBpbnQgZnRkaV90aW9jbWdldCAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJc3RydWN0IGZ0ZGlfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwl1bnNpZ25lZCBjaGFyIGJ1ZlsyXTsKKwlpbnQgcmV0OworCisJZGJnKCIlcyBUSU9DTUdFVCIsIF9fRlVOQ1RJT05fXyk7CisJc3dpdGNoIChwcml2LT5jaGlwX3R5cGUpIHsKKwljYXNlIFNJTzoKKwkJLyogUmVxdWVzdCB0aGUgc3RhdHVzIGZyb20gdGhlIGRldmljZSAqLworCQlpZiAoKHJldCA9IHVzYl9jb250cm9sX21zZyhwb3J0LT5zZXJpYWwtPmRldiwgCisJCQkJCSAgIHVzYl9yY3ZjdHJscGlwZShwb3J0LT5zZXJpYWwtPmRldiwgMCksCisJCQkJCSAgIEZURElfU0lPX0dFVF9NT0RFTV9TVEFUVVNfUkVRVUVTVCwgCisJCQkJCSAgIEZURElfU0lPX0dFVF9NT0RFTV9TVEFUVVNfUkVRVUVTVF9UWVBFLAorCQkJCQkgICAwLCAwLCAKKwkJCQkJICAgYnVmLCAxLCBXRFJfVElNRU9VVCkpIDwgMCApIHsKKwkJCWVycigiJXMgQ291bGQgbm90IGdldCBtb2RlbSBzdGF0dXMgb2YgZGV2aWNlIC0gZXJyOiAlZCIsIF9fRlVOQ1RJT05fXywKKwkJCSAgICByZXQpOworCQkJcmV0dXJuKHJldCk7CisJCX0KKwkJYnJlYWs7CisJY2FzZSBGVDhVMjMyQU06CisJY2FzZSBGVDIzMkJNOgorCWNhc2UgRlQyMjMyQzoKKwkJLyogdGhlIDhVMjMyQU0gcmV0dXJucyBhIHR3byBieXRlIHZhbHVlICh0aGUgc2lvIGlzIGEgMSBieXRlIHZhbHVlKSAtIGluIHRoZSBzYW1lCisJCSAgIGZvcm1hdCBhcyB0aGUgZGF0YSByZXR1cm5lZCBmcm9tIHRoZSBpbiBwb2ludCAqLworCQlpZiAoKHJldCA9IHVzYl9jb250cm9sX21zZyhwb3J0LT5zZXJpYWwtPmRldiwgCisJCQkJCSAgIHVzYl9yY3ZjdHJscGlwZShwb3J0LT5zZXJpYWwtPmRldiwgMCksCisJCQkJCSAgIEZURElfU0lPX0dFVF9NT0RFTV9TVEFUVVNfUkVRVUVTVCwgCisJCQkJCSAgIEZURElfU0lPX0dFVF9NT0RFTV9TVEFUVVNfUkVRVUVTVF9UWVBFLAorCQkJCQkgICAwLCBwcml2LT5pbnRlcmZhY2UsIAorCQkJCQkgICBidWYsIDIsIFdEUl9USU1FT1VUKSkgPCAwICkgeworCQkJZXJyKCIlcyBDb3VsZCBub3QgZ2V0IG1vZGVtIHN0YXR1cyBvZiBkZXZpY2UgLSBlcnI6ICVkIiwgX19GVU5DVElPTl9fLAorCQkJICAgIHJldCk7CisJCQlyZXR1cm4ocmV0KTsKKwkJfQorCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVGQVVMVDsKKwkJYnJlYWs7CisJfQorCQorCXJldHVybiAgKGJ1ZlswXSAmIEZURElfU0lPX0RTUl9NQVNLID8gVElPQ01fRFNSIDogMCkgfAorCQkoYnVmWzBdICYgRlRESV9TSU9fQ1RTX01BU0sgPyBUSU9DTV9DVFMgOiAwKSB8CisJCShidWZbMF0gICYgRlRESV9TSU9fUklfTUFTSyAgPyBUSU9DTV9SSSAgOiAwKSB8CisJCShidWZbMF0gICYgRlRESV9TSU9fUkxTRF9NQVNLID8gVElPQ01fQ0QgIDogMCkgfAorCQlwcml2LT5sYXN0X2R0cl9ydHM7CQkJCit9CisKK3N0YXRpYyBpbnQgZnRkaV90aW9jbXNldChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqIGZpbGUsIHVuc2lnbmVkIGludCBzZXQsIHVuc2lnbmVkIGludCBjbGVhcikKK3sKKwlpbnQgcmV0OworCQorCWRiZygiJXMgVElPQ01TRVQiLCBfX0ZVTkNUSU9OX18pOworCWlmIChzZXQgJiBUSU9DTV9EVFIpeworCQlpZiAoKHJldCA9IHNldF9kdHIocG9ydCwgSElHSCkpIDwgMCkgeworCQkJZXJyKCJVcmIgdG8gc2V0IERUUiBmYWlsZWQiKTsKKwkJCXJldHVybihyZXQpOworCQl9CisJfQorCWlmIChzZXQgJiBUSU9DTV9SVFMpIHsKKwkJaWYgKChyZXQgPSBzZXRfcnRzKHBvcnQsIEhJR0gpKSA8IDApeworCQkJZXJyKCJVcmIgdG8gc2V0IFJUUyBmYWlsZWQiKTsKKwkJCXJldHVybihyZXQpOworCQl9CisJfQorCQorCWlmIChjbGVhciAmIFRJT0NNX0RUUil7CisJCWlmICgocmV0ID0gc2V0X2R0cihwb3J0LCBMT1cpKSA8IDApeworCQkJZXJyKCJVcmIgdG8gdW5zZXQgRFRSIGZhaWxlZCIpOworCQkJcmV0dXJuKHJldCk7CisJCX0KKwl9CQorCWlmIChjbGVhciAmIFRJT0NNX1JUUykgeworCQlpZiAoKHJldCA9IHNldF9ydHMocG9ydCwgTE9XKSkgPCAwKXsKKwkJCWVycigiVXJiIHRvIHVuc2V0IFJUUyBmYWlsZWQiKTsKKwkJCXJldHVybihyZXQpOworCQl9CisJfQorCXJldHVybigwKTsKK30KKworCitzdGF0aWMgaW50IGZ0ZGlfaW9jdGwgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICogZmlsZSwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCit7CisJc3RydWN0IGZ0ZGlfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKworCWludCAgcmV0LCBtYXNrOworCQorCWRiZygiJXMgY21kIDB4JTA0eCIsIF9fRlVOQ1RJT05fXywgY21kKTsKKworCS8qIEJhc2VkIG9uIGNvZGUgZnJvbSBhY20uYyBhbmQgb3RoZXJzICovCisJc3dpdGNoIChjbWQpIHsKKworCWNhc2UgVElPQ01CSVM6IC8qIHR1cm5zIG9uIChTZXRzKSB0aGUgbGluZXMgYXMgc3BlY2lmaWVkIGJ5IHRoZSBtYXNrICovCisJCWRiZygiJXMgVElPQ01CSVMiLCBfX0ZVTkNUSU9OX18pOworIAkgICAgICAgIGlmIChnZXRfdXNlcihtYXNrLCAodW5zaWduZWQgbG9uZyBfX3VzZXIgKikgYXJnKSkKKwkJCXJldHVybiAtRUZBVUxUOworICAJICAgICAgICBpZiAobWFzayAmIFRJT0NNX0RUUil7CisJCQlpZiAoKHJldCA9IHNldF9kdHIocG9ydCwgSElHSCkpIDwgMCkgeworCQkJCWVycigiVXJiIHRvIHNldCBEVFIgZmFpbGVkIik7CisJCQkJcmV0dXJuKHJldCk7CisJCQl9CisJCX0KKwkJaWYgKG1hc2sgJiBUSU9DTV9SVFMpIHsKKwkJCWlmICgocmV0ID0gc2V0X3J0cyhwb3J0LCBISUdIKSkgPCAwKXsKKwkJCQllcnIoIlVyYiB0byBzZXQgUlRTIGZhaWxlZCIpOworCQkJCXJldHVybihyZXQpOworCQkJfQorCQl9CisJCXJldHVybigwKTsKKwkJYnJlYWs7CisKKwljYXNlIFRJT0NNQklDOiAvKiB0dXJucyBvZmYgKENsZWFycykgdGhlIGxpbmVzIGFzIHNwZWNpZmllZCBieSB0aGUgbWFzayAqLworCQlkYmcoIiVzIFRJT0NNQklDIiwgX19GVU5DVElPTl9fKTsKKyAJICAgICAgICBpZiAoZ2V0X3VzZXIobWFzaywgKHVuc2lnbmVkIGxvbmcgX191c2VyICopIGFyZykpCisJCQlyZXR1cm4gLUVGQVVMVDsKKyAgCSAgICAgICAgaWYgKG1hc2sgJiBUSU9DTV9EVFIpeworCQkJaWYgKChyZXQgPSBzZXRfZHRyKHBvcnQsIExPVykpIDwgMCl7CisJCQkJZXJyKCJVcmIgdG8gdW5zZXQgRFRSIGZhaWxlZCIpOworCQkJCXJldHVybihyZXQpOworCQkJfQorCQl9CQorCQlpZiAobWFzayAmIFRJT0NNX1JUUykgeworCQkJaWYgKChyZXQgPSBzZXRfcnRzKHBvcnQsIExPVykpIDwgMCl7CisJCQkJZXJyKCJVcmIgdG8gdW5zZXQgUlRTIGZhaWxlZCIpOworCQkJCXJldHVybihyZXQpOworCQkJfQorCQl9CisJCXJldHVybigwKTsKKwkJYnJlYWs7CisKKwkJLyoKKwkJICogSSBoYWQgb3JpZ2luYWxseSBpbXBsZW1lbnRlZCBUQ1NFVHtBLFN9eyxGLFd9IGFuZAorCQkgKiBUQ0dFVHtBLFN9IGhlcmUgc2VwYXJhdGVseSwgaG93ZXZlciB3aGVuIHRlc3RpbmcgSQorCQkgKiBmb3VuZCB0aGF0IHRoZSBoaWdoZXIgbGF5ZXJzIGFjdHVhbGx5IGRvIHRoZSB0ZXJtaW9zCisJCSAqIGNvbnZlcnNpb25zIHRoZW1zZWx2ZXMgYW5kIHBhc3MgdGhlIGNhbGwgb250bworCQkgKiBmdGRpX3Npb19zZXRfdGVybWlvcy4gCisJCSAqCisJCSAqLworCisJY2FzZSBUSU9DR1NFUklBTDogLyogZ2V0cyBzZXJpYWwgcG9ydCBkYXRhICovCisJCXJldHVybiBnZXRfc2VyaWFsX2luZm8ocG9ydCwgKHN0cnVjdCBzZXJpYWxfc3RydWN0IF9fdXNlciAqKSBhcmcpOworCisJY2FzZSBUSU9DU1NFUklBTDogLyogc2V0cyBzZXJpYWwgcG9ydCBkYXRhICovCisJCXJldHVybiBzZXRfc2VyaWFsX2luZm8ocG9ydCwgKHN0cnVjdCBzZXJpYWxfc3RydWN0IF9fdXNlciAqKSBhcmcpOworCisJLyoKKwkgKiBXYWl0IGZvciBhbnkgb2YgdGhlIDQgbW9kZW0gaW5wdXRzIChEQ0QsUkksRFNSLENUUykgdG8gY2hhbmdlCisJICogLSBtYXNrIHBhc3NlZCBpbiBhcmcgZm9yIGxpbmVzIG9mIGludGVyZXN0CisJICogICAodXNlIHwnZWQgVElPQ01fUk5HL0RTUi9DRC9DVFMgZm9yIG1hc2tpbmcpCisJICogQ2FsbGVyIHNob3VsZCB1c2UgVElPQ0dJQ09VTlQgdG8gc2VlIHdoaWNoIG9uZSBpdCB3YXMuCisJICoKKwkgKiBUaGlzIGNvZGUgaXMgYm9ycm93ZWQgZnJvbSBsaW51eC9kcml2ZXJzL2NoYXIvc2VyaWFsLmMKKwkgKi8KKwljYXNlIFRJT0NNSVdBSVQ6CisJCXdoaWxlIChwcml2ICE9IE5VTEwpIHsKKwkJCWludGVycnVwdGlibGVfc2xlZXBfb24oJnByaXYtPmRlbHRhX21zcl93YWl0KTsKKwkJCS8qIHNlZSBpZiBhIHNpZ25hbCBkaWQgaXQgKi8KKwkJCWlmIChzaWduYWxfcGVuZGluZyhjdXJyZW50KSkKKwkJCQlyZXR1cm4gLUVSRVNUQVJUU1lTOworCQkJZWxzZSB7CisJCQkJY2hhciBkaWZmID0gcHJpdi0+ZGlmZl9zdGF0dXM7CisKKwkJCQlpZiAoZGlmZiA9PSAwKSB7CisJCQkJCXJldHVybiAtRUlPOyAvKiBubyBjaGFuZ2UgPT4gZXJyb3IgKi8KKwkJCQl9CisKKwkJCQkvKiBDb25zdW1lIGFsbCBldmVudHMgKi8KKwkJCQlwcml2LT5kaWZmX3N0YXR1cyA9IDA7CisKKwkJCQkvKiBSZXR1cm4gMCBpZiBjYWxsZXIgd2FudGVkIHRvIGtub3cgYWJvdXQgdGhlc2UgYml0cyAqLworCQkJCWlmICggKChhcmcgJiBUSU9DTV9STkcpICYmIChkaWZmICYgRlRESV9SUzBfUkkpKSB8fAorCQkJCSAgICAgKChhcmcgJiBUSU9DTV9EU1IpICYmIChkaWZmICYgRlRESV9SUzBfRFNSKSkgfHwKKwkJCQkgICAgICgoYXJnICYgVElPQ01fQ0QpICAmJiAoZGlmZiAmIEZURElfUlMwX1JMU0QpKSB8fAorCQkJCSAgICAgKChhcmcgJiBUSU9DTV9DVFMpICYmIChkaWZmICYgRlRESV9SUzBfQ1RTKSkgKSB7CisJCQkJCXJldHVybiAwOworCQkJCX0KKwkJCQkvKgorCQkJCSAqIE90aGVyd2lzZSBjYWxsZXIgY2FuJ3QgY2FyZSBsZXNzIGFib3V0IHdoYXQgaGFwcGVuZWQsCisJCQkJICogYW5kIHNvIHdlIGNvbnRpbnVlIHRvIHdhaXQgZm9yIG1vcmUgZXZlbnRzLgorCQkJCSAqLworCQkJfQorCQl9CisJCXJldHVybigwKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJCQorCX0KKworCisJLyogVGhpcyBpcyBub3QgbmVjZXNzYXJpbHkgYW4gZXJyb3IgLSB0dXJucyBvdXQgdGhlIGhpZ2hlciBsYXllcnMgd2lsbCBkbyAKKwkgKiAgc29tZSBpb2N0bHMgaXRzZWxmIChzZWUgY29tbWVudCBhYm92ZSkKKwkgKi8KKwlkYmcoIiVzIGFyZyBub3Qgc3VwcG9ydGVkIC0gaXQgd2FzIDB4JTA0eCAtIGNoZWNrIC91c3IvaW5jbHVkZS9hc20vaW9jdGxzLmgiLCBfX0ZVTkNUSU9OX18sIGNtZCk7CisKKwlyZXR1cm4oLUVOT0lPQ1RMQ01EKTsKK30gLyogZnRkaV9pb2N0bCAqLworCisKK3N0YXRpYyB2b2lkIGZ0ZGlfdGhyb3R0bGUgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpCit7CisJc3RydWN0IGZ0ZGlfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+cnhfbG9jaywgZmxhZ3MpOworCXByaXYtPnJ4X2ZsYWdzIHw9IFRIUk9UVExFRDsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5yeF9sb2NrLCBmbGFncyk7Cit9CisKKworc3RhdGljIHZvaWQgZnRkaV91bnRocm90dGxlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCBmdGRpX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJaW50IGFjdHVhbGx5X3Rocm90dGxlZDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+cnhfbG9jaywgZmxhZ3MpOworCWFjdHVhbGx5X3Rocm90dGxlZCA9IHByaXYtPnJ4X2ZsYWdzICYgQUNUVUFMTFlfVEhST1RUTEVEOworCXByaXYtPnJ4X2ZsYWdzICY9IH4oVEhST1RUTEVEIHwgQUNUVUFMTFlfVEhST1RUTEVEKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5yeF9sb2NrLCBmbGFncyk7CisKKwlpZiAoYWN0dWFsbHlfdGhyb3R0bGVkKQorCQlmdGRpX3Byb2Nlc3NfcmVhZChwb3J0KTsKK30KKworc3RhdGljIGludCBfX2luaXQgZnRkaV9pbml0ICh2b2lkKQoreworCWludCByZXR2YWw7CisKKwlkYmcoIiVzIiwgX19GVU5DVElPTl9fKTsKKwlyZXR2YWwgPSB1c2Jfc2VyaWFsX3JlZ2lzdGVyKCZmdGRpX1NJT19kZXZpY2UpOworCWlmIChyZXR2YWwpCisJCWdvdG8gZmFpbGVkX1NJT19yZWdpc3RlcjsKKwlyZXR2YWwgPSB1c2Jfc2VyaWFsX3JlZ2lzdGVyKCZmdGRpXzhVMjMyQU1fZGV2aWNlKTsKKwlpZiAocmV0dmFsKQorCQlnb3RvIGZhaWxlZF84VTIzMkFNX3JlZ2lzdGVyOworCXJldHZhbCA9IHVzYl9zZXJpYWxfcmVnaXN0ZXIoJmZ0ZGlfRlQyMzJCTV9kZXZpY2UpOworCWlmIChyZXR2YWwpCisJCWdvdG8gZmFpbGVkX0ZUMjMyQk1fcmVnaXN0ZXI7CisJcmV0dmFsID0gdXNiX3NlcmlhbF9yZWdpc3RlcigmZnRkaV9GVDIyMzJDX2RldmljZSk7CisJaWYgKHJldHZhbCkKKwkJZ290byBmYWlsZWRfRlQyMjMyQ19yZWdpc3RlcjsKKwlyZXR2YWwgPSB1c2Jfc2VyaWFsX3JlZ2lzdGVyKCZmdGRpX1VTQl9VSVJUX2RldmljZSk7CisJaWYgKHJldHZhbCkKKwkJZ290byBmYWlsZWRfVVNCX1VJUlRfcmVnaXN0ZXI7CisJcmV0dmFsID0gdXNiX3NlcmlhbF9yZWdpc3RlcigmZnRkaV9IRV9USVJBMV9kZXZpY2UpOworCWlmIChyZXR2YWwpCisJCWdvdG8gZmFpbGVkX0hFX1RJUkExX3JlZ2lzdGVyOworCXJldHZhbCA9IHVzYl9yZWdpc3RlcigmZnRkaV9kcml2ZXIpOworCWlmIChyZXR2YWwpIAorCQlnb3RvIGZhaWxlZF91c2JfcmVnaXN0ZXI7CisKKwlpbmZvKERSSVZFUl9WRVJTSU9OICI6IiBEUklWRVJfREVTQyk7CisJcmV0dXJuIDA7CitmYWlsZWRfdXNiX3JlZ2lzdGVyOgorCXVzYl9zZXJpYWxfZGVyZWdpc3RlcigmZnRkaV9IRV9USVJBMV9kZXZpY2UpOworZmFpbGVkX0hFX1RJUkExX3JlZ2lzdGVyOgorCXVzYl9zZXJpYWxfZGVyZWdpc3RlcigmZnRkaV9VU0JfVUlSVF9kZXZpY2UpOworZmFpbGVkX1VTQl9VSVJUX3JlZ2lzdGVyOgorCXVzYl9zZXJpYWxfZGVyZWdpc3RlcigmZnRkaV9GVDIyMzJDX2RldmljZSk7CitmYWlsZWRfRlQyMjMyQ19yZWdpc3RlcjoKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIoJmZ0ZGlfRlQyMzJCTV9kZXZpY2UpOworZmFpbGVkX0ZUMjMyQk1fcmVnaXN0ZXI6CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyKCZmdGRpXzhVMjMyQU1fZGV2aWNlKTsKK2ZhaWxlZF84VTIzMkFNX3JlZ2lzdGVyOgorCXVzYl9zZXJpYWxfZGVyZWdpc3RlcigmZnRkaV9TSU9fZGV2aWNlKTsKK2ZhaWxlZF9TSU9fcmVnaXN0ZXI6CisJcmV0dXJuIHJldHZhbDsKK30KKworCitzdGF0aWMgdm9pZCBfX2V4aXQgZnRkaV9leGl0ICh2b2lkKQoreworCisJZGJnKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwl1c2JfZGVyZWdpc3RlciAoJmZ0ZGlfZHJpdmVyKTsKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIgKCZmdGRpX0hFX1RJUkExX2RldmljZSk7CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyICgmZnRkaV9VU0JfVUlSVF9kZXZpY2UpOworCXVzYl9zZXJpYWxfZGVyZWdpc3RlciAoJmZ0ZGlfRlQyMjMyQ19kZXZpY2UpOworCXVzYl9zZXJpYWxfZGVyZWdpc3RlciAoJmZ0ZGlfRlQyMzJCTV9kZXZpY2UpOworCXVzYl9zZXJpYWxfZGVyZWdpc3RlciAoJmZ0ZGlfOFUyMzJBTV9kZXZpY2UpOworCXVzYl9zZXJpYWxfZGVyZWdpc3RlciAoJmZ0ZGlfU0lPX2RldmljZSk7CisKK30KKworCittb2R1bGVfaW5pdChmdGRpX2luaXQpOworbW9kdWxlX2V4aXQoZnRkaV9leGl0KTsKKworTU9EVUxFX0FVVEhPUiggRFJJVkVSX0FVVEhPUiApOworTU9EVUxFX0RFU0NSSVBUSU9OKCBEUklWRVJfREVTQyApOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworCittb2R1bGVfcGFyYW0oZGVidWcsIGJvb2wsIFNfSVJVR08gfCBTX0lXVVNSKTsKK01PRFVMRV9QQVJNX0RFU0MoZGVidWcsICJEZWJ1ZyBlbmFibGVkIG9yIG5vdCIpOworCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW8uaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlNWQ2MGIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW8uaApAQCAtMCwwICsxLDc3NyBAQAorLyoKKyAqIERlZmluaXRpb25zIGZvciB0aGUgRlRESSBVU0IgU2luZ2xlIFBvcnQgU2VyaWFsIENvbnZlcnRlciAtIAorICoga25vd24gYXMgRlRESV9TSU8gKFNlcmlhbCBJbnB1dC9PdXRwdXQgYXBwbGljYXRpb24gb2YgdGhlIGNoaXBzZXQpIAorICoKKyAqIFRoZSBleGFtcGxlIEkgaGF2ZSBpcyBrbm93biBhcyB0aGUgVVNDLTEwMDAgd2hpY2ggaXMgYXZhaWxhYmxlIGZyb20KKyAqIGh0dHA6Ly93d3cuZHNlLmNvLm56IC0gY2F0IG5vIFhINDIxNCBJdCBsb29rcyBzaW1pbGFyIHRvIHRoaXM6CisgKiBodHRwOi8vd3d3LmRhbnNkYXRhLmNvbS91c2JzZXIuaHRtIGJ1dCBJIGNhbid0IGJlIHN1cmUgVGhlcmUgYXJlIG90aGVyCisgKiBVU0MtMTAwMHMgd2hpY2ggZG9uJ3QgbG9vayBsaWtlIG15IGRldmljZSB0aG91Z2ggc28gYmV3YXJlIQorICoKKyAqIFRoZSBkZXZpY2UgaXMgYmFzZWQgb24gdGhlIEZUREkgRlQ4VTEwMEFYIGNoaXAuIEl0IGhhcyBhIERCMjUgb24gb25lIHNpZGUsIAorICogVVNCIG9uIHRoZSBvdGhlci4KKyAqCisgKiBUaGFueCB0byBGVERJIChodHRwOi8vd3d3LmZ0ZGkuY28udWspIGZvciBzbyBraW5kbHkgcHJvdmlkaW5nIGRldGFpbHMKKyAqIG9mIHRoZSBwcm90b2NvbCByZXF1aXJlZCB0byB0YWxrIHRvIHRoZSBkZXZpY2UgYW5kIG9uZ29pbmcgYXNzaXN0ZW5jZQorICogZHVyaW5nIGRldmVsb3BtZW50LgorICoKKyAqIEJpbGwgUnlkZXIgLSBicnlkZXJAc2dpLmNvbSBmb3JtZXJseSBvZiBTaWxpY29uIEdyYXBoaWNzLCBJbmMuLSB3cm90ZSB0aGUgCisgKiBGVERJX1NJTyBpbXBsZW1lbnRhdGlvbi4KKyAqCisgKiBQaGlsaXBwIEf8aHJpbmcgLSBwZ0BmdXR1cmV3YXJlLmF0IC0gYWRkZWQgdGhlIERldmljZSBJRCBvZiB0aGUgVVNCIHJlbGFpcworICogZnJvbSBSdWRvbGYgR3VnbGVyCisgKgorICovCisKKyNkZWZpbmUgRlRESV9WSUQJMHgwNDAzCS8qIFZlbmRvciBJZCAqLworI2RlZmluZSBGVERJX1NJT19QSUQJMHg4MzcyCS8qIFByb2R1Y3QgSWQgU0lPIGFwcGxpY2F0aW9uIG9mIDhVMTAwQVggICovCisjZGVmaW5lIEZURElfOFUyMzJBTV9QSUQgMHg2MDAxIC8qIFNpbWlsYXIgZGV2aWNlIHRvIFNJTyBhYm92ZSAqLworI2RlZmluZSBGVERJXzhVMjMyQU1fQUxUX1BJRCAweDYwMDYgLyogRlRESSdzIGFsdGVybmF0ZSBQSUQgZm9yIGFib3ZlICovCisjZGVmaW5lIEZURElfOFUyMzJBTV9BTFRfQUxUX1BJRCAweGYzYzAgLyogRlRESSdzIHNlY29uZCBhbHRlcm5hdGUgUElEIGZvciBhYm92ZSAqLworI2RlZmluZSBGVERJXzhVMjIzMkNfUElEIDB4NjAxMCAvKiBEdWFsIGNoYW5uZWwgZGV2aWNlICovCisjZGVmaW5lIEZURElfUkVMQUlTX1BJRAkweEZBMTAgIC8qIFJlbGFpcyBkZXZpY2UgZnJvbSBSdWRvbGYgR3VnbGVyICovCisjZGVmaW5lIEZURElfTkZfUklDX1ZJRAkweDBEQ0QJLyogVmVuZG9yIElkICovCisjZGVmaW5lIEZURElfTkZfUklDX1BJRAkweDAwMDEJLyogUHJvZHVjdCBJZCAqLworCisvKiB3d3cuaXJ0cmFucy5kZSBkZXZpY2UgKi8KKyNkZWZpbmUgRlRESV9JUlRSQU5TX1BJRCAweEZDNjAgLyogUHJvZHVjdCBJZCAqLworCisvKiB3d3cuY3J5c3RhbGZvbnR6LmNvbSBkZXZpY2VzIC0gdGhhbnggZm9yIHByb3ZpZGluZyBmcmVlIGRldmljZXMgZm9yIGV2YWx1YXRpb24gISAqLworLyogdGhleSB1c2UgdGhlIGZ0ZGkgY2hpcHNldCBmb3IgdGhlIFVTQiBpbnRlcmZhY2UgYW5kIHRoZSB2ZW5kb3IgaWQgaXMgdGhlIHNhbWUgKi8KKyNkZWZpbmUgRlRESV9YRl82MzJfUElEIDB4RkMwOAkvKiA2MzI6IDE2eDIgQ2hhcmFjdGVyIERpc3BsYXkgKi8KKyNkZWZpbmUgRlRESV9YRl82MzRfUElEIDB4RkMwOQkvKiA2MzQ6IDIweDQgQ2hhcmFjdGVyIERpc3BsYXkgKi8KKyNkZWZpbmUgRlRESV9YRl81NDdfUElEIDB4RkMwQQkvKiA1NDc6IFR3byBsaW5lIERpc3BsYXkgKi8KKyNkZWZpbmUgRlRESV9YRl82MzNfUElEIDB4RkMwQgkvKiA2MzM6IDE2eDIgQ2hhcmFjdGVyIERpc3BsYXkgd2l0aCBLZXlzICovCisjZGVmaW5lIEZURElfWEZfNjMxX1BJRCAweEZDMEMJLyogNjMxOiAyMHgyIENoYXJhY3RlciBEaXNwbGF5ICovCisjZGVmaW5lIEZURElfWEZfNjM1X1BJRCAweEZDMEQJLyogNjM1OiAyMHg0IENoYXJhY3RlciBEaXNwbGF5ICovCisjZGVmaW5lIEZURElfWEZfNjQwX1BJRCAweEZDMEUJLyogNjQwOiBUd28gbGluZSBEaXNwbGF5ICovCisjZGVmaW5lIEZURElfWEZfNjQyX1BJRCAweEZDMEYJLyogNjQyOiBUd28gbGluZSBEaXNwbGF5ICovCisKKy8qIFZpZGVvIE5ldHdvcmtzIExpbWl0ZWQgLyBIb21lY2hvaWNlIGluIHRoZSBVSyB1c2UgYW4gZnRkaS1iYXNlZCBkZXZpY2UgZm9yIHRoZWlyIDFNYiAqLworLyogYnJvYWRiYW5kIGludGVybmV0IHNlcnZpY2UuICBUaGUgZm9sbG93aW5nIFBJRCBpcyBleGhpYml0ZWQgYnkgdGhlIHVzYiBkZXZpY2Ugc3VwcGxpZWQgKi8KKy8qICh0aGUgVklEIGlzIHRoZSBzdGFuZGFyZCBmdGRpIHZpZCAoRlRESV9WSUQpICovCisjZGVmaW5lIEZURElfVk5IQ1BDVVNCX0RfUElEIDB4ZmUzOCAvKiBQcm9kdWN0IElkICovCisKKy8qCisgKiBUaGUgZm9sbG93aW5nIGFyZSB0aGUgdmFsdWVzIGZvciB0aGUgTWF0cml4IE9yYml0YWwgTENEIGRpc3BsYXlzLAorICogd2hpY2ggYXJlIHRoZSBGVDIzMkJNICggc2ltaWxhciB0byB0aGUgOFUyMzJBTSApCisgKi8KKyNkZWZpbmUgRlRESV9NVFhPUkJfMF9QSUQgICAgICAweEZBMDAgIC8qIE1hdHJpeCBPcmJpdGFsIFByb2R1Y3QgSWQgKi8KKyNkZWZpbmUgRlRESV9NVFhPUkJfMV9QSUQgICAgICAweEZBMDEgIC8qIE1hdHJpeCBPcmJpdGFsIFByb2R1Y3QgSWQgKi8KKyNkZWZpbmUgRlRESV9NVFhPUkJfMl9QSUQgICAgICAweEZBMDIgIC8qIE1hdHJpeCBPcmJpdGFsIFByb2R1Y3QgSWQgKi8KKyNkZWZpbmUgRlRESV9NVFhPUkJfM19QSUQgICAgICAweEZBMDMgIC8qIE1hdHJpeCBPcmJpdGFsIFByb2R1Y3QgSWQgKi8KKyNkZWZpbmUgRlRESV9NVFhPUkJfNF9QSUQgICAgICAweEZBMDQgIC8qIE1hdHJpeCBPcmJpdGFsIFByb2R1Y3QgSWQgKi8KKyNkZWZpbmUgRlRESV9NVFhPUkJfNV9QSUQgICAgICAweEZBMDUgIC8qIE1hdHJpeCBPcmJpdGFsIFByb2R1Y3QgSWQgKi8KKyNkZWZpbmUgRlRESV9NVFhPUkJfNl9QSUQgICAgICAweEZBMDYgIC8qIE1hdHJpeCBPcmJpdGFsIFByb2R1Y3QgSWQgKi8KKworLyogSW50ZXJiaW9tZXRyaWNzIFVTQiBJL08gQm9hcmQgKi8KKy8qIERldmVsb3BlZCBmb3IgSW50ZXJiaW9tZXRyaWNzIGJ5IFJ1ZG9sZiBHdWdsZXIgKi8KKyNkZWZpbmUgSU5URVJCSU9NRVRSSUNTX1ZJRCAgICAgICAgICAgICAgMHgxMjA5CisjZGVmaW5lIElOVEVSQklPTUVUUklDU19JT0JPQVJEX1BJRCAgICAgIDB4MTAwMgorI2RlZmluZSBJTlRFUkJJT01FVFJJQ1NfTUlOSV9JT0JPQVJEX1BJRCAweDEwMDYKKworLyoKKyAqIFRoZSBmb2xsb3dpbmcgYXJlIHRoZSB2YWx1ZXMgZm9yIHRoZSBQZXJsZSBTeXN0ZW1zCisgKiBVbHRyYVBvcnQgVVNCIHNlcmlhbCBjb252ZXJ0ZXJzCisgKi8KKyNkZWZpbmUgRlRESV9QRVJMRV9VTFRSQVBPUlRfUElEIDB4RjBDMAkvKiBQZXJsZSBVbHRyYVBvcnQgUHJvZHVjdCBJZCAqLworCisvKgorICogVGhlIGZvbGxvd2luZyBhcmUgdGhlIHZhbHVlcyBmb3IgdGhlIFNlYWxldmVsIFNlYUxJTksrIGFkYXB0ZXJzLgorICogKE9yaWdpbmFsIGxpc3Qgc2VudCBieSBUdWFuIEhvYW5nLiAgSWFuIEFiYm90dCByZW5hbWVkIHRoZSBtYWNyb3MgYW5kCisgKiByZW1vdmVkIHNvbWUgUElEcyB0aGF0IGRvbid0IHNlZW0gdG8gbWF0Y2ggYW55IGV4aXN0aW5nIHByb2R1Y3RzLikKKyAqLworI2RlZmluZSBTRUFMRVZFTF9WSUQJCTB4MGM1MgkvKiBTZWFsZXZlbCBWZW5kb3IgSUQgKi8KKyNkZWZpbmUgU0VBTEVWRUxfMjEwMV9QSUQJMHgyMTAxCS8qIFNlYUxJTksrMjMyICgyMTAxLzIxMDUpICovCisjZGVmaW5lIFNFQUxFVkVMXzIxMDJfUElECTB4MjEwMgkvKiBTZWFMSU5LKzQ4NSAoMjEwMikgKi8KKyNkZWZpbmUgU0VBTEVWRUxfMjEwM19QSUQJMHgyMTAzCS8qIFNlYUxJTksrMjMySSAoMjEwMykgKi8KKyNkZWZpbmUgU0VBTEVWRUxfMjEwNF9QSUQJMHgyMTA0CS8qIFNlYUxJTksrNDg1SSAoMjEwNCkgKi8KKyNkZWZpbmUgU0VBTEVWRUxfMjIwMV8xX1BJRAkweDIyMTEJLyogU2VhUE9SVCsyLzIzMiAoMjIwMSkgUG9ydCAxICovCisjZGVmaW5lIFNFQUxFVkVMXzIyMDFfMl9QSUQJMHgyMjIxCS8qIFNlYVBPUlQrMi8yMzIgKDIyMDEpIFBvcnQgMiAqLworI2RlZmluZSBTRUFMRVZFTF8yMjAyXzFfUElECTB4MjIxMgkvKiBTZWFQT1JUKzIvNDg1ICgyMjAyKSBQb3J0IDEgKi8KKyNkZWZpbmUgU0VBTEVWRUxfMjIwMl8yX1BJRAkweDIyMjIJLyogU2VhUE9SVCsyLzQ4NSAoMjIwMikgUG9ydCAyICovCisjZGVmaW5lIFNFQUxFVkVMXzIyMDNfMV9QSUQJMHgyMjEzCS8qIFNlYVBPUlQrMiAoMjIwMykgUG9ydCAxICovCisjZGVmaW5lIFNFQUxFVkVMXzIyMDNfMl9QSUQJMHgyMjIzCS8qIFNlYVBPUlQrMiAoMjIwMykgUG9ydCAyICovCisjZGVmaW5lIFNFQUxFVkVMXzI0MDFfMV9QSUQJMHgyNDExCS8qIFNlYVBPUlQrNC8yMzIgKDI0MDEpIFBvcnQgMSAqLworI2RlZmluZSBTRUFMRVZFTF8yNDAxXzJfUElECTB4MjQyMQkvKiBTZWFQT1JUKzQvMjMyICgyNDAxKSBQb3J0IDIgKi8KKyNkZWZpbmUgU0VBTEVWRUxfMjQwMV8zX1BJRAkweDI0MzEJLyogU2VhUE9SVCs0LzIzMiAoMjQwMSkgUG9ydCAzICovCisjZGVmaW5lIFNFQUxFVkVMXzI0MDFfNF9QSUQJMHgyNDQxCS8qIFNlYVBPUlQrNC8yMzIgKDI0MDEpIFBvcnQgNCAqLworI2RlZmluZSBTRUFMRVZFTF8yNDAyXzFfUElECTB4MjQxMgkvKiBTZWFQT1JUKzQvNDg1ICgyNDAyKSBQb3J0IDEgKi8KKyNkZWZpbmUgU0VBTEVWRUxfMjQwMl8yX1BJRAkweDI0MjIJLyogU2VhUE9SVCs0LzQ4NSAoMjQwMikgUG9ydCAyICovCisjZGVmaW5lIFNFQUxFVkVMXzI0MDJfM19QSUQJMHgyNDMyCS8qIFNlYVBPUlQrNC80ODUgKDI0MDIpIFBvcnQgMyAqLworI2RlZmluZSBTRUFMRVZFTF8yNDAyXzRfUElECTB4MjQ0MgkvKiBTZWFQT1JUKzQvNDg1ICgyNDAyKSBQb3J0IDQgKi8KKyNkZWZpbmUgU0VBTEVWRUxfMjQwM18xX1BJRAkweDI0MTMJLyogU2VhUE9SVCs0ICgyNDAzKSBQb3J0IDEgKi8KKyNkZWZpbmUgU0VBTEVWRUxfMjQwM18yX1BJRAkweDI0MjMJLyogU2VhUE9SVCs0ICgyNDAzKSBQb3J0IDIgKi8KKyNkZWZpbmUgU0VBTEVWRUxfMjQwM18zX1BJRAkweDI0MzMJLyogU2VhUE9SVCs0ICgyNDAzKSBQb3J0IDMgKi8KKyNkZWZpbmUgU0VBTEVWRUxfMjQwM180X1BJRAkweDI0NDMJLyogU2VhUE9SVCs0ICgyNDAzKSBQb3J0IDQgKi8KKyNkZWZpbmUgU0VBTEVWRUxfMjgwMV8xX1BJRAkwWDI4MTEJLyogU2VhTElOSys4LzIzMiAoMjgwMSkgUG9ydCAxICovCisjZGVmaW5lIFNFQUxFVkVMXzI4MDFfMl9QSUQJMFgyODIxCS8qIFNlYUxJTksrOC8yMzIgKDI4MDEpIFBvcnQgMiAqLworI2RlZmluZSBTRUFMRVZFTF8yODAxXzNfUElECTBYMjgzMQkvKiBTZWFMSU5LKzgvMjMyICgyODAxKSBQb3J0IDMgKi8KKyNkZWZpbmUgU0VBTEVWRUxfMjgwMV80X1BJRAkwWDI4NDEJLyogU2VhTElOSys4LzIzMiAoMjgwMSkgUG9ydCA0ICovCisjZGVmaW5lIFNFQUxFVkVMXzI4MDFfNV9QSUQJMFgyODUxCS8qIFNlYUxJTksrOC8yMzIgKDI4MDEpIFBvcnQgNSAqLworI2RlZmluZSBTRUFMRVZFTF8yODAxXzZfUElECTBYMjg2MQkvKiBTZWFMSU5LKzgvMjMyICgyODAxKSBQb3J0IDYgKi8KKyNkZWZpbmUgU0VBTEVWRUxfMjgwMV83X1BJRAkwWDI4NzEJLyogU2VhTElOSys4LzIzMiAoMjgwMSkgUG9ydCA3ICovCisjZGVmaW5lIFNFQUxFVkVMXzI4MDFfOF9QSUQJMFgyODgxCS8qIFNlYUxJTksrOC8yMzIgKDI4MDEpIFBvcnQgOCAqLworI2RlZmluZSBTRUFMRVZFTF8yODAyXzFfUElECTBYMjgxMgkvKiBTZWFMSU5LKzgvNDg1ICgyODAyKSBQb3J0IDEgKi8KKyNkZWZpbmUgU0VBTEVWRUxfMjgwMl8yX1BJRAkwWDI4MjIJLyogU2VhTElOSys4LzQ4NSAoMjgwMikgUG9ydCAyICovCisjZGVmaW5lIFNFQUxFVkVMXzI4MDJfM19QSUQJMFgyODMyCS8qIFNlYUxJTksrOC80ODUgKDI4MDIpIFBvcnQgMyAqLworI2RlZmluZSBTRUFMRVZFTF8yODAyXzRfUElECTBYMjg0MgkvKiBTZWFMSU5LKzgvNDg1ICgyODAyKSBQb3J0IDQgKi8KKyNkZWZpbmUgU0VBTEVWRUxfMjgwMl81X1BJRAkwWDI4NTIJLyogU2VhTElOSys4LzQ4NSAoMjgwMikgUG9ydCA1ICovCisjZGVmaW5lIFNFQUxFVkVMXzI4MDJfNl9QSUQJMFgyODYyCS8qIFNlYUxJTksrOC80ODUgKDI4MDIpIFBvcnQgNiAqLworI2RlZmluZSBTRUFMRVZFTF8yODAyXzdfUElECTBYMjg3MgkvKiBTZWFMSU5LKzgvNDg1ICgyODAyKSBQb3J0IDcgKi8KKyNkZWZpbmUgU0VBTEVWRUxfMjgwMl84X1BJRAkwWDI4ODIJLyogU2VhTElOSys4LzQ4NSAoMjgwMikgUG9ydCA4ICovCisjZGVmaW5lIFNFQUxFVkVMXzI4MDNfMV9QSUQJMFgyODEzCS8qIFNlYUxJTksrOCAoMjgwMykgUG9ydCAxICovCisjZGVmaW5lIFNFQUxFVkVMXzI4MDNfMl9QSUQJMFgyODIzIAkvKiBTZWFMSU5LKzggKDI4MDMpIFBvcnQgMiAqLworI2RlZmluZSBTRUFMRVZFTF8yODAzXzNfUElECTBYMjgzMyAJLyogU2VhTElOSys4ICgyODAzKSBQb3J0IDMgKi8KKyNkZWZpbmUgU0VBTEVWRUxfMjgwM180X1BJRAkwWDI4NDMgCS8qIFNlYUxJTksrOCAoMjgwMykgUG9ydCA0ICovCisjZGVmaW5lIFNFQUxFVkVMXzI4MDNfNV9QSUQJMFgyODUzIAkvKiBTZWFMSU5LKzggKDI4MDMpIFBvcnQgNSAqLworI2RlZmluZSBTRUFMRVZFTF8yODAzXzZfUElECTBYMjg2MyAJLyogU2VhTElOSys4ICgyODAzKSBQb3J0IDYgKi8KKyNkZWZpbmUgU0VBTEVWRUxfMjgwM183X1BJRAkwWDI4NzMgCS8qIFNlYUxJTksrOCAoMjgwMykgUG9ydCA3ICovCisjZGVmaW5lIFNFQUxFVkVMXzI4MDNfOF9QSUQJMFgyODgzIAkvKiBTZWFMSU5LKzggKDI4MDMpIFBvcnQgOCAqLworCisvKgorICogRFNTLTIwIFN5bmMgU3RhdGlvbiBmb3IgU29ueSBFcmljc3NvbiBQODAwCisgKi8KKyAKKyNkZWZpbmUgRlRESV9EU1MyMF9QSUQgICAgICAgICAgMHhGQzgyICAKKworLyoKKyAqIEhvbWUgRWxlY3Ryb25pY3MgKHd3dy5ob21lLWVsZWN0cm8uY29tKSBVU0IgZ2FkZ2V0cworICovCisjZGVmaW5lIEZURElfSEVfVElSQTFfUElECTB4RkE3OAkvKiBUaXJhLTEgSVIgdHJhbmNlaXZlciAqLworCisvKiBVU0ItVUlSVCAtIEFuIGluZnJhcmVkIHJlY2VpdmVyIGFuZCB0cmFuc21pdHRlciB1c2luZyB0aGUgOFUyMzJBTSBjaGlwICovCisvKiBodHRwOi8vaG9tZS5lYXJ0aGxpbmsubmV0L35qcmhlZXMvVVNCVUlSVC9pbmRleC5odG0gKi8KKyNkZWZpbmUgRlRESV9VU0JfVUlSVF9QSUQJMHhGODUwCS8qIFByb2R1Y3QgSWQgKi8KKworLyogRUxWIFVTQiBNb2R1bGUgVU8xMDAgKFBJRCBzZW50IGJ5IFN0ZWZhbiBGcmluZ3MpICovCisjZGVmaW5lIEZURElfRUxWX1VPMTAwX1BJRAkweEZCNTgJLyogUHJvZHVjdCBJZCAqLworCisvKgorICogRGVmaW5pdGlvbnMgZm9yIElEIFRFQ0ggKHd3dy5pZHQtbmV0LmNvbSkgZGV2aWNlcworICovCisjZGVmaW5lIElEVEVDSF9WSUQJCTB4MEFDRAkvKiBJRCBURUNIIFZlbmRvciBJRCAqLworI2RlZmluZSBJRFRFQ0hfSURUMTIyMVVfUElECTB4MDMwMAkvKiBJRFQxMjIxVSBVU0IgdG8gUlMtMjMyIGFkYXB0ZXIgKi8KKworLyoKKyAqIERlZmluaXRpb25zIGZvciBPbW5pZGlyZWN0aW9uYWwgQ29udHJvbCBUZWNobm9sb2d5LCBJbmMuIGRldmljZXMKKyAqLworI2RlZmluZSBPQ1RfVklECQkJMHgwQjM5CS8qIE9DVCB2ZW5kb3IgSUQgKi8KKy8qIE5vdGU6IE9DVCBVUzEwMSBpcyBhbHNvIHJlYmFkZ2VkIGFzIERpY2sgU21pdGggRWxlY3Ryb25pY3MgKE5aKSBYSDYzODEgKi8KKy8qIEFsc28gcmViYWRnZWQgYXMgU0lJRyBJbmMuIG1vZGVsIFVTMjMwOCAqLworI2RlZmluZSBPQ1RfVVMxMDFfUElECQkweDA0MjEJLyogT0NUIFVTMTAxIFVTQiB0byBSUy0yMzIgKi8KKworLyogYW4gaW5mcmFyZWQgcmVjZWl2ZXIgZm9yIHVzZXIgYWNjZXNzIGNvbnRyb2wgd2l0aCBJUiB0YWdzICovCisjZGVmaW5lIEZURElfUElFR1JPVVBfUElECTB4RjIwOAkvKiBQcm9kdWN0IElkICovCisKKy8qCisgKiBQcm90ZWdvIHByb2R1Y3QgaWRzCisgKi8KKyNkZWZpbmUgUFJPVEVHT19TUEVDSUFMXzEJMHhGQzcwCS8qIHNwZWNpYWwvdW5rbm93biBkZXZpY2UgKi8KKyNkZWZpbmUgUFJPVEVHT19SMlgwCQkweEZDNzEJLyogUjIwMC1VU0IgVFJORyB1bml0IChSMjEwLCBSMjIwLCBhbmQgUjIzMCkgKi8KKyNkZWZpbmUgUFJPVEVHT19TUEVDSUFMXzMJMHhGQzcyCS8qIHNwZWNpYWwvdW5rbm93biBkZXZpY2UgKi8KKyNkZWZpbmUgUFJPVEVHT19TUEVDSUFMXzQJMHhGQzczCS8qIHNwZWNpYWwvdW5rbm93biBkZXZpY2UgKi8KKworLyoKKyAqIEd1ZGUgQW5hbG9nLSB1bmQgRGlnaXRhbHN5c3RlbWUgR21iSAorICovCisjZGVmaW5lIEZURElfR1VERUFEU19FODA4X1BJRCAgICAweEU4MDgKKyNkZWZpbmUgRlRESV9HVURFQURTX0U4MDlfUElEICAgIDB4RTgwOQorI2RlZmluZSBGVERJX0dVREVBRFNfRTgwQV9QSUQgICAgMHhFODBBCisjZGVmaW5lIEZURElfR1VERUFEU19FODBCX1BJRCAgICAweEU4MEIKKyNkZWZpbmUgRlRESV9HVURFQURTX0U4MENfUElEICAgIDB4RTgwQworI2RlZmluZSBGVERJX0dVREVBRFNfRTgwRF9QSUQgICAgMHhFODBECisjZGVmaW5lIEZURElfR1VERUFEU19FODBFX1BJRCAgICAweEU4MEUKKyNkZWZpbmUgRlRESV9HVURFQURTX0U4MEZfUElEICAgIDB4RTgwRgorI2RlZmluZSBGVERJX0dVREVBRFNfRTg4OF9QSUQgICAgMHhFODg4ICAvKiBFeHBlcnQgSVNETiBDb250cm9sIFVTQiAqLworI2RlZmluZSBGVERJX0dVREVBRFNfRTg4OV9QSUQgICAgMHhFODg5ICAvKiBVU0IgUlMtMjMyIE9wdG9CcmlkZ2UgKi8KKyNkZWZpbmUgRlRESV9HVURFQURTX0U4OEFfUElEICAgIDB4RTg4QQorI2RlZmluZSBGVERJX0dVREVBRFNfRTg4Ql9QSUQgICAgMHhFODhCCisjZGVmaW5lIEZURElfR1VERUFEU19FODhDX1BJRCAgICAweEU4OEMKKyNkZWZpbmUgRlRESV9HVURFQURTX0U4OERfUElEICAgIDB4RTg4RAorI2RlZmluZSBGVERJX0dVREVBRFNfRTg4RV9QSUQgICAgMHhFODhFCisjZGVmaW5lIEZURElfR1VERUFEU19FODhGX1BJRCAgICAweEU4OEYKKworLyoKKyAqIExpbnggVGVjaG5vbG9naWVzIHByb2R1Y3QgaWRzCisgKi8KKyNkZWZpbmUgTElOWF9TRE1VU0JRU1NfUElECTB4RjQ0OAkvKiBMaW54IFNETS1VU0ItUVMtUyAqLworI2RlZmluZSBMSU5YX01BU1RFUkRFVkVMMl9QSUQgICAweEY0NDkgICAvKiBMaW54IE1hc3RlciBEZXZlbG9wbWVudCAyLjAgKi8KKyNkZWZpbmUgTElOWF9GVVRVUkVfMF9QSUQgICAweEY0NEEgICAvKiBMaW54IGZ1dHVyZSBkZXZpY2UgKi8KKyNkZWZpbmUgTElOWF9GVVRVUkVfMV9QSUQgICAweEY0NEIgICAvKiBMaW54IGZ1dHVyZSBkZXZpY2UgKi8KKyNkZWZpbmUgTElOWF9GVVRVUkVfMl9QSUQgICAweEY0NEMgICAvKiBMaW54IGZ1dHVyZSBkZXZpY2UgKi8KKworLyogQ0NTIEluYy4gSUNEVS9JQ0RVNDAgcHJvZHVjdCBJRCAtIHRoZSBGVDIzMkJNIGlzIHVzZWQgaW4gYW4gaW4tY2lyY3VpdC1kZWJ1Z2dlciAqLworLyogdW5pdCBmb3IgUElDMTYncy9QSUMxOCdzICovCisjZGVmaW5lIEZURElfQ0NTSUNEVTIwXzBfUElEICAgIDB4RjlEMCAgICAgCisjZGVmaW5lIEZURElfQ0NTSUNEVTQwXzFfUElEICAgIDB4RjlEMSAgICAgCisKKy8qIEluc2lkZSBBY2Nlc3NvIGNvbnRhY3RsZXNzIHJlYWRlciAoaHR0cDovL3d3dy5pbnNpZGVmci5jb20pICovCisjZGVmaW5lIElOU0lERV9BQ0NFU1NPCQkweEZBRDAKKworLyoKKyAqIEludHJlcGlkIENvbnRyb2wgU3lzdGVtcyAoaHR0cDovL3d3dy5pbnRyZXBpZGNzLmNvbS8pIFZhbHVlQ0FOIGFuZCBOZW9WSQorICovCisjZGVmaW5lIElOVFJFUElEX1ZJRAkJMHgwOTNDCisjZGVmaW5lIElOVFJFUElEX1ZBTFVFQ0FOX1BJRAkweDA2MDEKKyNkZWZpbmUgSU5UUkVQSURfTkVPVklfUElECTB4MDcwMQorCisvKgorICogRmFsY29tIFdpcmVsZXNzIENvbW11bmljYXRpb25zIEdtYkgKKyAqLworI2RlZmluZSBGQUxDT01fVklECQkweDBGOTQJLyogVmVuZG9yIElkICovCisjZGVmaW5lIEZBTENPTV9UV0lTVF9QSUQJMHgwMDAxCS8qIEZhbGNvbSBUd2lzdCBVU0IgR1BSUyBtb2RlbSAqLworCisvKgorICogU1VVTlRPIHByb2R1Y3QgaWRzCisgKi8KKyNkZWZpbmUgRlRESV9TVVVOVE9fU1BPUlRTX1BJRAkweEY2ODAJLyogU3V1bnRvIFNwb3J0cyBpbnN0cnVtZW50ICovCisKKy8qCisgKiBEZWZpbml0aW9ucyBmb3IgQiZCIEVsZWN0cm9uaWNzIHByb2R1Y3RzLgorICovCisjZGVmaW5lIEJBTkRCX1ZJRAkJMHgwODU2CS8qIEImQiBFbGVjdHJvbmljcyBWZW5kb3IgSUQgKi8KKyNkZWZpbmUgQkFOREJfVVNPVEw0X1BJRAkweEFDMDEJLyogVVNPVEw0IElzb2xhdGVkIFJTLTQ4NSBDb252ZXJ0ZXIgKi8KKyNkZWZpbmUgQkFOREJfVVNUTDRfUElECQkweEFDMDIJLyogVVNUTDQgUlMtNDg1IENvbnZlcnRlciAqLworI2RlZmluZSBCQU5EQl9VU085TUwyX1BJRAkweEFDMDMJLyogVVNPOU1MMiBJc29sYXRlZCBSUy0yMzIgQ29udmVydGVyICovCisKKy8qCisgKiBSTSBNaWNoYWVsaWRlcyBDQU52aWV3IFVTQiAoaHR0cDovL3d3dy5ybWNhbi5jb20pCisgKiBDQU4gZmlsZWRidXMgaW50ZXJmYWNlIGFkYXB0ZXIsIGFkZGFkIGJ5IHBvcnQgR21iSCB3d3cucG9ydC5kZSkKKyAqLworI2RlZmluZSBGVERJX1JNX1ZJRAkJMHgwNDAzCS8qIFZlbmRvciAgSWQgKi8KKyNkZWZpbmUgRlRESV9STUNBTlZJRVdfUElECTB4ZmQ2MAkvKiBQcm9kdWN0IElkICovCisKKy8qCisgKiBFVkVSIEVjbyBQcm8gVVBTIChodHRwOi8vd3d3LmV2ZXIuY29tLnBsLykKKyAqLworCisjZGVmaW5lCUVWRVJfRUNPX1BST19DRFMJMHhlNTIwCS8qIFJTLTIzMiBjb252ZXJ0ZXIgKi8KKworLyogQ29tbWFuZHMgKi8KKyNkZWZpbmUgRlRESV9TSU9fUkVTRVQgCQkwIC8qIFJlc2V0IHRoZSBwb3J0ICovCisjZGVmaW5lIEZURElfU0lPX01PREVNX0NUUkwgCTEgLyogU2V0IHRoZSBtb2RlbSBjb250cm9sIHJlZ2lzdGVyICovCisjZGVmaW5lIEZURElfU0lPX1NFVF9GTE9XX0NUUkwJMiAvKiBTZXQgZmxvdyBjb250cm9sIHJlZ2lzdGVyICovCisjZGVmaW5lIEZURElfU0lPX1NFVF9CQVVEX1JBVEUJMyAvKiBTZXQgYmF1ZCByYXRlICovCisjZGVmaW5lIEZURElfU0lPX1NFVF9EQVRBCTQgLyogU2V0IHRoZSBkYXRhIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgcG9ydCAqLworI2RlZmluZSBGVERJX1NJT19HRVRfTU9ERU1fU1RBVFVTCTUgLyogUmV0cmlldmUgY3VycmVudCB2YWx1ZSBvZiBtb2Rlcm4gc3RhdHVzIHJlZ2lzdGVyICovCisjZGVmaW5lIEZURElfU0lPX1NFVF9FVkVOVF9DSEFSCTYgLyogU2V0IHRoZSBldmVudCBjaGFyYWN0ZXIgKi8KKyNkZWZpbmUgRlRESV9TSU9fU0VUX0VSUk9SX0NIQVIJNyAvKiBTZXQgdGhlIGVycm9yIGNoYXJhY3RlciAqLworI2RlZmluZSBGVERJX1NJT19TRVRfTEFURU5DWV9USU1FUgk5IC8qIFNldCB0aGUgbGF0ZW5jeSB0aW1lciAqLworI2RlZmluZSBGVERJX1NJT19HRVRfTEFURU5DWV9USU1FUgkxMCAvKiBHZXQgdGhlIGxhdGVuY3kgdGltZXIgKi8KKworLyogUG9ydCBpbnRlcmZhY2UgY29kZSBmb3IgRlQyMjMyQyAqLworI2RlZmluZSBJTlRFUkZBQ0VfQQkJMQorI2RlZmluZSBJTlRFUkZBQ0VfQgkJMgorCisKKy8qCisgKiAgIEJtUmVxdWVzdFR5cGU6ICAxMTAwIDAwMDBiCisgKiAgIGJSZXF1ZXN0OiAgICAgICBGVERJX0UyX1JFQUQKKyAqICAgd1ZhbHVlOiAgICAgICAgIDAKKyAqICAgd0luZGV4OiAgICAgICAgIEFkZHJlc3Mgb2Ygd29yZCB0byByZWFkCisgKiAgIHdMZW5ndGg6ICAgICAgICAyCisgKiAgIERhdGE6ICAgICAgICAgICBXaWxsIHJldHVybiBhIHdvcmQgb2YgZGF0YSBmcm9tIEUyQWRkcmVzcworICoKKyAqLworCisvKiBQb3J0IElkZW50aWZpZXIgVGFibGUgKi8KKyNkZWZpbmUgUElUX0RFRkFVTFQgCQkwIC8qIFNJT0EgKi8KKyNkZWZpbmUgUElUX1NJT0EJCTEgLyogU0lPQSAqLworLyogVGhlIGRldmljZSB0aGlzIGRyaXZlciBpcyB0ZXN0ZWQgd2l0aCBvbmUgaGFzIG9ubHkgb25lIHBvcnQgKi8KKyNkZWZpbmUgUElUX1NJT0IJCTIgLyogU0lPQiAqLworI2RlZmluZSBQSVRfUEFSQUxMRUwJCTMgLyogUGFyYWxsZWwgKi8KKworLyogRlRESV9TSU9fUkVTRVQgKi8KKyNkZWZpbmUgRlRESV9TSU9fUkVTRVRfUkVRVUVTVCBGVERJX1NJT19SRVNFVAorI2RlZmluZSBGVERJX1NJT19SRVNFVF9SRVFVRVNUX1RZUEUgMHg0MAorI2RlZmluZSBGVERJX1NJT19SRVNFVF9TSU8gMAorI2RlZmluZSBGVERJX1NJT19SRVNFVF9QVVJHRV9SWCAxCisjZGVmaW5lIEZURElfU0lPX1JFU0VUX1BVUkdFX1RYIDIKKworLyoKKyAqIEJtUmVxdWVzdFR5cGU6ICAwMTAwIDAwMDBCCisgKiBiUmVxdWVzdDogICAgICAgRlRESV9TSU9fUkVTRVQKKyAqIHdWYWx1ZTogICAgICAgICBDb250cm9sIFZhbHVlIAorICogICAgICAgICAgICAgICAgICAgMCA9IFJlc2V0IFNJTworICogICAgICAgICAgICAgICAgICAgMSA9IFB1cmdlIFJYIGJ1ZmZlcgorICogICAgICAgICAgICAgICAgICAgMiA9IFB1cmdlIFRYIGJ1ZmZlcgorICogd0luZGV4OiAgICAgICAgIFBvcnQKKyAqIHdMZW5ndGg6ICAgICAgICAwCisgKiBEYXRhOiAgICAgICAgICAgTm9uZQorICoKKyAqIFRoZSBSZXNldCBTSU8gY29tbWFuZCBoYXMgdGhpcyBlZmZlY3Q6CisgKgorICogICAgU2V0cyBmbG93IGNvbnRyb2wgc2V0IHRvICdub25lJworICogICAgRXZlbnQgY2hhciA9ICQwRAorICogICAgRXZlbnQgdHJpZ2dlciA9IGRpc2FibGVkCisgKiAgICBQdXJnZSBSWCBidWZmZXIKKyAqICAgIFB1cmdlIFRYIGJ1ZmZlcgorICogICAgQ2xlYXIgRFRSCisgKiAgICBDbGVhciBSVFMKKyAqICAgIGJhdWQgYW5kIGRhdGEgZm9ybWF0IG5vdCByZXNldAorICoKKyAqIFRoZSBQdXJnZSBSWCBhbmQgVFggYnVmZmVyIGNvbW1hbmRzIGFmZmVjdCBub3RoaW5nIGV4Y2VwdCB0aGUgYnVmZmVycworICoKKyAgICovCisKKy8qIEZURElfU0lPX1NFVF9CQVVEUkFURSAqLworI2RlZmluZSBGVERJX1NJT19TRVRfQkFVRFJBVEVfUkVRVUVTVF9UWVBFIDB4NDAKKyNkZWZpbmUgRlRESV9TSU9fU0VUX0JBVURSQVRFX1JFUVVFU1QgMworCisvKgorICogQm1SZXF1ZXN0VHlwZTogIDAxMDAgMDAwMEIKKyAqIGJSZXF1ZXN0OiAgICAgICBGVERJX1NJT19TRVRfQkFVRFJBVEUKKyAqIHdWYWx1ZTogICAgICAgICBCYXVkRGl2aXNvciB2YWx1ZSAtIHNlZSBiZWxvdworICogd0luZGV4OiAgICAgICAgIFBvcnQKKyAqIHdMZW5ndGg6ICAgICAgICAwCisgKiBEYXRhOiAgICAgICAgICAgTm9uZQorICogVGhlIEJhdWREaXZpc29yIHZhbHVlcyBhcmUgY2FsY3VsYXRlZCBhcyBmb2xsb3dzOgorICogLSBCYXNlQ2xvY2sgaXMgZWl0aGVyIDEyMDAwMDAwIG9yIDQ4MDAwMDAwIGRlcGVuZGluZyBvbiB0aGUgZGV2aWNlLiBGSVhNRTogSSB3aXNoCisgKiAgIEkga25ldyBob3cgdG8gZGV0ZWN0IG9sZCBjaGlwcyB0byBzZWxlY3QgcHJvcGVyIGJhc2UgY2xvY2shCisgKiAtIEJhdWREaXZpc29yIGlzIGEgZml4ZWQgcG9pbnQgbnVtYmVyIGVuY29kZWQgaW4gYSBmdW5ueSB3YXkuCisgKiAgICgtLVdST05HIFdBWSBPRiBUSElOS0lORy0tKQorICogICBCYXVkRGl2aXNvciBpcyBhIGZpeGVkIHBvaW50IG51bWJlciBlbmNvZGVkIHdpdGggZm9sbG93aW5nIGJpdCB3ZWlnaHM6CisgKiAgICgtMikoLTEpKDEzLi4wKS4gSXQgaXMgYSByYWRpY2FsIHdpdGggYSBkZW5vbWluYXRvciBvZiA0LCBzbyB2YWx1ZXMKKyAqICAgZW5kIHdpdGggMC4wICgwMC4uLiksIDAuMjUgKDEwLi4uKSwgMC41ICgwMS4uLiksIGFuZCAwLjc1ICgxMS4uLikuCisgKiAgICgtLVRIRSBSRUFMSVRZLS0pCisgKiAgIFRoZSBib3RoLWJpdHMtc2V0IGhhcyBxdWl0ZSBkaWZmZXJlbnQgbWVhbmluZyBmcm9tIDAuNzUgLSB0aGUgY2hpcCBkZXNpZ25lcnMKKyAqICAgaGF2ZSBkZWNpZGVkIGl0IHRvIG1lYW4gMC4xMjUgaW5zdGVhZCBvZiAwLjc1LgorICogICBUaGlzIGluZm8gbG9va2VkIHVwIGluIEZUREkgYXBwbGljYXRpb24gbm90ZSAiRlQ4VTIzMiBERVZJQ0VTIFwgRGF0YSBSYXRlcworICogICBhbmQgRmxvdyBDb250cm9sIENvbnNpZGVyYXRpb24gZm9yIFVTQiB0byBSUzIzMiIuCisgKiAtIEJhdWREaXZpc29yID0gKEJhc2VDbG9jayAvIDE2KSAvIEJhdWRSYXRlLCB3aGVyZSB0aGUgKD0pIG9wZXJhdGlvbiBzaG91bGQKKyAqICAgYXV0b21hZ2ljYWxseSByZS1lbmNvZGUgdGhlIHJlc3VsdGluZyB2YWx1ZSB0byB0YWtlIGZyYWN0aW9ucyBpbnRvIGNvbnNpZGVyYXRpb24uCisgKiBBcyBhbGwgdmFsdWVzIGFyZSBpbnRlZ2Vycywgc29tZSBiaXQgdHdpZGRsaW5nIGlzIGluIG9yZGVyOgorICogICBCYXVkRGl2aXNvciA9IChCYXNlQ2xvY2sgLyAxNiAvIEJhdWRSYXRlKSB8CisgKiAgICgoKEJhc2VDbG9jayAvIDIgLyBCYXVkUmF0ZSkgJiA0KSA/IDB4NDAwMCAgICAvLyAwLjUKKyAqICAgIDogKChCYXNlQ2xvY2sgLyAyIC8gQmF1ZFJhdGUpICYgMikgPyAweDgwMDAgIC8vIDAuMjUKKyAqICAgIDogKChCYXNlQ2xvY2sgLyAyIC8gQmF1ZFJhdGUpICYgMSkgPyAweGMwMDAgIC8vIDAuMTI1CisgKiAgICA6IDApCisgKgorICogRm9yIHRoZSBGVDIzMkJNLCBhIDE3dGggZGl2aXNvciBiaXQgd2FzIGludHJvZHVjZWQgdG8gZW5jb2RlIHRoZSBtdWx0aXBsZXMKKyAqIG9mIDAuMTI1IG1pc3NpbmcgZnJvbSB0aGUgRlQ4VTIzMkFNLiAgQml0cyAxNiB0byAxNCBhcmUgY29kZWQgYXMgZm9sbG93cworICogKHRoZSBmaXJzdCBmb3VyIGNvZGVzIGFyZSB0aGUgc2FtZSBhcyBmb3IgdGhlIEZUOFUyMzJBTSwgd2hlcmUgYml0IDE2IGlzCisgKiBhbHdheXMgMCk6CisgKiAgIDAwMCAtIGFkZCAuMDAwIHRvIGRpdmlzb3IKKyAqICAgMDAxIC0gYWRkIC41MDAgdG8gZGl2aXNvcgorICogICAwMTAgLSBhZGQgLjI1MCB0byBkaXZpc29yCisgKiAgIDAxMSAtIGFkZCAuMTI1IHRvIGRpdmlzb3IKKyAqICAgMTAwIC0gYWRkIC4zNzUgdG8gZGl2aXNvcgorICogICAxMDEgLSBhZGQgLjYyNSB0byBkaXZpc29yCisgKiAgIDExMCAtIGFkZCAuNzUwIHRvIGRpdmlzb3IKKyAqICAgMTExIC0gYWRkIC44NzUgdG8gZGl2aXNvcgorICogQml0cyAxNSB0byAwIG9mIHRoZSAxNy1iaXQgZGl2aXNvciBhcmUgcGxhY2VkIGluIHRoZSB1cmIgdmFsdWUuICBCaXQgMTYgaXMgCisgKiBwbGFjZWQgaW4gYml0IDAgb2YgdGhlIHVyYiBpbmRleC4KKyAqCisgKiBOb3RlIHRoYXQgdGhlcmUgYXJlIGEgY291cGxlIG9mIHNwZWNpYWwgY2FzZXMgdG8gc3VwcG9ydCB0aGUgaGlnaGVzdCBiYXVkCisgKiByYXRlcy4gIElmIHRoZSBjYWxjdWxhdGVkIGRpdmlzb3IgdmFsdWUgaXMgMSwgdGhpcyBuZWVkcyB0byBiZSByZXBsYWNlZCB3aXRoCisgKiAwLiAgQWRkaXRpb25hbGx5IGZvciB0aGUgRlQyMzJCTSwgaWYgdGhlIGNhbGN1bGF0ZWQgZGl2aXNvciB2YWx1ZSBpcyAweDQwMDEKKyAqICgxLjUpLCB0aGlzIG5lZWRzIHRvIGJlIHJlcGxhY2VkIHdpdGggMHgwMDAxICgxKSAoYnV0IHRoaXMgZGl2aXNvciB2YWx1ZSBpcworICogbm90IHN1cHBvcnRlZCBieSB0aGUgRlQ4VTIzMkFNKS4KKyAqLworCit0eXBlZGVmIGVudW0geworCVNJTyA9IDEsCisJRlQ4VTIzMkFNID0gMiwKKwlGVDIzMkJNID0gMywKKwlGVDIyMzJDID0gNCwKK30gZnRkaV9jaGlwX3R5cGVfdDsKKwordHlwZWRlZiBlbnVtIHsKKyBmdGRpX3Npb19iMzAwID0gMCwgCisgZnRkaV9zaW9fYjYwMCA9IDEsIAorIGZ0ZGlfc2lvX2IxMjAwID0gMiwKKyBmdGRpX3Npb19iMjQwMCA9IDMsCisgZnRkaV9zaW9fYjQ4MDAgPSA0LAorIGZ0ZGlfc2lvX2I5NjAwID0gNSwKKyBmdGRpX3Npb19iMTkyMDAgPSA2LAorIGZ0ZGlfc2lvX2IzODQwMCA9IDcsCisgZnRkaV9zaW9fYjU3NjAwID0gOCwKKyBmdGRpX3Npb19iMTE1MjAwID0gOQorfSBGVERJX1NJT19iYXVkcmF0ZV90IDsKKworLyoKKyAqIFRoZSBmdGRpXzhVMjMyQU1feHhNSHpfYnl5eSBjb25zdGFudHMgaGF2ZSBiZWVuIHJlbW92ZWQuIFRoZSBlbmNvZGVkIGRpdmlzb3IgdmFsdWVzCisgKiBhcmUgY2FsY3VsYXRlZCBpbnRlcm5hbGx5LgorICovCisKKyNkZWZpbmUgRlRESV9TSU9fU0VUX0RBVEFfUkVRVUVTVCBGVERJX1NJT19TRVRfREFUQQorI2RlZmluZSBGVERJX1NJT19TRVRfREFUQV9SRVFVRVNUX1RZUEUgMHg0MAorI2RlZmluZSBGVERJX1NJT19TRVRfREFUQV9QQVJJVFlfTk9ORSAoMHgwIDw8IDggKQorI2RlZmluZSBGVERJX1NJT19TRVRfREFUQV9QQVJJVFlfT0REICgweDEgPDwgOCApCisjZGVmaW5lIEZURElfU0lPX1NFVF9EQVRBX1BBUklUWV9FVkVOICgweDIgPDwgOCApCisjZGVmaW5lIEZURElfU0lPX1NFVF9EQVRBX1BBUklUWV9NQVJLICgweDMgPDwgOCApCisjZGVmaW5lIEZURElfU0lPX1NFVF9EQVRBX1BBUklUWV9TUEFDRSAoMHg0IDw8IDggKQorI2RlZmluZSBGVERJX1NJT19TRVRfREFUQV9TVE9QX0JJVFNfMSAoMHgwIDw8IDExICkKKyNkZWZpbmUgRlRESV9TSU9fU0VUX0RBVEFfU1RPUF9CSVRTXzE1ICgweDEgPDwgMTEgKQorI2RlZmluZSBGVERJX1NJT19TRVRfREFUQV9TVE9QX0JJVFNfMiAoMHgyIDw8IDExICkKKyNkZWZpbmUgRlRESV9TSU9fU0VUX0JSRUFLICgweDEgPDwgMTQpCisvKiBGVERJX1NJT19TRVRfREFUQSAqLworCisvKgorICogQm1SZXF1ZXN0VHlwZTogIDAxMDAgMDAwMEIgCisgKiBiUmVxdWVzdDogICAgICAgRlRESV9TSU9fU0VUX0RBVEEKKyAqIHdWYWx1ZTogICAgICAgICBEYXRhIGNoYXJhY3RlcmlzdGljcyAoc2VlIGJlbG93KQorICogd0luZGV4OiAgICAgICAgIFBvcnQKKyAqIHdMZW5ndGg6ICAgICAgICAwCisgKiBEYXRhOiAgICAgICAgICAgTm8KKyAqCisgKiBEYXRhIGNoYXJhY3RlcmlzdGljcworICoKKyAqICAgQjAuLjcgICBOdW1iZXIgb2YgZGF0YSBiaXRzCisgKiAgIEI4Li4xMCAgUGFyaXR5CisgKiAgICAgICAgICAgMCA9IE5vbmUKKyAqICAgICAgICAgICAxID0gT2RkCisgKiAgICAgICAgICAgMiA9IEV2ZW4KKyAqICAgICAgICAgICAzID0gTWFyaworICogICAgICAgICAgIDQgPSBTcGFjZQorICogICBCMTEuLjEzIFN0b3AgQml0cworICogICAgICAgICAgIDAgPSAxCisgKiAgICAgICAgICAgMSA9IDEuNQorICogICAgICAgICAgIDIgPSAyCisgKiAgIEIxNAorICogICAgICAgICAgIDEgPSBUWCBPTiAoYnJlYWspCisgKiAgICAgICAgICAgMCA9IFRYIE9GRiAobm9ybWFsIHN0YXRlKQorICogICBCMTUgUmVzZXJ2ZWQKKyAqCisgKi8KKworCisKKy8qIEZURElfU0lPX01PREVNX0NUUkwgKi8KKyNkZWZpbmUgRlRESV9TSU9fU0VUX01PREVNX0NUUkxfUkVRVUVTVF9UWVBFIDB4NDAKKyNkZWZpbmUgRlRESV9TSU9fU0VUX01PREVNX0NUUkxfUkVRVUVTVCBGVERJX1NJT19NT0RFTV9DVFJMCisKKy8qIAorICogQm1SZXF1ZXN0VHlwZTogICAwMTAwIDAwMDBCCisgKiBiUmVxdWVzdDogICAgICAgIEZURElfU0lPX01PREVNX0NUUkwKKyAqIHdWYWx1ZTogICAgICAgICAgQ29udHJvbFZhbHVlIChzZWUgYmVsb3cpCisgKiB3SW5kZXg6ICAgICAgICAgIFBvcnQKKyAqIHdMZW5ndGg6ICAgICAgICAgMAorICogRGF0YTogICAgICAgICAgICBOb25lCisgKgorICogTk9URTogSWYgdGhlIGRldmljZSBpcyBpbiBSVFMvQ1RTIGZsb3cgY29udHJvbCwgdGhlIFJUUyBzZXQgYnkgdGhpcworICogY29tbWFuZCB3aWxsIGJlIElHTk9SRUQgd2l0aG91dCBhbiBlcnJvciBiZWluZyByZXR1cm5lZAorICogQWxzbyAtIHlvdSBjYW4gbm90IHNldCBEVFIgYW5kIFJUUyB3aXRoIG9uZSBjb250cm9sIG1lc3NhZ2UKKyAqLworCisjZGVmaW5lIEZURElfU0lPX1NFVF9EVFJfTUFTSyAweDEKKyNkZWZpbmUgRlRESV9TSU9fU0VUX0RUUl9ISUdIICggMSB8ICggRlRESV9TSU9fU0VUX0RUUl9NQVNLICA8PCA4KSkKKyNkZWZpbmUgRlRESV9TSU9fU0VUX0RUUl9MT1cgICggMCB8ICggRlRESV9TSU9fU0VUX0RUUl9NQVNLICA8PCA4KSkKKyNkZWZpbmUgRlRESV9TSU9fU0VUX1JUU19NQVNLIDB4MgorI2RlZmluZSBGVERJX1NJT19TRVRfUlRTX0hJR0ggKCAyIHwgKCBGVERJX1NJT19TRVRfUlRTX01BU0sgPDwgOCApKQorI2RlZmluZSBGVERJX1NJT19TRVRfUlRTX0xPVyAoIDAgfCAoIEZURElfU0lPX1NFVF9SVFNfTUFTSyA8PCA4ICkpCisKKy8qCisgKiBDb250cm9sVmFsdWUKKyAqIEIwICAgIERUUiBzdGF0ZQorICogICAgICAgICAgMCA9IHJlc2V0CisgKiAgICAgICAgICAxID0gc2V0CisgKiBCMSAgICBSVFMgc3RhdGUKKyAqICAgICAgICAgIDAgPSByZXNldAorICogICAgICAgICAgMSA9IHNldAorICogQjIuLjcgUmVzZXJ2ZWQKKyAqIEI4ICAgIERUUiBzdGF0ZSBlbmFibGUKKyAqICAgICAgICAgIDAgPSBpZ25vcmUKKyAqICAgICAgICAgIDEgPSB1c2UgRFRSIHN0YXRlCisgKiBCOSAgICBSVFMgc3RhdGUgZW5hYmxlCisgKiAgICAgICAgICAwID0gaWdub3JlCisgKiAgICAgICAgICAxID0gdXNlIFJUUyBzdGF0ZQorICogQjEwLi4xNSBSZXNlcnZlZAorICovCisKKy8qIEZURElfU0lPX1NFVF9GTE9XX0NUUkwgKi8KKyNkZWZpbmUgRlRESV9TSU9fU0VUX0ZMT1dfQ1RSTF9SRVFVRVNUX1RZUEUgMHg0MAorI2RlZmluZSBGVERJX1NJT19TRVRfRkxPV19DVFJMX1JFUVVFU1QgRlRESV9TSU9fU0VUX0ZMT1dfQ1RSTAorI2RlZmluZSBGVERJX1NJT19ESVNBQkxFX0ZMT1dfQ1RSTCAweDAgCisjZGVmaW5lIEZURElfU0lPX1JUU19DVFNfSFMgKDB4MSA8PCA4KQorI2RlZmluZSBGVERJX1NJT19EVFJfRFNSX0hTICgweDIgPDwgOCkKKyNkZWZpbmUgRlRESV9TSU9fWE9OX1hPRkZfSFMgKDB4NCA8PCA4KQorLyoKKyAqICAgQm1SZXF1ZXN0VHlwZTogIDAxMDAgMDAwMGIKKyAqICAgYlJlcXVlc3Q6ICAgICAgIEZURElfU0lPX1NFVF9GTE9XX0NUUkwKKyAqICAgd1ZhbHVlOiAgICAgICAgIFhvZmYvWG9uCisgKiAgIHdJbmRleDogICAgICAgICBQcm90b2NvbC9Qb3J0IC0gaEluZGV4IGlzIHByb3RvY2wgLyBsSW5kZXggaXMgcG9ydAorICogICB3TGVuZ3RoOiAgICAgICAgMCAKKyAqICAgRGF0YTogICAgICAgICAgIE5vbmUKKyAqCisgKiBoSW5kZXggcHJvdG9jb2wgaXM6CisgKiAgIEIwIE91dHB1dCBoYW5kc2hha2luZyB1c2luZyBSVFMvQ1RTCisgKiAgICAgICAwID0gZGlzYWJsZWQKKyAqICAgICAgIDEgPSBlbmFibGVkCisgKiAgIEIxIE91dHB1dCBoYW5kc2hha2luZyB1c2luZyBEVFIvRFNSCisgKiAgICAgICAwID0gZGlzYWJsZWQKKyAqICAgICAgIDEgPSBlbmFibGVkCisgKiAgIEIyIFhvbi9Yb2ZmIGhhbmRzaGFraW5nCisgKiAgICAgICAwID0gZGlzYWJsZWQKKyAqICAgICAgIDEgPSBlbmFibGVkCisgKgorICogQSB2YWx1ZSBvZiB6ZXJvIGluIHRoZSBoSW5kZXggZmllbGQgZGlzYWJsZXMgaGFuZHNoYWtpbmcKKyAqCisgKiBJZiBYb24vWG9mZiBoYW5kc2hha2luZyBpcyBzcGVjaWZpZWQsIHRoZSBoVmFsdWUgZmllbGQgc2hvdWxkIGNvbnRhaW4gdGhlIFhPRkYgY2hhcmFjdGVyIAorICogYW5kIHRoZSBsVmFsdWUgZmllbGQgY29udGFpbnMgdGhlIFhPTiBjaGFyYWN0ZXIuCisgKi8gIAorIAorLyoKKyAqIEZURElfU0lPX0dFVF9MQVRFTkNZX1RJTUVSCisgKgorICogU2V0IHRoZSB0aW1lb3V0IGludGVydmFsLiBUaGUgRlRESSBjb2xsZWN0cyBkYXRhIGZyb20gdGhlIHNsYXZlCisgKiBkZXZpY2UsIHRyYW5zbWl0dGluZyBpdCB0byB0aGUgaG9zdCB3aGVuIGVpdGhlciBBKSA2MiBieXRlcyBhcmUKKyAqIHJlY2VpdmVkLCBvciBCKSB0aGUgdGltZW91dCBpbnRlcnZhbCBoYXMgZWxhcHNlZCBhbmQgdGhlIGJ1ZmZlcgorICogY29udGFpbnMgYXQgbGVhc3QgMSBieXRlLiAgU2V0dGluZyB0aGlzIHZhbHVlIHRvIGEgc21hbGwgbnVtYmVyCisgKiBjYW4gZHJhbWF0aWNhbGx5IGltcHJvdmUgcGVyZm9ybWFuY2UgZm9yIGFwcGxpY2F0aW9ucyB3aGljaCBzZW5kCisgKiBzbWFsbCBwYWNrZXRzLCBzaW5jZSB0aGUgZGVmYXVsdCB2YWx1ZSBpcyAxNm1zLgorICovCisjZGVmaW5lICBGVERJX1NJT19HRVRfTEFURU5DWV9USU1FUl9SRVFVRVNUIEZURElfU0lPX0dFVF9MQVRFTkNZX1RJTUVSCisjZGVmaW5lICBGVERJX1NJT19HRVRfTEFURU5DWV9USU1FUl9SRVFVRVNUX1RZUEUgMHhDMAorCisvKiAKKyAqICBCbVJlcXVlc3RUeXBlOiAgIDExMDAgMDAwMGIKKyAqICBiUmVxdWVzdDogICAgICAgIEZURElfU0lPX0dFVF9MQVRFTkNZX1RJTUVSCisgKiAgd1ZhbHVlOiAgICAgICAgICAwCisgKiAgd0luZGV4OiAgICAgICAgICBQb3J0CisgKiAgd0xlbmd0aDogICAgICAgICAwCisgKiAgRGF0YTogICAgICAgICAgICBsYXRlbmN5IChvbiByZXR1cm4pCisgKi8KKworLyogCisgKiBGVERJX1NJT19TRVRfTEFURU5DWV9USU1FUgorICoKKyAqIFNldCB0aGUgdGltZW91dCBpbnRlcnZhbC4gVGhlIEZUREkgY29sbGVjdHMgZGF0YSBmcm9tIHRoZSBzbGF2ZQorICogZGV2aWNlLCB0cmFuc21pdHRpbmcgaXQgdG8gdGhlIGhvc3Qgd2hlbiBlaXRoZXIgQSkgNjIgYnl0ZXMgYXJlCisgKiByZWNlaXZlZCwgb3IgQikgdGhlIHRpbWVvdXQgaW50ZXJ2YWwgaGFzIGVsYXBzZWQgYW5kIHRoZSBidWZmZXIKKyAqIGNvbnRhaW5zIGF0IGxlYXN0IDEgYnl0ZS4gIFNldHRpbmcgdGhpcyB2YWx1ZSB0byBhIHNtYWxsIG51bWJlcgorICogY2FuIGRyYW1hdGljYWxseSBpbXByb3ZlIHBlcmZvcm1hbmNlIGZvciBhcHBsaWNhdGlvbnMgd2hpY2ggc2VuZAorICogc21hbGwgcGFja2V0cywgc2luY2UgdGhlIGRlZmF1bHQgdmFsdWUgaXMgMTZtcy4KKyAqLworI2RlZmluZSAgRlRESV9TSU9fU0VUX0xBVEVOQ1lfVElNRVJfUkVRVUVTVCBGVERJX1NJT19TRVRfTEFURU5DWV9USU1FUgorI2RlZmluZSAgRlRESV9TSU9fU0VUX0xBVEVOQ1lfVElNRVJfUkVRVUVTVF9UWVBFIDB4NDAKKworLyogCisgKiAgQm1SZXF1ZXN0VHlwZTogICAwMTAwIDAwMDBiCisgKiAgYlJlcXVlc3Q6ICAgICAgICBGVERJX1NJT19TRVRfTEFURU5DWV9USU1FUgorICogIHdWYWx1ZTogICAgICAgICAgTGF0ZW5jeSAobWlsbGlzZWNvbmRzKQorICogIHdJbmRleDogICAgICAgICAgUG9ydAorICogIHdMZW5ndGg6ICAgICAgICAgMAorICogIERhdGE6ICAgICAgICAgICAgTm9uZQorICoKKyAqIHdWYWx1ZToKKyAqICAgQjAuLjcgICBMYXRlbmN5IHRpbWVyCisgKiAgIEI4Li4xNSAgMAorICoKKyAqLworCisvKgorICogRlRESV9TSU9fU0VUX0VWRU5UX0NIQVIgCisgKgorICogU2V0IHRoZSBzcGVjaWFsIGV2ZW50IGNoYXJhY3RlciBmb3IgdGhlIHNwZWNpZmllZCBjb21tdW5pY2F0aW9ucyBwb3J0LgorICogSWYgdGhlIGRldmljZSBzZWVzIHRoaXMgY2hhcmFjdGVyIGl0IHdpbGwgaW1tZWRpYXRlbHkgcmV0dXJuIHRoZQorICogZGF0YSByZWFkIHNvIGZhciAtIHJhdGhlciB0aGFuIHdhaXQgNDBtcyBvciB1bnRpbCA2MiBieXRlcyBhcmUgcmVhZAorICogd2hpY2ggaXMgd2hhdCBub3JtYWxseSBoYXBwZW5zLgorICovCisKKworI2RlZmluZSAgRlRESV9TSU9fU0VUX0VWRU5UX0NIQVJfUkVRVUVTVCBGVERJX1NJT19TRVRfRVZFTlRfQ0hBUgorI2RlZmluZSAgRlRESV9TSU9fU0VUX0VWRU5UX0NIQVJfUkVRVUVTVF9UWVBFIDB4NDAKKworCisvKiAKKyAqICBCbVJlcXVlc3RUeXBlOiAgIDAxMDAgMDAwMGIKKyAqICBiUmVxdWVzdDogICAgICAgIEZURElfU0lPX1NFVF9FVkVOVF9DSEFSCisgKiAgd1ZhbHVlOiAgICAgICAgICBFdmVudENoYXIKKyAqICB3SW5kZXg6ICAgICAgICAgIFBvcnQKKyAqICB3TGVuZ3RoOiAgICAgICAgIDAKKyAqICBEYXRhOiAgICAgICAgICAgIE5vbmUKKyAqCisgKiB3VmFsdWU6CisgKiAgIEIwLi43ICAgRXZlbnQgQ2hhcmFjdGVyCisgKiAgIEI4ICAgICAgRXZlbnQgQ2hhcmFjdGVyIFByb2Nlc3NpbmcKKyAqICAgICAgICAgICAgIDAgPSBkaXNhYmxlZAorICogICAgICAgICAgICAgMSA9IGVuYWJsZWQKKyAqICAgQjkuLjE1ICBSZXNlcnZlZAorICoKKyAqLworICAgICAgICAgIAorLyogRlRESV9TSU9fU0VUX0VSUk9SX0NIQVIgKi8KKworLyogU2V0IHRoZSBwYXJpdHkgZXJyb3IgcmVwbGFjZW1lbnQgY2hhcmFjdGVyIGZvciB0aGUgc3BlY2lmaWVkIGNvbW11bmljYXRpb25zIHBvcnQgKi8KKworLyogCisgKiAgQm1SZXF1ZXN0VHlwZTogIDAxMDAgMDAwMGIKKyAqICBiUmVxdWVzdDogICAgICAgRlRESV9TSU9fU0VUX0VWRU5UX0NIQVIKKyAqICB3VmFsdWU6ICAgICAgICAgRXJyb3IgQ2hhcgorICogIHdJbmRleDogICAgICAgICBQb3J0CisgKiAgd0xlbmd0aDogICAgICAgIDAKKyAqICBEYXRhOiAgICAgICAgICAgTm9uZQorICoKKyAqRXJyb3IgQ2hhcgorICogIEIwLi43ICBFcnJvciBDaGFyYWN0ZXIKKyAqICBCOCAgICAgRXJyb3IgQ2hhcmFjdGVyIFByb2Nlc3NpbmcKKyAqICAgICAgICAgICAwID0gZGlzYWJsZWQKKyAqICAgICAgICAgICAxID0gZW5hYmxlZAorICogIEI5Li4xNSBSZXNlcnZlZAorICoKKyAqLworCisvKiBGVERJX1NJT19HRVRfTU9ERU1fU1RBVFVTICovCisvKiBSZXRyZWl2ZSB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgbW9kZW0gc3RhdHVzIHJlZ2lzdGVyICovCisKKyNkZWZpbmUgRlRESV9TSU9fR0VUX01PREVNX1NUQVRVU19SRVFVRVNUX1RZUEUgMHhjMAorI2RlZmluZSBGVERJX1NJT19HRVRfTU9ERU1fU1RBVFVTX1JFUVVFU1QgRlRESV9TSU9fR0VUX01PREVNX1NUQVRVUworI2RlZmluZSBGVERJX1NJT19DVFNfTUFTSyAweDEwCisjZGVmaW5lIEZURElfU0lPX0RTUl9NQVNLIDB4MjAKKyNkZWZpbmUgRlRESV9TSU9fUklfTUFTSyAgMHg0MAorI2RlZmluZSBGVERJX1NJT19STFNEX01BU0sgMHg4MAorLyogCisgKiAgIEJtUmVxdWVzdFR5cGU6ICAgMTEwMCAwMDAwYgorICogICBiUmVxdWVzdDogICAgICAgIEZURElfU0lPX0dFVF9NT0RFTV9TVEFUVVMKKyAqICAgd1ZhbHVlOiAgICAgICAgICB6ZXJvCisgKiAgIHdJbmRleDogICAgICAgICAgUG9ydAorICogICB3TGVuZ3RoOiAgICAgICAgIDEKKyAqICAgRGF0YTogICAgICAgICAgICBTdGF0dXMKKyAqIAorICogT25lIGJ5dGUgb2YgZGF0YSBpcyByZXR1cm5lZCAKKyAqIEIwLi4zIDAKKyAqIEI0ICAgIENUUworICogICAgICAgICAwID0gaW5hY3RpdmUKKyAqICAgICAgICAgMSA9IGFjdGl2ZQorICogQjUgICAgRFNSCisgKiAgICAgICAgIDAgPSBpbmFjdGl2ZQorICogICAgICAgICAxID0gYWN0aXZlCisgKiBCNiAgICBSaW5nIEluZGljYXRvciAoUkkpCisgKiAgICAgICAgIDAgPSBpbmFjdGl2ZQorICogICAgICAgICAxID0gYWN0aXZlCisgKiBCNyAgICBSZWNlaXZlIExpbmUgU2lnbmFsIERldGVjdCAoUkxTRCkKKyAqICAgICAgICAgMCA9IGluYWN0aXZlCisgKiAgICAgICAgIDEgPSBhY3RpdmUgCisgKi8KKworCisKKy8qIERlc2NyaXB0b3JzIHJldHVybmVkIGJ5IHRoZSBkZXZpY2UgCisgKiAKKyAqICBEZXZpY2UgRGVzY3JpcHRvcgorICogCisgKiBPZmZzZXQJRmllbGQJCVNpemUJVmFsdWUJRGVzY3JpcHRpb24KKyAqIDAJYkxlbmd0aAkJMQkweDEyCVNpemUgb2YgZGVzY3JpcHRvciBpbiBieXRlcworICogMQliRGVzY3JpcHRvclR5cGUJMQkweDAxCURFVklDRSBEZXNjcmlwdG9yIFR5cGUKKyAqIDIJYmNkVVNCCQkyCTB4MDExMAlVU0IgU3BlYyBSZWxlYXNlIE51bWJlcgorICogNAliRGV2aWNlQ2xhc3MJMQkweDAwCUNsYXNzIENvZGUKKyAqIDUJYkRldmljZVN1YkNsYXNzCTEJMHgwMAlTdWJDbGFzcyBDb2RlCisgKiA2CWJEZXZpY2VQcm90b2NvbAkxCTB4MDAJUHJvdG9jb2wgQ29kZQorICogNwliTWF4UGFja2V0U2l6ZTAgMQkweDA4CU1heGltdW0gcGFja2V0IHNpemUgZm9yIGVuZHBvaW50IDAKKyAqIDgJaWRWZW5kb3IJMgkweDA0MDMJVmVuZG9yIElECisgKiAxMAlpZFByb2R1Y3QJMgkweDgzNzIJUHJvZHVjdCBJRCAoRlRESV9TSU9fUElEKQorICogMTIJYmNkRGV2aWNlCTIJMHgwMDAxCURldmljZSByZWxlYXNlIG51bWJlcgorICogMTQJaU1hbnVmYWN0dXJlcgkxCTB4MDEJSW5kZXggb2YgbWFuLiBzdHJpbmcgZGVzYworICogMTUJaVByb2R1Y3QJMQkweDAyCUluZGV4IG9mIHByb2Qgc3RyaW5nIGRlc2MKKyAqIDE2CWlTZXJpYWxOdW1iZXIJMQkweDAyCUluZGV4IG9mIHNlcmlhbCBubXIgc3RyaW5nIGRlc2MKKyAqIDE3CWJOdW1Db25maWd1cmF0aW9ucyAxICAgIDB4MDEJTnVtYmVyIG9mIHBvc3NpYmxlIGNvbmZpZ3VyYXRpb25zCisgKiAKKyAqIENvbmZpZ3VyYXRpb24gRGVzY3JpcHRvcgorICogCisgKiBPZmZzZXQJRmllbGQJCQlTaXplCVZhbHVlCisgKiAwCWJMZW5ndGgJCQkxCTB4MDkJU2l6ZSBvZiBkZXNjcmlwdG9yIGluIGJ5dGVzCisgKiAxCWJEZXNjcmlwdG9yVHlwZQkJMQkweDAyCUNPTkZJR1VSQVRJT04gRGVzY3JpcHRvciBUeXBlCisgKiAyCXdUb3RhbExlbmd0aAkJMgkweDAwMjAJVG90YWwgbGVuZ3RoIG9mIGRhdGEKKyAqIDQJYk51bUludGVyZmFjZXMJCTEJMHgwMQlOdW1iZXIgb2YgaW50ZXJmYWNlcyBzdXBwb3J0ZWQKKyAqIDUJYkNvbmZpZ3VyYXRpb25WYWx1ZQkxCTB4MDEJQXJndW1lbnQgZm9yIFNldENPbmZpZ3VyYXRpb24oKSByZXEKKyAqIDYJaUNvbmZpZ3VyYXRpb24JCTEJMHgwMglJbmRleCBvZiBjb25maWcgc3RyaW5nIGRlc2NyaXB0b3IKKyAqIDcJYm1BdHRyaWJ1dGVzCQkxCTB4MjAJQ29uZmlnIGNoYXJhY3RlcmlzdGljcyBSZW1vdGUgV2FrZXVwCisgKiA4CU1heFBvd2VyCQkxCTB4MUUJTWF4IHBvd2VyIGNvbnN1bXB0aW9uCisgKiAKKyAqIEludGVyZmFjZSBEZXNjcmlwdG9yCisgKiAKKyAqIE9mZnNldAlGaWVsZAkJCVNpemUJVmFsdWUKKyAqIDAJYkxlbmd0aAkJCTEJMHgwOQlTaXplIG9mIGRlc2NyaXB0b3IgaW4gYnl0ZXMKKyAqIDEJYkRlc2NyaXB0b3JUeXBlCQkxCTB4MDQJSU5URVJGQUNFIERlc2NyaXB0b3IgVHlwZQorICogMgliSW50ZXJmYWNlTnVtYmVyCTEJMHgwMAlOdW1iZXIgb2YgaW50ZXJmYWNlCisgKiAzCWJBbHRlcm5hdGVTZXR0aW5nCTEJMHgwMAlWYWx1ZSB1c2VkIHRvIHNlbGVjdCBhbHRlcm5hdGUKKyAqIDQJYk51bUVuZHBvaW50cwkJMQkweDAyCU51bWJlciBvZiBlbmRwb2ludHMKKyAqIDUJYkludGVyZmFjZUNsYXNzCQkxCTB4RkYJQ2xhc3MgQ29kZQorICogNgliSW50ZXJmYWNlU3ViQ2xhc3MJMQkweEZGCVN1YmNsYXNzIENvZGUKKyAqIDcJYkludGVyZmFjZVByb3RvY29sCTEJMHhGRglQcm90b2NvbCBDb2RlCisgKiA4CWlJbnRlcmZhY2UJCTEJMHgwMglJbmRleCBvZiBpbnRlcmZhY2Ugc3RyaW5nIGRlc2NyaXB0aW9uCisgKiAKKyAqIElOIEVuZHBvaW50IERlc2NyaXB0b3IKKyAqIAorICogT2Zmc2V0CUZpZWxkCQkJU2l6ZQlWYWx1ZQorICogMAliTGVuZ3RoCQkJMQkweDA3CVNpemUgb2YgZGVzY3JpcHRvciBpbiBieXRlcworICogMQliRGVzY3JpcHRvclR5cGUJCTEJMHgwNQlFTkRQT0lOVCBkZXNjcmlwdG9yIHR5cGUKKyAqIDIJYkVuZHBvaW50QWRkcmVzcwkxCTB4ODIJQWRkcmVzcyBvZiBlbmRwb2ludAorICogMwlibUF0dHJpYnV0ZXMJCTEJMHgwMglFbmRwb2ludCBhdHRyaWJ1dGVzIC0gQnVsaworICogNAliTnVtRW5kcG9pbnRzCQkyCTB4MDA0MAltYXhpbXVtIHBhY2tldCBzaXplCisgKiA1CWJJbnRlcnZhbAkJMQkweDAwCUludGVydmFsIGZvciBwb2xsaW5nIGVuZHBvaW50CisgKiAKKyAqIE9VVCBFbmRwb2ludCBEZXNjcmlwdG9yCisgKiAKKyAqIE9mZnNldAlGaWVsZAkJCVNpemUJVmFsdWUKKyAqIDAJYkxlbmd0aAkJCTEJMHgwNwlTaXplIG9mIGRlc2NyaXB0b3IgaW4gYnl0ZXMKKyAqIDEJYkRlc2NyaXB0b3JUeXBlCQkxCTB4MDUJRU5EUE9JTlQgZGVzY3JpcHRvciB0eXBlCisgKiAyCWJFbmRwb2ludEFkZHJlc3MJMQkweDAyCUFkZHJlc3Mgb2YgZW5kcG9pbnQKKyAqIDMJYm1BdHRyaWJ1dGVzCQkxCTB4MDIJRW5kcG9pbnQgYXR0cmlidXRlcyAtIEJ1bGsKKyAqIDQJYk51bUVuZHBvaW50cwkJMgkweDAwNDAJbWF4aW11bSBwYWNrZXQgc2l6ZQorICogNQliSW50ZXJ2YWwJCTEJMHgwMAlJbnRlcnZhbCBmb3IgcG9sbGluZyBlbmRwb2ludAorICogICAgIAorICogREFUQSBGT1JNQVQKKyAqIAorICogSU4gRW5kcG9pbnQKKyAqIAorICogVGhlIGRldmljZSByZXNlcnZlcyB0aGUgZmlyc3QgdHdvIGJ5dGVzIG9mIGRhdGEgb24gdGhpcyBlbmRwb2ludCB0byBjb250YWluIHRoZSBjdXJyZW50CisgKiB2YWx1ZXMgb2YgdGhlIG1vZGVtIGFuZCBsaW5lIHN0YXR1cyByZWdpc3RlcnMuIEluIHRoZSBhYnNlbmNlIG9mIGRhdGEsIHRoZSBkZXZpY2UgCisgKiBnZW5lcmF0ZXMgYSBtZXNzYWdlIGNvbnNpc3Rpbmcgb2YgdGhlc2UgdHdvIHN0YXR1cyBieXRlcyBldmVyeSA0MCBtcworICogCisgKiBCeXRlIDA6IE1vZGVtIFN0YXR1cworICogCisgKiBPZmZzZXQJRGVzY3JpcHRpb24KKyAqIEIwCVJlc2VydmVkIC0gbXVzdCBiZSAxCisgKiBCMQlSZXNlcnZlZCAtIG11c3QgYmUgMAorICogQjIJUmVzZXJ2ZWQgLSBtdXN0IGJlIDAKKyAqIEIzCVJlc2VydmVkIC0gbXVzdCBiZSAwCisgKiBCNAlDbGVhciB0byBTZW5kIChDVFMpCisgKiBCNQlEYXRhIFNldCBSZWFkeSAoRFNSKQorICogQjYJUmluZyBJbmRpY2F0b3IgKFJJKQorICogQjcJUmVjZWl2ZSBMaW5lIFNpZ25hbCBEZXRlY3QgKFJMU0QpCisgKiAKKyAqIEJ5dGUgMTogTGluZSBTdGF0dXMKKyAqIAorICogT2Zmc2V0CURlc2NyaXB0aW9uCisgKiBCMAlEYXRhIFJlYWR5IChEUikKKyAqIEIxCU92ZXJydW4gRXJyb3IgKE9FKQorICogQjIJUGFyaXR5IEVycm9yIChQRSkKKyAqIEIzCUZyYW1pbmcgRXJyb3IgKEZFKQorICogQjQJQnJlYWsgSW50ZXJydXB0IChCSSkKKyAqIEI1CVRyYW5zbWl0dGVyIEhvbGRpbmcgUmVnaXN0ZXIgKFRIUkUpCisgKiBCNglUcmFuc21pdHRlciBFbXB0eSAoVEVNVCkKKyAqIEI3CUVycm9yIGluIFJDVlIgRklGTworICogCisgKi8KKyNkZWZpbmUgRlRESV9SUzBfQ1RTCSgxIDw8IDQpCisjZGVmaW5lIEZURElfUlMwX0RTUgkoMSA8PCA1KQorI2RlZmluZSBGVERJX1JTMF9SSQkoMSA8PCA2KQorI2RlZmluZSBGVERJX1JTMF9STFNECSgxIDw8IDcpCisKKyNkZWZpbmUgRlRESV9SU19EUiAgMQorI2RlZmluZSBGVERJX1JTX09FICgxPDwxKQorI2RlZmluZSBGVERJX1JTX1BFICgxPDwyKQorI2RlZmluZSBGVERJX1JTX0ZFICgxPDwzKQorI2RlZmluZSBGVERJX1JTX0JJICgxPDw0KQorI2RlZmluZSBGVERJX1JTX1RIUkUgKDE8PDUpCisjZGVmaW5lIEZURElfUlNfVEVNVCAoMTw8NikKKyNkZWZpbmUgRlRESV9SU19GSUZPICAoMTw8NykKKworLyoKKyAqIE9VVCBFbmRwb2ludAorICogCisgKiBUaGlzIGRldmljZSByZXNlcnZlcyB0aGUgZmlyc3QgYnl0ZXMgb2YgZGF0YSBvbiB0aGlzIGVuZHBvaW50IGNvbnRhaW4gdGhlIGxlbmd0aAorICogYW5kIHBvcnQgaWRlbnRpZmllciBvZiB0aGUgbWVzc2FnZS4gRm9yIHRoZSBGVERJIFVTQiBTZXJpYWwgY29udmVydGVyIHRoZSBwb3J0IAorICogaWRlbnRpZmllciBpcyBhbHdheXMgMS4KKyAqIAorICogQnl0ZSAwOiBMaW5lIFN0YXR1cworICogCisgKiBPZmZzZXQJRGVzY3JpcHRpb24KKyAqIEIwCVJlc2VydmVkIC0gbXVzdCBiZSAxCisgKiBCMQlSZXNlcnZlZCAtIG11c3QgYmUgMAorICogQjIuLjcJTGVuZ3RoIG9mIG1lc3NhZ2UgLSAobm90IGluY2x1ZGluZyBCeXRlIDApCisgKiAKKyAqLworCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvZ2FybWluX2dwcy5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2dhcm1pbl9ncHMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZWY2MTRkCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2dhcm1pbl9ncHMuYwpAQCAtMCwwICsxLDE1NDEgQEAKKy8qCisgKiBHYXJtaW4gR1BTIGRyaXZlcgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNCBIZXJtYW5uIEtuZWlzc2VsIGhlcmtuZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKKyAqCisgKiBUaGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIGRyaXZlciBjYW4gYmUgZm91bmQgYXQKKyAqIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvZ2FybWluLWdwcy8KKyAqCisgKiBUaGlzIGRyaXZlciBoYXMgYmVlbiBkZXJpdmVkIGZyb20gdjIuMSBvZiB0aGUgdmlzb3IgZHJpdmVyLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMSBVU0EKKyAqLworCisjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CisjaW5jbHVkZSA8bGludXgvdHR5Lmg+CisjaW5jbHVkZSA8bGludXgvdHR5X2RyaXZlci5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eV9mbGlwLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgorCisvKiB0aGUgbW9kZSB0byBiZSBzZXQgd2hlbiB0aGUgcG9ydCBpc3Qgb3BlbmVkICovCitzdGF0aWMgaW50IGluaXRpYWxfbW9kZSA9IDE7CisKKy8qIGRlYnVnIGZsYWcgKi8KK3N0YXRpYyBpbnQgZGVidWcgPSAwOworCisjaW5jbHVkZSAidXNiLXNlcmlhbC5oIgorCisjZGVmaW5lIEdBUk1JTl9WRU5ET1JfSUQgICAgICAgICAgICAgMHgwOTFFCisKKy8qCisgKiBWZXJzaW9uIEluZm9ybWF0aW9uCisgKi8KKworI2RlZmluZSBWRVJTSU9OX01BSk9SCTAKKyNkZWZpbmUgVkVSU0lPTl9NSU5PUgkyMworCisjZGVmaW5lIF9TVFIocykgI3MKKyNkZWZpbmUgX0RSSVZFUl9WRVJTSU9OKGEsYikgInYiIF9TVFIoYSkgIi4iIF9TVFIoYikKKyNkZWZpbmUgRFJJVkVSX1ZFUlNJT04gX0RSSVZFUl9WRVJTSU9OKFZFUlNJT05fTUFKT1IsIFZFUlNJT05fTUlOT1IpCisjZGVmaW5lIERSSVZFUl9BVVRIT1IgImhlcm1hbm4ga25laXNzZWwiCisjZGVmaW5lIERSSVZFUl9ERVNDICJnYXJtaW4gZ3BzIGRyaXZlciIKKworLyogZXJyb3IgY29kZXMgcmV0dXJuZWQgYnkgdGhlIGRyaXZlciAqLworI2RlZmluZSBFSU5WUEtUCTEwMDAJLyogaW52YWxpZCBwYWNrZXQgc3RydWN0dXJlICovCisKKworLy8gc2l6ZSBvZiB0aGUgaGVhZGVyIG9mIGEgcGFja2V0IHVzaW5nIHRoZSB1c2IgcHJvdG9jb2wKKyNkZWZpbmUgR0FSTUlOX1BLVEhEUl9MRU5HVEgJMTIKKworLy8gbWF4LiBwb3NzaWJsZSBzaXplIG9mIGEgcGFja2V0IHVzaW5nIHRoZSBzZXJpYWwgcHJvdG9jb2wgCisjZGVmaW5lIE1BWF9TRVJJQUxfUEtUX1NJWiAoMysyNTUrMykKKworLy8gbWF4LiBwb3NzaWJsZSBzaXplIG9mIGEgcGFja2V0IHdpdGggd29yc3QgY2FzZSBzdHVmZmluZworI2RlZmluZSBNQVhfU0VSSUFMX1BLVF9TSVpfU1RVRkZFRCBNQVhfU0VSSUFMX1BLVF9TSVorMjU2CisKKy8vIHNpemUgb2YgYSBidWZmZXIgYWJsZSB0byBob2xkIGEgY29tcGxldGUgKG5vIHN0dWZmaW5nKSBwYWNrZXQKKy8vICh0aGUgZG9jdW1lbnQgcHJvdG9jb2wgZG9lcyBub3QgY29udGFpbiBwYWNrZXRzIHdpdGggYSBsYXJnZXIKKy8vICBzaXplLCBidXQgaW4gdGhlb3J5IGEgcGFja2V0IG1heSBiZSA2NGsrMTIgYnl0ZXMgLSBpZiBpbgorLy8gIGxhdGVyIHByb3RvY29sIHZlcnNpb25zIGxhcmdlciBwYWNrZXQgc2l6ZXMgb2NjdXIsIHRoaXMgdmFsdWUKKy8vICBzaG91bGQgYmUgaW5jcmVhc2VkIGFjY29yZGluZ2x5LCBzbyB0aGUgaW5wdXQgYnVmZmVyIGlzIGFsd2F5cyAKKy8vICBsYXJnZSBlbm91Z2ggdGhlIHN0b3JlIGEgY29tcGxldGUgcGFja2V0IGluY2x1c2l2ZSBoZWFkZXIpCisjZGVmaW5lIEdQU19JTl9CVUZTSVogIChHQVJNSU5fUEtUSERSX0xFTkdUSCtNQVhfU0VSSUFMX1BLVF9TSVopIAorCisvLyBzaXplIG9mIGEgYnVmZmVyIGFibGUgdG8gaG9sZCBhIGNvbXBsZXRlIChpbmNsLiBzdHVmZmluZykgcGFja2V0CisjZGVmaW5lIEdQU19PVVRfQlVGU0laIChHQVJNSU5fUEtUSERSX0xFTkdUSCtNQVhfU0VSSUFMX1BLVF9TSVpfU1RVRkZFRCkgCisKKy8vIHdoZXJlIHRvIHBsYWNlIHRoZSBwYWNrZXQgaWQgb2YgYSBzZXJpYWwgcGFja2V0LCBzbyB3ZSBjYW4KKy8vIHByZXBlbmQgdGhlIHVzYi1wYWNrZXQgaGVhZGVyIHdpdGhvdXQgdGhlIG5lZWQgdG8gbW92ZSB0aGUKKy8vIHBhY2tldHMgZGF0YQorI2RlZmluZSBHU1BfSU5JVElBTF9PRkZTRVQgKEdBUk1JTl9QS1RIRFJfTEVOR1RILTIpCisKKy8vIG1heC4gc2l6ZSBvZiBpbmNvbWluZyBwcml2YXRlIHBhY2tldHMgKGhlYWRlcisxIHBhcmFtKQorI2RlZmluZSBQUklWUEtUU0laIChHQVJNSU5fUEtUSERSX0xFTkdUSCs0KQorCisjZGVmaW5lIEdBUk1JTl9MQVlFUklEX1RSQU5TUE9SVCAgMAorI2RlZmluZSBHQVJNSU5fTEFZRVJJRF9BUFBMICAgICAgMjAKKy8vIG91ciBvd24gbGF5ZXItaWQgdG8gdXNlIGZvciBzb21lIGNvbnRyb2wgbWVjaGFuaXNtcworI2RlZmluZSBHQVJNSU5fTEFZRVJJRF9QUklWQVRFCTB4MDExMDZFNEIKKworI2RlZmluZSBHQVJNSU5fUEtUSURfUFZUX0RBVEEJNTEKKyNkZWZpbmUgR0FSTUlOX1BLVElEX0wwMDFfQ09NTUFORF9EQVRBIDEwCisKKyNkZWZpbmUgQ01ORF9BQk9SVF9UUkFOU0ZFUiAwCisKKy8vIHBhY2tldCBpZHMgdXNlZCBpbiBwcml2YXRlIGxheWVyCisjZGVmaW5lIFBSSVZfUEtUSURfU0VUX0RFQlVHCTEKKyNkZWZpbmUgUFJJVl9QS1RJRF9TRVRfTU9ERQkyCisjZGVmaW5lIFBSSVZfUEtUSURfSU5GT19SRVEJMworI2RlZmluZSBQUklWX1BLVElEX0lORk9fUkVTUAk0CisjZGVmaW5lIFBSSVZfUEtUSURfUkVTRVRfUkVRCTUKKyNkZWZpbmUgUFJJVl9QS1RJRF9TRVRfREVGX01PREUJNgorCisKKyNkZWZpbmUgRVRYCTB4MDMKKyNkZWZpbmUgRExFCTB4MTAKKyNkZWZpbmUgQUNLCTB4MDYKKyNkZWZpbmUgTkFLCTB4MTUKKworLyogc3RydWN0dXJlIHVzZWQgdG8gcXVldWUgaW5jb21pbmcgcGFja2V0cyAqLworc3RydWN0IGdhcm1pbl9wYWNrZXQgeworCXN0cnVjdCBsaXN0X2hlYWQgIGxpc3Q7CisJaW50ICAgICAgICAgICAgICAgc2VxOworCWludCAgICAgICAgICAgICAgIHNpemU7IC8vIHRoZSByZWFsIHNpemUgb2YgdGhlIGRhdGEgYXJyYXksIGFsd2F5cyA+IDAKKwlfX3U4ICAgICAgICAgICAgICBkYXRhWzFdOworfTsKKworLyogc3RydWN0dXJlIHVzZWQgdG8ga2VlcCB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgZHJpdmVyICovCitzdHJ1Y3QgZ2FybWluX2RhdGEgeworCV9fdTggICBzdGF0ZTsKKwlfX3UxNiAgZmxhZ3M7CisJX191OCAgIG1vZGU7CisJX191OCAgIGlnbm9yZVBrdHM7CisJX191OCAgIGNvdW50OworCV9fdTggICBwa3RfaWQ7CisJX191MzIgIHNlcmlhbF9udW07CisJc3RydWN0IHRpbWVyX2xpc3QgdGltZXI7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydDsKKwlpbnQgICAgc2VxX2NvdW50ZXI7CisJaW50ICAgIGluc2l6ZTsKKwlpbnQgICAgb3V0c2l6ZTsKKwlfX3U4ICAgaW5idWZmZXIgW0dQU19JTl9CVUZTSVpdOyAgLyogdHR5IC0+IHVzYiAqLworCV9fdTggICBvdXRidWZmZXJbR1BTX09VVF9CVUZTSVpdOyAvKiB1c2IgLT4gdHR5ICovCisJX191OCAgIHByaXZwa3RbNCo2XTsKKwlzcGlubG9ja190IGxvY2s7CisJc3RydWN0IGxpc3RfaGVhZCBwa3RsaXN0OworfTsKKworCisjZGVmaW5lIFNUQVRFX05FVyAgICAgICAgICAgIDAKKyNkZWZpbmUgU1RBVEVfSU5JVElBTF9ERUxBWSAgMQorI2RlZmluZSBTVEFURV9USU1FT1VUICAgICAgICAyCisjZGVmaW5lIFNUQVRFX1NFU1NJT05fUkVRMSAgIDMKKyNkZWZpbmUgU1RBVEVfU0VTU0lPTl9SRVEyICAgNAorI2RlZmluZSBTVEFURV9BQ1RJVkUgICAgICAgICA1CisKKyNkZWZpbmUgU1RBVEVfUkVTRVQJICAgICA4CisjZGVmaW5lIFNUQVRFX0RJU0NPTk5FQ1RFRCAgIDkKKyNkZWZpbmUgU1RBVEVfV0FJVF9UVFlfQUNLICAxMAorI2RlZmluZSBTVEFURV9HU1BfV0FJVF9EQVRBIDExCisKKyNkZWZpbmUgTU9ERV9OQVRJVkUgICAgICAgICAgMAorI2RlZmluZSBNT0RFX0dBUk1JTl9TRVJJQUwgICAxCisKKy8vIEZsYWdzIHVzZWQgaW4gZ2FybWluX2RhdGEuZmxhZ3M6CisjZGVmaW5lIEZMQUdTX1NFU1NJT05fUkVQTFlfTUFTSyAgMHgwMEMwCisjZGVmaW5lIEZMQUdTX1NFU1NJT05fUkVQTFkxX1NFRU4gMHgwMDgwCisjZGVmaW5lIEZMQUdTX1NFU1NJT05fUkVQTFkyX1NFRU4gMHgwMDQwCisjZGVmaW5lIEZMQUdTX0JVTEtfSU5fQUNUSVZFICAgICAgMHgwMDIwCisjZGVmaW5lIEZMQUdTX1RIUk9UVExFRCAgICAgICAgICAgMHgwMDEwCisjZGVmaW5lIENMRUFSX0hBTFRfUkVRVUlSRUQgICAgICAgMHgwMDAxCisKKyNkZWZpbmUgRkxBR1NfUVVFVUlORyAgICAgICAgICAgICAweDAxMDAKKyNkZWZpbmUgRkxBR1NfQVBQX1JFU1BfU0VFTiAgICAgICAweDAyMDAKKyNkZWZpbmUgRkxBR1NfQVBQX1JFUV9TRUVOICAgICAgICAweDA0MDAKKyNkZWZpbmUgRkxBR1NfRFJPUF9EQVRBICAgICAgICAgICAweDA4MDAKKworI2RlZmluZSBGTEFHU19HU1BfU0tJUCAgICAgICAgICAgIDB4MTAwMAorI2RlZmluZSBGTEFHU19HU1BfRExFU0VFTiAgICAgICAgIDB4MjAwMAorCisKKworCisKKworLyogZnVuY3Rpb24gcHJvdG90eXBlcyAqLworc3RhdGljIHZvaWQgZ3NwX25leHRfcGFja2V0KHN0cnVjdCBnYXJtaW5fZGF0YSAqIGdhcm1pbl9kYXRhX3ApOworc3RhdGljIGludCAgZ2FybWluX3dyaXRlX2J1bGsoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwKKwkJCSAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpOworCisvKiBzb21lIHNwZWNpYWwgcGFja2V0cyB0byBiZSBzZW5kIG9yIHJlY2VpdmVkICovCitzdGF0aWMgdW5zaWduZWQgY2hhciBjb25zdCBHQVJNSU5fU1RBUlRfU0VTU0lPTl9SRVFbXQorCT0geyAwLCAwLCAwLCAwLCAgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCB9Oworc3RhdGljIHVuc2lnbmVkIGNoYXIgY29uc3QgR0FSTUlOX1NUQVJUX1NFU1NJT05fUkVRMltdCisJPSB7IDAsIDAsIDAsIDAsIDE2LCAwLCAwLCAwLCAwLCAwLCAwLCAwIH07CitzdGF0aWMgdW5zaWduZWQgY2hhciBjb25zdCBHQVJNSU5fU1RBUlRfU0VTU0lPTl9SRVBMWVtdCisJPSB7IDAsIDAsIDAsIDAsICA2LCAwLCAwLCAwLCA0LCAwLCAwLCAwIH07CitzdGF0aWMgdW5zaWduZWQgY2hhciBjb25zdCBHQVJNSU5fU0VTU0lPTl9BQ1RJVkVfUkVQTFlbXQorCT0geyAwLCAwLCAwLCAwLCAxNywgMCwgMCwgMCwgNCwgMCwgMCwgMCwgMCwgMTYsIDAsIDAgfTsKK3N0YXRpYyB1bnNpZ25lZCBjaGFyIGNvbnN0IEdBUk1JTl9CVUxLX0lOX0FWQUlMX1JFUExZW10KKwk9IHsgMCwgMCwgMCwgMCwgIDIsIDAsIDAsIDAsIDAsIDAsIDAsIDAgfTsKK3N0YXRpYyB1bnNpZ25lZCBjaGFyIGNvbnN0IEdBUk1JTl9BUFBfTEFZRVJfUkVQTFlbXQorCT0geyAweDE0LCAwLCAwLCAwIH07CitzdGF0aWMgdW5zaWduZWQgY2hhciBjb25zdCBHQVJNSU5fU1RBUlRfUFZUX1JFUVtdCisJPSB7IDIwLCAwLCAwLCAwLCAgMTAsIDAsIDAsIDAsIDIsIDAsIDAsIDAsIDQ5LCAwIH07CitzdGF0aWMgdW5zaWduZWQgY2hhciBjb25zdCBHQVJNSU5fU1RPUF9QVlRfUkVRW10KKwk9IHsgMjAsIDAsIDAsIDAsICAxMCwgMCwgMCwgMCwgMiwgMCwgMCwgMCwgNTAsIDAgfTsKK3N0YXRpYyB1bnNpZ25lZCBjaGFyIGNvbnN0IEdBUk1JTl9TVE9QX1RSQU5TRkVSX1JFUVtdCisJPSB7IDIwLCAwLCAwLCAwLCAgMTAsIDAsIDAsIDAsIDIsIDAsIDAsIDAsIDAsIDAgfTsKK3N0YXRpYyB1bnNpZ25lZCBjaGFyIGNvbnN0IEdBUk1JTl9TVE9QX1RSQU5TRkVSX1JFUV9WMltdCisJPSB7IDIwLCAwLCAwLCAwLCAgMTAsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAgfTsKK3N0YXRpYyB1bnNpZ25lZCBjaGFyIGNvbnN0IFBSSVZBVEVfUkVRW10KKwk9ICAgIHsgMHg0QiwgMHg2RSwgMHgxMCwgMHgwMSwgIDB4RkYsIDAsIDAsIDAsIDB4RkYsIDAsIDAsIDAgfTsKKworCisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90YWJsZSBbXSA9IHsKKwkvKiB0aGUgc2FtZSBkZXZpY2UgaWQgc2VlbXMgdG8gYmUgdXNlZCBieSBhbGwgdXNiIGVuYWJsZWQgZ3BzIGRldmljZXMgKi8KKwl7IFVTQl9ERVZJQ0UoR0FSTUlOX1ZFTkRPUl9JRCwgMyApIH0sCisJeyB9CQkJCQkvKiBUZXJtaW5hdGluZyBlbnRyeSAqLworfTsKKworTU9EVUxFX0RFVklDRV9UQUJMRSAodXNiLCBpZF90YWJsZSk7CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBnYXJtaW5fZHJpdmVyID0geworCS5vd25lciA9CVRISVNfTU9EVUxFLAorCS5uYW1lID0JCSJnYXJtaW5fZ3BzIiwKKwkucHJvYmUgPQl1c2Jfc2VyaWFsX3Byb2JlLAorCS5kaXNjb25uZWN0ID0JdXNiX3NlcmlhbF9kaXNjb25uZWN0LAorCS5pZF90YWJsZSA9CWlkX3RhYmxlLAorfTsKKworCitzdGF0aWMgaW5saW5lIGludCBub1Jlc3BvbnNlRnJvbUFwcExheWVyKHN0cnVjdCBnYXJtaW5fZGF0YSAqIGdhcm1pbl9kYXRhX3ApCit7CisJcmV0dXJuICgoZ2FybWluX2RhdGFfcC0+ZmxhZ3MKKwkJCQkmIChGTEFHU19BUFBfUkVRX1NFRU58RkxBR1NfQVBQX1JFU1BfU0VFTikpCisJICAgICAgICA9PSBGTEFHU19BUFBfUkVRX1NFRU4pOworfQorCisKK3N0YXRpYyBpbmxpbmUgaW50IGdldExheWVySWQoY29uc3QgX191OCAqdXNiUGFja2V0KQoreworCXJldHVybiBfX2xlMzJfdG9fY3B1cCgoX19sZTMyICopKHVzYlBhY2tldCkpOworfQorCitzdGF0aWMgaW5saW5lIGludCBnZXRQYWNrZXRJZChjb25zdCBfX3U4ICp1c2JQYWNrZXQpCit7CisJcmV0dXJuIF9fbGUzMl90b19jcHVwKChfX2xlMzIgKikodXNiUGFja2V0KzQpKTsKK30KKworc3RhdGljIGlubGluZSBpbnQgZ2V0RGF0YUxlbmd0aChjb25zdCBfX3U4ICp1c2JQYWNrZXQpCit7CisJcmV0dXJuIF9fbGUzMl90b19jcHVwKChfX2xlMzIgKikodXNiUGFja2V0KzgpKTsKK30KKworCisvKgorICogY2hlY2sgaWYgdGhlIHVzYi1wYWNrZXQgaW4gYnVmIGNvbnRhaW5zIGFuIGFib3J0LXRyYW5zZmVyIGNvbW1hbmQuCisgKiAoaWYgeWVzLCBhbGwgcXVldWVkIGRhdGEgd2lsbCBiZSBkcm9wcGVkKQorICovCitzdGF0aWMgaW5saW5lIGludCBpc0Fib3J0VHJmQ21uZChjb25zdCB1bnNpZ25lZCBjaGFyICpidWYpCit7CisJaWYgKDAgPT0gbWVtY21wKGJ1ZiwgR0FSTUlOX1NUT1BfVFJBTlNGRVJfUkVRLCAKKwkgICAgICAgICAgICAgICAgc2l6ZW9mKEdBUk1JTl9TVE9QX1RSQU5TRkVSX1JFUSkpIHx8CisJICAgIDAgPT0gbWVtY21wKGJ1ZiwgR0FSTUlOX1NUT1BfVFJBTlNGRVJfUkVRX1YyLCAKKwkgICAgICAgICAgICAgICAgc2l6ZW9mKEdBUk1JTl9TVE9QX1RSQU5TRkVSX1JFUV9WMikpKQorCQlyZXR1cm4gMTsKKwllbHNlCisJCXJldHVybiAwOworfQorCisKKworc3RhdGljIHZvaWQgc2VuZF90b190dHkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmRhdGEsIHVuc2lnbmVkIGludCBhY3R1YWxfbGVuZ3RoKQoreworCXN0cnVjdCB0dHlfc3RydWN0ICp0dHkgPSBwb3J0LT50dHk7CisJaW50IGk7CisKKwlpZiAodHR5ICYmIGFjdHVhbF9sZW5ndGgpIHsKKworCQl1c2Jfc2VyaWFsX2RlYnVnX2RhdGEoZGVidWcsICZwb3J0LT5kZXYsIAorCQkJCQlfX0ZVTkNUSU9OX18sIGFjdHVhbF9sZW5ndGgsIGRhdGEpOworCisJCWZvciAoaSA9IDA7IGkgPCBhY3R1YWxfbGVuZ3RoIDsgKytpKSB7CisJCQkvKiBpZiB3ZSBpbnNlcnQgbW9yZSB0aGFuIFRUWV9GTElQQlVGX1NJWkUgY2hhcmFjdGVycywKKwkJCSAgIHdlIGRyb3AgdGhlbS4gKi8KKwkJCWlmKHR0eS0+ZmxpcC5jb3VudCA+PSBUVFlfRkxJUEJVRl9TSVpFKSB7CisJCQkJdHR5X2ZsaXBfYnVmZmVyX3B1c2godHR5KTsKKwkJCX0KKwkJCS8qIHRoaXMgZG9lc24ndCBhY3R1YWxseSBwdXNoIHRoZSBkYXRhIHRocm91Z2ggdW5sZXNzCisJCQkgICB0dHktPmxvd19sYXRlbmN5IGlzIHNldCAqLworCQkJdHR5X2luc2VydF9mbGlwX2NoYXIodHR5LCBkYXRhW2ldLCAwKTsKKwkJfQorCQl0dHlfZmxpcF9idWZmZXJfcHVzaCh0dHkpOworCX0KK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBwYWNrZXQgcXVldWUgaGFuZGxpbmcKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qCisgKiBxdWV1ZSBhIHJlY2VpdmVkICh1c2ItKXBhY2tldCBmb3IgbGF0ZXIgcHJvY2Vzc2luZworICovCitzdGF0aWMgaW50IHBrdF9hZGQoc3RydWN0IGdhcm1pbl9kYXRhICogZ2FybWluX2RhdGFfcCwKKyAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpkYXRhLCB1bnNpZ25lZCBpbnQgZGF0YV9sZW5ndGgpCit7CisJaW50IHJlc3VsdCA9IDA7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlzdHJ1Y3QgZ2FybWluX3BhY2tldCAqcGt0OworCisJLyogcHJvY2VzcyBvbmx5IHBhY2tldHMgY29udGFpbmcgZGF0YSAuLi4gKi8KKwlpZiAoZGF0YV9sZW5ndGgpIHsKKwkJZ2FybWluX2RhdGFfcC0+ZmxhZ3MgfD0gRkxBR1NfUVVFVUlORzsKKwkJcGt0ID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IGdhcm1pbl9wYWNrZXQpK2RhdGFfbGVuZ3RoLAorCQkgICAgICAgICAgICAgIEdGUF9BVE9NSUMpOworCQlpZiAocGt0ID09IE5VTEwpIHsKKwkJCWRldl9lcnIoJmdhcm1pbl9kYXRhX3AtPnBvcnQtPmRldiwgIm91dCBvZiBtZW1vcnlcbiIpOworCQkJcmV0dXJuIDA7CisJCX0KKwkJcGt0LT5zaXplID0gZGF0YV9sZW5ndGg7CisJCW1lbWNweShwa3QtPmRhdGEsIGRhdGEsIGRhdGFfbGVuZ3RoKTsKKworCQlzcGluX2xvY2tfaXJxc2F2ZSgmZ2FybWluX2RhdGFfcC0+bG9jaywgZmxhZ3MpOworCQlyZXN1bHQgPSBsaXN0X2VtcHR5KCZnYXJtaW5fZGF0YV9wLT5wa3RsaXN0KTsKKwkJcGt0LT5zZXEgPSBnYXJtaW5fZGF0YV9wLT5zZXFfY291bnRlcisrOworCQlsaXN0X2FkZF90YWlsKCZwa3QtPmxpc3QsICZnYXJtaW5fZGF0YV9wLT5wa3RsaXN0KTsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZ2FybWluX2RhdGFfcC0+bG9jaywgZmxhZ3MpOworCisJCS8qIGluIHNlcmlhbCBtb2RlLCBpZiBzb21lb25lIGlzIHdhaXRpbmcgZm9yIGRhdGEgZnJvbQorCQkgICB0aGUgZGV2aWNlLCBpY29udmVydCBhbmQgc2VuZCB0aGUgbmV4dCBwYWNrZXQgdG8gdHR5LiAqLworCQlpZiAocmVzdWx0ICYmIChnYXJtaW5fZGF0YV9wLT5zdGF0ZSA9PSBTVEFURV9HU1BfV0FJVF9EQVRBKSkgeworCQkJZ3NwX25leHRfcGFja2V0KGdhcm1pbl9kYXRhX3ApOworCQl9CisJfQorCXJldHVybiByZXN1bHQ7Cit9CisKKworLyogZ2V0IHRoZSBuZXh0IHBlbmRpbmcgcGFja2V0ICovCitzdGF0aWMgc3RydWN0IGdhcm1pbl9wYWNrZXQgKnBrdF9wb3Aoc3RydWN0IGdhcm1pbl9kYXRhICogZ2FybWluX2RhdGFfcCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXN0cnVjdCBnYXJtaW5fcGFja2V0ICpyZXN1bHQgPSBOVUxMOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmdhcm1pbl9kYXRhX3AtPmxvY2ssIGZsYWdzKTsKKwlpZiAoIWxpc3RfZW1wdHkoJmdhcm1pbl9kYXRhX3AtPnBrdGxpc3QpKSB7CisJCXJlc3VsdCA9IChzdHJ1Y3QgZ2FybWluX3BhY2tldCAqKWdhcm1pbl9kYXRhX3AtPnBrdGxpc3QubmV4dDsKKwkJbGlzdF9kZWwoJnJlc3VsdC0+bGlzdCk7CisJfQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmdhcm1pbl9kYXRhX3AtPmxvY2ssIGZsYWdzKTsKKwlyZXR1cm4gcmVzdWx0OworfQorCisKKy8qIGZyZWUgdXAgYWxsIHF1ZXVlZCBkYXRhICovCitzdGF0aWMgdm9pZCBwa3RfY2xlYXIoc3RydWN0IGdhcm1pbl9kYXRhICogZ2FybWluX2RhdGFfcCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXN0cnVjdCBnYXJtaW5fcGFja2V0ICpyZXN1bHQgPSBOVUxMOworCisJZGJnKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZ2FybWluX2RhdGFfcC0+bG9jaywgZmxhZ3MpOworCXdoaWxlICghbGlzdF9lbXB0eSgmZ2FybWluX2RhdGFfcC0+cGt0bGlzdCkpIHsKKwkJcmVzdWx0ID0gKHN0cnVjdCBnYXJtaW5fcGFja2V0ICopZ2FybWluX2RhdGFfcC0+cGt0bGlzdC5uZXh0OworCQlsaXN0X2RlbCgmcmVzdWx0LT5saXN0KTsKKwkJa2ZyZWUocmVzdWx0KTsKKwl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZ2FybWluX2RhdGFfcC0+bG9jaywgZmxhZ3MpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGdhcm1pbiBzZXJpYWwgcHJvdG9jb2wgaGFuZGxpbmcgaGFuZGxpbmcKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIHNlbmQgYW4gYWNrIHBhY2tldCBiYWNrIHRvIHRoZSB0dHkgKi8KK3N0YXRpYyBpbnQgZ3NwX3NlbmRfYWNrKHN0cnVjdCBnYXJtaW5fZGF0YSAqIGdhcm1pbl9kYXRhX3AsIF9fdTggcGt0X2lkKQoreworCV9fdTggcGt0WzEwXTsKKyAgICAgICAgX191OCBja3N1bSA9IDA7CisgICAgICAgIF9fdTggKnB0ciA9IHBrdDsKKyAgICAgICAgdW5zaWduZWQgIGwgPSAwOworCisJZGJnKCIlcyAtIHBrdC1pZDogMHglWC4iLCBfX0ZVTkNUSU9OX18sIDB4RkYgJiBwa3RfaWQpOworCisJKnB0cisrID0gRExFOworCSpwdHIrKyA9IEFDSzsKKwlja3N1bSArPSBBQ0s7CisKKwkqcHRyKysgPSAyOworCWNrc3VtICs9IDI7CisKKwkqcHRyKysgPSBwa3RfaWQ7CisJY2tzdW0gKz0gcGt0X2lkOworCisJaWYgKHBrdF9pZCA9PSBETEUpIHsKKwkJKnB0cisrID0gRExFOworCX0KKworCSpwdHIrKyA9IDA7CisJKnB0cisrID0gMHhGRiAmICgtY2tzdW0pOworCSpwdHIrKyA9IERMRTsKKwkqcHRyKysgPSBFVFg7CisKKwlsID0gcHRyLXBrdDsKKworCXNlbmRfdG9fdHR5KGdhcm1pbl9kYXRhX3AtPnBvcnQsIHBrdCwgbCk7CisJcmV0dXJuIDA7Cit9CisKKworCisvKgorICogY2FsbGVkIGZvciBhIGNvbXBsZXRlIHBhY2tldCByZWNlaXZlZCBmcm9tIHR0eSBsYXllcgorICoKKyAqIHRoZSBjb21wbGV0ZSBwYWNrZXQgKHBremlkIC4uLiBja3N1bSkgaXMgaW4gZ2FybWluX2RhdGFfcC0+aW5idWYgc3RhcnRpbmcKKyAqIGF0IEdTUF9JTklUSUFMX09GRlNFVC4KKyAqCisgKiBjb3VudCAtIG51bWJlciBvZiBieXRlcyBpbiB0aGUgaW5wdXQgYnVmZmVyIGluY2x1ZGluZyBzcGFjZSByZXNlcnZlZCBmb3IKKyAqICAgICAgICAgdGhlIHVzYiBoZWFkZXI6IEdTUF9JTklUSUFMX09GRlNFVCArIG51bWJlciBvZiBieXRlcyBpbiBwYWNrZXQgCisgKiAgICAgICAgIChpbmNsdWRpbmcgcGt0LWlkLCBkYXRhLWxlbmd0aCBhLiBja3N1bSkKKyAqLworc3RhdGljIGludCBnc3BfcmVjX3BhY2tldChzdHJ1Y3QgZ2FybWluX2RhdGEgKiBnYXJtaW5fZGF0YV9wLCBpbnQgY291bnQpCit7CisJY29uc3QgX191OCogcmVjcGt0ID0gZ2FybWluX2RhdGFfcC0+aW5idWZmZXIrR1NQX0lOSVRJQUxfT0ZGU0VUOworICAgICAgICBfX2xlMzIgKnVzYmRhdGEgPSAoX19sZTMyICopIGdhcm1pbl9kYXRhX3AtPmluYnVmZmVyOworCisJaW50IGNrc3VtID0gMDsKKwlpbnQgbiA9IDA7CisJaW50IHBrdGlkID0gcmVjcGt0WzBdOworCWludCBzaXplID0gcmVjcGt0WzFdOworCisJdXNiX3NlcmlhbF9kZWJ1Z19kYXRhKGRlYnVnLCAmZ2FybWluX2RhdGFfcC0+cG9ydC0+ZGV2LAorCQkJICAgICAgIF9fRlVOQ1RJT05fXywgY291bnQtR1NQX0lOSVRJQUxfT0ZGU0VULCByZWNwa3QpOworCisJaWYgKHNpemUgIT0gKGNvdW50LUdTUF9JTklUSUFMX09GRlNFVC0zKSkgeworCQlkYmcoIiVzIC0gaW52YWxpZCBzaXplLCBleHBlY3RlZCAlZCBieXRlcywgZ290ICVkIiwKKwkJCV9fRlVOQ1RJT05fXywgc2l6ZSwgKGNvdW50LUdTUF9JTklUSUFMX09GRlNFVC0zKSk7CisJCXJldHVybiAtRUlOVlBLVDsKKwl9CisKKwlja3N1bSArPSAqcmVjcGt0Kys7CisJY2tzdW0gKz0gKnJlY3BrdCsrOworCisJLy8gc2FuaXR5IGNoZWNrLCByZW1vdmUgYWZ0ZXIgdGVzdCAuLi4KKwlpZiAoKF9fdTgqKSYodXNiZGF0YVszXSkgIT0gcmVjcGt0KSB7CisJCWRiZygiJXMgLSBwdHIgbWlzbWF0Y2ggJXAgLSAlcCIsCisJCQlfX0ZVTkNUSU9OX18sICYodXNiZGF0YVs0XSksIHJlY3BrdCk7CisJCXJldHVybiAtRUlOVlBLVDsKKwl9CisKKwl3aGlsZSAobiA8IHNpemUpIHsKKwkJY2tzdW0gKz0gKnJlY3BrdCsrOworCQluKys7CisJfQorCisgICAgICAgaWYgKCgweGZmICYgKGNrc3VtICsgKnJlY3BrdCkpICE9IDApIHsKKyAgICAgICAgICAgICAgICBkYmcoIiVzIC0gaW52YWxpZCBjaGVja3N1bSwgZXhwZWN0ZWQgJTAyeCwgZ290ICUwMngiLAorICAgICAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCAweGZmICYgLWNrc3VtLCAweGZmICYgKnJlY3BrdCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WUEtUOworICAgICAgICB9CisKKwl1c2JkYXRhWzBdID0gX19jcHVfdG9fbGUzMihHQVJNSU5fTEFZRVJJRF9BUFBMKTsKKwl1c2JkYXRhWzFdID0gX19jcHVfdG9fbGUzMihwa3RpZCk7CisJdXNiZGF0YVsyXSA9IF9fY3B1X3RvX2xlMzIoc2l6ZSk7CisKKwlnYXJtaW5fd3JpdGVfYnVsayAoZ2FybWluX2RhdGFfcC0+cG9ydCwgZ2FybWluX2RhdGFfcC0+aW5idWZmZXIsCisJCQkgICBHQVJNSU5fUEtUSERSX0xFTkdUSCtzaXplKTsKKworCS8qIGlmIHRoaXMgd2FzIGFuIGFib3J0LXRyYW5zZmVyIGNvbW1hbmQsIGZsdXNoIGFsbAorCSAgIHF1ZXVlZCBkYXRhLiAqLworCWlmIChpc0Fib3J0VHJmQ21uZChnYXJtaW5fZGF0YV9wLT5pbmJ1ZmZlcikpIHsKKwkJZ2FybWluX2RhdGFfcC0+ZmxhZ3MgfD0gRkxBR1NfRFJPUF9EQVRBOworCQlwa3RfY2xlYXIoZ2FybWluX2RhdGFfcCk7CisJfQorCisJcmV0dXJuIGNvdW50OworfQorCisKKworLyoKKyAqIENhbGxlZCBmb3IgZGF0YSByZWNlaXZlZCBmcm9tIHR0eQorICoKKyAqIGJ1ZiBjb250YWlucyB0aGUgZGF0YSByZWFkLCBpdCBtYXkgc3BhbiBtb3JlIHRoYW4gb25lIHBhY2tldCBvciBldmVuCisgKiBpbmNvbXBsZXRlIHBhY2tldHMKKyAqCisgKiBpbnB1dCByZWNvcmQgc2hvdWxkIGJlIGEgc2VyaWFsLXJlY29yZCwgYnV0IGl0IG1heSBub3QgYmUgY29tcGxldGUuCisgKiBDb3B5IGl0IGludG8gb3VyIGxvY2FsIGJ1ZmZlciwgdW50aWwgYW4gZXR4IGlzIHNlZW4gKG9yIGFuIGVycm9yCisgKiBvY2N1cnMpLgorICogT25jZSB0aGUgcmVjb3JkIGlzIGNvbXBsZXRlLCBjb252ZXJ0IGludG8gYSB1c2IgcGFja2V0IGFuZCBzZW5kIGl0CisgKiB0byB0aGUgYnVsayBwaXBlLCBzZW5kIGFuIGFjayBiYWNrIHRvIHRoZSB0dHkuCisgKgorICogSWYgdGhlIGlucHV0IGlzIGFuIGFjaywganVzdCBzZW5kIHRoZSBsYXN0IHF1ZXVlZCBwYWNrZXQgdG8gdGhlCisgKiB0dHkgbGF5ZXIuCisgKgorICogaWYgdGhlIGlucHV0IGlzIGFuIGFib3J0IGNvbW1hbmQsIGRyb3AgYWxsIHF1ZXVlZCBkYXRhLgorICovCisKK3N0YXRpYyBpbnQgZ3NwX3JlY2VpdmUoc3RydWN0IGdhcm1pbl9kYXRhICogZ2FybWluX2RhdGFfcCwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpCit7CisJaW50IG9mZnMgPSAwOworCWludCBhY2tfb3JfbmFrX3NlZW4gPSAwOworCWludCBpID0gMDsKKwlfX3U4ICpkZXN0ID0gZ2FybWluX2RhdGFfcC0+aW5idWZmZXI7CisJaW50IHNpemUgPSBnYXJtaW5fZGF0YV9wLT5pbnNpemU7CisJLy8gZGxlU2Vlbjogc2V0IGlmIGxhc3QgYnl0ZSByZWFkIHdhcyBhIERMRQorCWludCBkbGVTZWVuID0gZ2FybWluX2RhdGFfcC0+ZmxhZ3MgJiBGTEFHU19HU1BfRExFU0VFTjsKKwkvLyBza2lwOiBpZiBzZXQsIHNraXAgaW5jb21pbmcgZGF0YSB1bnRpbCBwb3NzaWJsZSBzdGFydCBvZgorCS8vICAgICAgIG5ldyBwYWNrZXQKKwlpbnQgc2tpcCA9IGdhcm1pbl9kYXRhX3AtPmZsYWdzICYgRkxBR1NfR1NQX1NLSVA7CisJX191OCBkYXRhOworCisJZGJnKCIlcyAtIGRsZT0lZCBza2lwPSVkIHNpemU9JWQgY291bnQ9JWQiLAorCQlfX0ZVTkNUSU9OX18sIGRsZVNlZW4sIHNraXAsIHNpemUsIGNvdW50KTsKKworCWlmIChzaXplID09IDApIHsKKwkJc2l6ZSA9IEdTUF9JTklUSUFMX09GRlNFVDsKKwl9CisKKwl3aGlsZSAob2ZmcyA8IGNvdW50KSB7CisKKwkJZGF0YSA9ICooYnVmK29mZnMpOworCQlvZmZzICsrOworCisJCWlmIChkYXRhID09IERMRSkgeworCQkJaWYgKHNraXApIHsgLyogc3RhcnQgb2YgYSBuZXcgcGt0ICovCisJCQkJc2tpcCA9IDA7CisJCQkJc2l6ZSA9IEdTUF9JTklUSUFMX09GRlNFVDsKKwkJCQlkbGVTZWVuID0gMTsKKwkJCX0gZWxzZSBpZiAoZGxlU2VlbikgeworCQkJCWRlc3Rbc2l6ZSsrXSA9IGRhdGE7CisJCQkJZGxlU2VlbiA9IDA7CisJCQl9IGVsc2UgeworCQkJCWRsZVNlZW4gPSAxOworCQkJfQorCQl9IGVsc2UgaWYgKGRhdGEgPT0gRVRYKSB7CisJCQlpZiAoZGxlU2VlbikgeworCQkJCS8qIHBhY2tldCBjb21wbGV0ZSAqLworCisJCQkJZGF0YSA9IGRlc3RbR1NQX0lOSVRJQUxfT0ZGU0VUXTsKKworCQkJCWlmIChkYXRhID09IEFDSykgeworCQkJCQlhY2tfb3JfbmFrX3NlZW4gPSBBQ0s7CisJCQkJCWRiZygiQUNLIHBhY2tldCBjb21wbGV0ZS4iKTsKKwkJCQl9IGVsc2UgaWYgKGRhdGEgPT0gTkFLKSB7CisJCQkJCWFja19vcl9uYWtfc2VlbiA9IE5BSzsKKwkJCQkJZGJnKCJOQUsgcGFja2V0IGNvbXBsZXRlLiIpOworCQkJCX0gZWxzZSB7CisJCQkJCWRiZygicGFja2V0IGNvbXBsZXRlICIKKwkJCQkJCSAgICAgICAgIi0gaWQ9MHglWC4iLAorCQkJCQkJICAgICAgICAweEZGICYgZGF0YSk7CisJCQkJCWdzcF9yZWNfcGFja2V0KGdhcm1pbl9kYXRhX3AsIHNpemUpOworCQkJCX0KKworCQkJCXNraXAgPSAxOworCQkJCXNpemUgPSBHU1BfSU5JVElBTF9PRkZTRVQ7CisJCQkJZGxlU2VlbiA9IDA7CisJCQl9IGVsc2UgeworCQkJCWRlc3Rbc2l6ZSsrXSA9IGRhdGE7CisJCQl9CisJCX0gZWxzZSBpZiAoIXNraXApIHsKKworCQkJaWYgKGRsZVNlZW4pIHsKKwkJCQlkYmcoIm5vbi1tYXNrZWQgRExFIGF0ICVkIC0gcmVzdGFydGluZyIsIGkpOworCQkJCXNpemUgPSBHU1BfSU5JVElBTF9PRkZTRVQ7CisJCQkJZGxlU2VlbiA9IDA7CisJCQl9CisKKwkJCWRlc3Rbc2l6ZSsrXSA9IGRhdGE7CisJCX0KKworCQlpZiAoc2l6ZSA+PSBHUFNfSU5fQlVGU0laKSB7CisJCQlkYmcoIiVzIC0gcGFja2V0IHRvbyBsYXJnZS4iLCBfX0ZVTkNUSU9OX18pOworCQkJc2tpcCA9IDE7CisJCQlzaXplID0gR1NQX0lOSVRJQUxfT0ZGU0VUOworCQkJZGxlU2VlbiA9IDA7CisJCX0KKwl9CisKKwlnYXJtaW5fZGF0YV9wLT5pbnNpemUgPSBzaXplOworCisJLy8gY29weSBmbGFncyBiYWNrIHRvIHN0cnVjdHVyZQorCWlmIChza2lwKQorCQlnYXJtaW5fZGF0YV9wLT5mbGFncyB8PSBGTEFHU19HU1BfU0tJUDsKKwllbHNlCisJCWdhcm1pbl9kYXRhX3AtPmZsYWdzICY9IH5GTEFHU19HU1BfU0tJUDsKKworCWlmIChkbGVTZWVuKQorCQlnYXJtaW5fZGF0YV9wLT5mbGFncyB8PSBGTEFHU19HU1BfRExFU0VFTjsKKwllbHNlCisJCWdhcm1pbl9kYXRhX3AtPmZsYWdzICY9IH5GTEFHU19HU1BfRExFU0VFTjsKKworCWlmIChhY2tfb3JfbmFrX3NlZW4pIHsKKwkJZ2FybWluX2RhdGFfcC0+c3RhdGUgPSBTVEFURV9HU1BfV0FJVF9EQVRBOworCQlnc3BfbmV4dF9wYWNrZXQoZ2FybWluX2RhdGFfcCk7CisJfQorCisJcmV0dXJuIGNvdW50OworfQorCisKKworCisvKgorICogU2VuZHMgYSB1c2IgcGFja2V0IHRvIHRoZSB0dHkKKyAqCisgKiBBc3N1bWVzLCB0aGF0IGFsbCBwYWNrYWdlcyBhbmQgYXQgYW4gdXNiLXBhY2tldCBib3VuZGFyeS4KKyAqCisgKiByZXR1cm4gPDAgb24gZXJyb3IsIDAgaWYgcGFja2V0IGlzIGluY29tcGxldGUgb3IgPiAwIGlmIHBhY2tldCB3YXMgc2VudAorICovCitzdGF0aWMgaW50IGdzcF9zZW5kKHN0cnVjdCBnYXJtaW5fZGF0YSAqIGdhcm1pbl9kYXRhX3AsCisJCSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBjb3VudCkKK3sKKwljb25zdCB1bnNpZ25lZCBjaGFyICpzcmM7CisJdW5zaWduZWQgY2hhciAqZHN0OworCWludCBwa3RpZCA9IDA7CisJaW50IGRhdGFsZW4gPSAwOworCWludCBja3N1bSA9IDA7CisJaW50IGk9MDsKKwlpbnQgazsKKworCWRiZygiJXMgLSBzdGF0ZSAlZCAtICVkIGJ5dGVzLiIsIF9fRlVOQ1RJT05fXywKKwkgICAgICAgICBnYXJtaW5fZGF0YV9wLT5zdGF0ZSwgY291bnQpOworCisJayA9IGdhcm1pbl9kYXRhX3AtPm91dHNpemU7CisJaWYgKChrK2NvdW50KSA+IEdQU19PVVRfQlVGU0laKSB7CisJCWRiZygicGFja2V0IHRvbyBsYXJnZSIpOworCQlnYXJtaW5fZGF0YV9wLT5vdXRzaXplID0gMDsKKwkJcmV0dXJuIC00OworCX0KKworCW1lbWNweShnYXJtaW5fZGF0YV9wLT5vdXRidWZmZXIraywgYnVmLCBjb3VudCk7CisJayArPSBjb3VudDsKKwlnYXJtaW5fZGF0YV9wLT5vdXRzaXplID0gazsKKworCWlmIChrID49IEdBUk1JTl9QS1RIRFJfTEVOR1RIKSB7CisJCXBrdGlkICA9IGdldFBhY2tldElkKGdhcm1pbl9kYXRhX3AtPm91dGJ1ZmZlcik7CisJCWRhdGFsZW49IGdldERhdGFMZW5ndGgoZ2FybWluX2RhdGFfcC0+b3V0YnVmZmVyKTsKKwkJaSA9IEdBUk1JTl9QS1RIRFJfTEVOR1RIICsgZGF0YWxlbjsKKwkJaWYgKGsgPCBpKQorCQkJcmV0dXJuIDA7CisJfSBlbHNlIHsKKwkJcmV0dXJuIDA7CisJfQorCisJZGJnKCIlcyAtICVkIGJ5dGVzIGluIGJ1ZmZlciwgJWQgYnl0ZXMgaW4gcGt0LiIsIF9fRlVOQ1RJT05fXywKKwkgICAgICAgICBrLCBpKTsKKworCS8qIGdhcm1pbl9kYXRhX3AtPm91dGJ1ZmZlciBub3cgY29udGFpbnMgYSBjb21wbGV0ZSBwYWNrZXQgKi8KKworCXVzYl9zZXJpYWxfZGVidWdfZGF0YShkZWJ1ZywgJmdhcm1pbl9kYXRhX3AtPnBvcnQtPmRldiwKKwkJICAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgaywgZ2FybWluX2RhdGFfcC0+b3V0YnVmZmVyKTsKKworCWdhcm1pbl9kYXRhX3AtPm91dHNpemUgPSAwOworCisJaWYgKEdBUk1JTl9MQVlFUklEX0FQUEwgIT0gZ2V0TGF5ZXJJZChnYXJtaW5fZGF0YV9wLT5vdXRidWZmZXIpKSB7CisJCWRiZygibm90IGFuIGFwcGxpY2F0aW9uIHBhY2tldCAoJWQpIiwgCisJCSAgICAgICAgZ2V0TGF5ZXJJZChnYXJtaW5fZGF0YV9wLT5vdXRidWZmZXIpKTsKKwkJcmV0dXJuIC0xOworCX0KKworCWlmIChwa3RpZCA+IDI1NSkgeworCQlkYmcoInBhY2tldC1pZCAlZCB0b28gbGFyZ2UiLCBwa3RpZCk7CisJCXJldHVybiAtMjsKKwl9CisKKwlpZiAoZGF0YWxlbiA+IDI1NSkgeworCQlkYmcoInBhY2tldC1zaXplICVkIHRvbyBsYXJnZSIsIGRhdGFsZW4pOworCQlyZXR1cm4gLTM7CisJfQorCisJLyogdGhlIHNlcmlhbCBwcm90b2NvbCBzaG91bGQgYmUgYWJsZSB0byBoYW5kbGUgdGhpcyBwYWNrZXQgKi8KKworCWsgPSAwOworCXNyYyA9IGdhcm1pbl9kYXRhX3AtPm91dGJ1ZmZlcitHQVJNSU5fUEtUSERSX0xFTkdUSDsKKwlmb3IgKGk9MDsgaTxkYXRhbGVuOyBpKyspIHsKKwkJaWYgKCpzcmMrKyA9PSBETEUpCisJCQlrKys7CisJfQorCisJc3JjID0gZ2FybWluX2RhdGFfcC0+b3V0YnVmZmVyK0dBUk1JTl9QS1RIRFJfTEVOR1RIOworCWlmIChrID4gKEdBUk1JTl9QS1RIRFJfTEVOR1RILTIpKSB7CisJCS8qIGNhbid0IGFkZCBzdHVmZmluZyBETEVzIGluIHBsYWNlLCBtb3ZlIGRhdGEgdG8gZW5kIAorICAgICAgICAgICAgICAgICAgIG9mIGJ1ZmZlciAuLi4gKi8KKwkJZHN0ID0gZ2FybWluX2RhdGFfcC0+b3V0YnVmZmVyK0dQU19PVVRfQlVGU0laLWRhdGFsZW47CisJCW1lbWNweShkc3QsIHNyYywgZGF0YWxlbik7CisJCXNyYyA9IGRzdDsKKwl9CisKKwlkc3QgPSBnYXJtaW5fZGF0YV9wLT5vdXRidWZmZXI7CisKKwkqZHN0KysgPSBETEU7CisJKmRzdCsrID0gcGt0aWQ7CisJY2tzdW0gKz0gcGt0aWQ7CisJKmRzdCsrID0gZGF0YWxlbjsKKwlja3N1bSArPSBkYXRhbGVuOworCWlmIChkYXRhbGVuID09IERMRSkKKwkJKmRzdCsrID0gRExFOworCisJZm9yIChpPTA7IGk8ZGF0YWxlbjsgaSsrKSB7CisJCV9fdTggYyA9ICpzcmMrKzsKKwkJKmRzdCsrID0gYzsKKwkJY2tzdW0gKz0gYzsKKwkJaWYgKGMgPT0gRExFKQorCQkJKmRzdCsrID0gRExFOworCX0KKwkJCisJY2tzdW0gPSAweEZGICYgLWNrc3VtOworCSpkc3QrKyA9IGNrc3VtOworCWlmIChja3N1bSA9PSBETEUpCisJCSpkc3QrKyA9IERMRTsKKwkqZHN0KysgPSBETEU7CisJKmRzdCsrID0gRVRYOworCisJaSA9IGRzdC1nYXJtaW5fZGF0YV9wLT5vdXRidWZmZXI7CisKKwlzZW5kX3RvX3R0eShnYXJtaW5fZGF0YV9wLT5wb3J0LCBnYXJtaW5fZGF0YV9wLT5vdXRidWZmZXIsIGkpOworCisJZ2FybWluX2RhdGFfcC0+cGt0X2lkID0gcGt0aWQ7CisJZ2FybWluX2RhdGFfcC0+c3RhdGUgID0gU1RBVEVfV0FJVF9UVFlfQUNLOworCisJcmV0dXJuIGk7Cit9CisKKworCisKKworLyoKKyAqIFByb2Nlc3MgdGhlIG5leHQgcGVuZGluZyBkYXRhIHBhY2tldCAtIGlmIHRoZXJlIGlzIG9uZQorICovCitzdGF0aWMgdm9pZCBnc3BfbmV4dF9wYWNrZXQoc3RydWN0IGdhcm1pbl9kYXRhICogZ2FybWluX2RhdGFfcCkKK3sKKwlzdHJ1Y3QgZ2FybWluX3BhY2tldCAqcGt0ID0gTlVMTDsKKworCXdoaWxlICgocGt0ID0gcGt0X3BvcChnYXJtaW5fZGF0YV9wKSkgIT0gTlVMTCkgeworCQlkYmcoIiVzIC0gbmV4dCBwa3Q6ICVkIiwgX19GVU5DVElPTl9fLCBwa3QtPnNlcSk7CisJCWlmIChnc3Bfc2VuZChnYXJtaW5fZGF0YV9wLCBwa3QtPmRhdGEsIHBrdC0+c2l6ZSkgPiAwKSB7CisJCQlrZnJlZShwa3QpOworCQkJcmV0dXJuOworCQl9CisJCWtmcmVlKHBrdCk7CisJfQorfQorCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBnYXJtaW4gbmF0aXZlIG1vZGUKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworLyoKKyAqIENhbGxlZCBmb3IgZGF0YSByZWNlaXZlZCBmcm9tIHR0eQorICoKKyAqIFRoZSBpbnB1dCBkYXRhIGlzIGV4cGVjdGVkIHRvIGJlIGluIGdhcm1pbiB1c2ItcGFja2V0IGZvcm1hdC4KKyAqCisgKiBidWYgY29udGFpbnMgdGhlIGRhdGEgcmVhZCwgaXQgbWF5IHNwYW4gbW9yZSB0aGFuIG9uZSBwYWNrZXQKKyAqIG9yIGV2ZW4gaW5jb21wbGV0ZSBwYWNrZXRzCisgKi8KK3N0YXRpYyBpbnQgbmF0X3JlY2VpdmUoc3RydWN0IGdhcm1pbl9kYXRhICogZ2FybWluX2RhdGFfcCwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpCit7CisJX191OCAqIGRlc3Q7CisJaW50IG9mZnMgPSAwOworCWludCByZXN1bHQgPSBjb3VudDsKKwlpbnQgbGVuOworCisJd2hpbGUgKG9mZnMgPCBjb3VudCkgeworCQkvLyBpZiBidWZmZXIgY29udGFpbnMgaGVhZGVyLCBjb3B5IHJlc3Qgb2YgZGF0YQorCQlpZiAoZ2FybWluX2RhdGFfcC0+aW5zaXplID49IEdBUk1JTl9QS1RIRFJfTEVOR1RIKQorCQkJbGVuID0gR0FSTUlOX1BLVEhEUl9MRU5HVEgKKwkJCSAgICAgICtnZXREYXRhTGVuZ3RoKGdhcm1pbl9kYXRhX3AtPmluYnVmZmVyKTsKKwkJZWxzZQorCQkJbGVuID0gR0FSTUlOX1BLVEhEUl9MRU5HVEg7CisKKwkJaWYgKGxlbiA+PSBHUFNfSU5fQlVGU0laKSB7CisJCQkvKiBzZWVtIHRvIGJlIGFuIGludmFsaWQgcGFja2V0LCBpZ25vcmUgcmVzdCBvZiBpbnB1dCAqLworCQkJZGJnKCIlcyAtIHBhY2tldCBzaXplIHRvbyBsYXJnZTogJWQiLAorCQkJICAgICAgICBfX0ZVTkNUSU9OX18sIGxlbik7CisJCQlnYXJtaW5fZGF0YV9wLT5pbnNpemUgPSAwOworCQkJY291bnQgPSAwOworCQkJcmVzdWx0ID0gLUVJTlZQS1Q7CisJCX0gZWxzZSB7CisJCQlsZW4gLT0gZ2FybWluX2RhdGFfcC0+aW5zaXplOworCQkJaWYgKGxlbiA+IChjb3VudC1vZmZzKSkKKwkJCQlsZW4gPSAoY291bnQtb2Zmcyk7CisJCQlpZiAobGVuID4gMCkgeworCQkJCWRlc3QgPSBnYXJtaW5fZGF0YV9wLT5pbmJ1ZmZlcgorCQkJCSAgICAgICAJK2dhcm1pbl9kYXRhX3AtPmluc2l6ZTsKKwkJCQltZW1jcHkoZGVzdCwgYnVmK29mZnMsIGxlbik7CisJCQkJZ2FybWluX2RhdGFfcC0+aW5zaXplICs9IGxlbjsKKwkJCQlvZmZzICs9IGxlbjsKKwkJCX0KKwkJfQorCisJCS8qIGRvIHdlIGhhdmUgYSBjb21wbGV0ZSBwYWNrZXQgPyAqLworCQlpZiAoZ2FybWluX2RhdGFfcC0+aW5zaXplID49IEdBUk1JTl9QS1RIRFJfTEVOR1RIKSB7CisJCQlsZW4gPSBHQVJNSU5fUEtUSERSX0xFTkdUSCsKKwkJCSAgIGdldERhdGFMZW5ndGgoZ2FybWluX2RhdGFfcC0+aW5idWZmZXIpOworCQkJaWYgKGdhcm1pbl9kYXRhX3AtPmluc2l6ZSA+PSBsZW4pIHsKKwkJCQlnYXJtaW5fd3JpdGVfYnVsayAoZ2FybWluX2RhdGFfcC0+cG9ydCwKKwkJCQkgICAgICAgICAgICAgICAgICAgZ2FybWluX2RhdGFfcC0+aW5idWZmZXIsCisJCQkJICAgICAgICAgICAgICAgICAgIGxlbik7CisJCQkJZ2FybWluX2RhdGFfcC0+aW5zaXplID0gMDsKKworCQkJCS8qIGlmIHRoaXMgd2FzIGFuIGFib3J0LXRyYW5zZmVyIGNvbW1hbmQsCisJCQkJICAgZmx1c2ggYWxsIHF1ZXVlZCBkYXRhLiAqLworCQkJCWlmIChpc0Fib3J0VHJmQ21uZChnYXJtaW5fZGF0YV9wLT5pbmJ1ZmZlcikpIHsKKwkJCQkJZ2FybWluX2RhdGFfcC0+ZmxhZ3MgfD0gRkxBR1NfRFJPUF9EQVRBOworCQkJCQlwa3RfY2xlYXIoZ2FybWluX2RhdGFfcCk7CisJCQkJfQorCQkJfQorCQl9CisJfQorCXJldHVybiByZXN1bHQ7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogcHJpdmF0ZSBwYWNrZXRzCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgdm9pZCBwcml2X3N0YXR1c19yZXNwKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpCit7CisJc3RydWN0IGdhcm1pbl9kYXRhICogZ2FybWluX2RhdGFfcCA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlfX2xlMzIgKnBrdCA9IChfX2xlMzIgKilnYXJtaW5fZGF0YV9wLT5wcml2cGt0OworCisJcGt0WzBdID0gX19jcHVfdG9fbGUzMihHQVJNSU5fTEFZRVJJRF9QUklWQVRFKTsKKwlwa3RbMV0gPSBfX2NwdV90b19sZTMyKFBSSVZfUEtUSURfSU5GT19SRVNQKTsKKwlwa3RbMl0gPSBfX2NwdV90b19sZTMyKDEyKTsKKwlwa3RbM10gPSBfX2NwdV90b19sZTMyKFZFUlNJT05fTUFKT1IgPDwgMTYgfCBWRVJTSU9OX01JTk9SKTsKKwlwa3RbNF0gPSBfX2NwdV90b19sZTMyKGdhcm1pbl9kYXRhX3AtPm1vZGUpOworCXBrdFs1XSA9IF9fY3B1X3RvX2xlMzIoZ2FybWluX2RhdGFfcC0+c2VyaWFsX251bSk7CisKKwlzZW5kX3RvX3R0eShwb3J0LCAoX191OCopcGt0LCA2KjQpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEdhcm1pbiBzcGVjaWZpYyBkcml2ZXIgZnVuY3Rpb25zCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgaW50IHByb2Nlc3NfcmVzZXRkZXZfcmVxdWVzdChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCWludCBzdGF0dXM7CisJc3RydWN0IGdhcm1pbl9kYXRhICogZ2FybWluX2RhdGFfcCA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKworCWdhcm1pbl9kYXRhX3AtPmZsYWdzICY9IH4oQ0xFQVJfSEFMVF9SRVFVSVJFRCk7CisJZ2FybWluX2RhdGFfcC0+c3RhdGUgPSBTVEFURV9SRVNFVDsKKwlnYXJtaW5fZGF0YV9wLT5zZXJpYWxfbnVtID0gMDsKKworCXVzYl9raWxsX3VyYiAocG9ydC0+aW50ZXJydXB0X2luX3VyYik7CisJZGJnKCIlcyAtIHVzYl9yZXNldF9kZXZpY2UiLCBfX0ZVTkNUSU9OX18gKTsKKwlzdGF0dXMgPSB1c2JfcmVzZXRfZGV2aWNlKHBvcnQtPnNlcmlhbC0+ZGV2KTsKKwlpZiAoc3RhdHVzKQorCQlkYmcoIiVzIC0gdXNiX3Jlc2V0X2RldmljZSBmYWlsZWQ6ICVkIiwKKwkJCV9fRlVOQ1RJT05fXywgc3RhdHVzKTsKKwlyZXR1cm4gc3RhdHVzOworfQorCisKKworLyoKKyAqIGNsZWFyIGFsbCBjYWNoZWQgZGF0YQorICovCitzdGF0aWMgaW50IGdhcm1pbl9jbGVhcihzdHJ1Y3QgZ2FybWluX2RhdGEgKiBnYXJtaW5fZGF0YV9wKQoreworCWludCBzdGF0dXMgPSAwOworCisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IGdhcm1pbl9kYXRhX3AtPnBvcnQ7CisKKwlpZiAocG9ydCAhPSBOVUxMICYmIGdhcm1pbl9kYXRhX3AtPmZsYWdzICYgRkxBR1NfQVBQX1JFU1BfU0VFTikgeworCQkvKiBzZW5kIGEgdGVybWluYXRlIGNvbW1hbmQgKi8KKwkJc3RhdHVzID0gZ2FybWluX3dyaXRlX2J1bGsocG9ydCwgR0FSTUlOX1NUT1BfVFJBTlNGRVJfUkVRLAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoR0FSTUlOX1NUT1BfVFJBTlNGRVJfUkVRKSk7CisJfQorCisJLyogZmx1c2ggYWxsIHF1ZXVlZCBkYXRhICovCisJcGt0X2NsZWFyKGdhcm1pbl9kYXRhX3ApOworCisJZ2FybWluX2RhdGFfcC0+aW5zaXplID0gMDsKKwlnYXJtaW5fZGF0YV9wLT5vdXRzaXplID0gMDsKKworCXJldHVybiBzdGF0dXM7Cit9CisKKworCisKKworCitzdGF0aWMgaW50IGdhcm1pbl9pbml0X3Nlc3Npb24oc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsID0gcG9ydC0+c2VyaWFsOworCXN0cnVjdCBnYXJtaW5fZGF0YSAqIGdhcm1pbl9kYXRhX3AgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJaW50IHN0YXR1cyA9IDA7CisKKwlpZiAoc3RhdHVzID09IDApIHsKKwkJdXNiX2tpbGxfdXJiIChwb3J0LT5pbnRlcnJ1cHRfaW5fdXJiKTsKKworCQlkYmcoIiVzIC0gYWRkaW5nIGludGVycnVwdCBpbnB1dCIsIF9fRlVOQ1RJT05fXyk7CisJCXBvcnQtPmludGVycnVwdF9pbl91cmItPmRldiA9IHNlcmlhbC0+ZGV2OworCQlzdGF0dXMgPSB1c2Jfc3VibWl0X3VyYihwb3J0LT5pbnRlcnJ1cHRfaW5fdXJiLCBHRlBfS0VSTkVMKTsKKwkJaWYgKHN0YXR1cykKKwkJCWRldl9lcnIoJnNlcmlhbC0+ZGV2LT5kZXYsCisJCQkgICAgICAgICIlcyAtIGZhaWxlZCBzdWJtaXR0aW5nIGludGVycnVwdCB1cmIsIgorCQkJCSIgZXJyb3IgJWRcbiIsCisJCQkgICAgICAgIF9fRlVOQ1RJT05fXywgc3RhdHVzKTsKKwl9CisKKwlpZiAoc3RhdHVzID09IDApIHsKKwkJZGJnKCIlcyAtIHN0YXJ0aW5nIHNlc3Npb24gLi4uIiwgX19GVU5DVElPTl9fKTsKKwkJZ2FybWluX2RhdGFfcC0+c3RhdGUgPSBTVEFURV9BQ1RJVkU7CisJCXN0YXR1cyA9IGdhcm1pbl93cml0ZV9idWxrKHBvcnQsIEdBUk1JTl9TVEFSVF9TRVNTSU9OX1JFUSwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKEdBUk1JTl9TVEFSVF9TRVNTSU9OX1JFUSkpOworCisJCWlmIChzdGF0dXMgPj0gMCkgeworCisJCQlnYXJtaW5fZGF0YV9wLT5pZ25vcmVQa3RzKys7CisKKwkJCS8qIG5vdCBuZWVkZWQsIGJ1dCB0aGUgd2luMzIgZHJpdmVyIGRvZXMgaXQgdG9vIC4uLiAqLworCQkJc3RhdHVzID0gZ2FybWluX3dyaXRlX2J1bGsocG9ydCwKKwkJCQkJCSAgIEdBUk1JTl9TVEFSVF9TRVNTSU9OX1JFUTIsCisJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoR0FSTUlOX1NUQVJUX1NFU1NJT05fUkVRMikpOworCQkJaWYgKHN0YXR1cyA+PSAwKSB7CisJCQkJc3RhdHVzID0gMDsKKwkJCQlnYXJtaW5fZGF0YV9wLT5pZ25vcmVQa3RzKys7CisJCQl9CisJCX0KKwl9CisKKwlyZXR1cm4gc3RhdHVzOworfQorCisKKworCisKK3N0YXRpYyBpbnQgZ2FybWluX29wZW4gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKQoreworCWludCBzdGF0dXMgPSAwOworCXN0cnVjdCBnYXJtaW5fZGF0YSAqIGdhcm1pbl9kYXRhX3AgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCS8qCisJICogRm9yY2UgbG93X2xhdGVuY3kgb24gc28gdGhhdCBvdXIgdHR5X3B1c2ggYWN0dWFsbHkgZm9yY2VzIHRoZSBkYXRhCisJICogdGhyb3VnaCwgb3RoZXJ3aXNlIGl0IGlzIHNjaGVkdWxlZCwgYW5kIHdpdGggaGlnaCBkYXRhIHJhdGVzIChsaWtlCisJICogd2l0aCBPSENJKSBkYXRhIGNhbiBnZXQgbG9zdC4KKwkgKi8KKwlpZiAocG9ydC0+dHR5KQorCQlwb3J0LT50dHktPmxvd19sYXRlbmN5ID0gMTsKKworCWdhcm1pbl9kYXRhX3AtPm1vZGUgID0gaW5pdGlhbF9tb2RlOworCWdhcm1pbl9kYXRhX3AtPmNvdW50ID0gMDsKKwlnYXJtaW5fZGF0YV9wLT5mbGFncyA9IDA7CisKKwkvKiBzaHV0ZG93biBhbnkgYnVsayByZWFkcyB0aGF0IG1pZ2h0IGJlIGdvaW5nIG9uICovCisJdXNiX2tpbGxfdXJiIChwb3J0LT53cml0ZV91cmIpOworCXVzYl9raWxsX3VyYiAocG9ydC0+cmVhZF91cmIpOworCisJaWYgKGdhcm1pbl9kYXRhX3AtPnN0YXRlID09IFNUQVRFX1JFU0VUKSB7CisJCXN0YXR1cyA9IGdhcm1pbl9pbml0X3Nlc3Npb24ocG9ydCk7CisJfQorCisJZ2FybWluX2RhdGFfcC0+c3RhdGUgPSBTVEFURV9BQ1RJVkU7CisKKwlyZXR1cm4gc3RhdHVzOworfQorCisKK3N0YXRpYyB2b2lkIGdhcm1pbl9jbG9zZSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKiBmaWxwKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgPSBwb3J0LT5zZXJpYWw7CisJc3RydWN0IGdhcm1pbl9kYXRhICogZ2FybWluX2RhdGFfcCA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKworCWRiZygiJXMgLSBwb3J0ICVkIC0gbW9kZT0lZCBzdGF0ZT0lZCBmbGFncz0weCVYIiwgX19GVU5DVElPTl9fLAorCQlwb3J0LT5udW1iZXIsIGdhcm1pbl9kYXRhX3AtPm1vZGUsCisJCWdhcm1pbl9kYXRhX3AtPnN0YXRlLCBnYXJtaW5fZGF0YV9wLT5mbGFncyk7CisKKwlpZiAoIXNlcmlhbCkKKwkJcmV0dXJuOworCisJZ2FybWluX2NsZWFyKGdhcm1pbl9kYXRhX3ApOworCisJLyogc2h1dGRvd24gb3VyIHVyYnMgKi8KKwl1c2Jfa2lsbF91cmIgKHBvcnQtPnJlYWRfdXJiKTsKKwl1c2Jfa2lsbF91cmIgKHBvcnQtPndyaXRlX3VyYik7CisKKwlpZiAobm9SZXNwb25zZUZyb21BcHBMYXllcihnYXJtaW5fZGF0YV9wKSB8fAorCSAgICAoKGdhcm1pbl9kYXRhX3AtPmZsYWdzICYgQ0xFQVJfSEFMVF9SRVFVSVJFRCkgIT0gMCkpIHsKKwkJcHJvY2Vzc19yZXNldGRldl9yZXF1ZXN0KHBvcnQpOworCQlnYXJtaW5fZGF0YV9wLT5zdGF0ZSA9IFNUQVRFX1JFU0VUOworCX0gZWxzZSB7CisJCWdhcm1pbl9kYXRhX3AtPnN0YXRlID0gU1RBVEVfRElTQ09OTkVDVEVEOworCX0KK30KKworCitzdGF0aWMgdm9pZCBnYXJtaW5fd3JpdGVfYnVsa19jYWxsYmFjayAoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ID0gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKil1cmItPmNvbnRleHQ7CisJc3RydWN0IGdhcm1pbl9kYXRhICogZ2FybWluX2RhdGFfcCA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKworCS8qIGZyZWUgdXAgdGhlIHRyYW5zZmVyIGJ1ZmZlciwgYXMgdXNiX2ZyZWVfdXJiKCkgZG9lcyBub3QgZG8gdGhpcyAqLworCWtmcmVlICh1cmItPnRyYW5zZmVyX2J1ZmZlcik7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCWlmICh1cmItPnN0YXR1cykgeworCQlkYmcoIiVzIC0gbm9uemVybyB3cml0ZSBidWxrIHN0YXR1cyByZWNlaXZlZDogJWQiLAorCQkJX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyk7CisJCWdhcm1pbl9kYXRhX3AtPmZsYWdzIHw9IENMRUFSX0hBTFRfUkVRVUlSRUQ7CisJfQorCisJc2NoZWR1bGVfd29yaygmcG9ydC0+d29yayk7Cit9CisKKworc3RhdGljIGludCBnYXJtaW5fd3JpdGVfYnVsayAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGNvdW50KQoreworCXN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgPSBwb3J0LT5zZXJpYWw7CisJc3RydWN0IGdhcm1pbl9kYXRhICogZ2FybWluX2RhdGFfcCA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlzdHJ1Y3QgdXJiICp1cmI7CisJdW5zaWduZWQgY2hhciAqYnVmZmVyOworCWludCBzdGF0dXM7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCwgc3RhdGUgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlciwKKwkJZ2FybWluX2RhdGFfcC0+c3RhdGUpOworCisJZ2FybWluX2RhdGFfcC0+ZmxhZ3MgJj0gfkZMQUdTX0RST1BfREFUQTsKKworCWJ1ZmZlciA9IGttYWxsb2MgKGNvdW50LCBHRlBfQVRPTUlDKTsKKwlpZiAoIWJ1ZmZlcikgeworCQlkZXZfZXJyKCZwb3J0LT5kZXYsICJvdXQgb2YgbWVtb3J5XG4iKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJdXJiID0gdXNiX2FsbG9jX3VyYigwLCBHRlBfQVRPTUlDKTsKKwlpZiAoIXVyYikgeworCQlkZXZfZXJyKCZwb3J0LT5kZXYsICJubyBtb3JlIGZyZWUgdXJic1xuIik7CisJCWtmcmVlIChidWZmZXIpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwltZW1jcHkgKGJ1ZmZlciwgYnVmLCBjb3VudCk7CisKKwl1c2Jfc2VyaWFsX2RlYnVnX2RhdGEoZGVidWcsICZwb3J0LT5kZXYsIF9fRlVOQ1RJT05fXywgY291bnQsIGJ1ZmZlcik7CisKKwl1c2JfZmlsbF9idWxrX3VyYiAodXJiLCBzZXJpYWwtPmRldiwKKwkJCSAJdXNiX3NuZGJ1bGtwaXBlIChzZXJpYWwtPmRldiwKKwkJCQlwb3J0LT5idWxrX291dF9lbmRwb2ludEFkZHJlc3MpLAorCQkJCWJ1ZmZlciwgY291bnQsCisJCQkJZ2FybWluX3dyaXRlX2J1bGtfY2FsbGJhY2ssIHBvcnQpOworCXVyYi0+dHJhbnNmZXJfZmxhZ3MgfD0gVVJCX1pFUk9fUEFDS0VUOworCisJaWYgKEdBUk1JTl9MQVlFUklEX0FQUEwgPT0gZ2V0TGF5ZXJJZChidWZmZXIpKSB7CisJCWdhcm1pbl9kYXRhX3AtPmZsYWdzIHw9IEZMQUdTX0FQUF9SRVFfU0VFTjsKKwkJaWYgKGdhcm1pbl9kYXRhX3AtPm1vZGUgPT0gTU9ERV9HQVJNSU5fU0VSSUFMKSAgeworCQkJcGt0X2NsZWFyKGdhcm1pbl9kYXRhX3ApOworCQkJZ2FybWluX2RhdGFfcC0+c3RhdGUgPSBTVEFURV9HU1BfV0FJVF9EQVRBOworCQl9CisJfQorCisJLyogc2VuZCBpdCBkb3duIHRoZSBwaXBlICovCisJc3RhdHVzID0gdXNiX3N1Ym1pdF91cmIodXJiLCBHRlBfQVRPTUlDKTsKKwlpZiAoc3RhdHVzKSB7CisJCWRldl9lcnIoJnBvcnQtPmRldiwKKwkJICAgICAgICAiJXMgLSB1c2Jfc3VibWl0X3VyYih3cml0ZSBidWxrKSAiCisJCSAgICAgICAgImZhaWxlZCB3aXRoIHN0YXR1cyA9ICVkXG4iLAorCQkJCV9fRlVOQ1RJT05fXywgc3RhdHVzKTsKKwkJY291bnQgPSBzdGF0dXM7CisJfSBlbHNlIHsKKworCQlpZiAoR0FSTUlOX0xBWUVSSURfQVBQTCA9PSBnZXRMYXllcklkKGJ1ZmZlcikKKwkJICAgICYmIChnYXJtaW5fZGF0YV9wLT5tb2RlID09IE1PREVfR0FSTUlOX1NFUklBTCkpICB7CisKKwkJCWdzcF9zZW5kX2FjayhnYXJtaW5fZGF0YV9wLCBidWZmZXJbNF0pOworCQl9CisJfQorCisJLyogd2UgYXJlIGRvbmUgd2l0aCB0aGlzIHVyYiwgc28gbGV0IHRoZSBob3N0IGRyaXZlcgorCSAqIHJlYWxseSBmcmVlIGl0IHdoZW4gaXQgaXMgZmluaXNoZWQgd2l0aCBpdCAqLworCXVzYl9mcmVlX3VyYiAodXJiKTsKKworCXJldHVybiBjb3VudDsKK30KKworCisKK3N0YXRpYyBpbnQgZ2FybWluX3dyaXRlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGNvdW50KQoreworCWludCBwa3RpZCwgcGt0c2l6LCBsZW47CisJc3RydWN0IGdhcm1pbl9kYXRhICogZ2FybWluX2RhdGFfcCA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlfX2xlMzIgKnByaXZwa3QgPSAoX19sZTMyICopZ2FybWluX2RhdGFfcC0+cHJpdnBrdDsKKworCXVzYl9zZXJpYWxfZGVidWdfZGF0YShkZWJ1ZywgJnBvcnQtPmRldiwgX19GVU5DVElPTl9fLCBjb3VudCwgYnVmKTsKKworCS8qIGNoZWNrIGZvciBvdXIgcHJpdmF0ZSBwYWNrZXRzICovCisJaWYgKGNvdW50ID49IEdBUk1JTl9QS1RIRFJfTEVOR1RIKSB7CisKKwkJbGVuID0gUFJJVlBLVFNJWjsKKwkJaWYgKGNvdW50IDwgbGVuKQorCQkJbGVuID0gY291bnQ7CisKKwkJbWVtY3B5KGdhcm1pbl9kYXRhX3AtPnByaXZwa3QsIGJ1ZiwgbGVuKTsKKworCQlwa3RzaXogPSBnZXREYXRhTGVuZ3RoKGdhcm1pbl9kYXRhX3AtPnByaXZwa3QpOworCQlwa3RpZCAgPSBnZXRQYWNrZXRJZChnYXJtaW5fZGF0YV9wLT5wcml2cGt0KTsKKworCQlpZiAoY291bnQgPT0gKEdBUk1JTl9QS1RIRFJfTEVOR1RIK3BrdHNpeikKKwkJICAgICYmIEdBUk1JTl9MQVlFUklEX1BSSVZBVEUgPT0gZ2V0TGF5ZXJJZChnYXJtaW5fZGF0YV9wLT5wcml2cGt0KSkgeworCisJCQlkYmcoIiVzIC0gcHJvY2Vzc2luZyBwcml2YXRlIHJlcXVlc3QgJWQiLAorCQkJCV9fRlVOQ1RJT05fXywgcGt0aWQpOworCisJCQkvLyBkcm9wIGFsbCB1bmZpbmlzaGVkIHRyYW5zZmVycworCQkJZ2FybWluX2NsZWFyKGdhcm1pbl9kYXRhX3ApOworCisJCQlzd2l0Y2gocGt0aWQpIHsKKworCQkJY2FzZSBQUklWX1BLVElEX1NFVF9ERUJVRzoKKwkJCQlpZiAocGt0c2l6ICE9IDQpCisJCQkJCXJldHVybiAtRUlOVlBLVDsKKwkJCQlkZWJ1ZyA9IF9fbGUzMl90b19jcHUocHJpdnBrdFszXSk7CisJCQkJZGJnKCIlcyAtIGRlYnVnIGxldmVsIHNldCB0byAweCVYIiwKKwkJCQkJX19GVU5DVElPTl9fLCBkZWJ1Zyk7CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgUFJJVl9QS1RJRF9TRVRfTU9ERToKKwkJCQlpZiAocGt0c2l6ICE9IDQpCisJCQkJCXJldHVybiAtRUlOVlBLVDsKKwkJCQlnYXJtaW5fZGF0YV9wLT5tb2RlID0gX19sZTMyX3RvX2NwdShwcml2cGt0WzNdKTsKKwkJCQlkYmcoIiVzIC0gbW9kZSBzZXQgdG8gJWQiLAorCQkJCQlfX0ZVTkNUSU9OX18sIGdhcm1pbl9kYXRhX3AtPm1vZGUpOworCQkJCWJyZWFrOworCisJCQljYXNlIFBSSVZfUEtUSURfSU5GT19SRVE6CisJCQkJcHJpdl9zdGF0dXNfcmVzcChwb3J0KTsKKwkJCQlicmVhazsKKworCQkJY2FzZSBQUklWX1BLVElEX1JFU0VUX1JFUToKKwkJCQlnYXJtaW5fZGF0YV9wLT5mbGFncyB8PSBGTEFHU19BUFBfUkVRX1NFRU47CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgUFJJVl9QS1RJRF9TRVRfREVGX01PREU6CisJCQkJaWYgKHBrdHNpeiAhPSA0KQorCQkJCQlyZXR1cm4gLUVJTlZQS1Q7CisJCQkJaW5pdGlhbF9tb2RlID0gX19sZTMyX3RvX2NwdShwcml2cGt0WzNdKTsKKwkJCQlkYmcoIiVzIC0gaW5pdGlhbF9tb2RlIHNldCB0byAlZCIsCisJCQkJCV9fRlVOQ1RJT05fXywKKwkJCQkJZ2FybWluX2RhdGFfcC0+bW9kZSk7CisJCQkJYnJlYWs7CisJCQl9CisJCQlyZXR1cm4gY291bnQ7CisJCX0KKwl9CisKKwlpZiAoZ2FybWluX2RhdGFfcC0+bW9kZSA9PSBNT0RFX0dBUk1JTl9TRVJJQUwpIHsKKwkJcmV0dXJuIGdzcF9yZWNlaXZlKGdhcm1pbl9kYXRhX3AsIGJ1ZiwgY291bnQpOworCX0gZWxzZSB7CS8qIE1PREVfTkFUSVZFICovCisJCXJldHVybiBuYXRfcmVjZWl2ZShnYXJtaW5fZGF0YV9wLCBidWYsIGNvdW50KTsKKwl9Cit9CisKKworc3RhdGljIGludCBnYXJtaW5fd3JpdGVfcm9vbSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKK3sKKwkvKgorCSAqIFJlcG9ydCBiYWNrIHRoZSBieXRlcyBjdXJyZW50bHkgYXZhaWxhYmxlIGluIHRoZSBvdXRwdXQgYnVmZmVyLgorCSAqLworCXN0cnVjdCBnYXJtaW5fZGF0YSAqIGdhcm1pbl9kYXRhX3AgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJcmV0dXJuIEdQU19PVVRfQlVGU0laLWdhcm1pbl9kYXRhX3AtPm91dHNpemU7Cit9CisKKworc3RhdGljIGludCBnYXJtaW5fY2hhcnNfaW5fYnVmZmVyIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCS8qCisJICogUmVwb3J0IGJhY2sgdGhlIG51bWJlciBvZiBieXRlcyBjdXJyZW50bHkgaW4gb3VyIGlucHV0IGJ1ZmZlci4KKyAgICAgICAgICogV2lsbCB0aGlzIGxvY2sgdXAgdGhlIGRyaXZlciAtIHRoZSBidWZmZXIgY29udGFpbnMgYW4gaW5jb21wbGV0ZQorICAgICAgICAgKiBwYWNrYWdlIHdoaWNoIHdpbGwgbm90IGJlIHdyaXR0ZW4gdG8gdGhlIGRldmljZSB1bnRpbCBpdAorICAgICAgICAgKiBoYXMgYmVlbiBjb21wbGV0ZWQgPworICAgICAgICAgKi8KKwkvL3N0cnVjdCBnYXJtaW5fZGF0YSAqIGdhcm1pbl9kYXRhX3AgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJLy9yZXR1cm4gZ2FybWluX2RhdGFfcC0+aW5zaXplOworCXJldHVybiAwOworfQorCisKK3N0YXRpYyB2b2lkIGdhcm1pbl9yZWFkX3Byb2Nlc3Moc3RydWN0IGdhcm1pbl9kYXRhICogZ2FybWluX2RhdGFfcCwKKwkJCQkgdW5zaWduZWQgY2hhciAqZGF0YSwgdW5zaWduZWQgZGF0YV9sZW5ndGgpCit7CisJaWYgKGdhcm1pbl9kYXRhX3AtPmZsYWdzICYgRkxBR1NfRFJPUF9EQVRBKSB7CisJCS8qIGFib3J0LXRyYW5zZmVyIGNtZCBpcyBhY3RpY2UgKi8KKwkJZGJnKCIlcyAtIHBrdCBkcm9wcGVkIiwgX19GVU5DVElPTl9fKTsKKwl9IGVsc2UgaWYgKGdhcm1pbl9kYXRhX3AtPnN0YXRlICE9IFNUQVRFX0RJU0NPTk5FQ1RFRCAmJgorCSAgICAgICAgICAgZ2FybWluX2RhdGFfcC0+c3RhdGUgIT0gU1RBVEVfUkVTRVQgKSB7CisKKwkJLyogcmVtZW1iZXIgYW55IGFwcGwubGF5ZXIgcGFja2V0cywgc28gd2Uga25vdworCQkgICBpZiBhIHJlc2V0IGlzIHJlcXVpcmVkIG9yIG5vdCB3aGVuIGNsb3NpbmcKKwkJICAgdGhlIGRldmljZSAqLworCQlpZiAoMCA9PSBtZW1jbXAoZGF0YSwgR0FSTUlOX0FQUF9MQVlFUl9SRVBMWSwKKwkJICAgICAgICAgICAgICAgIHNpemVvZihHQVJNSU5fQVBQX0xBWUVSX1JFUExZKSkpCisJCQlnYXJtaW5fZGF0YV9wLT5mbGFncyB8PSBGTEFHU19BUFBfUkVTUF9TRUVOOworCisJCS8qIGlmIHRocm90dGxpbmcgaXMgYWN0aXZlIG9yIHBvc3RwcmVjZXNzaW5nIGlzIHJlcXVpcmVkCisJCSAgIHB1dCB0aGUgcmVjZWl2ZWQgZGF0YSBpbiB0aCBpbnB1dCBxdWV1ZSwgb3RoZXJ3aXNlCisJCSAgIHNlbmQgaXQgZGlyZWN0bHkgdG8gdGhlIHR0eSBwb3J0ICovCisJCWlmIChnYXJtaW5fZGF0YV9wLT5mbGFncyAmIEZMQUdTX1FVRVVJTkcpIHsKKwkJCXBrdF9hZGQoZ2FybWluX2RhdGFfcCwgZGF0YSwgZGF0YV9sZW5ndGgpOworCQl9IGVsc2UgaWYgKGdhcm1pbl9kYXRhX3AtPm1vZGUgPT0gTU9ERV9HQVJNSU5fU0VSSUFMKSB7CisJCQlpZiAoZ2V0TGF5ZXJJZChkYXRhKSA9PSBHQVJNSU5fTEFZRVJJRF9BUFBMKSB7CisJCQkJcGt0X2FkZChnYXJtaW5fZGF0YV9wLCBkYXRhLCBkYXRhX2xlbmd0aCk7CisJCQl9CisJCX0gZWxzZSB7CisJCQlzZW5kX3RvX3R0eShnYXJtaW5fZGF0YV9wLT5wb3J0LCBkYXRhLCBkYXRhX2xlbmd0aCk7CisJCX0KKwl9Cit9CisKKworc3RhdGljIHZvaWQgZ2FybWluX3JlYWRfYnVsa19jYWxsYmFjayAoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ID0gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKil1cmItPmNvbnRleHQ7CisJc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCA9ICBwb3J0LT5zZXJpYWw7CisJc3RydWN0IGdhcm1pbl9kYXRhICogZ2FybWluX2RhdGFfcCA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwl1bnNpZ25lZCBjaGFyICpkYXRhID0gdXJiLT50cmFuc2Zlcl9idWZmZXI7CisJaW50IHN0YXR1czsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJaWYgKCFzZXJpYWwpIHsKKwkJZGJnKCIlcyAtIGJhZCBzZXJpYWwgcG9pbnRlciwgZXhpdGluZyIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybjsKKwl9CisKKwlpZiAodXJiLT5zdGF0dXMpIHsKKwkJZGJnKCIlcyAtIG5vbnplcm8gcmVhZCBidWxrIHN0YXR1cyByZWNlaXZlZDogJWQiLAorCQkJX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyk7CisJCXJldHVybjsKKwl9CisKKwl1c2Jfc2VyaWFsX2RlYnVnX2RhdGEoZGVidWcsICZwb3J0LT5kZXYsIAorCQkJCV9fRlVOQ1RJT05fXywgdXJiLT5hY3R1YWxfbGVuZ3RoLCBkYXRhKTsKKworCWdhcm1pbl9yZWFkX3Byb2Nlc3MoZ2FybWluX2RhdGFfcCwgZGF0YSwgdXJiLT5hY3R1YWxfbGVuZ3RoKTsKKworCS8qIENvbnRpbnVlIHRyeWluZyB0byByZWFkIHVudGlsIG5vdGhpbmcgbW9yZSBpcyByZWNlaXZlZCAgKi8KKwlpZiAodXJiLT5hY3R1YWxfbGVuZ3RoID4gMCkgeworCQl1c2JfZmlsbF9idWxrX3VyYiAocG9ydC0+cmVhZF91cmIsIHNlcmlhbC0+ZGV2LAorCQkJICAgdXNiX3JjdmJ1bGtwaXBlIChzZXJpYWwtPmRldiwKKwkJCQkJICAgIHBvcnQtPmJ1bGtfaW5fZW5kcG9pbnRBZGRyZXNzKSwKKwkJCSAgIHBvcnQtPnJlYWRfdXJiLT50cmFuc2Zlcl9idWZmZXIsCisJCQkgICBwb3J0LT5yZWFkX3VyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCwKKwkJCSAgIGdhcm1pbl9yZWFkX2J1bGtfY2FsbGJhY2ssIHBvcnQpOworCQlzdGF0dXMgPSB1c2Jfc3VibWl0X3VyYihwb3J0LT5yZWFkX3VyYiwgR0ZQX0FUT01JQyk7CisJCWlmIChzdGF0dXMpCisJCQlkZXZfZXJyKCZwb3J0LT5kZXYsCisJCQkJIiVzIC0gZmFpbGVkIHJlc3VibWl0dGluZyByZWFkIHVyYiwgZXJyb3IgJWRcbiIsCisJCQkgICAgICAgIF9fRlVOQ1RJT05fXywgc3RhdHVzKTsKKwl9CisJcmV0dXJuOworfQorCisKK3N0YXRpYyB2b2lkIGdhcm1pbl9yZWFkX2ludF9jYWxsYmFjayAoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlpbnQgc3RhdHVzOworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqKXVyYi0+Y29udGV4dDsKKwlzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsID0gcG9ydC0+c2VyaWFsOworCXN0cnVjdCBnYXJtaW5fZGF0YSAqIGdhcm1pbl9kYXRhX3AgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJdW5zaWduZWQgY2hhciAqZGF0YSA9IHVyYi0+dHJhbnNmZXJfYnVmZmVyOworCisJc3dpdGNoICh1cmItPnN0YXR1cykgeworCWNhc2UgMDoKKwkJLyogc3VjY2VzcyAqLworCQlicmVhazsKKwljYXNlIC1FQ09OTlJFU0VUOgorCWNhc2UgLUVOT0VOVDoKKwljYXNlIC1FU0hVVERPV046CisJCS8qIHRoaXMgdXJiIGlzIHRlcm1pbmF0ZWQsIGNsZWFuIHVwICovCisJCWRiZygiJXMgLSB1cmIgc2h1dHRpbmcgZG93biB3aXRoIHN0YXR1czogJWQiLAorCQkJX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyk7CisJCXJldHVybjsKKwlkZWZhdWx0OgorCQlkYmcoIiVzIC0gbm9uemVybyB1cmIgc3RhdHVzIHJlY2VpdmVkOiAlZCIsCisJCQlfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzKTsKKwkJcmV0dXJuOworCX0KKworCXVzYl9zZXJpYWxfZGVidWdfZGF0YShkZWJ1ZywgJnBvcnQtPmRldiwgX19GVU5DVElPTl9fLCAKKwkJCQl1cmItPmFjdHVhbF9sZW5ndGgsIHVyYi0+dHJhbnNmZXJfYnVmZmVyKTsKKworCWlmICh1cmItPmFjdHVhbF9sZW5ndGggPT0gc2l6ZW9mKEdBUk1JTl9CVUxLX0lOX0FWQUlMX1JFUExZKSAmJgorCSAgICAwID09IG1lbWNtcChkYXRhLCBHQVJNSU5fQlVMS19JTl9BVkFJTF9SRVBMWSwKKwkJICAgICAgICBzaXplb2YoR0FSTUlOX0JVTEtfSU5fQVZBSUxfUkVQTFkpKSkgeworCisJCWRiZygiJXMgLSBidWxrIGRhdGEgYXZhaWxhYmxlLiIsIF9fRlVOQ1RJT05fXyk7CisKKwkJLyogYnVsayBkYXRhIGF2YWlsYWJsZSAqLworCQl1c2JfZmlsbF9idWxrX3VyYiAocG9ydC0+cmVhZF91cmIsIHNlcmlhbC0+ZGV2LAorCQkJCXVzYl9yY3ZidWxrcGlwZSAoc2VyaWFsLT5kZXYsCisJCQkJcG9ydC0+YnVsa19pbl9lbmRwb2ludEFkZHJlc3MpLAorCQkJCXBvcnQtPnJlYWRfdXJiLT50cmFuc2Zlcl9idWZmZXIsCisJCQkJcG9ydC0+cmVhZF91cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGgsCisJCQkJZ2FybWluX3JlYWRfYnVsa19jYWxsYmFjaywgcG9ydCk7CisJCXN0YXR1cyA9IHVzYl9zdWJtaXRfdXJiKHBvcnQtPnJlYWRfdXJiLCBHRlBfS0VSTkVMKTsKKwkJaWYgKHN0YXR1cykgeworCQkJZGV2X2VycigmcG9ydC0+ZGV2LAorCQkJCSIlcyAtIGZhaWxlZCBzdWJtaXR0aW5nIHJlYWQgdXJiLCBlcnJvciAlZFxuIiwKKwkJCV9fRlVOQ1RJT05fXywgc3RhdHVzKTsKKwkJfQorCisJfSBlbHNlIGlmICh1cmItPmFjdHVhbF9sZW5ndGggPT0gKDQrc2l6ZW9mKEdBUk1JTl9TVEFSVF9TRVNTSU9OX1JFUExZKSkKKwkJCSAmJiAwID09IG1lbWNtcChkYXRhLCBHQVJNSU5fU1RBUlRfU0VTU0lPTl9SRVBMWSwKKwkJCSAgICAgICAgICAgICAgICBzaXplb2YoR0FSTUlOX1NUQVJUX1NFU1NJT05fUkVQTFkpKSkgeworCisJCWdhcm1pbl9kYXRhX3AtPmZsYWdzIHw9IEZMQUdTX1NFU1NJT05fUkVQTFkxX1NFRU47CisKKwkJLyogc2F2ZSB0aGUgc2VyaWFsIG51bWJlciAqLworCQlnYXJtaW5fZGF0YV9wLT5zZXJpYWxfbnVtIAorCQkJPSBfX2xlMzJfdG9fY3B1cCgoX19sZTMyKikoZGF0YStHQVJNSU5fUEtUSERSX0xFTkdUSCkpOworCisJCWRiZygiJXMgLSBzdGFydC1vZi1zZXNzaW9uIHJlcGx5IHNlZW4gLSBzZXJpYWwgJXUuIiwKKwkJCV9fRlVOQ1RJT05fXywgZ2FybWluX2RhdGFfcC0+c2VyaWFsX251bSk7CisJfQorCisJaWYgKGdhcm1pbl9kYXRhX3AtPmlnbm9yZVBrdHMpIHsKKwkJLyogdGhpcyByZXBseSBiZWxvbmdzIHRvIGEgcmVxdWVzdCBnZW5lcmF0ZWQgYnkgdGhlIGRyaXZlciwKKwkJICAgaWdub3JlIGl0LiAqLworCQlkYmcoIiVzIC0gcGt0IGlnbm9yZWQgKCVkKSIsCisJCQlfX0ZVTkNUSU9OX18sIGdhcm1pbl9kYXRhX3AtPmlnbm9yZVBrdHMpOworCQlnYXJtaW5fZGF0YV9wLT5pZ25vcmVQa3RzLS07CisJfSBlbHNlIHsKKwkJZ2FybWluX3JlYWRfcHJvY2VzcyhnYXJtaW5fZGF0YV9wLCBkYXRhLCB1cmItPmFjdHVhbF9sZW5ndGgpOworCX0KKworCXBvcnQtPmludGVycnVwdF9pbl91cmItPmRldiA9IHBvcnQtPnNlcmlhbC0+ZGV2OworCXN0YXR1cyA9IHVzYl9zdWJtaXRfdXJiICh1cmIsIEdGUF9BVE9NSUMpOworCWlmIChzdGF0dXMpCisJCWRldl9lcnIoJnVyYi0+ZGV2LT5kZXYsCisJCQkiJXMgLSBFcnJvciAlZCBzdWJtaXR0aW5nIGludGVycnVwdCB1cmJcbiIsCisJCQlfX0ZVTkNUSU9OX18sIHN0YXR1cyk7Cit9CisKKworLyoKKyAqIFNlbmRzIHRoZSBuZXh0IHF1ZXVlZCBwYWNrdCB0byB0aGUgdHR5IHBvcnQgKGdhcm1pbiBuYXRpdmUgbW9kZSBvbmx5KQorICogYW5kIHRoZW4gc2V0cyBhIHRpbWVyIHRvIGNhbGwgaXRzZWxmIGFnYWluIHVudGlsIGFsbCBxdWV1ZWQgZGF0YQorICogaXMgc2VudC4KKyAqLworc3RhdGljIGludCBnYXJtaW5fZmx1c2hfcXVldWUoc3RydWN0IGdhcm1pbl9kYXRhICogZ2FybWluX2RhdGFfcCkKK3sKKwlzdHJ1Y3QgZ2FybWluX3BhY2tldCAqcGt0OworCisJaWYgKChnYXJtaW5fZGF0YV9wLT5mbGFncyAmIEZMQUdTX1RIUk9UVExFRCkgPT0gMCkgeworCQlwa3QgPSBwa3RfcG9wKGdhcm1pbl9kYXRhX3ApOworCQlpZiAocGt0ICE9IE5VTEwpIHsKKworCQkJc2VuZF90b190dHkoZ2FybWluX2RhdGFfcC0+cG9ydCwgcGt0LT5kYXRhLCBwa3QtPnNpemUpOworCQkJa2ZyZWUocGt0KTsKKwkJCW1vZF90aW1lcigmZ2FybWluX2RhdGFfcC0+dGltZXIsICgxKStqaWZmaWVzKTsKKworCQl9IGVsc2UgeworCQkJZ2FybWluX2RhdGFfcC0+ZmxhZ3MgJj0gfkZMQUdTX1FVRVVJTkc7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKKworc3RhdGljIHZvaWQgZ2FybWluX3Rocm90dGxlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCBnYXJtaW5fZGF0YSAqIGdhcm1pbl9kYXRhX3AgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKwkvKiBzZXQgZmxhZywgZGF0YSByZWNlaXZlZCB3aWxsIGJlIHB1dCBpbnRvIGEgcXVldWUKKwkgICBmb3IgbGF0ZXIgcHJvY2Vzc2luZyAqLworCWdhcm1pbl9kYXRhX3AtPmZsYWdzIHw9IEZMQUdTX1FVRVVJTkd8RkxBR1NfVEhST1RUTEVEOworfQorCisKK3N0YXRpYyB2b2lkIGdhcm1pbl91bnRocm90dGxlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCBnYXJtaW5fZGF0YSAqIGdhcm1pbl9kYXRhX3AgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKwlnYXJtaW5fZGF0YV9wLT5mbGFncyAmPSB+RkxBR1NfVEhST1RUTEVEOworCisJLyogaW4gbmF0aXZlIG1vZGUgc2VuZCBxdWV1ZWQgZGF0YSB0byB0dHksIGluCisJICAgc2VyaWFsIG1vZGUgbm90aGluZyBuZWVkcyB0byBiZSBkb25lIGhlcmUgKi8KKwlpZiAoZ2FybWluX2RhdGFfcC0+bW9kZSA9PSBNT0RFX05BVElWRSkKKwkJZ2FybWluX2ZsdXNoX3F1ZXVlKGdhcm1pbl9kYXRhX3ApOworfQorCisKKworLyoKKyAqIFRoZSB0aW1lciBpcyBjdXJyZW50bHkgb25seSB1c2VkIHRvIHNlbmQgcXVldWVkIHBhY2tldHMgdG8KKyAqIHRoZSB0dHkgaW4gY2FzZXMgd2hlcmUgdGhlIHByb3RvY29sIHByb3ZpZGVzIG5vIG93biBoYW5kc2hha2luZworICogdG8gaW5pdGlhdGUgdGhlIHRyYW5zZmVyLgorICovCitzdGF0aWMgdm9pZCB0aW1lb3V0X2hhbmRsZXIodW5zaWduZWQgbG9uZyBkYXRhKQoreworCXN0cnVjdCBnYXJtaW5fZGF0YSAqZ2FybWluX2RhdGFfcCA9IChzdHJ1Y3QgZ2FybWluX2RhdGEgKikgZGF0YTsKKworCS8qIHNlbmQgdGhlIG5leHQgcXVldWVkIHBhY2tldCB0byB0aGUgdHR5IHBvcnQgKi8KKwlpZiAoZ2FybWluX2RhdGFfcC0+bW9kZSA9PSBNT0RFX05BVElWRSkKKwkJaWYgKGdhcm1pbl9kYXRhX3AtPmZsYWdzICYgRkxBR1NfUVVFVUlORykKKwkJCWdhcm1pbl9mbHVzaF9xdWV1ZShnYXJtaW5fZGF0YV9wKTsKK30KKworCisKK3N0YXRpYyBpbnQgZ2FybWluX2F0dGFjaCAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkKK3sKKwlpbnQgc3RhdHVzID0gMDsKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ID0gc2VyaWFsLT5wb3J0WzBdOworCXN0cnVjdCBnYXJtaW5fZGF0YSAqIGdhcm1pbl9kYXRhX3AgPSBOVUxMOworCisJZGJnKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwlnYXJtaW5fZGF0YV9wID0ga21hbGxvYyAoc2l6ZW9mKHN0cnVjdCBnYXJtaW5fZGF0YSksIEdGUF9LRVJORUwpOworCWlmIChnYXJtaW5fZGF0YV9wID09IE5VTEwpIHsKKwkJZGV2X2VycigmcG9ydC0+ZGV2LCAiJXMgLSBPdXQgb2YgbWVtb3J5XG4iLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisJbWVtc2V0IChnYXJtaW5fZGF0YV9wLCAwLCBzaXplb2Yoc3RydWN0IGdhcm1pbl9kYXRhKSk7CisJaW5pdF90aW1lcigmZ2FybWluX2RhdGFfcC0+dGltZXIpOworCXNwaW5fbG9ja19pbml0KCZnYXJtaW5fZGF0YV9wLT5sb2NrKTsKKwlJTklUX0xJU1RfSEVBRCgmZ2FybWluX2RhdGFfcC0+cGt0bGlzdCk7CisJLy9nYXJtaW5fZGF0YV9wLT50aW1lci5leHBpcmVzID0gamlmZmllcyArIHNlc3Npb25fdGltZW91dDsKKwlnYXJtaW5fZGF0YV9wLT50aW1lci5kYXRhID0gKHVuc2lnbmVkIGxvbmcpZ2FybWluX2RhdGFfcDsKKwlnYXJtaW5fZGF0YV9wLT50aW1lci5mdW5jdGlvbiA9IHRpbWVvdXRfaGFuZGxlcjsKKwlnYXJtaW5fZGF0YV9wLT5wb3J0ID0gcG9ydDsKKwlnYXJtaW5fZGF0YV9wLT5zdGF0ZSA9IDA7CisJZ2FybWluX2RhdGFfcC0+Y291bnQgPSAwOworCXVzYl9zZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0LCBnYXJtaW5fZGF0YV9wKTsKKworCXN0YXR1cyA9IGdhcm1pbl9pbml0X3Nlc3Npb24ocG9ydCk7CisKKwlyZXR1cm4gc3RhdHVzOworfQorCisKK3N0YXRpYyB2b2lkIGdhcm1pbl9zaHV0ZG93biAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ID0gc2VyaWFsLT5wb3J0WzBdOworCXN0cnVjdCBnYXJtaW5fZGF0YSAqIGdhcm1pbl9kYXRhX3AgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisKKwlkYmcoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCXVzYl9raWxsX3VyYiAocG9ydC0+aW50ZXJydXB0X2luX3VyYik7CisJZGVsX3RpbWVyX3N5bmMoJmdhcm1pbl9kYXRhX3AtPnRpbWVyKTsKKwlrZnJlZSAoZ2FybWluX2RhdGFfcCk7CisJdXNiX3NldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQsIE5VTEwpOworfQorCisKKworCisKKworCisvKiBBbGwgb2YgdGhlIGRldmljZSBpbmZvIG5lZWRlZCAqLworc3RhdGljIHN0cnVjdCB1c2Jfc2VyaWFsX2RldmljZV90eXBlIGdhcm1pbl9kZXZpY2UgPSB7CisJLm93bmVyICAgICAgICAgICAgICAgPSBUSElTX01PRFVMRSwKKwkubmFtZSAgICAgICAgICAgICAgICA9ICJHYXJtaW4gR1BTIHVzYi90dHkiLAorCS5zaG9ydF9uYW1lICAgICAgICAgID0gImdhcm1pbl9ncHMiLAorCS5pZF90YWJsZSAgICAgICAgICAgID0gaWRfdGFibGUsCisJLm51bV9pbnRlcnJ1cHRfaW4gICAgPSAxLAorCS5udW1fYnVsa19pbiAgICAgICAgID0gMSwKKwkubnVtX2J1bGtfb3V0ICAgICAgICA9IDEsCisJLm51bV9wb3J0cyAgICAgICAgICAgPSAxLAorCS5vcGVuICAgICAgICAgICAgICAgID0gZ2FybWluX29wZW4sCisJLmNsb3NlICAgICAgICAgICAgICAgPSBnYXJtaW5fY2xvc2UsCisJLnRocm90dGxlICAgICAgICAgICAgPSBnYXJtaW5fdGhyb3R0bGUsCisJLnVudGhyb3R0bGUgICAgICAgICAgPSBnYXJtaW5fdW50aHJvdHRsZSwKKwkuYXR0YWNoICAgICAgICAgICAgICA9IGdhcm1pbl9hdHRhY2gsCisJLnNodXRkb3duICAgICAgICAgICAgPSBnYXJtaW5fc2h1dGRvd24sCisJLndyaXRlICAgICAgICAgICAgICAgPSBnYXJtaW5fd3JpdGUsCisJLndyaXRlX3Jvb20gICAgICAgICAgPSBnYXJtaW5fd3JpdGVfcm9vbSwKKwkuY2hhcnNfaW5fYnVmZmVyICAgICA9IGdhcm1pbl9jaGFyc19pbl9idWZmZXIsCisJLndyaXRlX2J1bGtfY2FsbGJhY2sgPSBnYXJtaW5fd3JpdGVfYnVsa19jYWxsYmFjaywKKwkucmVhZF9idWxrX2NhbGxiYWNrICA9IGdhcm1pbl9yZWFkX2J1bGtfY2FsbGJhY2ssCisJLnJlYWRfaW50X2NhbGxiYWNrICAgPSBnYXJtaW5fcmVhZF9pbnRfY2FsbGJhY2ssCit9OworCisKK3N0YXRpYyBpbnQgX19pbml0IGdhcm1pbl9pbml0ICh2b2lkKQoreworCWludCByZXR2YWw7CisKKwlyZXR2YWwgPSB1c2Jfc2VyaWFsX3JlZ2lzdGVyKCZnYXJtaW5fZGV2aWNlKTsKKwlpZiAocmV0dmFsKQorCQlnb3RvIGZhaWxlZF9nYXJtaW5fcmVnaXN0ZXI7CisJcmV0dmFsID0gdXNiX3JlZ2lzdGVyKCZnYXJtaW5fZHJpdmVyKTsKKwlpZiAocmV0dmFsKQorCQlnb3RvIGZhaWxlZF91c2JfcmVnaXN0ZXI7CisJaW5mbyhEUklWRVJfREVTQyAiICIgRFJJVkVSX1ZFUlNJT04pOworCisJcmV0dXJuIDA7CitmYWlsZWRfdXNiX3JlZ2lzdGVyOgorCXVzYl9zZXJpYWxfZGVyZWdpc3RlcigmZ2FybWluX2RldmljZSk7CitmYWlsZWRfZ2FybWluX3JlZ2lzdGVyOgorCXJldHVybiByZXR2YWw7Cit9CisKKworc3RhdGljIHZvaWQgX19leGl0IGdhcm1pbl9leGl0ICh2b2lkKQoreworCXVzYl9kZXJlZ2lzdGVyICgmZ2FybWluX2RyaXZlcik7CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyICgmZ2FybWluX2RldmljZSk7Cit9CisKKworCisKK21vZHVsZV9pbml0KGdhcm1pbl9pbml0KTsKK21vZHVsZV9leGl0KGdhcm1pbl9leGl0KTsKKworTU9EVUxFX0FVVEhPUiggRFJJVkVSX0FVVEhPUiApOworTU9EVUxFX0RFU0NSSVBUSU9OKCBEUklWRVJfREVTQyApOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworCittb2R1bGVfcGFyYW0oZGVidWcsIGJvb2wsIFNfSVdVU1IgfCBTX0lSVUdPKTsKK01PRFVMRV9QQVJNX0RFU0MoZGVidWcsICJEZWJ1ZyBlbmFibGVkIG9yIG5vdCIpOworbW9kdWxlX3BhcmFtKGluaXRpYWxfbW9kZSwgaW50LCBTX0lSVUdPKTsKK01PRFVMRV9QQVJNX0RFU0MoaW5pdGlhbF9tb2RlLCAiSW5pdGlhbCBtb2RlIik7CisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9nZW5lcmljLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvZ2VuZXJpYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5MjE0YWEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvZ2VuZXJpYy5jCkBAIC0wLDAgKzEsMzE1IEBACisvKgorICogVVNCIFNlcmlhbCBDb252ZXJ0ZXIgR2VuZXJpYyBmdW5jdGlvbnMKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgLSAyMDAyIEdyZWcgS3JvYWgtSGFydG1hbiAoZ3JlZ0Brcm9haC5jb20pCisgKgorICoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICoJbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbgorICoJMiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eS5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eV9mbGlwLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KKyNpbmNsdWRlIDxsaW51eC91c2IuaD4KKyNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgorI2luY2x1ZGUgInVzYi1zZXJpYWwuaCIKKworc3RhdGljIGludCBkZWJ1ZzsKKworI2lmZGVmIENPTkZJR19VU0JfU0VSSUFMX0dFTkVSSUMKK3N0YXRpYyBfX3UxNiB2ZW5kb3IgID0gMHgwNWY5Oworc3RhdGljIF9fdTE2IHByb2R1Y3QgPSAweGZmZmY7CisKK21vZHVsZV9wYXJhbSh2ZW5kb3IsIHVzaG9ydCwgMCk7CitNT0RVTEVfUEFSTV9ERVNDKHZlbmRvciwgIlVzZXIgc3BlY2lmaWVkIFVTQiBpZFZlbmRvciIpOworCittb2R1bGVfcGFyYW0ocHJvZHVjdCwgdXNob3J0LCAwKTsKK01PRFVMRV9QQVJNX0RFU0MocHJvZHVjdCwgIlVzZXIgc3BlY2lmaWVkIFVTQiBpZFByb2R1Y3QiKTsKKworc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGdlbmVyaWNfZGV2aWNlX2lkc1syXTsgLyogSW5pdGlhbGx5IGFsbCB6ZXJvZXMuICovCisKKy8qIEFsbCBvZiB0aGUgZGV2aWNlIGluZm8gbmVlZGVkIGZvciB0aGUgR2VuZXJpYyBTZXJpYWwgQ29udmVydGVyICovCitzdHJ1Y3QgdXNiX3NlcmlhbF9kZXZpY2VfdHlwZSB1c2Jfc2VyaWFsX2dlbmVyaWNfZGV2aWNlID0geworCS5vd25lciA9CQlUSElTX01PRFVMRSwKKwkubmFtZSA9CQkJIkdlbmVyaWMiLAorCS5zaG9ydF9uYW1lID0JCSJnZW5lcmljIiwKKwkuaWRfdGFibGUgPQkJZ2VuZXJpY19kZXZpY2VfaWRzLAorCS5udW1faW50ZXJydXB0X2luID0JTlVNX0RPTlRfQ0FSRSwKKwkubnVtX2J1bGtfaW4gPQkJTlVNX0RPTlRfQ0FSRSwKKwkubnVtX2J1bGtfb3V0ID0JCU5VTV9ET05UX0NBUkUsCisJLm51bV9wb3J0cyA9CQkxLAorCS5zaHV0ZG93biA9CQl1c2Jfc2VyaWFsX2dlbmVyaWNfc2h1dGRvd24sCit9OworCisvKiB3ZSB3YW50IHRvIGxvb2sgYXQgYWxsIGRldmljZXMsIGFzIHRoZSB2ZW5kb3IvcHJvZHVjdCBpZCBjYW4gY2hhbmdlCisgKiBkZXBlbmRpbmcgb24gdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudCAqLworc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGdlbmVyaWNfc2VyaWFsX2lkc1tdID0geworCXsuZHJpdmVyX2luZm8gPSA0Mn0sCisJe30KK307CisKK3N0YXRpYyBpbnQgZ2VuZXJpY19wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlLAorCQkJICAgICAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCkKK3sKKwljb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWRfcGF0dGVybjsKKworCWlkX3BhdHRlcm4gPSB1c2JfbWF0Y2hfaWQoaW50ZXJmYWNlLCBnZW5lcmljX2RldmljZV9pZHMpOworCWlmIChpZF9wYXR0ZXJuICE9IE5VTEwpCisJCXJldHVybiB1c2Jfc2VyaWFsX3Byb2JlKGludGVyZmFjZSwgaWQpOworCXJldHVybiAtRU5PREVWOworfQorCitzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgZ2VuZXJpY19kcml2ZXIgPSB7CisJLm93bmVyID0JVEhJU19NT0RVTEUsCisJLm5hbWUgPQkJInVzYnNlcmlhbF9nZW5lcmljIiwKKwkucHJvYmUgPQlnZW5lcmljX3Byb2JlLAorCS5kaXNjb25uZWN0ID0JdXNiX3NlcmlhbF9kaXNjb25uZWN0LAorCS5pZF90YWJsZSA9CWdlbmVyaWNfc2VyaWFsX2lkcywKK307CisjZW5kaWYKKworaW50IHVzYl9zZXJpYWxfZ2VuZXJpY19yZWdpc3RlciAoaW50IF9kZWJ1ZykKK3sKKwlpbnQgcmV0dmFsID0gMDsKKworCWRlYnVnID0gX2RlYnVnOworI2lmZGVmIENPTkZJR19VU0JfU0VSSUFMX0dFTkVSSUMKKwlnZW5lcmljX2RldmljZV9pZHNbMF0uaWRWZW5kb3IgPSB2ZW5kb3I7CisJZ2VuZXJpY19kZXZpY2VfaWRzWzBdLmlkUHJvZHVjdCA9IHByb2R1Y3Q7CisJZ2VuZXJpY19kZXZpY2VfaWRzWzBdLm1hdGNoX2ZsYWdzID0gVVNCX0RFVklDRV9JRF9NQVRDSF9WRU5ET1IgfCBVU0JfREVWSUNFX0lEX01BVENIX1BST0RVQ1Q7CisKKwkvKiByZWdpc3RlciBvdXIgZ2VuZXJpYyBkcml2ZXIgd2l0aCBvdXJzZWx2ZXMgKi8KKwlyZXR2YWwgPSB1c2Jfc2VyaWFsX3JlZ2lzdGVyICgmdXNiX3NlcmlhbF9nZW5lcmljX2RldmljZSk7CisJaWYgKHJldHZhbCkKKwkJZ290byBleGl0OworCXJldHZhbCA9IHVzYl9yZWdpc3RlcigmZ2VuZXJpY19kcml2ZXIpOworCWlmIChyZXR2YWwpCisJCXVzYl9zZXJpYWxfZGVyZWdpc3RlcigmdXNiX3NlcmlhbF9nZW5lcmljX2RldmljZSk7CitleGl0OgorI2VuZGlmCisJcmV0dXJuIHJldHZhbDsKK30KKwordm9pZCB1c2Jfc2VyaWFsX2dlbmVyaWNfZGVyZWdpc3RlciAodm9pZCkKK3sKKyNpZmRlZiBDT05GSUdfVVNCX1NFUklBTF9HRU5FUklDCisJLyogcmVtb3ZlIG91ciBnZW5lcmljIGRyaXZlciAqLworCXVzYl9kZXJlZ2lzdGVyKCZnZW5lcmljX2RyaXZlcik7CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyICgmdXNiX3NlcmlhbF9nZW5lcmljX2RldmljZSk7CisjZW5kaWYKK30KKworaW50IHVzYl9zZXJpYWxfZ2VuZXJpY19vcGVuIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsID0gcG9ydC0+c2VyaWFsOworCWludCByZXN1bHQgPSAwOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwkvKiBmb3JjZSBsb3dfbGF0ZW5jeSBvbiBzbyB0aGF0IG91ciB0dHlfcHVzaCBhY3R1YWxseSBmb3JjZXMgdGhlIGRhdGEgdGhyb3VnaCwgCisJICAgb3RoZXJ3aXNlIGl0IGlzIHNjaGVkdWxlZCwgYW5kIHdpdGggaGlnaCBkYXRhIHJhdGVzIChsaWtlIHdpdGggT0hDSSkgZGF0YQorCSAgIGNhbiBnZXQgbG9zdC4gKi8KKwlpZiAocG9ydC0+dHR5KQorCQlwb3J0LT50dHktPmxvd19sYXRlbmN5ID0gMTsKKworCS8qIGlmIHdlIGhhdmUgYSBidWxrIGludGVycnVwdCwgc3RhcnQgcmVhZGluZyBmcm9tIGl0ICovCisJaWYgKHNlcmlhbC0+bnVtX2J1bGtfaW4pIHsKKwkJLyogU3RhcnQgcmVhZGluZyBmcm9tIHRoZSBkZXZpY2UgKi8KKwkJdXNiX2ZpbGxfYnVsa191cmIgKHBvcnQtPnJlYWRfdXJiLCBzZXJpYWwtPmRldiwKKwkJCQkgICB1c2JfcmN2YnVsa3BpcGUoc2VyaWFsLT5kZXYsIHBvcnQtPmJ1bGtfaW5fZW5kcG9pbnRBZGRyZXNzKSwKKwkJCQkgICBwb3J0LT5yZWFkX3VyYi0+dHJhbnNmZXJfYnVmZmVyLAorCQkJCSAgIHBvcnQtPnJlYWRfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoLAorCQkJCSAgICgoc2VyaWFsLT50eXBlLT5yZWFkX2J1bGtfY2FsbGJhY2spID8KKwkJCQkgICAgIHNlcmlhbC0+dHlwZS0+cmVhZF9idWxrX2NhbGxiYWNrIDoKKwkJCQkgICAgIHVzYl9zZXJpYWxfZ2VuZXJpY19yZWFkX2J1bGtfY2FsbGJhY2spLAorCQkJCSAgIHBvcnQpOworCQlyZXN1bHQgPSB1c2Jfc3VibWl0X3VyYihwb3J0LT5yZWFkX3VyYiwgR0ZQX0tFUk5FTCk7CisJCWlmIChyZXN1bHQpCisJCQlkZXZfZXJyKCZwb3J0LT5kZXYsICIlcyAtIGZhaWxlZCByZXN1Ym1pdHRpbmcgcmVhZCB1cmIsIGVycm9yICVkXG4iLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIHZvaWQgZ2VuZXJpY19jbGVhbnVwIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgPSBwb3J0LT5zZXJpYWw7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCWlmIChzZXJpYWwtPmRldikgeworCQkvKiBzaHV0ZG93biBhbnkgYnVsayByZWFkcyB0aGF0IG1pZ2h0IGJlIGdvaW5nIG9uICovCisJCWlmIChzZXJpYWwtPm51bV9idWxrX291dCkKKwkJCXVzYl9raWxsX3VyYihwb3J0LT53cml0ZV91cmIpOworCQlpZiAoc2VyaWFsLT5udW1fYnVsa19pbikKKwkJCXVzYl9raWxsX3VyYihwb3J0LT5yZWFkX3VyYik7CisJfQorfQorCit2b2lkIHVzYl9zZXJpYWxfZ2VuZXJpY19jbG9zZSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKiBmaWxwKQoreworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCWdlbmVyaWNfY2xlYW51cCAocG9ydCk7Cit9CisKK2ludCB1c2Jfc2VyaWFsX2dlbmVyaWNfd3JpdGUoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpCit7CisJc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCA9IHBvcnQtPnNlcmlhbDsKKwlpbnQgcmVzdWx0OworCXVuc2lnbmVkIGNoYXIgKmRhdGE7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCWlmIChjb3VudCA9PSAwKSB7CisJCWRiZygiJXMgLSB3cml0ZSByZXF1ZXN0IG9mIDAgYnl0ZXMiLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm4gKDApOworCX0KKworCS8qIG9ubHkgZG8gc29tZXRoaW5nIGlmIHdlIGhhdmUgYSBidWxrIG91dCBlbmRwb2ludCAqLworCWlmIChzZXJpYWwtPm51bV9idWxrX291dCkgeworCQlpZiAocG9ydC0+d3JpdGVfdXJiLT5zdGF0dXMgPT0gLUVJTlBST0dSRVNTKSB7CisJCQlkYmcoIiVzIC0gYWxyZWFkeSB3cml0aW5nIiwgX19GVU5DVElPTl9fKTsKKwkJCXJldHVybiAoMCk7CisJCX0KKworCQljb3VudCA9IChjb3VudCA+IHBvcnQtPmJ1bGtfb3V0X3NpemUpID8gcG9ydC0+YnVsa19vdXRfc2l6ZSA6IGNvdW50OworCisJCW1lbWNweSAocG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXIsIGJ1ZiwgY291bnQpOworCQlkYXRhID0gcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXI7CisJCXVzYl9zZXJpYWxfZGVidWdfZGF0YShkZWJ1ZywgJnBvcnQtPmRldiwgX19GVU5DVElPTl9fLCBjb3VudCwgZGF0YSk7CisKKwkJLyogc2V0IHVwIG91ciB1cmIgKi8KKwkJdXNiX2ZpbGxfYnVsa191cmIgKHBvcnQtPndyaXRlX3VyYiwgc2VyaWFsLT5kZXYsCisJCQkJICAgdXNiX3NuZGJ1bGtwaXBlIChzZXJpYWwtPmRldiwKKwkJCQkJCSAgICBwb3J0LT5idWxrX291dF9lbmRwb2ludEFkZHJlc3MpLAorCQkJCSAgIHBvcnQtPndyaXRlX3VyYi0+dHJhbnNmZXJfYnVmZmVyLCBjb3VudCwKKwkJCQkgICAoKHNlcmlhbC0+dHlwZS0+d3JpdGVfYnVsa19jYWxsYmFjaykgPyAKKwkJCQkgICAgIHNlcmlhbC0+dHlwZS0+d3JpdGVfYnVsa19jYWxsYmFjayA6CisJCQkJICAgICB1c2Jfc2VyaWFsX2dlbmVyaWNfd3JpdGVfYnVsa19jYWxsYmFjayksIHBvcnQpOworCisJCS8qIHNlbmQgdGhlIGRhdGEgb3V0IHRoZSBidWxrIHBvcnQgKi8KKwkJcmVzdWx0ID0gdXNiX3N1Ym1pdF91cmIocG9ydC0+d3JpdGVfdXJiLCBHRlBfQVRPTUlDKTsKKwkJaWYgKHJlc3VsdCkKKwkJCWRldl9lcnIoJnBvcnQtPmRldiwgIiVzIC0gZmFpbGVkIHN1Ym1pdHRpbmcgd3JpdGUgdXJiLCBlcnJvciAlZFxuIiwgX19GVU5DVElPTl9fLCByZXN1bHQpOworCQllbHNlCisJCQlyZXN1bHQgPSBjb3VudDsKKworCQlyZXR1cm4gcmVzdWx0OworCX0KKworCS8qIG5vIGJ1bGsgb3V0LCBzbyByZXR1cm4gMCBieXRlcyB3cml0dGVuICovCisJcmV0dXJuICgwKTsKK30KKworaW50IHVzYl9zZXJpYWxfZ2VuZXJpY193cml0ZV9yb29tIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgPSBwb3J0LT5zZXJpYWw7CisJaW50IHJvb20gPSAwOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisJCisJaWYgKHNlcmlhbC0+bnVtX2J1bGtfb3V0KSB7CisJCWlmIChwb3J0LT53cml0ZV91cmItPnN0YXR1cyAhPSAtRUlOUFJPR1JFU1MpCisJCQlyb29tID0gcG9ydC0+YnVsa19vdXRfc2l6ZTsKKwl9CisKKwlkYmcoIiVzIC0gcmV0dXJucyAlZCIsIF9fRlVOQ1RJT05fXywgcm9vbSk7CisJcmV0dXJuIChyb29tKTsKK30KKworaW50IHVzYl9zZXJpYWxfZ2VuZXJpY19jaGFyc19pbl9idWZmZXIgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpCit7CisJc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCA9IHBvcnQtPnNlcmlhbDsKKwlpbnQgY2hhcnMgPSAwOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAoc2VyaWFsLT5udW1fYnVsa19vdXQpIHsKKwkJaWYgKHBvcnQtPndyaXRlX3VyYi0+c3RhdHVzID09IC1FSU5QUk9HUkVTUykKKwkJCWNoYXJzID0gcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoOworCX0KKworCWRiZygiJXMgLSByZXR1cm5zICVkIiwgX19GVU5DVElPTl9fLCBjaGFycyk7CisJcmV0dXJuIChjaGFycyk7Cit9CisKK3ZvaWQgdXNiX3NlcmlhbF9nZW5lcmljX3JlYWRfYnVsa19jYWxsYmFjayAoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ID0gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKil1cmItPmNvbnRleHQ7CisJc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCA9IHBvcnQtPnNlcmlhbDsKKwlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5OworCXVuc2lnbmVkIGNoYXIgKmRhdGEgPSB1cmItPnRyYW5zZmVyX2J1ZmZlcjsKKwlpbnQgaTsKKwlpbnQgcmVzdWx0OworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAodXJiLT5zdGF0dXMpIHsKKwkJZGJnKCIlcyAtIG5vbnplcm8gcmVhZCBidWxrIHN0YXR1cyByZWNlaXZlZDogJWQiLCBfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzKTsKKwkJcmV0dXJuOworCX0KKworCXVzYl9zZXJpYWxfZGVidWdfZGF0YShkZWJ1ZywgJnBvcnQtPmRldiwgX19GVU5DVElPTl9fLCB1cmItPmFjdHVhbF9sZW5ndGgsIGRhdGEpOworCisJdHR5ID0gcG9ydC0+dHR5OworCWlmICh0dHkgJiYgdXJiLT5hY3R1YWxfbGVuZ3RoKSB7CisJCWZvciAoaSA9IDA7IGkgPCB1cmItPmFjdHVhbF9sZW5ndGggOyArK2kpIHsKKwkJCS8qIGlmIHdlIGluc2VydCBtb3JlIHRoYW4gVFRZX0ZMSVBCVUZfU0laRSBjaGFyYWN0ZXJzLCB3ZSBkcm9wIHRoZW0uICovCisJCQlpZih0dHktPmZsaXAuY291bnQgPj0gVFRZX0ZMSVBCVUZfU0laRSkgeworCQkJCXR0eV9mbGlwX2J1ZmZlcl9wdXNoKHR0eSk7CisJCQl9CisJCQkvKiB0aGlzIGRvZXNuJ3QgYWN0dWFsbHkgcHVzaCB0aGUgZGF0YSB0aHJvdWdoIHVubGVzcyB0dHktPmxvd19sYXRlbmN5IGlzIHNldCAqLworCQkJdHR5X2luc2VydF9mbGlwX2NoYXIodHR5LCBkYXRhW2ldLCAwKTsKKwkJfQorCSAgCXR0eV9mbGlwX2J1ZmZlcl9wdXNoKHR0eSk7CisJfQorCisJLyogQ29udGludWUgdHJ5aW5nIHRvIGFsd2F5cyByZWFkICAqLworCXVzYl9maWxsX2J1bGtfdXJiIChwb3J0LT5yZWFkX3VyYiwgc2VyaWFsLT5kZXYsCisJCQkgICB1c2JfcmN2YnVsa3BpcGUgKHNlcmlhbC0+ZGV2LAorCQkJCSAgIAkgICAgcG9ydC0+YnVsa19pbl9lbmRwb2ludEFkZHJlc3MpLAorCQkJICAgcG9ydC0+cmVhZF91cmItPnRyYW5zZmVyX2J1ZmZlciwKKwkJCSAgIHBvcnQtPnJlYWRfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoLAorCQkJICAgKChzZXJpYWwtPnR5cGUtPnJlYWRfYnVsa19jYWxsYmFjaykgPyAKKwkJCSAgICAgc2VyaWFsLT50eXBlLT5yZWFkX2J1bGtfY2FsbGJhY2sgOiAKKwkJCSAgICAgdXNiX3NlcmlhbF9nZW5lcmljX3JlYWRfYnVsa19jYWxsYmFjayksIHBvcnQpOworCXJlc3VsdCA9IHVzYl9zdWJtaXRfdXJiKHBvcnQtPnJlYWRfdXJiLCBHRlBfQVRPTUlDKTsKKwlpZiAocmVzdWx0KQorCQlkZXZfZXJyKCZwb3J0LT5kZXYsICIlcyAtIGZhaWxlZCByZXN1Ym1pdHRpbmcgcmVhZCB1cmIsIGVycm9yICVkXG4iLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7Cit9CisKK3ZvaWQgdXNiX3NlcmlhbF9nZW5lcmljX3dyaXRlX2J1bGtfY2FsbGJhY2sgKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopdXJiLT5jb250ZXh0OworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAodXJiLT5zdGF0dXMpIHsKKwkJZGJnKCIlcyAtIG5vbnplcm8gd3JpdGUgYnVsayBzdGF0dXMgcmVjZWl2ZWQ6ICVkIiwgX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyk7CisJCXJldHVybjsKKwl9CisKKwl1c2Jfc2VyaWFsX3BvcnRfc29mdGludCgodm9pZCAqKXBvcnQpOworCisJc2NoZWR1bGVfd29yaygmcG9ydC0+d29yayk7Cit9CisKK3ZvaWQgdXNiX3NlcmlhbF9nZW5lcmljX3NodXRkb3duIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQoreworCWludCBpOworCisJZGJnKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwkvKiBzdG9wIHJlYWRzIGFuZCB3cml0ZXMgb24gYWxsIHBvcnRzICovCisJZm9yIChpPTA7IGkgPCBzZXJpYWwtPm51bV9wb3J0czsgKytpKSB7CisJCWdlbmVyaWNfY2xlYW51cChzZXJpYWwtPnBvcnRbaV0pOworCX0KK30KKwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvXzE2NjU0LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fMTY2NTQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNTNhYmM5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lvXzE2NjU0LmgKQEAgLTAsMCArMSwxOTUgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKgkxNjY1NC5ICQlEZWZpbml0aW9ucyBmb3IgMTZDNjU0IFVBUlQgdXNlZCBvbiBFZGdlUG9ydHMKKyAqCisgKglDb3B5cmlnaHQgKEMpIDE5OTggSW5zaWRlIE91dCBOZXR3b3JrcywgSW5jLgorICoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqCWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKgl0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICoJKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWYgIWRlZmluZWQoXzE2NjU0X0gpCisjZGVmaW5lCV8xNjY1NF9ICisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKgkJCUQgZSBmIGkgbiBlIHMgICAvICAgVCB5IHAgZSBkIGUgZiBzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCS8vCisJLy8gVUFSVCByZWdpc3RlciBudW1iZXJzCisJLy8gTnVtYmVycyAwLTcgYXJlIHBhc3NlZCB0byB0aGUgRWRnZXBvcnQgZGlyZWN0bHkuIE51bWJlcnMgOCBhbmQKKwkvLyBhYm92ZSBhcmUgdXNlZCBpbnRlcm5hbGx5IHRvIGluZGljYXRlIHRoYXQgd2UgbXVzdCBlbmFibGUgYWNjZXNzCisJLy8gdG8gdGhlbSB2aWEgTENSIGJpdCAweDgwIG9yIExDUiA9IDB4QkYuCisJLy8gVGhlIHJlZ2lzdGVyIG51bWJlciBzZW50IHRvIHRoZSBFZGdlcG9ydCBpcyB0aGVuICh4ICYgMHg3KS4KKwkvLworCS8vIERyaXZlciBtdXN0IG5vdCBhY2Nlc3MgcmVnaXN0ZXJzIHRoYXQgYWZmZWN0IG9wZXJhdGlvbiBvZiB0aGUKKwkvLyB0aGUgRWRnZVBvcnQgZmlybXdhcmUgLS0gdGhhdCBpbmNsdWRlcyBUSFIsIFJIUiwgSUVSLCBGQ1IuCisKKworI2RlZmluZSBUSFIJCQkwCS8vICEgVHJhbnNtaXQgSG9sZGluZyBSZWdpc3RlciAoV3JpdGUpCisjZGVmaW5lIFJEUgkJCTAJLy8gISBSZWNlaXZlIEhvbGRpbmcgUmVnaXN0ZXIgKFJlYWQpCisjZGVmaW5lIElFUgkJCTEJLy8gISBJbnRlcnJ1cHQgRW5hYmxlIFJlZ2lzdGVyCisjZGVmaW5lIEZDUgkJCTIJLy8gISBGaWZvIENvbnRyb2wgUmVnaXN0ZXIgKFdyaXRlKQorI2RlZmluZSBJU1IJCQkyCS8vIEludGVycnVwdCBTdGF0dXMgUmVnaXN0ZXIgKFJlYWQpCisjZGVmaW5lIExDUgkJCTMJLy8gTGluZSBDb250cm9sIFJlZ2lzdGVyCisjZGVmaW5lIE1DUgkJCTQJLy8gTW9kZW0gQ29udHJvbCBSZWdpc3RlcgorI2RlZmluZSBMU1IJCQk1CS8vIExpbmUgU3RhdHVzIFJlZ2lzdGVyCisjZGVmaW5lIE1TUgkJCTYJLy8gTW9kZW0gU3RhdHVzIFJlZ2lzdGVyCisjZGVmaW5lIFNQUgkJCTcJLy8gU2NyYXRjaFBhZCBSZWdpc3RlcgorI2RlZmluZSBETEwJCQk4CS8vIEJhbmsyWyAwIF0gRGl2aXNvciBMYXRjaCBMU0IKKyNkZWZpbmUgRExNCQkJOQkvLyBCYW5rMlsgMSBdIERpdmlzb3IgTGF0Y2ggTVNCCisjZGVmaW5lIEVGUgkJCTEwCS8vIEJhbmsyWyAyIF0gRXh0ZW5kZWQgRnVuY3Rpb24gUmVnaXN0ZXIKKy8vZWZpbmUgdW51c2VkCQkJMTEJLy8gQmFuazJbIDMgXQorI2RlZmluZSBYT04xCQkJMTIJLy8gQmFuazJbIDQgXSBYb24tMQorI2RlZmluZSBYT04yCQkJMTMJLy8gQmFuazJbIDUgXSBYb24tMgorI2RlZmluZSBYT0ZGMQkJCTE0CS8vIEJhbmsyWyA2IF0gWG9mZi0xCisjZGVmaW5lIFhPRkYyCQkJMTUJLy8gQmFuazJbIDcgXSBYb2ZmLTIKKworI2RlZmluZQlOVU1fMTY2NTRfUkVHUwkJMTYKKworI2RlZmluZSBJU19SRUdfMk5EX0JBTksoeCkJKCh4KSA+PSA4KQorCisJLy8KKwkvLyBCaXQgZGVmaW5pdGlvbnMgZm9yIGVhY2ggcmVnaXN0ZXIKKwkvLworCisjZGVmaW5lIElFUl9SWAkJCTB4MDEJLy8gRW5hYmxlIHJlY2VpdmUgaW50ZXJydXB0CisjZGVmaW5lIElFUl9UWAkJCTB4MDIJLy8gRW5hYmxlIHRyYW5zbWl0IGludGVycnVwdAorI2RlZmluZSBJRVJfUlhTCQkJMHgwNAkvLyBFbmFibGUgcmVjZWl2ZSBzdGF0dXMgaW50ZXJydXB0CisjZGVmaW5lIElFUl9NRE0JCQkweDA4CS8vIEVuYWJsZSBtb2RlbSBzdGF0dXMgaW50ZXJydXB0CisjZGVmaW5lIElFUl9TTEVFUAkJMHgxMAkvLyBFbmFibGUgc2xlZXAgbW9kZQorI2RlZmluZSBJRVJfWE9GRgkJMHgyMAkvLyBFbmFibGUgcy93IGZsb3cgY29udHJvbCAoWE9GRikgaW50ZXJydXB0CisjZGVmaW5lIElFUl9SVFMJCQkweDQwCS8vIEVuYWJsZSBSVFMgaW50ZXJydXB0CisjZGVmaW5lIElFUl9DVFMJCQkweDgwCS8vIEVuYWJsZSBDVFMgaW50ZXJydXB0CisjZGVmaW5lIElFUl9FTkFCTEVfQUxMCQkweEZGCS8vIEVuYWJsZSBhbGwgaW50cworCisKKyNkZWZpbmUgRkNSX0ZJRk9fRU4JCTB4MDEJLy8gRW5hYmxlIEZJRk9zCisjZGVmaW5lIEZDUl9SWENMUgkJMHgwMgkvLyBSZXNldCBSeCBGSUZPCisjZGVmaW5lIEZDUl9UWENMUgkJMHgwNAkvLyBSZXNldCBUeCBGSUZPCisjZGVmaW5lIEZDUl9ETUFfQkxLCQkweDA4CS8vIEVuYWJsZSBETUEgYmxvY2sgbW9kZQorI2RlZmluZSBGQ1JfVFhfTEVWRUxfTUFTSwkweDMwCS8vIE1hc2sgZm9yIFR4IEZJRk8gTGV2ZWwKKyNkZWZpbmUgRkNSX1RYX0xFVkVMXzgJCTB4MDAJLy8gVHggRklGTyBMZXZlbCA9ICA4IGJ5dGVzCisjZGVmaW5lIEZDUl9UWF9MRVZFTF8xNgkJMHgxMAkvLyBUeCBGSUZPIExldmVsID0gMTYgYnl0ZXMKKyNkZWZpbmUgRkNSX1RYX0xFVkVMXzMyCQkweDIwCS8vIFR4IEZJRk8gTGV2ZWwgPSAzMiBieXRlcworI2RlZmluZSBGQ1JfVFhfTEVWRUxfNTYJCTB4MzAJLy8gVHggRklGTyBMZXZlbCA9IDU2IGJ5dGVzCisjZGVmaW5lIEZDUl9SWF9MRVZFTF9NQVNLCTB4QzAJLy8gTWFzayBmb3IgUnggRklGTyBMZXZlbAorI2RlZmluZSBGQ1JfUlhfTEVWRUxfOAkJMHgwMAkvLyBSeCBGSUZPIExldmVsID0gIDggYnl0ZXMKKyNkZWZpbmUgRkNSX1JYX0xFVkVMXzE2CQkweDQwCS8vIFJ4IEZJRk8gTGV2ZWwgPSAxNiBieXRlcworI2RlZmluZSBGQ1JfUlhfTEVWRUxfNTYJCTB4ODAJLy8gUnggRklGTyBMZXZlbCA9IDU2IGJ5dGVzCisjZGVmaW5lIEZDUl9SWF9MRVZFTF82MAkJMHhDMAkvLyBSeCBGSUZPIExldmVsID0gNjAgYnl0ZXMKKworCisjZGVmaW5lIElTUl9JTlRfTURNX1NUQVRVUwkweDAwCS8vIE1vZGVtIHN0YXR1cyBpbnQgcGVuZGluZworI2RlZmluZSBJU1JfSU5UX05PTkUJCTB4MDEJLy8gTm8gaW50ZXJydXB0IHBlbmRpbmcKKyNkZWZpbmUgSVNSX0lOVF9UWFJEWQkJMHgwMgkvLyBUeCByZWFkeSBpbnQgcGVuZGluZworI2RlZmluZSBJU1JfSU5UX1JYUkRZCQkweDA0CS8vIFJ4IHJlYWR5IGludCBwZW5kaW5nCisjZGVmaW5lIElTUl9JTlRfTElORV9TVEFUVVMJMHgwNgkvLyBMaW5lIHN0YXR1cyBpbnQgcGVuZGluZworI2RlZmluZSBJU1JfSU5UX1JYX1RJTUVPVVQJMHgwQwkvLyBSeCB0aW1lb3V0IGludCBwZW5kaW5nCisjZGVmaW5lIElTUl9JTlRfUlhfWE9GRgkJMHgxMAkvLyBSeCBYb2ZmIGludCBwZW5kaW5nCisjZGVmaW5lIElTUl9JTlRfUlRTX0NUUwkJMHgyMAkvLyBSVFMvQ1RTIGNoYW5nZSBpbnQgcGVuZGluZworI2RlZmluZSBJU1JfRklGT19FTkFCTEVECTB4QzAJLy8gQml0cyBzZXQgaWYgRklGT3MgZW5hYmxlZAorI2RlZmluZSBJU1JfSU5UX0JJVFNfTUFTSwkweDNFCS8vIE1hc2sgdG8gaXNvbGF0ZSB2YWxpZCBpbnQgY2F1c2VzCisKKworI2RlZmluZSBMQ1JfQklUU181CQkweDAwCS8vIDUgYml0cy9jaGFyCisjZGVmaW5lIExDUl9CSVRTXzYJCTB4MDEJLy8gNiBiaXRzL2NoYXIKKyNkZWZpbmUgTENSX0JJVFNfNwkJMHgwMgkvLyA3IGJpdHMvY2hhcgorI2RlZmluZSBMQ1JfQklUU184CQkweDAzCS8vIDggYml0cy9jaGFyCisjZGVmaW5lIExDUl9CSVRTX01BU0sJCTB4MDMJLy8gTWFzayBmb3IgYml0cy9jaGFyIGZpZWxkCisKKyNkZWZpbmUgTENSX1NUT1BfMQkJMHgwMAkvLyAxIHN0b3AgYml0CisjZGVmaW5lIExDUl9TVE9QXzFfNQkJMHgwNAkvLyAxLjUgc3RvcCBiaXRzIChpZiA1ICAgYml0cy9jaGFyKQorI2RlZmluZSBMQ1JfU1RPUF8yCQkweDA0CS8vIDIgc3RvcCBiaXRzICAgKGlmIDYtOCBiaXRzL2NoYXIpCisjZGVmaW5lIExDUl9TVE9QX01BU0sJCTB4MDQJLy8gTWFzayBmb3Igc3RvcCBiaXRzIGZpZWxkCisKKyNkZWZpbmUgTENSX1BBUl9OT05FCQkweDAwCS8vIE5vIHBhcml0eQorI2RlZmluZSBMQ1JfUEFSX09ERAkJMHgwOAkvLyBPZGQgcGFyaXR5CisjZGVmaW5lIExDUl9QQVJfRVZFTgkJMHgxOAkvLyBFdmVuIHBhcml0eQorI2RlZmluZSBMQ1JfUEFSX01BUksJCTB4MjgJLy8gRm9yY2UgcGFyaXR5IGJpdCB0byAxCisjZGVmaW5lIExDUl9QQVJfU1BBQ0UJCTB4MzgJLy8gRm9yY2UgcGFyaXR5IGJpdCB0byAwCisjZGVmaW5lIExDUl9QQVJfTUFTSwkJMHgzOAkvLyBNYXNrIGZvciBwYXJpdHkgZmllbGQKKworI2RlZmluZSBMQ1JfU0VUX0JSRUFLCQkweDQwCS8vIFNldCBCcmVhayBjb25kaXRpb24KKyNkZWZpbmUgTENSX0RMX0VOQUJMRQkJMHg4MAkvLyBFbmFibGUgYWNjZXNzIHRvIGRpdmlzb3IgbGF0Y2gKKworI2RlZmluZSBMQ1JfQUNDRVNTX0VGUgkJMHhCRgkvLyBMb2FkIHRoaXMgdmFsdWUgdG8gYWNjZXNzIERMTCxETE0sCisJCQkJCS8vIGFuZCBhbHNvIHRoZSAnNjU0LW9ubHkgcmVnaXN0ZXJzCisJCQkJCS8vIEVGUiwgWE9OMSwgWE9OMiwgWE9GRjEsIFhPRkYyCisKKworI2RlZmluZSBNQ1JfRFRSCQkJMHgwMQkvLyBBc3NlcnQgRFRSCisjZGVmaW5lIE1DUl9SVFMJCQkweDAyCS8vIEFzc2VydCBSVFMKKyNkZWZpbmUgTUNSX09VVDEJCTB4MDQJLy8gTG9vcGJhY2sgb25seTogU2V0cyBzdGF0ZSBvZiBSSQorI2RlZmluZSBNQ1JfTUFTVEVSX0lFCQkweDA4CS8vIEVuYWJsZSBpbnRlcnJ1cHQgb3V0cHV0cworI2RlZmluZSBNQ1JfTE9PUEJBQ0sJCTB4MTAJLy8gU2V0IGludGVybmFsIChkaWdpdGFsKSBsb29wYmFjayBtb2RlCisjZGVmaW5lIE1DUl9YT05fQU5ZCQkweDIwCS8vIEVuYWJsZSBhbnkgY2hhciB0byBleGl0IFhPRkYgbW9kZQorI2RlZmluZSBNQ1JfSVJfRU5BQkxFCQkweDQwCS8vIEVuYWJsZSBJckRBIGZ1bmN0aW9ucworI2RlZmluZSBNQ1JfQlJHX0RJVl80CQkweDgwCS8vIERpdmlkZSBiYXVkIHJhdGUgY2xrIGJ5IC80IGluc3RlYWQgb2YgLzEKKworCisjZGVmaW5lIExTUl9SWF9BVkFJTAkJMHgwMQkvLyBSeCBkYXRhIGF2YWlsYWJsZQorI2RlZmluZSBMU1JfT1ZFUl9FUlIJCTB4MDIJLy8gUnggb3ZlcnJ1bgorI2RlZmluZSBMU1JfUEFSX0VSUgkJMHgwNAkvLyBSeCBwYXJpdHkgZXJyb3IKKyNkZWZpbmUgTFNSX0ZSTV9FUlIJCTB4MDgJLy8gUnggZnJhbWluZyBlcnJvcgorI2RlZmluZSBMU1JfQlJFQUsJCTB4MTAJLy8gUnggYnJlYWsgY29uZGl0aW9uIGRldGVjdGVkCisjZGVmaW5lIExTUl9UWF9FTVBUWQkJMHgyMAkvLyBUeCBGaWZvIGVtcHR5CisjZGVmaW5lIExTUl9UWF9BTExfRU1QVFkJMHg0MAkvLyBUeCBGaWZvIGFuZCBzaGlmdCByZWdpc3RlciBlbXB0eQorI2RlZmluZSBMU1JfRklGT19FUlIJCTB4ODAJLy8gUnggRmlmbyBjb250YWlucyBhdCBsZWFzdCAxIGVycmVkIGNoYXIKKworCisjZGVmaW5lIEVER0VQT1JUX01TUl9ERUxUQV9DVFMJMHgwMQkvLyBDVFMgY2hhbmdlZCBmcm9tIGxhc3QgcmVhZAorI2RlZmluZSBFREdFUE9SVF9NU1JfREVMVEFfRFNSCTB4MDIJLy8gRFNSIGNoYW5nZWQgZnJvbSBsYXN0IHJlYWQKKyNkZWZpbmUgRURHRVBPUlRfTVNSX0RFTFRBX1JJCTB4MDQJLy8gUkkgIGNoYW5nZWQgZnJvbSAwIC0+IDEKKyNkZWZpbmUgRURHRVBPUlRfTVNSX0RFTFRBX0NECTB4MDgJLy8gQ0QgIGNoYW5nZWQgZnJvbSBsYXN0IHJlYWQKKyNkZWZpbmUgRURHRVBPUlRfTVNSX0NUUwkweDEwCS8vIEN1cnJlbnQgc3RhdGUgb2YgQ1RTCisjZGVmaW5lIEVER0VQT1JUX01TUl9EU1IJMHgyMAkvLyBDdXJyZW50IHN0YXRlIG9mIERTUgorI2RlZmluZSBFREdFUE9SVF9NU1JfUkkJCTB4NDAJLy8gQ3VycmVudCBzdGF0ZSBvZiBSSQorI2RlZmluZSBFREdFUE9SVF9NU1JfQ0QJCTB4ODAJLy8gQ3VycmVudCBzdGF0ZSBvZiBDRAorCisKKworCQkJCQkvLwlUeAkJUngKKwkJCQkJLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjZGVmaW5lIEVGUl9TV0ZDX05PTkUJCTB4MDAJLy8JTm9uZQkJTm9uZQorI2RlZmluZSBFRlJfU1dGQ19SWDEJCTB4MDIgCS8vCU5vbmUJCVhPRkYxCisjZGVmaW5lIEVGUl9TV0ZDX1JYMgkJMHgwMSAJLy8JTm9uZQkJWE9GRjIKKyNkZWZpbmUgRUZSX1NXRkNfUlgxMgkJMHgwMyAJLy8JTm9uZQkJWE9GRjEgJiBYT0ZGMgorI2RlZmluZSBFRlJfU1dGQ19UWDEJCTB4MDggCS8vCVhPRkYxCQlOb25lCisjZGVmaW5lIEVGUl9TV0ZDX1RYMV9SWDEJMHgwYSAJLy8JWE9GRjEJCVhPRkYxCisjZGVmaW5lIEVGUl9TV0ZDX1RYMV9SWDIJMHgwOSAJLy8JWE9GRjEJCVhPRkYyCisjZGVmaW5lIEVGUl9TV0ZDX1RYMV9SWDEyCTB4MGIgCS8vCVhPRkYxCQlYT0ZGMSAmIFhPRkYyCisjZGVmaW5lIEVGUl9TV0ZDX1RYMgkJMHgwNCAJLy8JWE9GRjIJCU5vbmUKKyNkZWZpbmUgRUZSX1NXRkNfVFgyX1JYMQkweDA2IAkvLwlYT0ZGMgkJWE9GRjEKKyNkZWZpbmUgRUZSX1NXRkNfVFgyX1JYMgkweDA1IAkvLwlYT0ZGMgkJWE9GRjIKKyNkZWZpbmUgRUZSX1NXRkNfVFgyX1JYMTIJMHgwNyAJLy8JWE9GRjIJCVhPRkYxICYgWE9GRjIKKyNkZWZpbmUgRUZSX1NXRkNfVFgxMgkJMHgwYyAJLy8JWE9GRjEgJiBYT0ZGMglOb25lCisjZGVmaW5lIEVGUl9TV0ZDX1RYMTJfUlgxCTB4MGUgCS8vCVhPRkYxICYgWE9GRjIJWE9GRjEKKyNkZWZpbmUgRUZSX1NXRkNfVFgxMl9SWDIJMHgwZCAJLy8JWE9GRjEgJiBYT0ZGMglYT0ZGMgorI2RlZmluZSBFRlJfU1dGQ19UWDEyX1JYMTIJMHgwZiAJLy8JWE9GRjEgJiBYT0ZGMglYT0ZGMSAmIFhPRkYyCisKKyNkZWZpbmUgRUZSX1RYX0ZDX01BU0sJCTB4MGMJLy8gTWFzayB0byBpc29sYXRlIFJ4IGZsb3cgY29udHJvbAorI2RlZmluZSBFRlJfVFhfRkNfTk9ORQkJMHgwMAkvLyBObyBUeCBYb24vWG9mZiBmbG93IGNvbnRyb2wKKyNkZWZpbmUgRUZSX1RYX0ZDX1gxCQkweDA4CS8vIFRyYW5zbWl0IFhvbjEvWG9mZjEKKyNkZWZpbmUgRUZSX1RYX0ZDX1gyCQkweDA0CS8vIFRyYW5zbWl0IFhvbjIvWG9mZjIKKyNkZWZpbmUgRUZSX1RYX0ZDX1gxXzIJCTB4MGMJLy8gVHJhbnNtaXQgWG9uMSYyL1hvZmYxJjIKKworI2RlZmluZSBFRlJfUlhfRkNfTUFTSwkJMHgwMwkvLyBNYXNrIHRvIGlzb2xhdGUgUnggZmxvdyBjb250cm9sCisjZGVmaW5lIEVGUl9SWF9GQ19OT05FCQkweDAwCS8vIE5vIFJ4IFhvbi9Yb2ZmIGZsb3cgY29udHJvbAorI2RlZmluZSBFRlJfUlhfRkNfWDEJCTB4MDIJLy8gUmVjZWl2ZXIgY29tcGFyZXMgWG9uMS9Yb2ZmMQorI2RlZmluZSBFRlJfUlhfRkNfWDIJCTB4MDEJLy8gUmVjZWl2ZXIgY29tcGFyZXMgWG9uMi9Yb2ZmMgorI2RlZmluZSBFRlJfUlhfRkNfWDFfMgkJMHgwMwkvLyBSZWNlaXZlciBjb21wYXJlcyBYb24xJjIvWG9mZjEmMgorCisKKyNkZWZpbmUgRUZSX1NXRkNfTUFTSwkJMHgwRgkvLyBNYXNrIGZvciBzb2Z0d2FyZSBmbG93IGNvbnRyb2wgZmllbGQKKyNkZWZpbmUgRUZSX0VOQUJMRV8xNjY1NAkweDEwCS8vIEVuYWJsZSAxNkM2NTQgZmVhdHVyZXMKKyNkZWZpbmUgRUZSX1NQRUNfREVURUNUCQkweDIwCS8vIEVuYWJsZSBzcGVjaWFsIGNoYXJhY3RlciBkZXRlY3QgaW50ZXJydXB0CisjZGVmaW5lIEVGUl9BVVRPX1JUUwkJMHg0MAkvLyBVc2UgUlRTIGZvciBSeCBmbG93IGNvbnRyb2wKKyNkZWZpbmUgRUZSX0FVVE9fQ1RTCQkweDgwCS8vIFVzZSBDVFMgZm9yIFR4IGZsb3cgY29udHJvbAorCisjZW5kaWYJLy8gaWYgIWRlZmluZWQoXzE2NjU0X0gpCisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19lZGdlcG9ydC5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2VkZ2Vwb3J0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTM1YjVhZAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19lZGdlcG9ydC5jCkBAIC0wLDAgKzEsMzExMyBAQAorLyoKKyAqIEVkZ2Vwb3J0IFVTQiBTZXJpYWwgQ29udmVydGVyIGRyaXZlcgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwMCBJbnNpZGUgT3V0IE5ldHdvcmtzLCBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIgR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVnQGtyb2FoLmNvbT4KKyAqCisgKglUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICoJaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqCXRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKgkoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgZGV2aWNlczoKKyAqCUVkZ2Vwb3J0LzQKKyAqCUVkZ2Vwb3J0LzR0CisgKglFZGdlcG9ydC8yCisgKglFZGdlcG9ydC80aQorICoJRWRnZXBvcnQvMmkKKyAqCUVkZ2Vwb3J0LzQyMQorICoJRWRnZXBvcnQvMjEKKyAqCVJhcGlkcG9ydC80CisgKglFZGdlcG9ydC84CisgKglFZGdlcG9ydC8yRDgKKyAqCUVkZ2Vwb3J0LzREOAorICoJRWRnZXBvcnQvOGkKKyAqCisgKiBGb3IgcXVlc3Rpb25zIG9yIHByb2JsZW1zIHdpdGggdGhpcyBkcml2ZXIsIGNvbnRhY3QgSW5zaWRlIE91dAorICogTmV0d29ya3MgdGVjaG5pY2FsIHN1cHBvcnQsIG9yIFBldGVyIEJlcmdlciA8cGJlcmdlckBicmltc29uLmNvbT4sCisgKiBvciBBbCBCb3JjaGVycyA8YWxib3JjaGVyc0BzdGVpbmVycG9pbnQuY29tPi4KKyAqCisgKiBWZXJzaW9uIGhpc3Rvcnk6CisgKiAKKyAqIDIwMDNfMDRfMDMgYWwgYm9yY2hlcnMKKyAqICAtIGZpeGVkIGEgYnVnICh0aGF0IHNob3dzIHVwIHdpdGggZG9zZW11KSB3aGVyZSB0aGUgdHR5IHN0cnVjdCBpcworICogICAgdXNlZCBpbiBhIGNhbGxiYWNrIGFmdGVyIGl0IGhhcyBiZWVuIGZyZWVkCisgKgorICogMi4zIDIwMDJfMDNfMDggZ3JlZyBrcm9haC1oYXJ0bWFuCisgKgktIGZpeGVkIGJ1ZyB3aGVuIG11bHRpcGxlIGRldmljZXMgd2VyZSBhdHRhY2hlZCBhdCB0aGUgc2FtZSB0aW1lLgorICoKKyAqIDIuMiAyMDAxXzExXzE0IGdyZWcga3JvYWgtaGFydG1hbgorICoJLSBmaXhlZCBidWcgaW4gZWRnZV9jbG9zZSB0aGF0IGtlcHQgdGhlIHBvcnQgZnJvbSBiZWluZyB1c2VkIG1vcmUKKyAqCSAgdGhhbiBvbmNlLgorICoJLSBmaXhlZCBtZW1vcnkgbGVhayBvbiBkZXZpY2UgcmVtb3ZhbC4KKyAqCS0gZml4ZWQgcG90ZW50aWFsIGRvdWJsZSBmcmVlIG9mIG1lbW9yeSB3aGVuIGNvbW1hbmQgdXJiIHN1Ym1pdHRpbmcKKyAqCSAgZmFpbGVkLgorICoJLSBvdGhlciBzbWFsbCBjbGVhbnVwcyB3aGVuIHRoZSBkZXZpY2UgaXMgcmVtb3ZlZAorICoJCisgKiAyLjEgMjAwMV8wN18wOSBncmVnIGtyb2FoLWhhcnRtYW4KKyAqCS0gYWRkZWQgc3VwcG9ydCBmb3IgVElPQ01CSVMgYW5kIFRJT0NNQklDLgorICoKKyAqICAgICAoMDQvMDgvMjAwMSkgZ2IKKyAqCS0gSWRlbnRpZnkgdmVyc2lvbiBvbiBtb2R1bGUgbG9hZC4KKyAqCisgKiAyLjAgMjAwMV8wM18wNSBncmVnIGtyb2FoLWhhcnRtYW4KKyAqCS0gcmV3b3JrZWQgZW50aXJlIGRyaXZlciB0byBmaXQgcHJvcGVybHkgaW4gd2l0aCB0aGUgb3RoZXIgdXNiLXNlcmlhbAorICoJICBkcml2ZXJzLiAgT2NjYXNpb25hbCBvb3BzZXMgc3RpbGwgaGFwcGVuLCBidXQgaXQncyBhIGdvb2Qgc3RhcnQuCisgKgorICogMS4yLjMgKDAyLzIzLzIwMDEpIGdyZWcga3JvYWgtaGFydG1hbgorICoJLSBjaGFuZ2VkIGRldmljZSB0YWJsZSB0byB3b3JrIHByb3Blcmx5IGZvciAyLjQueCBmaW5hbCBmb3JtYXQuCisgKgktIGZpeGVkIHByb2JsZW0gd2l0aCBkcm9wcGluZyBkYXRhIGF0IGhpZ2ggZGF0YSByYXRlcy4KKyAqCisgKiAxLjIuMiAoMTEvMjcvMjAwMCkgZ3JlZyBrcm9haC1oYXJ0bWFuCisgKgktIGNsZWFuZWQgdXAgbW9yZSBOVGlzbXMuCisgKgktIEFkZGVkIGRldmljZSB0YWJsZSBmb3IgMi40LjAtdGVzdDExCisgKgorICogMS4yLjEgKDExLzA4LzIwMDApIGdyZWcga3JvYWgtaGFydG1hbgorICoJLSBTdGFydGVkIHRvIGNsZWFuIHVwIE5UaXNtcy4KKyAqCS0gRml4ZWQgcHJvYmxlbSB3aXRoIGRldiBmaWVsZCBvZiB1cmIgZm9yIGtlcm5lbHMgPj0gMi40LjAtdGVzdDkKKyAqCisgKiAxLjIgKDEwLzE3LzIwMDApIERhdmlkIElhY292ZWxsaQorICogCVJlbW92ZSBhbGwgRVBJQyBjb2RlIGFuZCBHUEwgc291cmNlCisgKiAgRml4IFJFTEVWQU5UX0lGTEFHIG1hY3JvIHRvIGluY2x1ZGUgZmxvdyBjb250cm9sIAorICogIGNoYW5nZXMgcG9ydCBjb25maWd1cmF0aW9uIGNoYW5nZXMuCisgKiAgRml4IHJlZGVmaW5pdGlvbiBvZiBTRVJJQUxfTUFHSUMKKyAqICBDaGFuZ2UgYWxsIHRpbWVvdXQgdmFsdWVzIHRvIDUgc2Vjb25kcworICogIFRyaWVkIHRvIGZpeCB0aGUgVUhDSSBtdWx0aXBsZSB1cmIgc3VibWlzc2lvbiwgYnV0IGZhaWxlZCBtaXNlcmFibHkuCisgKiAgaXQgc2VlbXMgdG8gd29yayBmaW5lIHdpdGggT0hDSS4KKyAqICAoIEdyZWcgdGFrZSBhIGxvb2sgYXQgdGhlICNpZiAwIGF0IGVuZCBvZiBXcml0ZUNtZFVzYigpIHdlIG11c3QgCisgKiAgICBmaW5kIGEgd2F5IHRvIHdvcmsgYXJvdW50IHRoaXMgVUhDSSBidWcgKQorICoKKyAqIDEuMSAoMTAvMTEvMjAwMCkgRGF2aWQgSWFjb3ZlbGxpCisgKiAgRml4IFhPTi9YT0ZGIGZsb3cgY29udHJvbCB0byBzdXBwb3J0IGJvdGggSVhPTiBhbmQgSVhPRkYKKyAqCisgKiAwLjkuMjcgKDA2LzMwLzIwMDApIERhdmlkIElhY292ZWxsaQorICogIEFkZGVkIHRyYW5zbWl0IHF1ZXVlIGFuZCBub3cgYWxsb2NhdGUgdXJiIGZvciBjb21tYW5kIHdyaXRlcy4KKyAqCisgKiAwLjkuMjYgKDA2LzI5LzIwMDApIERhdmlkIElhY292ZWxsaQorICogIEFkZCBzdXBwb3J0IGZvciA4MDI1MSBiYXNlZCBlZGdlcG9ydAorICoKKyAqIDAuOS4yNSAoMDYvMjcvMjAwMCkgRGF2aWQgSWFjb3ZlbGxpCisgKiAgRG8gbm90IGNsb3NlIHRoZSBwb3J0IGlmIGl0IGhhcyBtdWx0aXBsZSBvcGVucy4KKyAqCisgKiAwLjkuMjQgKDA1LzI2LzIwMDApIERhdmlkIElhY292ZWxsaQorICogIEFkZCBJT0NUTHMgdG8gc3VwcG9ydCBSWFRYIGFuZCBKQVZBIFBPUyAKKyAqICBhbmQgZmlyc3QgY3V0IGF0IHJ1bm5pbmcgQmxhY2tCb3ggRGVtbworICoKKyAqIDAuOS4yMyAoMDUvMjQvMjAwMCkgRGF2aWQgSWFjb3ZlbGxpCisgKiAgQWRkIElPQ1RMcyB0byBzdXBwb3J0IFJYVFggYW5kIEpBVkEgUE9TCisgKgorICogMC45LjIyICgwNS8yMy8yMDAwKSBEYXZpZCBJYWNvdmVsbGkKKyAqICBmaXhlZCBidWcgaW4gZW51bWVyYXRpb24uICBJZiBlcGNvbmZpZyB0dXJucyBvbiBtYXBwaW5nIGJ5CisgKiAgcGF0aCBhZnRlciBhIGRldmljZSBpcyBhbHJlYWR5IHBsdWdnZWQgaW4sIHdlIG5vdyB1cGRhdGUKKyAqICB0aGUgbWFwcGluZyBjb3JyZWN0bHkKKyAqCisgKiAwLjkuMjEgKDA1LzE2LzIwMDApIERhdmlkIElhY292ZWxsaQorICogIEFkZGVkIEJsb2NrVW50aWxDaGFzZVJlc3AoKSB0byBhbHNvIHdhaXQgZm9yIHR4Y3JlZGl0cworICogIFVwZGF0ZWQgdGhlIHdheSB3ZSBhbGxvY2F0ZSBhbmQgaGFuZGxlIHdyaXRlIFVSQnMgCisgKglBZGQgZGVidWcgY29kZSB0byBkdW1wIGJ1ZmZlcnMKKyAqCisgKiAwLjkuMjAgKDA1LzAxLzIwMDApIERhdmlkIElhY292ZWxsaQorICoJY2hhbmdlIGRyaXZlciB0byB1c2UgdXNiL3R0cy8KKyAqCisgKiAwLjkuMTkgKDA1LzAxLzIwMDApIERhdmlkIElhY292ZWxsaQorICogIFVwZGF0ZSBjb2RlIHRvIGNvbXBpbGUgaWYgREVCVUcgaXMgb2ZmCisgKgorICogMC45LjE4ICgwNC8yOC8yMDAwKSBEYXZpZCBJYWNvdmVsbGkKKyAqICBjbGVhbnVwIGFuZCB0ZXN0IHR0eV9yZWdpc3RlciB3aXRoIGRldmZzCisgKgorICogMC45LjE3ICgwNC8yNy8yMDAwKSBncmVnIGtyb2FoLWhhcnRtYW4KKyAqIAljaGFuZ2VkIHR0eV9yZWdpc3RlciBhcm91bmQgdG8gYmUgbGlrZSB0aGUgd2F5IGl0CisgKiAJd2FzIGJlZm9yZSwgYnV0IG5vdyBpdCB3b3JrcyBwcm9wZXJseSB3aXRoIGRldmZzLgorICoKKyAqIDAuOS4xNiAoMDQvMjYvMjAwMCkgZGF2aWQgaWFjb3ZlbGxpCisgKiAgRml4ZWQgYnVnIGluIEdldFByb2R1Y3RJbmZvKCkKKyAqCisgKiAwLjkuMTUgKDA0LzI1LzIwMDApIGRhdmlkIGlhY292ZWxsaQorICoJVXBkYXRlZCBlbnVtZXJhdGlvbgorICoKKyAqIDAuOS4xNCAoMDQvMjQvMjAwMCkgZGF2aWQgaWFjb3ZlbGxpCisgKiAgUmVtb3ZlZCBhbGwgY29uZmlnL3N0YXR1cyBJT0NUTFMgYW5kIAorICogIGNvbnZlcnRlZCB0byB1c2luZyAvcHJvYy9lZGdlcG9ydAorICogIHN0aWxsIHBsYXlpbmcgd2l0aCBkZXZmcworICoKKyAqIDAuOS4xMyAoMDQvMjQvMjAwMCkgZGF2aWQgaWFjb3ZlbGxpCisgKiAgUmVtb3ZlZCBjb25maWd1cmF0aW9uIGJhc2VkIG9uIHR0eVVTQjAKKyAqICBBZGRlZCBzdXBwb3J0IGZvciBjb25maWd1cmF0aW9uIHVzaW5nIC9wcm9kL2VkZ2Vwb3J0CisgKiAgZmlyc3QgYXR0ZW1wdCBhdCB1c2luZyBkZXZmcyAobm90IHdvcmtpbmcgeWV0ISkKKyAqICBBZGRlZCBJT0NUTCB0byBHZXRQcm9kdWN0SW5mbygpCisgKiAgQWRkZWQgc3VwcG9ydCBmb3IgY3VzdG9tIGJhdWQgcmF0ZXMKKyAqCUFkZCBzdXBwb3J0IGZvciByYW5kb20gcG9ydCBudW1iZXJzCisgKgorICogMC45LjEyICgwNC8xOC8yMDAwKSBkYXZpZCBpYWNvdmVsbGkKKyAqCWFkZGVkIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBJT0NUTHMKKyAqICB1c2UgdHR5VVNCMCBmb3IgY29uZmlndXJhdGlvbgorICoKKyAqIDAuOS4xMSAoMDQvMTcvMjAwMCkgZ3JlZyBrcm9haC1oYXJ0bWFuCisgKglmaXhlZCBtb2R1bGUgaW5pdGlhbGl6YXRpb24gcmFjZSBjb25kaXRpb25zLgorICoJbWFkZSBhbGwgdXJicyBkeW5hbWljYWxseSBhbGxvY2F0ZWQuCisgKgltYWRlIGRyaXZlciBkZXZmcyBjb21wYXRpYmxlLiBub3cgaXQgb25seSByZWdpc3RlcnMgdGhlIHR0eSBkZXZpY2UKKyAqCXdoZW4gdGhlIGRldmljZSBpcyBhY3R1YWxseSBwbHVnZ2VkIGluLgorICoKKyAqIDAuOS4xMCAoMDQvMTMvMjAwMCkgZ3JlZyBrcm9haC1oYXJ0bWFuCisgKglhZGRlZCBwcm9jIGludGVyZmFjZSBmcmFtZXdvcmsuCisgKgorICogMC45LjkgKDA0LzEzLzIwMDApIGRhdmlkIGlhY292ZWxsaQorICoJYWRkZWQgZW51bWVyYXRpb24gY29kZSBhbmQgaW9jdGxzIHRvIGNvbmZpZ3VyZSB0aGUgZGV2aWNlCisgKgorICogMC45LjggKDA0LzEyLzIwMDApIGRhdmlkIGlhY292ZWxsaQorICogIENoYW5nZSBpbnRlcnJ1cHQgcmVhZCBzdGFydCB3aGVuIGRldmljZSBpcyBwbHVnZ2VkIGluCisgKiAgYW5kIHN0b3Agd2hlbiBkZXZpY2UgaXMgcmVtb3ZlZAorICoJcHJvY2VzcyBpbnRlcnJ1cHQgcmVhZHMgd2hlbiBhbGwgcG9ydHMgYXJlIGNsb3NlZCAKKyAqICAoa2VlcCB2YWx1ZSBvZiByeEJ5dGVzQXZhaWwgY29uc2lzdGVudCB3aXRoIHRoZSBlZGdlcG9ydCkKKyAqICBzZXQgdGhlIFVTQl9CVUxLX1FVRVVFIGZsYWcgc28gdGhhdCB3ZSBjYW4gc2hvdmUgYSBidW5jaCAKKyAqICBvZiB1cmJzIGF0IG9uY2UgZG93biB0aGUgcGlwZSAKKyAqCisgKiAwLjkuNyAoMDQvMTAvMjAwMCkgZGF2aWQgaWFjb3ZlbGxpCisgKiAJc3RhcnQgdG8gYWRkIGVudW1lcmF0aW9uIGNvZGUuCisgKiAgZ2VuZXJhdGUgc2VyaWFsIG51bWJlciBmb3IgZXBpYyBkZXZpY2VzCisgKiAgYWRkIHN1cHBvcnQgZm9yIGtkYgorICoKKyAqIDAuOS42ICgwMy8zMC8yMDAwKSBkYXZpZCBpYWNvdmVsbGkKKyAqICBhZGQgSU9DVEwgdG8gZ2V0IHN0cmluZywgbWFudWZhY3R1cmUsIGFuZCBib290IGRlc2NyaXB0b3JzCisgKgorICogMC45LjUgKDAzLzE0LzIwMDApIGdyZWcga3JvYWgtaGFydG1hbgorICoJbW9yZSBlcnJvciBjaGVja2luZyBhZGRlZCB0byBTZXJpYWxPcGVuIHRvIHRyeSB0byBmaXggVUhDSSBvcGVuIHByb2JsZW0KKyAqCisgKiAwLjkuNCAoMDMvMDkvMjAwMCkgZ3JlZyBrcm9haC1oYXJ0bWFuCisgKglhZGRlZCBtb3JlIGVycm9yIGNoZWNraW5nIHRvIGhhbmRsZSBvb3BzIHdoZW4gZGF0YSBpcyBoYW5naW5nCisgKglhcm91bmQgYW5kIHR0eSBpcyBhYnJ1cHRseSBjbG9zZWQuCisgKgorICogMC45LjMgKDAzLzA5LzIwMDApIGRhdmlkIGlhY292ZWxsaQorICoJQWRkIGVwaWMgc3VwcG9ydCBmb3IgeG9uL3hvZmYgY2hhcnMKKyAqCXBsYXkgd2l0aCBwZXJmb3JtYW5jZQorICoKKyAqIDAuOS4yICgwMy8wOC8yMDAwKSBncmVnIGtyb2FoLWhhcnRtYW4KKyAqCWNoYW5nZWQgbW9zdCAiaW5mbyIgY2FsbHMgdG8gImRiZyIKKyAqCWltcGxlbWVudGVkIGZsb3cgY29udHJvbCBwcm9wZXJseSBpbiB0aGUgdGVybWlvcyBjYWxsCisgKgorICogMC45LjEgKDAzLzA4LzIwMDApIGRhdmlkIGlhY292ZWxsaQorICoJYWRkZWQgRVBJQyBzdXBwb3J0CisgKgllbmFibGVkIGJvb3Rsb2FkZXIgdXBkYXRlCisgKgorICogMC45ICgwMy8wOC8yMDAwKSBncmVnIGtyb2FoLWhhcnRtYW4KKyAqCVJlbGVhc2UgdG8gSU8gbmV0d29ya3MuCisgKglJbnRlZ3JhdGVkIGNoYW5nZXMgdGhhdCBEYXZpZCBtYWRlCisgKiAgbWFkZSBnZXR0aW5nIHVyYnMgZm9yIHdyaXRpbmcgU01QIHNhZmUKKyAqCisgKiAwLjggKDAzLzA3LzIwMDApIGdyZWcga3JvYWgtaGFydG1hbgorICoJUmVsZWFzZSB0byBJTyBuZXR3b3Jrcy4KKyAqCUZpeGVkIHByb2JsZW1zIHRoYXQgd2VyZSBzZWVuIGluIGNvZGUgYnkgRGF2aWQuCisgKiAgTm93IGJvdGggRWRnZXBvcnQvNCBhbmQgRWRnZXBvcnQvMiB3b3JrcyBwcm9wZXJseS4KKyAqICBDaGFuZ2VkIG1vc3Qgb2YgdGhlIGZ1bmN0aW9ucyB0byB1c2UgcG9ydCBpbnN0ZWFkIG9mIHNlcmlhbC4KKyAqCisgKiAwLjcgKDAyLzI3LzIwMDApIGdyZWcga3JvYWgtaGFydG1hbgorICoJTWlsZXN0b25lIDMgcmVsZWFzZS4KKyAqCVJlbGVhc2UgdG8gSU8gTmV0d29ya3MKKyAqCWlvY3RsIGZvciB3YWl0aW5nIG9uIGxpbmUgY2hhbmdlIGltcGxlbWVudGVkLgorICoJaW9jdGwgZm9yIGdldHRpbmcgc3RhdGlzdGljcyBpbXBsZW1lbnRlZC4KKyAqCW11bHRpcG9ydCBzdXBwb3J0IHdvcmtpbmcuCisgKglsc3IgYW5kIG1zciByZWdpc3RlcnMgYXJlIG5vdyBoYW5kbGVkIHByb3Blcmx5LgorICoJY2hhbmdlIGJyZWFrIG5vdyBob29rZWQgdXAgYW5kIHdvcmtpbmcuCisgKglzdXBwb3J0IGZvciBhbGwga25vd24gRWRnZXBvcnQgZGV2aWNlcy4KKyAqCisgKiAwLjYgKDAyLzIyLzIwMDApIGdyZWcga3JvYWgtaGFydG1hbgorICoJUmVsZWFzZSB0byBJTyBuZXR3b3Jrcy4KKyAqCUNIQVNFIGlzIGltcGxlbWVudGVkIGNvcnJlY3RseSB3aGVuIHBvcnQgaXMgY2xvc2VkLgorICoJU2VyaWFsT3BlbiBub3cgYmxvY2tzIGNvcnJlY3RseSB1bnRpbCBwb3J0IGlzIGZ1bGx5IG9wZW5lZC4KKyAqCisgKiAwLjUgKDAyLzIwLzIwMDApIGdyZWcga3JvYWgtaGFydG1hbgorICoJUmVsZWFzZSB0byBJTyBuZXR3b3Jrcy4KKyAqCUtub3duIHByb2JsZW1zOgorICoJCW1vZGVtIHN0YXR1cyByZWdpc3RlciBjaGFuZ2VzIGFyZSBub3Qgc2VudCBvbiB0byB0aGUgdXNlcgorICoJCUNIQVNFIGlzIG5vdCBpbXBsZW1lbnRlZCB3aGVuIHRoZSBwb3J0IGlzIGNsb3NlZC4KKyAqCisgKiAwLjQgKDAyLzE2LzIwMDApIGdyZWcga3JvYWgtaGFydG1hbgorICoJU2Vjb25kIGN1dCBhdCB0aGUgQ2VCaXQgZGVtby4KKyAqCURvZXNuJ3QgbGVhayBtZW1vcnkgb24gZXZlcnkgd3JpdGUgdG8gdGhlIHBvcnQKKyAqCVN0aWxsIHNtYWxsIGxlYWtzIG9uIHN0YXJ0dXAuCisgKglBZGRlZCBzdXBwb3J0IGZvciBFZGdlcG9ydC8yIGFuZCBFZGdlcG9ydC84CisgKgorICogMC4zICgwMi8xNS8yMDAwKSBncmVnIGtyb2FoLWhhcnRtYW4KKyAqCUNlQml0IGRlbW8gcmVsZWFzZS4KKyAqCUZvcmNlIHRoZSBsaW5lIHNldHRpbmdzIHRvIDQ4MDAsIDgsIDEsIGUgZm9yIHRoZSBkZW1vLgorICoJV2FybmluZyEgVGhpcyB2ZXJzaW9uIGxlYWtzIG1lbW9yeSBsaWtlIGNyYXp5IQorICoKKyAqIDAuMiAoMDEvMzAvMjAwMCkgZ3JlZyBrcm9haC1oYXJ0bWFuCisgKglNaWxlc3RvbmUgMSByZWxlYXNlLgorICoJRGV2aWNlIGlzIGZvdW5kIGJ5IFVTQiBzdWJzeXN0ZW0sIGVudW1lcmF0ZWQsIGZpbXdhcmUgaXMgZG93bmxvYWRlZAorICoJYW5kIHRoZSBkZXNjcmlwdG9ycyBhcmUgcHJpbnRlZCB0byB0aGUgZGVidWcgbG9nLCBjb25maWcgaXMgc2V0LCBhbmQKKyAqCWdyZWVuIGxpZ2h0IHN0YXJ0cyB0byBibGluay4gT3BlbiBwb3J0IHdvcmtzLCBhbmQgZGF0YSBjYW4gYmUgc2VudAorICoJYW5kIHJlY2VpdmVkIGF0IHRoZSBkZWZhdWx0IHNldHRpbmdzIG9mIHRoZSBVQVJULiBMb29wYmFjayBjb25uZWN0b3IKKyAqCWFuZCBkZWJ1ZyBsb2cgY29uZmlybXMgdGhpcy4KKyAqIAorICogMC4xICgwMS8yMy8yMDAwKSBncmVnIGtyb2FoLWhhcnRtYW4KKyAqCUluaXRpYWwgcmVsZWFzZSB0byBoZWxwIElPIE5ldHdvcmtzIHRyeSB0byBzZXQgdXAgdGhlaXIgdGVzdCBzeXN0ZW0uIAorICoJRWRnZXBvcnQ0IGlzIHJlY29nbml6ZWQsIGZpcm13YXJlIGlzIGRvd25sb2FkZWQsIGNvbmZpZyBpcyBzZXQgc28gCisgKglkZXZpY2UgYmxpbmtzIGdyZWVuIGxpZ2h0IGV2ZXJ5IDMgc2VjLiBQb3J0IGlzIGJvdW5kLCBidXQgb3BlbmluZywKKyAqCWNsb3NpbmcsIGFuZCBzZW5kaW5nIGRhdGEgZG8gbm90IHdvcmsgcHJvcGVybHkuCisgKiAKKyAqLworCisjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC90dHkuaD4KKyNpbmNsdWRlIDxsaW51eC90dHlfZHJpdmVyLmg+CisjaW5jbHVkZSA8bGludXgvdHR5X2ZsaXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbC5oPgorI2luY2x1ZGUgPGxpbnV4L2lvY3RsLmg+CisjaW5jbHVkZSA8bGludXgvd2FpdC5oPgorI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvdXNiLmg+CisjaW5jbHVkZSAidXNiLXNlcmlhbC5oIgorI2luY2x1ZGUgImlvX2VkZ2Vwb3J0LmgiCisjaW5jbHVkZSAiaW9faW9uc3AuaCIJCS8qIGluZm8gZm9yIHRoZSBpb3NwIG1lc3NhZ2VzICovCisjaW5jbHVkZSAiaW9fMTY2NTQuaCIJCS8qIDE2NjU0IFVBUlQgZGVmaW5lcyAqLworCisvKgorICogVmVyc2lvbiBJbmZvcm1hdGlvbgorICovCisjZGVmaW5lIERSSVZFUl9WRVJTSU9OICJ2Mi43IgorI2RlZmluZSBEUklWRVJfQVVUSE9SICJHcmVnIEtyb2FoLUhhcnRtYW4gPGdyZWdAa3JvYWguY29tPiBhbmQgRGF2aWQgSWFjb3ZlbGxpIgorI2RlZmluZSBEUklWRVJfREVTQyAiRWRnZXBvcnQgVVNCIFNlcmlhbCBEcml2ZXIiCisKKy8qIEZpcnN0LCB0aGUgbGF0ZXN0IGJvb3QgY29kZSAtIGZvciBmaXJzdCBnZW5lcmF0aW9uIGVkZ2Vwb3J0cyAqLworI2RlZmluZSBJTUFHRV9BUlJBWV9OQU1FCUJvb3RDb2RlSW1hZ2VfR0VOMQorI2RlZmluZSBJTUFHRV9WRVJTSU9OX05BTUUJQm9vdENvZGVJbWFnZVZlcnNpb25fR0VOMQorI2luY2x1ZGUgImlvX2Z3X2Jvb3QuaCIJCS8qIHRoZSBib290bG9hZGVyIGZpcm13YXJlIHRvIGRvd25sb2FkIHRvIGEgZGV2aWNlLCBpZiBpdCBuZWVkcyBpdCAqLworCisvKiBmb3Igc2Vjb25kIGdlbmVyYXRpb24gZWRnZXBvcnRzICovCisjZGVmaW5lIElNQUdFX0FSUkFZX05BTUUJQm9vdENvZGVJbWFnZV9HRU4yCisjZGVmaW5lIElNQUdFX1ZFUlNJT05fTkFNRQlCb290Q29kZUltYWdlVmVyc2lvbl9HRU4yCisjaW5jbHVkZSAiaW9fZndfYm9vdDIuaCIJLyogdGhlIGJvb3Rsb2FkZXIgZmlybXdhcmUgdG8gZG93bmxvYWQgdG8gYSBkZXZpY2UsIGlmIGl0IG5lZWRzIGl0ICovCisKKy8qIFRoZW4gZmluYWxseSB0aGUgbWFpbiBydW4tdGltZSBvcGVyYXRpb25hbCBjb2RlIC0gZm9yIGZpcnN0IGdlbmVyYXRpb24gZWRnZXBvcnRzICovCisjZGVmaW5lIElNQUdFX0FSUkFZX05BTUUJT3BlcmF0aW9uYWxDb2RlSW1hZ2VfR0VOMQorI2RlZmluZSBJTUFHRV9WRVJTSU9OX05BTUUJT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uX0dFTjEKKyNpbmNsdWRlICJpb19md19kb3duLmgiCQkvKiBEZWZpbmUgYXJyYXkgT3BlcmF0aW9uYWxDb2RlSW1hZ2VbXSAqLworCisvKiBmb3Igc2Vjb25kIGdlbmVyYXRpb24gZWRnZXBvcnRzICovCisjZGVmaW5lIElNQUdFX0FSUkFZX05BTUUJT3BlcmF0aW9uYWxDb2RlSW1hZ2VfR0VOMgorI2RlZmluZSBJTUFHRV9WRVJTSU9OX05BTUUJT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uX0dFTjIKKyNpbmNsdWRlICJpb19md19kb3duMi5oIgkvKiBEZWZpbmUgYXJyYXkgT3BlcmF0aW9uYWxDb2RlSW1hZ2VbXSAqLworCisjZGVmaW5lIE1BWF9OQU1FX0xFTgkJNjQKKworI2RlZmluZSBDSEFTRV9USU1FT1VUCQkoNSpIWikJCS8qIDUgc2Vjb25kcyAqLworI2RlZmluZSBPUEVOX1RJTUVPVVQJCSg1KkhaKQkJLyogNSBzZWNvbmRzICovCisjZGVmaW5lIENPTU1BTkRfVElNRU9VVAkJKDUqSFopCQkvKiA1IHNlY29uZHMgKi8KKworLyogcmVjZWl2ZSBwb3J0IHN0YXRlICovCitlbnVtIFJYU1RBVEUgeworCUVYUEVDVF9IRFIxID0gMCwJLyogRXhwZWN0IGhlYWRlciBieXRlIDEgKi8KKwlFWFBFQ1RfSERSMiA9IDEsCS8qIEV4cGVjdCBoZWFkZXIgYnl0ZSAyICovCisJRVhQRUNUX0RBVEEgPSAyLAkvKiBFeHBlY3QgJ1J4Qnl0ZXNSZW1haW5pbmcnIGRhdGEgKi8KKwlFWFBFQ1RfSERSMyA9IDMsCS8qIEV4cGVjdCBoZWFkZXIgYnl0ZSAzIChmb3Igc3RhdHVzIGhkcnMgb25seSkgKi8KK307CisKKworLyogVHJhbnNtaXQgRmlmbyAKKyAqIFRoaXMgVHJhbnNtaXQgcXVldWUgaXMgYW4gZXh0ZW5zaW9uIG9mIHRoZSBlZGdlcG9ydCBSeCBidWZmZXIuIAorICogVGhlIG1heGltdW0gYW1vdW50IG9mIGRhdGEgYnVmZmVyZWQgaW4gYm90aCB0aGUgZWRnZXBvcnQgCisgKiBSeCBidWZmZXIgKG1heFR4Q3JlZGl0cykgYW5kIHRoaXMgYnVmZmVyIHdpbGwgbmV2ZXIgZXhjZWVkIG1heFR4Q3JlZGl0cy4KKyAqLworc3RydWN0IFR4RmlmbyB7CisJdW5zaWduZWQgaW50CWhlYWQ7CS8qIGluZGV4IHRvIGhlYWQgcG9pbnRlciAod3JpdGUpICovCisJdW5zaWduZWQgaW50CXRhaWw7CS8qIGluZGV4IHRvIHRhaWwgcG9pbnRlciAocmVhZCkgICovCisJdW5zaWduZWQgaW50CWNvdW50OwkvKiBCeXRlcyBpbiBxdWV1ZSAqLworCXVuc2lnbmVkIGludAlzaXplOwkvKiBNYXggc2l6ZSBvZiBxdWV1ZSAoZXF1YWwgdG8gTWF4IG51bWJlciBvZiBUeENyZWRpdHMpICovCisJdW5zaWduZWQgY2hhcgkqZmlmbzsJLyogYWxsb2NhdGVkIEJ1ZmZlciAqLworfTsKKworLyogVGhpcyBzdHJ1Y3R1cmUgaG9sZHMgYWxsIG9mIHRoZSBsb2NhbCBwb3J0IGluZm9ybWF0aW9uICovCitzdHJ1Y3QgZWRnZXBvcnRfcG9ydCB7CisJX191MTYJCQl0eENyZWRpdHM7CQkvKiBvdXIgY3VycmVudCBjcmVkaXRzIGZvciB0aGlzIHBvcnQgKi8KKwlfX3UxNgkJCW1heFR4Q3JlZGl0czsJCS8qIHRoZSBtYXggc2l6ZSBvZiB0aGUgcG9ydCAqLworCisJc3RydWN0IFR4RmlmbwkJdHhmaWZvOwkJCS8qIHRyYW5zbWl0IGZpZm8gLS0gc2l6ZSB3aWxsIGJlIG1heFR4Q3JlZGl0cyAqLworCXN0cnVjdCB1cmIJCSp3cml0ZV91cmI7CQkvKiB3cml0ZSBVUkIgZm9yIHRoaXMgcG9ydCAqLworCWNoYXIJCQl3cml0ZV9pbl9wcm9ncmVzczsJLyogVFJVRSB3aGlsZSBhIHdyaXRlIFVSQiBpcyBvdXRzdGFuZGluZyAqLworCXNwaW5sb2NrX3QJCWVwX2xvY2s7CisKKwlfX3U4CQkJc2hhZG93TENSOwkJLyogbGFzdCBMQ1IgdmFsdWUgcmVjZWl2ZWQgKi8KKwlfX3U4CQkJc2hhZG93TUNSOwkJLyogbGFzdCBNQ1IgdmFsdWUgcmVjZWl2ZWQgKi8KKwlfX3U4CQkJc2hhZG93TVNSOwkJLyogbGFzdCBNU1IgdmFsdWUgcmVjZWl2ZWQgKi8KKwlfX3U4CQkJc2hhZG93TFNSOwkJLyogbGFzdCBMU1IgdmFsdWUgcmVjZWl2ZWQgKi8KKwlfX3U4CQkJc2hhZG93WG9uQ2hhcjsJCS8qIGxhc3QgdmFsdWUgc2V0IGFzIFhPTiBjaGFyIGluIEVkZ2Vwb3J0ICovCisJX191OAkJCXNoYWRvd1hvZmZDaGFyOwkJLyogbGFzdCB2YWx1ZSBzZXQgYXMgWE9GRiBjaGFyIGluIEVkZ2Vwb3J0ICovCisJX191OAkJCXZhbGlkRGF0YU1hc2s7CisJX191MzIJCQliYXVkUmF0ZTsKKworCWNoYXIJCQlvcGVuOworCWNoYXIJCQlvcGVuUGVuZGluZzsKKwljaGFyCQkJY29tbWFuZFBlbmRpbmc7CisJY2hhcgkJCWNsb3NlUGVuZGluZzsKKwljaGFyCQkJY2hhc2VSZXNwb25zZVBlbmRpbmc7CisKKwl3YWl0X3F1ZXVlX2hlYWRfdAl3YWl0X2NoYXNlOwkJLyogZm9yIGhhbmRsaW5nIHNsZWVwaW5nIHdoaWxlIHdhaXRpbmcgZm9yIGNoYXNlIHRvIGZpbmlzaCAqLworCXdhaXRfcXVldWVfaGVhZF90CXdhaXRfb3BlbjsJCS8qIGZvciBoYW5kbGluZyBzbGVlcGluZyB3aGlsZSB3YWl0aW5nIGZvciBvcGVuIHRvIGZpbmlzaCAqLworCXdhaXRfcXVldWVfaGVhZF90CXdhaXRfY29tbWFuZDsJCS8qIGZvciBoYW5kbGluZyBzbGVlcGluZyB3aGlsZSB3YWl0aW5nIGZvciBjb21tYW5kIHRvIGZpbmlzaCAqLworCXdhaXRfcXVldWVfaGVhZF90CWRlbHRhX21zcl93YWl0OwkJLyogZm9yIGhhbmRsaW5nIHNsZWVwaW5nIHdoaWxlIHdhaXRpbmcgZm9yIG1zciBjaGFuZ2UgdG8gaGFwcGVuICovCisKKwlzdHJ1Y3QgYXN5bmNfaWNvdW50CWljb3VudDsKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0CSpwb3J0OwkJCS8qIGxvb3AgYmFjayB0byB0aGUgb3duZXIgb2YgdGhpcyBvYmplY3QgKi8KK307CisKKworLyogVGhpcyBzdHJ1Y3R1cmUgaG9sZHMgYWxsIG9mIHRoZSBpbmRpdmlkdWFsIGRldmljZSBpbmZvcm1hdGlvbiAqLworc3RydWN0IGVkZ2Vwb3J0X3NlcmlhbCB7CisJY2hhcgkJCW5hbWVbTUFYX05BTUVfTEVOKzFdOwkJLyogc3RyaW5nIG5hbWUgb2YgdGhpcyBkZXZpY2UgKi8KKworCXN0cnVjdCBlZGdlX21hbnVmX2Rlc2NyaXB0b3IJbWFudWZfZGVzY3JpcHRvcjsJLyogdGhlIG1hbnVmYWN0dXJlciBkZXNjcmlwdG9yICovCisJc3RydWN0IGVkZ2VfYm9vdF9kZXNjcmlwdG9yCWJvb3RfZGVzY3JpcHRvcjsJLyogdGhlIGJvb3QgZmlybXdhcmUgZGVzY3JpcHRvciAqLworCXN0cnVjdCBlZGdlcG9ydF9wcm9kdWN0X2luZm8JcHJvZHVjdF9pbmZvOwkJLyogUHJvZHVjdCBJbmZvICovCisKKwlfX3U4CQkJaW50ZXJydXB0X2luX2VuZHBvaW50OwkJLyogdGhlIGludGVycnVwdCBlbmRwb2ludCBoYW5kbGUgKi8KKwl1bnNpZ25lZCBjaGFyICoJCWludGVycnVwdF9pbl9idWZmZXI7CQkvKiB0aGUgYnVmZmVyIHdlIHVzZSBmb3IgdGhlIGludGVycnVwdCBlbmRwb2ludCAqLworCXN0cnVjdCB1cmIgKgkJaW50ZXJydXB0X3JlYWRfdXJiOwkJLyogb3VyIGludGVycnVwdCB1cmIgKi8KKworCV9fdTgJCQlidWxrX2luX2VuZHBvaW50OwkJLyogdGhlIGJ1bGsgaW4gZW5kcG9pbnQgaGFuZGxlICovCisJdW5zaWduZWQgY2hhciAqCQlidWxrX2luX2J1ZmZlcjsJCQkvKiB0aGUgYnVmZmVyIHdlIHVzZSBmb3IgdGhlIGJ1bGsgaW4gZW5kcG9pbnQgKi8KKwlzdHJ1Y3QgdXJiICoJCXJlYWRfdXJiOwkJCS8qIG91ciBidWxrIHJlYWQgdXJiICovCisJaW50CQkJcmVhZF9pbl9wcm9ncmVzczsKKwlzcGlubG9ja190CQllc19sb2NrOworCisJX191OAkJCWJ1bGtfb3V0X2VuZHBvaW50OwkJLyogdGhlIGJ1bGsgb3V0IGVuZHBvaW50IGhhbmRsZSAqLworCisJX19zMTYJCQlyeEJ5dGVzQXZhaWw7CQkJLyogdGhlIG51bWJlciBvZiBieXRlcyB0aGF0IHdlIG5lZWQgdG8gcmVhZCBmcm9tIHRoaXMgZGV2aWNlICovCisKKwllbnVtIFJYU1RBVEUJCXJ4U3RhdGU7CQkJLyogdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGJ1bGsgcmVjZWl2ZSBwcm9jZXNzb3IgKi8KKwlfX3U4CQkJcnhIZWFkZXIxOwkJCS8qIHJlY2VpdmUgaGVhZGVyIGJ5dGUgMSAqLworCV9fdTgJCQlyeEhlYWRlcjI7CQkJLyogcmVjZWl2ZSBoZWFkZXIgYnl0ZSAyICovCisJX191OAkJCXJ4SGVhZGVyMzsJCQkvKiByZWNlaXZlIGhlYWRlciBieXRlIDMgKi8KKwlfX3U4CQkJcnhQb3J0OwkJCQkvKiB0aGUgcG9ydCB0aGF0IHdlIGFyZSBjdXJyZW50bHkgcmVjZWl2aW5nIGRhdGEgZm9yICovCisJX191OAkJCXJ4U3RhdHVzQ29kZTsJCQkvKiB0aGUgcmVjZWl2ZSBzdGF0dXMgY29kZSAqLworCV9fdTgJCQlyeFN0YXR1c1BhcmFtOwkJCS8qIHRoZSByZWNlaXZlIHN0YXR1cyBwYXJhbWF0ZXIgKi8KKwlfX3MxNgkJCXJ4Qnl0ZXNSZW1haW5pbmc7CQkvKiB0aGUgbnVtYmVyIG9mIHBvcnQgYnl0ZXMgbGVmdCB0byByZWFkICovCisJc3RydWN0IHVzYl9zZXJpYWwJKnNlcmlhbDsJCQkvKiBsb29wIGJhY2sgdG8gdGhlIG93bmVyIG9mIHRoaXMgb2JqZWN0ICovCit9OworCisvKiBiYXVkIHJhdGUgaW5mb3JtYXRpb24gKi8KK3N0cnVjdCBkaXZpc29yX3RhYmxlX2VudHJ5IHsKKwlfX3UzMiAgIEJhdWRSYXRlOworCV9fdTE2ICBEaXZpc29yOworfTsKKworLy8KKy8vIERlZmluZSB0YWJsZSBvZiBkaXZpc29ycyBmb3IgUmV2IEEgRWRnZVBvcnQvNCBoYXJkd2FyZQorLy8gVGhlc2UgYXNzdW1lIGEgMy42ODY0TUh6IGNyeXN0YWwsIHRoZSBzdGFuZGFyZCAvMTYsIGFuZAorLy8gTUNSLjcgPSAwLgorLy8KK3N0YXRpYyBzdHJ1Y3QgZGl2aXNvcl90YWJsZV9lbnRyeSBkaXZpc29yX3RhYmxlW10gPSB7CisJeyAgIDUwLAkJNDYwOH0sICAKKwl7ICAgNzUsCQkzMDcyfSwgIAorCXsgICAxMTAsCTIwOTV9LAkJLyogMjA5NC41NDU0NTUgPT4gMjMwNDUwICAgPT4gLjAyMTcgJSBvdmVyICovCisJeyAgIDEzNCwJMTcxM30sCQkvKiAxNzEzLjAxMTE1MiA9PiAyMzAzOTguNSA9PiAuMDAwNjUlIHVuZGVyICovCisJeyAgIDE1MCwJMTUzNn0sCisJeyAgIDMwMCwJNzY4fSwKKwl7ICAgNjAwLAkzODR9LAorCXsgICAxMjAwLAkxOTJ9LAorCXsgICAxODAwLAkxMjh9LAorCXsgICAyNDAwLAk5Nn0sCisJeyAgIDQ4MDAsCTQ4fSwKKwl7ICAgNzIwMCwJMzJ9LAorCXsgICA5NjAwLAkyNH0sCisJeyAgIDE0NDAwLAkxNn0sCisJeyAgIDE5MjAwLAkxMn0sCisJeyAgIDM4NDAwLAk2fSwKKwl7ICAgNTc2MDAsCTR9LAorCXsgICAxMTUyMDAsCTJ9LAorCXsgICAyMzA0MDAsCTF9LAorfTsKKworLyogbG9jYWwgdmFyaWFibGVzICovCitzdGF0aWMgaW50IGRlYnVnOworCitzdGF0aWMgaW50IGxvd19sYXRlbmN5ID0gMTsJLyogdHR5IGxvdyBsYXRlbmN5IGZsYWcsIG9uIGJ5IGRlZmF1bHQgKi8KKworc3RhdGljIGludCBDbWRVcmJzID0gMDsJCS8qIE51bWJlciBvZiBvdXRzdGFuZGluZyBDb21tYW5kIFdyaXRlIFVyYnMgKi8KKworCisvKiBsb2NhbCBmdW5jdGlvbiBwcm90b3R5cGVzICovCisKKy8qIGZ1bmN0aW9uIHByb3RvdHlwZXMgZm9yIGFsbCBVUkIgY2FsbGJhY2tzICovCitzdGF0aWMgdm9pZCBlZGdlX2ludGVycnVwdF9jYWxsYmFjawkoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CitzdGF0aWMgdm9pZCBlZGdlX2J1bGtfaW5fY2FsbGJhY2sJKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOworc3RhdGljIHZvaWQgZWRnZV9idWxrX291dF9kYXRhX2NhbGxiYWNrCShzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKK3N0YXRpYyB2b2lkIGVkZ2VfYnVsa19vdXRfY21kX2NhbGxiYWNrCShzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKKworLyogZnVuY3Rpb24gcHJvdG90eXBlcyBmb3IgdGhlIHVzYnNlcmlhbCBjYWxsYmFja3MgKi8KK3N0YXRpYyBpbnQgIGVkZ2Vfb3BlbgkJCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlscCk7CitzdGF0aWMgdm9pZCBlZGdlX2Nsb3NlCQkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKTsKK3N0YXRpYyBpbnQgIGVkZ2Vfd3JpdGUJCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpOworc3RhdGljIGludCAgZWRnZV93cml0ZV9yb29tCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCk7CitzdGF0aWMgaW50ICBlZGdlX2NoYXJzX2luX2J1ZmZlcgkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCk7CitzdGF0aWMgdm9pZCBlZGdlX3Rocm90dGxlCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCk7CitzdGF0aWMgdm9pZCBlZGdlX3VudGhyb3R0bGUJCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KTsKK3N0YXRpYyB2b2lkIGVkZ2Vfc2V0X3Rlcm1pb3MJCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgdGVybWlvcyAqb2xkX3Rlcm1pb3MpOworc3RhdGljIGludCAgZWRnZV9pb2N0bAkJCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOworc3RhdGljIHZvaWQgZWRnZV9icmVhawkJCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBpbnQgYnJlYWtfc3RhdGUpOworc3RhdGljIGludCAgZWRnZV90aW9jbWdldAkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxlKTsKK3N0YXRpYyBpbnQgIGVkZ2VfdGlvY21zZXQJCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IHNldCwgdW5zaWduZWQgaW50IGNsZWFyKTsKK3N0YXRpYyBpbnQgIGVkZ2Vfc3RhcnR1cAkJKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpOworc3RhdGljIHZvaWQgZWRnZV9zaHV0ZG93bgkJKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpOworCisKKyNpbmNsdWRlICJpb190YWJsZXMuaCIJLyogYWxsIG9mIHRoZSBkZXZpY2VzIHRoYXQgdGhpcyBkcml2ZXIgc3VwcG9ydHMgKi8KKworc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIGlvX2RyaXZlciA9IHsKKwkub3duZXIgPQlUSElTX01PRFVMRSwKKwkubmFtZSA9CQkiaW9fZWRnZXBvcnQiLAorCS5wcm9iZSA9CXVzYl9zZXJpYWxfcHJvYmUsCisJLmRpc2Nvbm5lY3QgPQl1c2Jfc2VyaWFsX2Rpc2Nvbm5lY3QsCisJLmlkX3RhYmxlID0JaWRfdGFibGVfY29tYmluZWQsCit9OworCisvKiBmdW5jdGlvbiBwcm90b3R5cGVzIGZvciBhbGwgb2Ygb3VyIGxvY2FsIGZ1bmN0aW9ucyAqLworc3RhdGljIHZvaWQgIHByb2Nlc3NfcmN2ZF9kYXRhCQkoc3RydWN0IGVkZ2Vwb3J0X3NlcmlhbCAqZWRnZV9zZXJpYWwsIHVuc2lnbmVkIGNoYXIgKmJ1ZmZlciwgX191MTYgYnVmZmVyTGVuZ3RoKTsKK3N0YXRpYyB2b2lkIHByb2Nlc3NfcmN2ZF9zdGF0dXMJCShzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsICplZGdlX3NlcmlhbCwgX191OCBieXRlMiwgX191OCBieXRlMyk7CitzdGF0aWMgdm9pZCBlZGdlX3R0eV9yZWN2CQkJKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgdW5zaWduZWQgY2hhciAqZGF0YSwgaW50IGxlbmd0aCk7CitzdGF0aWMgdm9pZCBoYW5kbGVfbmV3X21zcgkJKHN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQsIF9fdTggbmV3TXNyKTsKK3N0YXRpYyB2b2lkIGhhbmRsZV9uZXdfbHNyCQkoc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKmVkZ2VfcG9ydCwgX191OCBsc3JEYXRhLCBfX3U4IGxzciwgX191OCBkYXRhKTsKK3N0YXRpYyBpbnQgIHNlbmRfaW9zcF9leHRfY21kCQkoc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKmVkZ2VfcG9ydCwgX191OCBjb21tYW5kLCBfX3U4IHBhcmFtKTsKK3N0YXRpYyBpbnQgIGNhbGNfYmF1ZF9yYXRlX2Rpdmlzb3IJKGludCBiYXVkX3JhdGUsIGludCAqZGl2aXNvcik7CitzdGF0aWMgaW50ICBzZW5kX2NtZF93cml0ZV9iYXVkX3JhdGUJKHN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQsIGludCBiYXVkUmF0ZSk7CitzdGF0aWMgdm9pZCBjaGFuZ2VfcG9ydF9zZXR0aW5ncwkoc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKmVkZ2VfcG9ydCwgc3RydWN0IHRlcm1pb3MgKm9sZF90ZXJtaW9zKTsKK3N0YXRpYyBpbnQgIHNlbmRfY21kX3dyaXRlX3VhcnRfcmVnaXN0ZXIJKHN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQsIF9fdTggcmVnTnVtLCBfX3U4IHJlZ1ZhbHVlKTsKK3N0YXRpYyBpbnQgIHdyaXRlX2NtZF91c2IJCShzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqZWRnZV9wb3J0LCB1bnNpZ25lZCBjaGFyICpidWZmZXIsIGludCB3cml0ZUxlbmd0aCk7CitzdGF0aWMgdm9pZCBzZW5kX21vcmVfcG9ydF9kYXRhCQkoc3RydWN0IGVkZ2Vwb3J0X3NlcmlhbCAqZWRnZV9zZXJpYWwsIHN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQpOworCitzdGF0aWMgaW50ICBzcmFtX3dyaXRlCQkJKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIF9fdTE2IGV4dEFkZHIsIF9fdTE2IGFkZHIsIF9fdTE2IGxlbmd0aCwgX191OCAqZGF0YSk7CitzdGF0aWMgaW50ICByb21fcmVhZAkJCShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLCBfX3UxNiBleHRBZGRyLCBfX3UxNiBhZGRyLCBfX3UxNiBsZW5ndGgsIF9fdTggKmRhdGEpOworc3RhdGljIGludCAgcm9tX3dyaXRlCQkJKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIF9fdTE2IGV4dEFkZHIsIF9fdTE2IGFkZHIsIF9fdTE2IGxlbmd0aCwgX191OCAqZGF0YSk7CitzdGF0aWMgdm9pZCBnZXRfbWFudWZhY3R1cmluZ19kZXNjCShzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsICplZGdlX3NlcmlhbCk7CitzdGF0aWMgdm9pZCBnZXRfYm9vdF9kZXNjCQkoc3RydWN0IGVkZ2Vwb3J0X3NlcmlhbCAqZWRnZV9zZXJpYWwpOworc3RhdGljIHZvaWQgbG9hZF9hcHBsaWNhdGlvbl9maXJtd2FyZQkoc3RydWN0IGVkZ2Vwb3J0X3NlcmlhbCAqZWRnZV9zZXJpYWwpOworCitzdGF0aWMgdm9pZCB1bmljb2RlX3RvX2FzY2lpCQkoY2hhciAqc3RyaW5nLCBfX2xlMTYgKnVuaWNvZGUsIGludCB1bmljb2RlX3NpemUpOworCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqIHVwZGF0ZV9lZGdlcG9ydF9FMlBST00oKQlDb21wYXJlIGN1cnJlbnQgdmVyc2lvbnMgb2YJCSoKKyAqCQkJCUJvb3QgUk9NIGFuZCBNYW51ZmFjdHVyZSAJCSoKKyAqCQkJCURlc2NyaXB0b3JzIHdpdGggdmVyc2lvbnMJCSoKKyAqCQkJCWVtYmVkZGVkIGluIHRoaXMgZHJpdmVyCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHZvaWQgdXBkYXRlX2VkZ2Vwb3J0X0UyUFJPTSAoc3RydWN0IGVkZ2Vwb3J0X3NlcmlhbCAqZWRnZV9zZXJpYWwpCit7CisJX191MzIgQm9vdEN1clZlcjsKKwlfX3UzMiBCb290TmV3VmVyOworCV9fdTggQm9vdE1ham9yVmVyc2lvbjsgICAgICAgICAgICAgICAgICAKKwlfX3U4IEJvb3RNaW5vclZlcnNpb247ICAgICAgICAgICAgICAgICAgCisJX19sZTE2IEJvb3RCdWlsZE51bWJlcjsKKwlfX3U4ICpCb290SW1hZ2U7ICAgICAgCisJX191MzIgQm9vdFNpemU7CisJc3RydWN0IGVkZ2VfZmlybXdhcmVfaW1hZ2VfcmVjb3JkICpyZWNvcmQ7CisJdW5zaWduZWQgY2hhciAqZmlybXdhcmU7CisJaW50IHJlc3BvbnNlOworCisKKwlzd2l0Y2ggKGVkZ2Vfc2VyaWFsLT5wcm9kdWN0X2luZm8uaURvd25sb2FkRmlsZSkgeworCQljYXNlIEVER0VfRE9XTkxPQURfRklMRV9JOTMwOgorCQkJQm9vdE1ham9yVmVyc2lvbgk9IEJvb3RDb2RlSW1hZ2VWZXJzaW9uX0dFTjEuTWFqb3JWZXJzaW9uOworCQkJQm9vdE1pbm9yVmVyc2lvbgk9IEJvb3RDb2RlSW1hZ2VWZXJzaW9uX0dFTjEuTWlub3JWZXJzaW9uOworCQkJQm9vdEJ1aWxkTnVtYmVyCQk9IGNwdV90b19sZTE2KEJvb3RDb2RlSW1hZ2VWZXJzaW9uX0dFTjEuQnVpbGROdW1iZXIpOworCQkJQm9vdEltYWdlCQk9ICZCb290Q29kZUltYWdlX0dFTjFbMF07CisJCQlCb290U2l6ZQkJPSBzaXplb2YoIEJvb3RDb2RlSW1hZ2VfR0VOMSApOworCQkJYnJlYWs7CisKKwkJY2FzZSBFREdFX0RPV05MT0FEX0ZJTEVfODAyNTE6CisJCQlCb290TWFqb3JWZXJzaW9uCT0gQm9vdENvZGVJbWFnZVZlcnNpb25fR0VOMi5NYWpvclZlcnNpb247CisJCQlCb290TWlub3JWZXJzaW9uCT0gQm9vdENvZGVJbWFnZVZlcnNpb25fR0VOMi5NaW5vclZlcnNpb247CisJCQlCb290QnVpbGROdW1iZXIJCT0gY3B1X3RvX2xlMTYoQm9vdENvZGVJbWFnZVZlcnNpb25fR0VOMi5CdWlsZE51bWJlcik7CisJCQlCb290SW1hZ2UJCT0gJkJvb3RDb2RlSW1hZ2VfR0VOMlswXTsKKwkJCUJvb3RTaXplCQk9IHNpemVvZiggQm9vdENvZGVJbWFnZV9HRU4yICk7CisJCQlicmVhazsKKworCQlkZWZhdWx0OgorCQkJcmV0dXJuOworCX0KKworCS8vIENoZWNrIEJvb3QgSW1hZ2UgVmVyc2lvbgorCUJvb3RDdXJWZXIgPSAoZWRnZV9zZXJpYWwtPmJvb3RfZGVzY3JpcHRvci5NYWpvclZlcnNpb24gPDwgMjQpICsKKwkJICAgICAoZWRnZV9zZXJpYWwtPmJvb3RfZGVzY3JpcHRvci5NaW5vclZlcnNpb24gPDwgMTYpICsKKwkJICAgICAgbGUxNl90b19jcHUoZWRnZV9zZXJpYWwtPmJvb3RfZGVzY3JpcHRvci5CdWlsZE51bWJlcik7CisKKwlCb290TmV3VmVyID0gKEJvb3RNYWpvclZlcnNpb24gPDwgMjQpICsKKwkJICAgICAoQm9vdE1pbm9yVmVyc2lvbiA8PCAxNikgKworCQkgICAgICBsZTE2X3RvX2NwdShCb290QnVpbGROdW1iZXIpOworCisJZGJnKCJDdXJyZW50IEJvb3QgSW1hZ2UgdmVyc2lvbiAlZC4lZC4lZCIsCisJICAgIGVkZ2Vfc2VyaWFsLT5ib290X2Rlc2NyaXB0b3IuTWFqb3JWZXJzaW9uLAorCSAgICBlZGdlX3NlcmlhbC0+Ym9vdF9kZXNjcmlwdG9yLk1pbm9yVmVyc2lvbiwKKwkgICAgbGUxNl90b19jcHUoZWRnZV9zZXJpYWwtPmJvb3RfZGVzY3JpcHRvci5CdWlsZE51bWJlcikpOworCisKKwlpZiAoQm9vdE5ld1ZlciA+IEJvb3RDdXJWZXIpIHsKKwkJZGJnKCIqKlVwZGF0ZSBCb290IEltYWdlIGZyb20gJWQuJWQuJWQgdG8gJWQuJWQuJWQiLAorCQkgICAgZWRnZV9zZXJpYWwtPmJvb3RfZGVzY3JpcHRvci5NYWpvclZlcnNpb24sCisJCSAgICBlZGdlX3NlcmlhbC0+Ym9vdF9kZXNjcmlwdG9yLk1pbm9yVmVyc2lvbiwKKwkJICAgIGxlMTZfdG9fY3B1KGVkZ2Vfc2VyaWFsLT5ib290X2Rlc2NyaXB0b3IuQnVpbGROdW1iZXIpLAorCQkgICAgQm9vdE1ham9yVmVyc2lvbiwKKwkJICAgIEJvb3RNaW5vclZlcnNpb24sCisJCSAgICBsZTE2X3RvX2NwdShCb290QnVpbGROdW1iZXIpKTsKKworCisJCWRiZygiRG93bmxvYWRpbmcgbmV3IEJvb3QgSW1hZ2UiKTsKKworCQlmaXJtd2FyZSA9IEJvb3RJbWFnZTsKKworCQlmb3IgKDs7KSB7CisJCQlyZWNvcmQgPSAoc3RydWN0IGVkZ2VfZmlybXdhcmVfaW1hZ2VfcmVjb3JkICopZmlybXdhcmU7CisJCQlyZXNwb25zZSA9IHJvbV93cml0ZSAoZWRnZV9zZXJpYWwtPnNlcmlhbCwgbGUxNl90b19jcHUocmVjb3JkLT5FeHRBZGRyKSwgbGUxNl90b19jcHUocmVjb3JkLT5BZGRyKSwgbGUxNl90b19jcHUocmVjb3JkLT5MZW4pLCAmcmVjb3JkLT5EYXRhWzBdKTsKKwkJCWlmIChyZXNwb25zZSA8IDApIHsKKwkJCQlkZXZfZXJyKCZlZGdlX3NlcmlhbC0+c2VyaWFsLT5kZXYtPmRldiwgInJvbV93cml0ZSBmYWlsZWQgKCV4LCAleCwgJWQpXG4iLCBsZTE2X3RvX2NwdShyZWNvcmQtPkV4dEFkZHIpLCBsZTE2X3RvX2NwdShyZWNvcmQtPkFkZHIpLCBsZTE2X3RvX2NwdShyZWNvcmQtPkxlbikpOworCQkJCWJyZWFrOworCQkJfQorCQkJZmlybXdhcmUgKz0gc2l6ZW9mIChzdHJ1Y3QgZWRnZV9maXJtd2FyZV9pbWFnZV9yZWNvcmQpICsgbGUxNl90b19jcHUocmVjb3JkLT5MZW4pOworCQkJaWYgKGZpcm13YXJlID49ICZCb290SW1hZ2VbQm9vdFNpemVdKSB7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwl9IGVsc2UgeworCQlkYmcoIkJvb3QgSW1hZ2UgLS0gYWxyZWFkeSB1cCB0byBkYXRlIik7CisJfQorfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICogIEdldCBzdHJpbmcgZGVzY3JpcHRvciBmcm9tIGRldmljZQkJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIGludCBnZXRfc3RyaW5nIChzdHJ1Y3QgdXNiX2RldmljZSAqZGV2LCBpbnQgSWQsIGNoYXIgKnN0cmluZykKK3sKKwlzdHJ1Y3QgdXNiX3N0cmluZ19kZXNjcmlwdG9yIFN0cmluZ0Rlc2M7CisJc3RydWN0IHVzYl9zdHJpbmdfZGVzY3JpcHRvciAqcFN0cmluZ0Rlc2M7CisKKwlkYmcoIiVzIC0gVVNCIFN0cmluZyBJRCA9ICVkIiwgX19GVU5DVElPTl9fLCBJZCApOworCisJaWYgKCF1c2JfZ2V0X2Rlc2NyaXB0b3IoZGV2LCBVU0JfRFRfU1RSSU5HLCBJZCwgJlN0cmluZ0Rlc2MsIHNpemVvZihTdHJpbmdEZXNjKSkpIHsKKwkJcmV0dXJuIDA7CisJfQorCisJcFN0cmluZ0Rlc2MgPSBrbWFsbG9jIChTdHJpbmdEZXNjLmJMZW5ndGgsIEdGUF9LRVJORUwpOworCisJaWYgKCFwU3RyaW5nRGVzYykgeworCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAoIXVzYl9nZXRfZGVzY3JpcHRvcihkZXYsIFVTQl9EVF9TVFJJTkcsIElkLCBwU3RyaW5nRGVzYywgU3RyaW5nRGVzYy5iTGVuZ3RoICkpIHsKKwkJa2ZyZWUocFN0cmluZ0Rlc2MpOworCQlyZXR1cm4gMDsKKwl9CisKKwl1bmljb2RlX3RvX2FzY2lpKHN0cmluZywgIHBTdHJpbmdEZXNjLT53RGF0YSwgICAgIHBTdHJpbmdEZXNjLT5iTGVuZ3RoLzItMSk7CisKKwlrZnJlZShwU3RyaW5nRGVzYyk7CisJcmV0dXJuIHN0cmxlbihzdHJpbmcpOworfQorCisKKyNpZiAwCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogIEdldCBzdHJpbmcgZGVzY3JpcHRvciBmcm9tIGRldmljZQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgaW50IGdldF9zdHJpbmdfZGVzYyAoc3RydWN0IHVzYl9kZXZpY2UgKmRldiwgaW50IElkLCBzdHJ1Y3QgdXNiX3N0cmluZ19kZXNjcmlwdG9yICoqcFJldERlc2MpCit7CisJc3RydWN0IHVzYl9zdHJpbmdfZGVzY3JpcHRvciBTdHJpbmdEZXNjOworCXN0cnVjdCB1c2Jfc3RyaW5nX2Rlc2NyaXB0b3IgKnBTdHJpbmdEZXNjOworCisJZGJnKCIlcyAtIFVTQiBTdHJpbmcgSUQgPSAlZCIsIF9fRlVOQ1RJT05fXywgSWQgKTsKKworCWlmICghdXNiX2dldF9kZXNjcmlwdG9yKGRldiwgVVNCX0RUX1NUUklORywgSWQsICZTdHJpbmdEZXNjLCBzaXplb2YoU3RyaW5nRGVzYykpKSB7CisJCXJldHVybiAwOworCX0KKworCXBTdHJpbmdEZXNjID0ga21hbGxvYyAoU3RyaW5nRGVzYy5iTGVuZ3RoLCBHRlBfS0VSTkVMKTsKKworCWlmICghcFN0cmluZ0Rlc2MpIHsKKwkJcmV0dXJuIC0xOworCX0KKworCWlmICghdXNiX2dldF9kZXNjcmlwdG9yKGRldiwgVVNCX0RUX1NUUklORywgSWQsIHBTdHJpbmdEZXNjLCBTdHJpbmdEZXNjLmJMZW5ndGggKSkgeworCQlrZnJlZShwU3RyaW5nRGVzYyk7CisJCXJldHVybiAtMTsKKwl9CisKKwkqcFJldERlc2MgPSBwU3RyaW5nRGVzYzsKKwlyZXR1cm4gMDsKK30KKyNlbmRpZgorCitzdGF0aWMgdm9pZCBnZXRfcHJvZHVjdF9pbmZvKHN0cnVjdCBlZGdlcG9ydF9zZXJpYWwgKmVkZ2Vfc2VyaWFsKQoreworCXN0cnVjdCBlZGdlcG9ydF9wcm9kdWN0X2luZm8gKnByb2R1Y3RfaW5mbyA9ICZlZGdlX3NlcmlhbC0+cHJvZHVjdF9pbmZvOworCisJbWVtc2V0IChwcm9kdWN0X2luZm8sIDAsIHNpemVvZihzdHJ1Y3QgZWRnZXBvcnRfcHJvZHVjdF9pbmZvKSk7CisKKwlwcm9kdWN0X2luZm8tPlByb2R1Y3RJZAkJPSAoX191MTYpKGxlMTZfdG9fY3B1KGVkZ2Vfc2VyaWFsLT5zZXJpYWwtPmRldi0+ZGVzY3JpcHRvci5pZFByb2R1Y3QpICYgfklPTl9ERVZJQ0VfSURfODAyNTFfTkVUQ0hJUCk7CisJcHJvZHVjdF9pbmZvLT5OdW1Qb3J0cwkJPSBlZGdlX3NlcmlhbC0+bWFudWZfZGVzY3JpcHRvci5OdW1Qb3J0czsKKwlwcm9kdWN0X2luZm8tPlByb2RJbmZvVmVyCT0gMDsKKworCXByb2R1Y3RfaW5mby0+Um9tU2l6ZQkJPSBlZGdlX3NlcmlhbC0+bWFudWZfZGVzY3JpcHRvci5Sb21TaXplOworCXByb2R1Y3RfaW5mby0+UmFtU2l6ZQkJPSBlZGdlX3NlcmlhbC0+bWFudWZfZGVzY3JpcHRvci5SYW1TaXplOworCXByb2R1Y3RfaW5mby0+Q3B1UmV2CQk9IGVkZ2Vfc2VyaWFsLT5tYW51Zl9kZXNjcmlwdG9yLkNwdVJldjsKKwlwcm9kdWN0X2luZm8tPkJvYXJkUmV2CQk9IGVkZ2Vfc2VyaWFsLT5tYW51Zl9kZXNjcmlwdG9yLkJvYXJkUmV2OworCisJcHJvZHVjdF9pbmZvLT5Cb290TWFqb3JWZXJzaW9uCT0gZWRnZV9zZXJpYWwtPmJvb3RfZGVzY3JpcHRvci5NYWpvclZlcnNpb247CisJcHJvZHVjdF9pbmZvLT5Cb290TWlub3JWZXJzaW9uCT0gZWRnZV9zZXJpYWwtPmJvb3RfZGVzY3JpcHRvci5NaW5vclZlcnNpb247CisJcHJvZHVjdF9pbmZvLT5Cb290QnVpbGROdW1iZXIJPSBlZGdlX3NlcmlhbC0+Ym9vdF9kZXNjcmlwdG9yLkJ1aWxkTnVtYmVyOworCisJbWVtY3B5KHByb2R1Y3RfaW5mby0+TWFudWZhY3R1cmVEZXNjRGF0ZSwgZWRnZV9zZXJpYWwtPm1hbnVmX2Rlc2NyaXB0b3IuRGVzY0RhdGUsIHNpemVvZihlZGdlX3NlcmlhbC0+bWFudWZfZGVzY3JpcHRvci5EZXNjRGF0ZSkpOworCisJLy8gY2hlY2sgaWYgdGhpcyBpcyAybmQgZ2VuZXJhdGlvbiBoYXJkd2FyZQorCWlmIChsZTE2X3RvX2NwdShlZGdlX3NlcmlhbC0+c2VyaWFsLT5kZXYtPmRlc2NyaXB0b3IuaWRQcm9kdWN0KSAmIElPTl9ERVZJQ0VfSURfODAyNTFfTkVUQ0hJUCkgeworCQlwcm9kdWN0X2luZm8tPkZpcm13YXJlTWFqb3JWZXJzaW9uCT0gT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uX0dFTjIuTWFqb3JWZXJzaW9uOworCQlwcm9kdWN0X2luZm8tPkZpcm13YXJlTWlub3JWZXJzaW9uCT0gT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uX0dFTjIuTWlub3JWZXJzaW9uOworCQlwcm9kdWN0X2luZm8tPkZpcm13YXJlQnVpbGROdW1iZXIJPSBjcHVfdG9fbGUxNihPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb25fR0VOMi5CdWlsZE51bWJlcik7CisJCXByb2R1Y3RfaW5mby0+aURvd25sb2FkRmlsZQkJPSBFREdFX0RPV05MT0FEX0ZJTEVfODAyNTE7CisJfSBlbHNlIHsKKwkJcHJvZHVjdF9pbmZvLT5GaXJtd2FyZU1ham9yVmVyc2lvbgk9IE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbl9HRU4xLk1ham9yVmVyc2lvbjsKKwkJcHJvZHVjdF9pbmZvLT5GaXJtd2FyZU1pbm9yVmVyc2lvbgk9IE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbl9HRU4xLk1pbm9yVmVyc2lvbjsKKwkJcHJvZHVjdF9pbmZvLT5GaXJtd2FyZUJ1aWxkTnVtYmVyCT0gY3B1X3RvX2xlMTYoT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uX0dFTjEuQnVpbGROdW1iZXIpOworCQlwcm9kdWN0X2luZm8tPmlEb3dubG9hZEZpbGUJCT0gRURHRV9ET1dOTE9BRF9GSUxFX0k5MzA7CisJfQorCisJLy8gRGV0ZXJtaW5lIFByb2R1Y3QgdHlwZSBhbmQgc2V0IGFwcHJvcHJpYXRlIGZsYWdzCisJc3dpdGNoIChERVZJQ0VfSURfRlJPTV9VU0JfUFJPRFVDVF9JRChwcm9kdWN0X2luZm8tPlByb2R1Y3RJZCkpIHsKKwkJY2FzZSBJT05fREVWSUNFX0lEX0VER0VQT1JUX0NPTVBBVElCTEU6CisJCWNhc2UgSU9OX0RFVklDRV9JRF9FREdFUE9SVF80VDoKKwkJY2FzZSBJT05fREVWSUNFX0lEX0VER0VQT1JUXzQ6CisJCWNhc2UgSU9OX0RFVklDRV9JRF9FREdFUE9SVF8yOgorCQljYXNlIElPTl9ERVZJQ0VfSURfRURHRVBPUlRfOF9EVUFMX0NQVToKKwkJY2FzZSBJT05fREVWSUNFX0lEX0VER0VQT1JUXzg6CisJCWNhc2UgSU9OX0RFVklDRV9JRF9FREdFUE9SVF80MjE6CisJCWNhc2UgSU9OX0RFVklDRV9JRF9FREdFUE9SVF8yMToKKwkJY2FzZSBJT05fREVWSUNFX0lEX0VER0VQT1JUXzJfRElOOgorCQljYXNlIElPTl9ERVZJQ0VfSURfRURHRVBPUlRfNF9ESU46CisJCWNhc2UgSU9OX0RFVklDRV9JRF9FREdFUE9SVF8xNl9EVUFMX0NQVToKKwkJCXByb2R1Y3RfaW5mby0+SXNSUzIzMiA9IDE7CisJCQlicmVhazsKKworCQljYXNlIElPTl9ERVZJQ0VfSURfRURHRVBPUlRfMkk6CQkJCSAgIC8vIEVkZ2Vwb3J0LzIgUlM0MjIvUlM0ODUKKwkJCXByb2R1Y3RfaW5mby0+SXNSUzQyMiA9IDE7CisJCQlwcm9kdWN0X2luZm8tPklzUlM0ODUgPSAxOworCQkJYnJlYWs7CisKKwkJY2FzZSBJT05fREVWSUNFX0lEX0VER0VQT1JUXzhJOgkJCQkgICAvLyBFZGdlcG9ydC80IFJTNDIyCisJCWNhc2UgSU9OX0RFVklDRV9JRF9FREdFUE9SVF80SToJCQkJICAgLy8gRWRnZXBvcnQvNCBSUzQyMgorCQkJcHJvZHVjdF9pbmZvLT5Jc1JTNDIyID0gMTsKKwkJCWJyZWFrOworCX0KKworCS8vIER1bXAgUHJvZHVjdCBJbmZvIHN0cnVjdHVyZQorCWRiZygiKipQcm9kdWN0IEluZm9ybWF0aW9uOiIpOworCWRiZygiICBQcm9kdWN0SWQgICAgICAgICAgICAgJXgiLCBwcm9kdWN0X2luZm8tPlByb2R1Y3RJZCApOworCWRiZygiICBOdW1Qb3J0cyAgICAgICAgICAgICAgJWQiLCBwcm9kdWN0X2luZm8tPk51bVBvcnRzICk7CisJZGJnKCIgIFByb2RJbmZvVmVyICAgICAgICAgICAlZCIsIHByb2R1Y3RfaW5mby0+UHJvZEluZm9WZXIgKTsKKwlkYmcoIiAgSXNTZXJ2ZXIgICAgICAgICAgICAgICVkIiwgcHJvZHVjdF9pbmZvLT5Jc1NlcnZlcik7CisJZGJnKCIgIElzUlMyMzIgICAgICAgICAgICAgICAlZCIsIHByb2R1Y3RfaW5mby0+SXNSUzIzMiApOworCWRiZygiICBJc1JTNDIyICAgICAgICAgICAgICAgJWQiLCBwcm9kdWN0X2luZm8tPklzUlM0MjIgKTsKKwlkYmcoIiAgSXNSUzQ4NSAgICAgICAgICAgICAgICVkIiwgcHJvZHVjdF9pbmZvLT5Jc1JTNDg1ICk7CisJZGJnKCIgIFJvbVNpemUgICAgICAgICAgICAgICAlZCIsIHByb2R1Y3RfaW5mby0+Um9tU2l6ZSApOworCWRiZygiICBSYW1TaXplICAgICAgICAgICAgICAgJWQiLCBwcm9kdWN0X2luZm8tPlJhbVNpemUgKTsKKwlkYmcoIiAgQ3B1UmV2ICAgICAgICAgICAgICAgICV4IiwgcHJvZHVjdF9pbmZvLT5DcHVSZXYgICk7CisJZGJnKCIgIEJvYXJkUmV2ICAgICAgICAgICAgICAleCIsIHByb2R1Y3RfaW5mby0+Qm9hcmRSZXYpOworCWRiZygiICBCb290TWFqb3JWZXJzaW9uICAgICAgJWQuJWQuJWQiLCBwcm9kdWN0X2luZm8tPkJvb3RNYWpvclZlcnNpb24sCisJICAgIHByb2R1Y3RfaW5mby0+Qm9vdE1pbm9yVmVyc2lvbiwKKwkgICAgbGUxNl90b19jcHUocHJvZHVjdF9pbmZvLT5Cb290QnVpbGROdW1iZXIpKTsKKwlkYmcoIiAgRmlybXdhcmVNYWpvclZlcnNpb24gICVkLiVkLiVkIiwgcHJvZHVjdF9pbmZvLT5GaXJtd2FyZU1ham9yVmVyc2lvbiwKKwkgICAgcHJvZHVjdF9pbmZvLT5GaXJtd2FyZU1pbm9yVmVyc2lvbiwKKwkgICAgbGUxNl90b19jcHUocHJvZHVjdF9pbmZvLT5GaXJtd2FyZUJ1aWxkTnVtYmVyKSk7CisJZGJnKCIgIE1hbnVmYWN0dXJlRGVzY0RhdGUgICAlZC8lZC8lZCIsIHByb2R1Y3RfaW5mby0+TWFudWZhY3R1cmVEZXNjRGF0ZVswXSwKKwkgICAgcHJvZHVjdF9pbmZvLT5NYW51ZmFjdHVyZURlc2NEYXRlWzFdLAorCSAgICBwcm9kdWN0X2luZm8tPk1hbnVmYWN0dXJlRGVzY0RhdGVbMl0rMTkwMCk7CisJZGJnKCIgIGlEb3dubG9hZEZpbGUgICAgICAgICAweCV4IiwgICAgIHByb2R1Y3RfaW5mby0+aURvd25sb2FkRmlsZSk7CisKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgVSBTIEIgIEMgQSBMIEwgQiBBIEMgSyAgIEYgVSBOIEMgVCBJIE8gTiBTICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgIFUgUyBCICBDIEEgTCBMIEIgQSBDIEsgICBGIFUgTiBDIFQgSSBPIE4gUyAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogZWRnZV9pbnRlcnJ1cHRfY2FsbGJhY2sKKyAqCXRoaXMgaXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciB3aGVuIHdlIGhhdmUgcmVjZWl2ZWQgZGF0YSBvbiB0aGUgCisgKglpbnRlcnJ1cHQgZW5kcG9pbnQuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgdm9pZCBlZGdlX2ludGVycnVwdF9jYWxsYmFjayAoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsCSplZGdlX3NlcmlhbCA9IChzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsICopdXJiLT5jb250ZXh0OworCXN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQ7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydDsKKwl1bnNpZ25lZCBjaGFyICpkYXRhID0gdXJiLT50cmFuc2Zlcl9idWZmZXI7CisJaW50IGxlbmd0aCA9IHVyYi0+YWN0dWFsX2xlbmd0aDsKKwlpbnQgYnl0ZXNfYXZhaWw7CisJaW50IHBvc2l0aW9uOworCWludCB0eENyZWRpdHM7CisJaW50IHBvcnROdW1iZXI7CisJaW50IHJlc3VsdDsKKworCWRiZygiJXMiLCBfX0ZVTkNUSU9OX18pOworCisJc3dpdGNoICh1cmItPnN0YXR1cykgeworCWNhc2UgMDoKKwkJLyogc3VjY2VzcyAqLworCQlicmVhazsKKwljYXNlIC1FQ09OTlJFU0VUOgorCWNhc2UgLUVOT0VOVDoKKwljYXNlIC1FU0hVVERPV046CisJCS8qIHRoaXMgdXJiIGlzIHRlcm1pbmF0ZWQsIGNsZWFuIHVwICovCisJCWRiZygiJXMgLSB1cmIgc2h1dHRpbmcgZG93biB3aXRoIHN0YXR1czogJWQiLCBfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzKTsKKwkJcmV0dXJuOworCWRlZmF1bHQ6CisJCWRiZygiJXMgLSBub256ZXJvIHVyYiBzdGF0dXMgcmVjZWl2ZWQ6ICVkIiwgX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyk7CisJCWdvdG8gZXhpdDsKKwl9CisKKwkvLyBwcm9jZXNzIHRoaXMgaW50ZXJydXB0LXJlYWQgZXZlbiBpZiB0aGVyZSBhcmUgbm8gcG9ydHMgb3BlbgorCWlmIChsZW5ndGgpIHsKKwkJdXNiX3NlcmlhbF9kZWJ1Z19kYXRhKGRlYnVnLCAmZWRnZV9zZXJpYWwtPnNlcmlhbC0+ZGV2LT5kZXYsIF9fRlVOQ1RJT05fXywgbGVuZ3RoLCBkYXRhKTsKKworCQlpZiAobGVuZ3RoID4gMSkgeworCQkJYnl0ZXNfYXZhaWwgPSBkYXRhWzBdIHwgKGRhdGFbMV0gPDwgOCk7CisJCQlpZiAoYnl0ZXNfYXZhaWwpIHsKKwkJCQlzcGluX2xvY2soJmVkZ2Vfc2VyaWFsLT5lc19sb2NrKTsKKwkJCQllZGdlX3NlcmlhbC0+cnhCeXRlc0F2YWlsICs9IGJ5dGVzX2F2YWlsOworCQkJCWRiZygiJXMgLSBieXRlc19hdmFpbD0lZCwgcnhCeXRlc0F2YWlsPSVkLCByZWFkX2luX3Byb2dyZXNzPSVkIiwgX19GVU5DVElPTl9fLCBieXRlc19hdmFpbCwgZWRnZV9zZXJpYWwtPnJ4Qnl0ZXNBdmFpbCwgZWRnZV9zZXJpYWwtPnJlYWRfaW5fcHJvZ3Jlc3MpOworCisJCQkJaWYgKGVkZ2Vfc2VyaWFsLT5yeEJ5dGVzQXZhaWwgPiAwICYmCisJCQkJICAgICFlZGdlX3NlcmlhbC0+cmVhZF9pbl9wcm9ncmVzcykgeworCQkJCQlkYmcoIiVzIC0gcG9zdGluZyBhIHJlYWQiLCBfX0ZVTkNUSU9OX18pOworCQkJCQllZGdlX3NlcmlhbC0+cmVhZF9pbl9wcm9ncmVzcyA9IFRSVUU7CisKKwkJCQkJLyogd2UgaGF2ZSBwZW5kaW5nIGJ5dGVzIG9uIHRoZSBidWxrIGluIHBpcGUsIHNlbmQgYSByZXF1ZXN0ICovCisJCQkJCWVkZ2Vfc2VyaWFsLT5yZWFkX3VyYi0+ZGV2ID0gZWRnZV9zZXJpYWwtPnNlcmlhbC0+ZGV2OworCQkJCQlyZXN1bHQgPSB1c2Jfc3VibWl0X3VyYihlZGdlX3NlcmlhbC0+cmVhZF91cmIsIEdGUF9BVE9NSUMpOworCQkJCQlpZiAocmVzdWx0KSB7CisJCQkJCQlkZXZfZXJyKCZlZGdlX3NlcmlhbC0+c2VyaWFsLT5kZXYtPmRldiwgIiVzIC0gdXNiX3N1Ym1pdF91cmIocmVhZCBidWxrKSBmYWlsZWQgd2l0aCByZXN1bHQgPSAlZFxuIiwgX19GVU5DVElPTl9fLCByZXN1bHQpOworCQkJCQkJZWRnZV9zZXJpYWwtPnJlYWRfaW5fcHJvZ3Jlc3MgPSBGQUxTRTsKKwkJCQkJfQorCQkJCX0KKwkJCQlzcGluX3VubG9jaygmZWRnZV9zZXJpYWwtPmVzX2xvY2spOworCQkJfQorCQl9CisJCS8qIGdyYWIgdGhlIHR4Y3JlZGl0cyBmb3IgdGhlIHBvcnRzIGlmIGF2YWlsYWJsZSAqLworCQlwb3NpdGlvbiA9IDI7CisJCXBvcnROdW1iZXIgPSAwOworCQl3aGlsZSAoKHBvc2l0aW9uIDwgbGVuZ3RoKSAmJiAocG9ydE51bWJlciA8IGVkZ2Vfc2VyaWFsLT5zZXJpYWwtPm51bV9wb3J0cykpIHsKKwkJCXR4Q3JlZGl0cyA9IGRhdGFbcG9zaXRpb25dIHwgKGRhdGFbcG9zaXRpb24rMV0gPDwgOCk7CisJCQlpZiAodHhDcmVkaXRzKSB7CisJCQkJcG9ydCA9IGVkZ2Vfc2VyaWFsLT5zZXJpYWwtPnBvcnRbcG9ydE51bWJlcl07CisJCQkJZWRnZV9wb3J0ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCQkJCWlmIChlZGdlX3BvcnQtPm9wZW4pIHsKKwkJCQkJc3Bpbl9sb2NrKCZlZGdlX3BvcnQtPmVwX2xvY2spOworCQkJCQllZGdlX3BvcnQtPnR4Q3JlZGl0cyArPSB0eENyZWRpdHM7CisJCQkJCXNwaW5fdW5sb2NrKCZlZGdlX3BvcnQtPmVwX2xvY2spOworCQkJCQlkYmcoIiVzIC0gdHhjcmVkaXRzIGZvciBwb3J0JWQgPSAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydE51bWJlciwgZWRnZV9wb3J0LT50eENyZWRpdHMpOworCisJCQkJCS8qIHRlbGwgdGhlIHR0eSBkcml2ZXIgdGhhdCBzb21ldGhpbmcgaGFzIGNoYW5nZWQgKi8KKwkJCQkJaWYgKGVkZ2VfcG9ydC0+cG9ydC0+dHR5KQorCQkJCQkJdHR5X3dha2V1cChlZGdlX3BvcnQtPnBvcnQtPnR0eSk7CisKKwkJCQkJLy8gU2luY2Ugd2UgaGF2ZSBtb3JlIGNyZWRpdCwgY2hlY2sgaWYgbW9yZSBkYXRhIGNhbiBiZSBzZW50CisJCQkJCXNlbmRfbW9yZV9wb3J0X2RhdGEoZWRnZV9zZXJpYWwsIGVkZ2VfcG9ydCk7CisJCQkJfQorCQkJfQorCQkJcG9zaXRpb24gKz0gMjsKKwkJCSsrcG9ydE51bWJlcjsKKwkJfQorCX0KKworZXhpdDoKKwlyZXN1bHQgPSB1c2Jfc3VibWl0X3VyYiAodXJiLCBHRlBfQVRPTUlDKTsKKwlpZiAocmVzdWx0KSB7CisJCWRldl9lcnIoJnVyYi0+ZGV2LT5kZXYsICIlcyAtIEVycm9yICVkIHN1Ym1pdHRpbmcgY29udHJvbCB1cmJcbiIsIF9fRlVOQ1RJT05fXywgcmVzdWx0KTsKKwl9Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBlZGdlX2J1bGtfaW5fY2FsbGJhY2sKKyAqCXRoaXMgaXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciB3aGVuIHdlIGhhdmUgcmVjZWl2ZWQgZGF0YSBvbiB0aGUgCisgKglidWxrIGluIGVuZHBvaW50LgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHZvaWQgZWRnZV9idWxrX2luX2NhbGxiYWNrIChzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXN0cnVjdCBlZGdlcG9ydF9zZXJpYWwJKmVkZ2Vfc2VyaWFsID0gKHN0cnVjdCBlZGdlcG9ydF9zZXJpYWwgKil1cmItPmNvbnRleHQ7CisJdW5zaWduZWQgY2hhcgkJKmRhdGEgPSB1cmItPnRyYW5zZmVyX2J1ZmZlcjsKKwlpbnQJCQlzdGF0dXM7CisJX191MTYJCQlyYXdfZGF0YV9sZW5ndGg7CisKKwlkYmcoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCWlmICh1cmItPnN0YXR1cykgeworCQlkYmcoIiVzIC0gbm9uemVybyByZWFkIGJ1bGsgc3RhdHVzIHJlY2VpdmVkOiAlZCIsIF9fRlVOQ1RJT05fXywgdXJiLT5zdGF0dXMpOworCQllZGdlX3NlcmlhbC0+cmVhZF9pbl9wcm9ncmVzcyA9IEZBTFNFOworCQlyZXR1cm47CisJfQorCisJaWYgKHVyYi0+YWN0dWFsX2xlbmd0aCA9PSAwKSB7CisJCWRiZygiJXMgLSByZWFkIGJ1bGsgY2FsbGJhY2sgd2l0aCBubyBkYXRhIiwgX19GVU5DVElPTl9fKTsKKwkJZWRnZV9zZXJpYWwtPnJlYWRfaW5fcHJvZ3Jlc3MgPSBGQUxTRTsKKwkJcmV0dXJuOworCX0KKworCXJhd19kYXRhX2xlbmd0aCA9IHVyYi0+YWN0dWFsX2xlbmd0aDsKKworCXVzYl9zZXJpYWxfZGVidWdfZGF0YShkZWJ1ZywgJmVkZ2Vfc2VyaWFsLT5zZXJpYWwtPmRldi0+ZGV2LCBfX0ZVTkNUSU9OX18sIHJhd19kYXRhX2xlbmd0aCwgZGF0YSk7CisKKwlzcGluX2xvY2soJmVkZ2Vfc2VyaWFsLT5lc19sb2NrKTsKKworCS8qIGRlY3JlbWVudCBvdXIgcnhCeXRlcyBhdmFpbGFibGUgYnkgdGhlIG51bWJlciB0aGF0IHdlIGp1c3QgZ290ICovCisJZWRnZV9zZXJpYWwtPnJ4Qnl0ZXNBdmFpbCAtPSByYXdfZGF0YV9sZW5ndGg7CisKKwlkYmcoIiVzIC0gUmVjZWl2ZWQgPSAlZCwgcnhCeXRlc0F2YWlsICVkIiwgX19GVU5DVElPTl9fLCByYXdfZGF0YV9sZW5ndGgsIGVkZ2Vfc2VyaWFsLT5yeEJ5dGVzQXZhaWwpOworCisJcHJvY2Vzc19yY3ZkX2RhdGEgKGVkZ2Vfc2VyaWFsLCBkYXRhLCB1cmItPmFjdHVhbF9sZW5ndGgpOworCisJLyogY2hlY2sgdG8gc2VlIGlmIHRoZXJlJ3MgYW55IG1vcmUgZGF0YSBmb3IgdXMgdG8gcmVhZCAqLworCWlmIChlZGdlX3NlcmlhbC0+cnhCeXRlc0F2YWlsID4gMCkgeworCQlkYmcoIiVzIC0gcG9zdGluZyBhIHJlYWQiLCBfX0ZVTkNUSU9OX18pOworCQllZGdlX3NlcmlhbC0+cmVhZF91cmItPmRldiA9IGVkZ2Vfc2VyaWFsLT5zZXJpYWwtPmRldjsKKwkJc3RhdHVzID0gdXNiX3N1Ym1pdF91cmIoZWRnZV9zZXJpYWwtPnJlYWRfdXJiLCBHRlBfQVRPTUlDKTsKKwkJaWYgKHN0YXR1cykgeworCQkJZGV2X2VycigmdXJiLT5kZXYtPmRldiwgIiVzIC0gdXNiX3N1Ym1pdF91cmIocmVhZCBidWxrKSBmYWlsZWQsIHN0YXR1cyA9ICVkXG4iLCBfX0ZVTkNUSU9OX18sIHN0YXR1cyk7CisJCQllZGdlX3NlcmlhbC0+cmVhZF9pbl9wcm9ncmVzcyA9IEZBTFNFOworCQl9CisJfSBlbHNlIHsKKwkJZWRnZV9zZXJpYWwtPnJlYWRfaW5fcHJvZ3Jlc3MgPSBGQUxTRTsKKwl9CisKKwlzcGluX3VubG9jaygmZWRnZV9zZXJpYWwtPmVzX2xvY2spOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogZWRnZV9idWxrX291dF9kYXRhX2NhbGxiYWNrCisgKgl0aGlzIGlzIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBmb3Igd2hlbiB3ZSBoYXZlIGZpbmlzaGVkIHNlbmRpbmcgc2VyaWFsIGRhdGEKKyAqCW9uIHRoZSBidWxrIG91dCBlbmRwb2ludC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyB2b2lkIGVkZ2VfYnVsa19vdXRfZGF0YV9jYWxsYmFjayAoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqZWRnZV9wb3J0ID0gKHN0cnVjdCBlZGdlcG9ydF9wb3J0ICopdXJiLT5jb250ZXh0OworCXN0cnVjdCB0dHlfc3RydWN0ICp0dHk7CisKKwlkYmcoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCWlmICh1cmItPnN0YXR1cykgeworCQlkYmcoIiVzIC0gbm9uemVybyB3cml0ZSBidWxrIHN0YXR1cyByZWNlaXZlZDogJWQiLCBfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzKTsKKwl9CisKKwl0dHkgPSBlZGdlX3BvcnQtPnBvcnQtPnR0eTsKKworCWlmICh0dHkgJiYgZWRnZV9wb3J0LT5vcGVuKSB7CisJCS8qIGxldCB0aGUgdHR5IGRyaXZlciB3YWtldXAgaWYgaXQgaGFzIGEgc3BlY2lhbCB3cml0ZV93YWtldXAgZnVuY3Rpb24gKi8KKwkJdHR5X3dha2V1cCh0dHkpOworCX0KKworCS8vIFJlbGVhc2UgdGhlIFdyaXRlIFVSQgorCWVkZ2VfcG9ydC0+d3JpdGVfaW5fcHJvZ3Jlc3MgPSBGQUxTRTsKKworCS8vIENoZWNrIGlmIG1vcmUgZGF0YSBuZWVkcyB0byBiZSBzZW50CisJc2VuZF9tb3JlX3BvcnRfZGF0YSgoc3RydWN0IGVkZ2Vwb3J0X3NlcmlhbCAqKSh1c2JfZ2V0X3NlcmlhbF9kYXRhKGVkZ2VfcG9ydC0+cG9ydC0+c2VyaWFsKSksIGVkZ2VfcG9ydCk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBCdWxrT3V0Q21kQ2FsbGJhY2sKKyAqCXRoaXMgaXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciB3aGVuIHdlIGhhdmUgZmluaXNoZWQgc2VuZGluZyBhIGNvbW1hbmQKKyAqCW9uIHRoZSBidWxrIG91dCBlbmRwb2ludC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyB2b2lkIGVkZ2VfYnVsa19vdXRfY21kX2NhbGxiYWNrIChzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQgPSAoc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKil1cmItPmNvbnRleHQ7CisJc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eTsKKwlpbnQgc3RhdHVzID0gdXJiLT5zdGF0dXM7CisKKwlkYmcoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCUNtZFVyYnMtLTsKKwlkYmcoIiVzIC0gRlJFRSBVUkIgJXAgKG91dHN0YW5kaW5nICVkKSIsIF9fRlVOQ1RJT05fXywgdXJiLCBDbWRVcmJzKTsKKworCisJLyogY2xlYW4gdXAgdGhlIHRyYW5zZmVyIGJ1ZmZlciAqLworCWlmICh1cmItPnRyYW5zZmVyX2J1ZmZlciAhPSBOVUxMKSB7CisJCWtmcmVlKHVyYi0+dHJhbnNmZXJfYnVmZmVyKTsKKwl9CisKKwkvKiBGcmVlIHRoZSBjb21tYW5kIHVyYiAqLworCXVzYl9mcmVlX3VyYiAodXJiKTsKKworCWlmIChzdGF0dXMpIHsKKwkJZGJnKCIlcyAtIG5vbnplcm8gd3JpdGUgYnVsayBzdGF0dXMgcmVjZWl2ZWQ6ICVkIiwgX19GVU5DVElPTl9fLCBzdGF0dXMpOworCQlyZXR1cm47CisJfQorCisJLyogR2V0IHBvaW50ZXIgdG8gdHR5ICovCisJdHR5ID0gZWRnZV9wb3J0LT5wb3J0LT50dHk7CisKKwkvKiB0ZWxsIHRoZSB0dHkgZHJpdmVyIHRoYXQgc29tZXRoaW5nIGhhcyBjaGFuZ2VkICovCisJaWYgKHR0eSAmJiBlZGdlX3BvcnQtPm9wZW4pCisJCXR0eV93YWtldXAodHR5KTsKKworCS8qIHdlIGhhdmUgY29tcGxldGVkIHRoZSBjb21tYW5kICovCisJZWRnZV9wb3J0LT5jb21tYW5kUGVuZGluZyA9IEZBTFNFOworCXdha2VfdXAoJmVkZ2VfcG9ydC0+d2FpdF9jb21tYW5kKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIERyaXZlciB0dHkgaW50ZXJmYWNlIGZ1bmN0aW9ucworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFNlcmlhbE9wZW4KKyAqCXRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0dHkgZHJpdmVyIHdoZW4gYSBwb3J0IGlzIG9wZW5lZAorICoJSWYgc3VjY2Vzc2Z1bCwgd2UgcmV0dXJuIDAKKyAqCU90aGVyd2lzZSB3ZSByZXR1cm4gYSBuZWdhdGl2ZSBlcnJvciBudW1iZXIuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgaW50IGVkZ2Vfb3BlbiAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKiBmaWxwKQoreworCXN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbDsKKwlzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsICplZGdlX3NlcmlhbDsKKwlpbnQgcmVzcG9uc2U7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCWlmIChlZGdlX3BvcnQgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlpZiAocG9ydC0+dHR5KQorCQlwb3J0LT50dHktPmxvd19sYXRlbmN5ID0gbG93X2xhdGVuY3k7CisKKwkvKiBzZWUgaWYgd2UndmUgc2V0IHVwIG91ciBlbmRwb2ludCBpbmZvIHlldCAoY2FuJ3Qgc2V0IGl0IHVwIGluIGVkZ2Vfc3RhcnR1cAorCSAgIGFzIHRoZSBzdHJ1Y3R1cmVzIHdlcmUgbm90IHNldCB1cCBhdCB0aGF0IHRpbWUuKSAqLworCXNlcmlhbCA9IHBvcnQtPnNlcmlhbDsKKwllZGdlX3NlcmlhbCA9IHVzYl9nZXRfc2VyaWFsX2RhdGEoc2VyaWFsKTsKKwlpZiAoZWRnZV9zZXJpYWwgPT0gTlVMTCkgeworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisJaWYgKGVkZ2Vfc2VyaWFsLT5pbnRlcnJ1cHRfaW5fYnVmZmVyID09IE5VTEwpIHsKKwkJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydDAgPSBzZXJpYWwtPnBvcnRbMF07CisJCQorCQkvKiBub3Qgc2V0IHVwIHlldCwgc28gZG8gaXQgbm93ICovCisJCWVkZ2Vfc2VyaWFsLT5pbnRlcnJ1cHRfaW5fYnVmZmVyID0gcG9ydDAtPmludGVycnVwdF9pbl9idWZmZXI7CisJCWVkZ2Vfc2VyaWFsLT5pbnRlcnJ1cHRfaW5fZW5kcG9pbnQgPSBwb3J0MC0+aW50ZXJydXB0X2luX2VuZHBvaW50QWRkcmVzczsKKwkJZWRnZV9zZXJpYWwtPmludGVycnVwdF9yZWFkX3VyYiA9IHBvcnQwLT5pbnRlcnJ1cHRfaW5fdXJiOworCQllZGdlX3NlcmlhbC0+YnVsa19pbl9idWZmZXIgPSBwb3J0MC0+YnVsa19pbl9idWZmZXI7CisJCWVkZ2Vfc2VyaWFsLT5idWxrX2luX2VuZHBvaW50ID0gcG9ydDAtPmJ1bGtfaW5fZW5kcG9pbnRBZGRyZXNzOworCQllZGdlX3NlcmlhbC0+cmVhZF91cmIgPSBwb3J0MC0+cmVhZF91cmI7CisJCWVkZ2Vfc2VyaWFsLT5idWxrX291dF9lbmRwb2ludCA9IHBvcnQwLT5idWxrX291dF9lbmRwb2ludEFkZHJlc3M7CisJCisJCS8qIHNldCB1cCBvdXIgaW50ZXJydXB0IHVyYiAqLworCQl1c2JfZmlsbF9pbnRfdXJiKGVkZ2Vfc2VyaWFsLT5pbnRlcnJ1cHRfcmVhZF91cmIsCisJCQkJIHNlcmlhbC0+ZGV2LAorCQkJCSB1c2JfcmN2aW50cGlwZShzZXJpYWwtPmRldiwKKwkJCQkJICAgICAgICBwb3J0MC0+aW50ZXJydXB0X2luX2VuZHBvaW50QWRkcmVzcyksCisJCQkJIHBvcnQwLT5pbnRlcnJ1cHRfaW5fYnVmZmVyLAorCQkJCSBlZGdlX3NlcmlhbC0+aW50ZXJydXB0X3JlYWRfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoLAorCQkJCSBlZGdlX2ludGVycnVwdF9jYWxsYmFjaywgZWRnZV9zZXJpYWwsCisJCQkJIGVkZ2Vfc2VyaWFsLT5pbnRlcnJ1cHRfcmVhZF91cmItPmludGVydmFsKTsKKwkJCisJCS8qIHNldCB1cCBvdXIgYnVsayBpbiB1cmIgKi8KKwkJdXNiX2ZpbGxfYnVsa191cmIoZWRnZV9zZXJpYWwtPnJlYWRfdXJiLCBzZXJpYWwtPmRldiwKKwkJCQkgIHVzYl9yY3ZidWxrcGlwZShzZXJpYWwtPmRldiwKKwkJCQkJICAJICBwb3J0MC0+YnVsa19pbl9lbmRwb2ludEFkZHJlc3MpLAorCQkJCSAgcG9ydDAtPmJ1bGtfaW5fYnVmZmVyLAorCQkJCSAgZWRnZV9zZXJpYWwtPnJlYWRfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoLAorCQkJCSAgZWRnZV9idWxrX2luX2NhbGxiYWNrLCBlZGdlX3NlcmlhbCk7CisJCWVkZ2Vfc2VyaWFsLT5yZWFkX2luX3Byb2dyZXNzID0gRkFMU0U7CisKKwkJLyogc3RhcnQgaW50ZXJydXB0IHJlYWQgZm9yIHRoaXMgZWRnZXBvcnQKKwkJICogdGhpcyBpbnRlcnJ1cHQgd2lsbCBjb250aW51ZSBhcyBsb25nIGFzIHRoZSBlZGdlcG9ydCBpcyBjb25uZWN0ZWQgKi8KKwkJcmVzcG9uc2UgPSB1c2Jfc3VibWl0X3VyYiAoZWRnZV9zZXJpYWwtPmludGVycnVwdF9yZWFkX3VyYiwgR0ZQX0tFUk5FTCk7CisJCWlmIChyZXNwb25zZSkgeworCQkJZGV2X2VycigmcG9ydC0+ZGV2LCAiJXMgLSBFcnJvciAlZCBzdWJtaXR0aW5nIGNvbnRyb2wgdXJiXG4iLCBfX0ZVTkNUSU9OX18sIHJlc3BvbnNlKTsKKwkJfQorCX0KKwkKKwkvKiBpbml0aWFsaXplIG91ciB3YWl0IHF1ZXVlcyAqLworCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmVkZ2VfcG9ydC0+d2FpdF9vcGVuKTsKKwlpbml0X3dhaXRxdWV1ZV9oZWFkKCZlZGdlX3BvcnQtPndhaXRfY2hhc2UpOworCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmVkZ2VfcG9ydC0+ZGVsdGFfbXNyX3dhaXQpOworCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmVkZ2VfcG9ydC0+d2FpdF9jb21tYW5kKTsKKworCS8qIGluaXRpYWxpemUgb3VyIGljb3VudCBzdHJ1Y3R1cmUgKi8KKwltZW1zZXQgKCYoZWRnZV9wb3J0LT5pY291bnQpLCAweDAwLCBzaXplb2YoZWRnZV9wb3J0LT5pY291bnQpKTsKKworCS8qIGluaXRpYWxpemUgb3VyIHBvcnQgc2V0dGluZ3MgKi8KKwllZGdlX3BvcnQtPnR4Q3JlZGl0cyAgICAgICAgICAgID0gMDsJCQkvKiBDYW4ndCBzZW5kIGFueSBkYXRhIHlldCAqLworCWVkZ2VfcG9ydC0+c2hhZG93TUNSICAgICAgICAgICAgPSBNQ1JfTUFTVEVSX0lFOwkvKiBNdXN0IGFsd2F5cyBzZXQgdGhpcyBiaXQgdG8gZW5hYmxlIGludHMhICovCisJZWRnZV9wb3J0LT5jaGFzZVJlc3BvbnNlUGVuZGluZyA9IEZBTFNFOworCisJLyogc2VuZCBhIG9wZW4gcG9ydCBjb21tYW5kICovCisJZWRnZV9wb3J0LT5vcGVuUGVuZGluZyA9IFRSVUU7CisJZWRnZV9wb3J0LT5vcGVuICAgICAgICA9IEZBTFNFOworCXJlc3BvbnNlID0gc2VuZF9pb3NwX2V4dF9jbWQgKGVkZ2VfcG9ydCwgSU9TUF9DTURfT1BFTl9QT1JULCAwKTsKKworCWlmIChyZXNwb25zZSA8IDApIHsKKwkJZGV2X2VycigmcG9ydC0+ZGV2LCAiJXMgLSBlcnJvciBzZW5kaW5nIG9wZW4gcG9ydCBjb21tYW5kXG4iLCBfX0ZVTkNUSU9OX18pOworCQllZGdlX3BvcnQtPm9wZW5QZW5kaW5nID0gRkFMU0U7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCS8qIG5vdyB3YWl0IGZvciB0aGUgcG9ydCB0byBiZSBjb21wbGV0ZWx5IG9wZW5lZCAqLworCXdhaXRfZXZlbnRfdGltZW91dChlZGdlX3BvcnQtPndhaXRfb3BlbiwgKGVkZ2VfcG9ydC0+b3BlblBlbmRpbmcgIT0gVFJVRSksIE9QRU5fVElNRU9VVCk7CisKKwlpZiAoZWRnZV9wb3J0LT5vcGVuID09IEZBTFNFKSB7CisJCS8qIG9wZW4gdGltZWQgb3V0ICovCisJCWRiZygiJXMgLSBvcGVuIHRpbWVkb3V0IiwgX19GVU5DVElPTl9fKTsKKwkJZWRnZV9wb3J0LT5vcGVuUGVuZGluZyA9IEZBTFNFOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwkvKiBjcmVhdGUgdGhlIHR4ZmlmbyAqLworCWVkZ2VfcG9ydC0+dHhmaWZvLmhlYWQJPSAwOworCWVkZ2VfcG9ydC0+dHhmaWZvLnRhaWwJPSAwOworCWVkZ2VfcG9ydC0+dHhmaWZvLmNvdW50CT0gMDsKKwllZGdlX3BvcnQtPnR4Zmlmby5zaXplCT0gZWRnZV9wb3J0LT5tYXhUeENyZWRpdHM7CisJZWRnZV9wb3J0LT50eGZpZm8uZmlmbwk9IGttYWxsb2MgKGVkZ2VfcG9ydC0+bWF4VHhDcmVkaXRzLCBHRlBfS0VSTkVMKTsKKworCWlmICghZWRnZV9wb3J0LT50eGZpZm8uZmlmbykgeworCQlkYmcoIiVzIC0gbm8gbWVtb3J5IiwgX19GVU5DVElPTl9fKTsKKwkJZWRnZV9jbG9zZSAocG9ydCwgZmlscCk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCS8qIEFsbG9jYXRlIGEgVVJCIGZvciB0aGUgd3JpdGUgKi8KKwllZGdlX3BvcnQtPndyaXRlX3VyYiA9IHVzYl9hbGxvY191cmIgKDAsIEdGUF9LRVJORUwpOworCWVkZ2VfcG9ydC0+d3JpdGVfaW5fcHJvZ3Jlc3MgPSBGQUxTRTsKKworCWlmICghZWRnZV9wb3J0LT53cml0ZV91cmIpIHsKKwkJZGJnKCIlcyAtIG5vIG1lbW9yeSIsIF9fRlVOQ1RJT05fXyk7CisJCWVkZ2VfY2xvc2UgKHBvcnQsIGZpbHApOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwlkYmcoIiVzKCVkKSAtIEluaXRpYWxpemUgVFggZmlmbyB0byAlZCBieXRlcyIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyLCBlZGdlX3BvcnQtPm1heFR4Q3JlZGl0cyk7CisKKwlkYmcoIiVzIGV4aXRlZCIsIF9fRlVOQ1RJT05fXyk7CisKKwlyZXR1cm4gMDsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogYmxvY2tfdW50aWxfY2hhc2VfcmVzcG9uc2UKKyAqCisgKglUaGlzIGZ1bmN0aW9uIHdpbGwgYmxvY2sgdGhlIGNsb3NlIHVudGlsIG9uZSBvZiB0aGUgZm9sbG93aW5nOgorICoJCTEuIFJlc3BvbnNlIHRvIG91ciBDaGFzZSBjb21lcyBmcm9tIEVkZ2Vwb3J0CisgKgkJMi4gQSB0aW1vdXQgb2YgMTAgc2Vjb25kcyB3aXRob3V0IGFjdGl2aXR5IGhhcyBleHBpcmVkCisgKgkJICAgKDFLIG9mIEVkZ2Vwb3J0IGRhdGEgQCAyNDAwIGJhdWQgPT0+IDQgc2VjIHRvIGVtcHR5KQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgdm9pZCBibG9ja191bnRpbF9jaGFzZV9yZXNwb25zZShzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqZWRnZV9wb3J0KQoreworCURFRklORV9XQUlUKHdhaXQpOworCV9fdTE2IGxhc3RDcmVkaXRzOworCWludCB0aW1lb3V0ID0gMSpIWjsKKwlpbnQgbG9vcCA9IDEwOworCisJd2hpbGUgKDEpIHsKKwkJLy8gU2F2ZSBMYXN0IGNyZWRpdHMKKwkJbGFzdENyZWRpdHMgPSBlZGdlX3BvcnQtPnR4Q3JlZGl0czsKKworCQkvLyBEaWQgd2UgZ2V0IG91ciBDaGFzZSByZXNwb25zZQorCQlpZiAoZWRnZV9wb3J0LT5jaGFzZVJlc3BvbnNlUGVuZGluZyA9PSBGQUxTRSkgeworCQkJZGJnKCIlcyAtIEdvdCBDaGFzZSBSZXNwb25zZSIsIF9fRlVOQ1RJT05fXyk7CisKKwkJCS8vIGRpZCB3ZSBnZXQgYWxsIG9mIG91ciBjcmVkaXQgYmFjaz8KKwkJCWlmIChlZGdlX3BvcnQtPnR4Q3JlZGl0cyA9PSBlZGdlX3BvcnQtPm1heFR4Q3JlZGl0cyApIHsKKwkJCQlkYmcoIiVzIC0gR290IGFsbCBjcmVkaXRzIiwgX19GVU5DVElPTl9fKTsKKwkJCQlyZXR1cm47CisJCQl9CisJCX0KKworCQkvLyBCbG9jayB0aGUgdGhyZWFkIGZvciBhIHdoaWxlCisJCXByZXBhcmVfdG9fd2FpdCgmZWRnZV9wb3J0LT53YWl0X2NoYXNlLCAmd2FpdCwgVEFTS19VTklOVEVSUlVQVElCTEUpOworCQlzY2hlZHVsZV90aW1lb3V0KHRpbWVvdXQpOworCQlmaW5pc2hfd2FpdCgmZWRnZV9wb3J0LT53YWl0X2NoYXNlLCAmd2FpdCk7CisKKwkJaWYgKGxhc3RDcmVkaXRzID09IGVkZ2VfcG9ydC0+dHhDcmVkaXRzKSB7CisJCQkvLyBObyBhY3Rpdml0eS4uIGNvdW50IGRvd24uCisJCQlsb29wLS07CisJCQlpZiAobG9vcCA9PSAwKSB7CisJCQkJZWRnZV9wb3J0LT5jaGFzZVJlc3BvbnNlUGVuZGluZyA9IEZBTFNFOworCQkJCWRiZygiJXMgLSBDaGFzZSBUSU1FT1VUIiwgX19GVU5DVElPTl9fKTsKKwkJCQlyZXR1cm47CisJCQl9CisJCX0gZWxzZSB7CisJCQkvLyBSZXNldCB0aW1vdXQgdmFsdWUgYmFjayB0byAxMCBzZWNvbmRzCisJCQlkYmcoIiVzIC0gTGFzdCAlZCwgQ3VycmVudCAlZCIsIF9fRlVOQ1RJT05fXywgbGFzdENyZWRpdHMsIGVkZ2VfcG9ydC0+dHhDcmVkaXRzKTsKKwkJCWxvb3AgPSAxMDsKKwkJfQorCX0KK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogYmxvY2tfdW50aWxfdHhfZW1wdHkKKyAqCisgKglUaGlzIGZ1bmN0aW9uIHdpbGwgYmxvY2sgdGhlIGNsb3NlIHVudGlsIG9uZSBvZiB0aGUgZm9sbG93aW5nOgorICoJCTEuIFRYIGNvdW50IGFyZSAwCisgKgkJMi4gVGhlIGVkZ2Vwb3J0IGhhcyBzdG9wcGVkCisgKgkJMy4gQSB0aW1vdXQgb2YgMyBzZWNvbmRzIHdpdGhvdXQgYWN0aXZpdHkgaGFzIGV4cGlyZWQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHZvaWQgYmxvY2tfdW50aWxfdHhfZW1wdHkgKHN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQpCit7CisJREVGSU5FX1dBSVQod2FpdCk7CisJc3RydWN0IFR4RmlmbyAqZmlmbyA9ICZlZGdlX3BvcnQtPnR4ZmlmbzsKKwlfX3UzMiBsYXN0Q291bnQ7CisJaW50IHRpbWVvdXQgPSBIWi8xMDsKKwlpbnQgbG9vcCA9IDMwOworCisJd2hpbGUgKDEpIHsKKwkJLy8gU2F2ZSBMYXN0IGNvdW50CisJCWxhc3RDb3VudCA9IGZpZm8tPmNvdW50OworCisJCS8vIElzIHRoZSBFZGdlcG9ydCBCdWZmZXIgZW1wdHk/CisJCWlmIChsYXN0Q291bnQgPT0gMCkgeworCQkJZGJnKCIlcyAtIFRYIEJ1ZmZlciBFbXB0eSIsIF9fRlVOQ1RJT05fXyk7CisJCQlyZXR1cm47CisJCX0KKworCQkvLyBCbG9jayB0aGUgdGhyZWFkIGZvciBhIHdoaWxlCisJCXByZXBhcmVfdG9fd2FpdCAoJmVkZ2VfcG9ydC0+d2FpdF9jaGFzZSwgJndhaXQsIFRBU0tfVU5JTlRFUlJVUFRJQkxFKTsKKwkJc2NoZWR1bGVfdGltZW91dCh0aW1lb3V0KTsKKwkJZmluaXNoX3dhaXQoJmVkZ2VfcG9ydC0+d2FpdF9jaGFzZSwgJndhaXQpOworCisJCWRiZygiJXMgd2FpdCIsIF9fRlVOQ1RJT05fXyk7CisKKwkJaWYgKGxhc3RDb3VudCA9PSBmaWZvLT5jb3VudCkgeworCQkJLy8gTm8gYWN0aXZpdHkuLiBjb3VudCBkb3duLgorCQkJbG9vcC0tOworCQkJaWYgKGxvb3AgPT0gMCkgeworCQkJCWRiZygiJXMgLSBUSU1FT1VUIiwgX19GVU5DVElPTl9fKTsKKwkJCQlyZXR1cm47CisJCQl9CisJCX0gZWxzZSB7CisJCQkvLyBSZXNldCB0aW1vdXQgdmFsdWUgYmFjayB0byBzZWNvbmRzCisJCQlsb29wID0gMzA7CisJCX0KKwl9Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBlZGdlX2Nsb3NlCisgKgl0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdHR5IGRyaXZlciB3aGVuIGEgcG9ydCBpcyBjbG9zZWQKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyB2b2lkIGVkZ2VfY2xvc2UgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICogZmlscCkKK3sKKwlzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsICplZGdlX3NlcmlhbDsKKwlzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqZWRnZV9wb3J0OworCWludCBzdGF0dXM7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKwkJCSAKKwllZGdlX3NlcmlhbCA9IHVzYl9nZXRfc2VyaWFsX2RhdGEocG9ydC0+c2VyaWFsKTsKKwllZGdlX3BvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJaWYgKChlZGdlX3NlcmlhbCA9PSBOVUxMKSB8fCAoZWRnZV9wb3J0ID09IE5VTEwpKQorCQlyZXR1cm47CisJCisJLy8gYmxvY2sgdW50aWwgdHggaXMgZW1wdHkKKwlibG9ja191bnRpbF90eF9lbXB0eShlZGdlX3BvcnQpOworCisJZWRnZV9wb3J0LT5jbG9zZVBlbmRpbmcgPSBUUlVFOworCisJLyogZmx1c2ggYW5kIGNoYXNlICovCisJZWRnZV9wb3J0LT5jaGFzZVJlc3BvbnNlUGVuZGluZyA9IFRSVUU7CisKKwlkYmcoIiVzIC0gU2VuZGluZyBJT1NQX0NNRF9DSEFTRV9QT1JUIiwgX19GVU5DVElPTl9fKTsKKwlzdGF0dXMgPSBzZW5kX2lvc3BfZXh0X2NtZCAoZWRnZV9wb3J0LCBJT1NQX0NNRF9DSEFTRV9QT1JULCAwKTsKKwlpZiAoc3RhdHVzID09IDApIHsKKwkJLy8gYmxvY2sgdW50aWwgY2hhc2UgZmluaXNoZWQKKwkJYmxvY2tfdW50aWxfY2hhc2VfcmVzcG9uc2UoZWRnZV9wb3J0KTsKKwl9IGVsc2UgeworCQllZGdlX3BvcnQtPmNoYXNlUmVzcG9uc2VQZW5kaW5nID0gRkFMU0U7CisJfQorCisJLyogY2xvc2UgdGhlIHBvcnQgKi8KKwlkYmcoIiVzIC0gU2VuZGluZyBJT1NQX0NNRF9DTE9TRV9QT1JUIiwgX19GVU5DVElPTl9fKTsKKwlzZW5kX2lvc3BfZXh0X2NtZCAoZWRnZV9wb3J0LCBJT1NQX0NNRF9DTE9TRV9QT1JULCAwKTsKKworCS8vcG9ydC0+Y2xvc2UgPSBUUlVFOworCWVkZ2VfcG9ydC0+Y2xvc2VQZW5kaW5nID0gRkFMU0U7CisJZWRnZV9wb3J0LT5vcGVuID0gRkFMU0U7CisJZWRnZV9wb3J0LT5vcGVuUGVuZGluZyA9IEZBTFNFOworCisJaWYgKGVkZ2VfcG9ydC0+d3JpdGVfdXJiKSB7CisJCXVzYl9raWxsX3VyYihlZGdlX3BvcnQtPndyaXRlX3VyYik7CisJfQorCisJaWYgKGVkZ2VfcG9ydC0+d3JpdGVfdXJiKSB7CisJCS8qIGlmIHRoaXMgdXJiIGhhZCBhIHRyYW5zZmVyIGJ1ZmZlciBhbHJlYWR5IChvbGQgdHJhbnNmZXIpIGZyZWUgaXQgKi8KKwkJaWYgKGVkZ2VfcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXIgIT0gTlVMTCkgeworCQkJa2ZyZWUoZWRnZV9wb3J0LT53cml0ZV91cmItPnRyYW5zZmVyX2J1ZmZlcik7CisJCX0KKwkJdXNiX2ZyZWVfdXJiICAgKGVkZ2VfcG9ydC0+d3JpdGVfdXJiKTsKKwkJZWRnZV9wb3J0LT53cml0ZV91cmIgPSBOVUxMOworCX0KKwlpZiAoZWRnZV9wb3J0LT50eGZpZm8uZmlmbykgeworCQlrZnJlZShlZGdlX3BvcnQtPnR4Zmlmby5maWZvKTsKKwkJZWRnZV9wb3J0LT50eGZpZm8uZmlmbyA9IE5VTEw7CisJfQorCisJZGJnKCIlcyBleGl0ZWQiLCBfX0ZVTkNUSU9OX18pOworfSAgIAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFNlcmlhbFdyaXRlCisgKgl0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdHR5IGRyaXZlciB3aGVuIGRhdGEgc2hvdWxkIGJlIHdyaXR0ZW4gdG8KKyAqCXRoZSBwb3J0LgorICoJSWYgc3VjY2Vzc2Z1bCwgd2UgcmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiwgb3RoZXJ3aXNlIHdlIHJldHVybgorICoJYSBuZWdhdGl2ZSBlcnJvciBudW1iZXIuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgaW50IGVkZ2Vfd3JpdGUgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEsIGludCBjb3VudCkKK3sKKwlzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqZWRnZV9wb3J0ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXN0cnVjdCBUeEZpZm8gKmZpZm87CisJaW50IGNvcHlTaXplOworCWludCBieXRlc2xlZnQ7CisJaW50IGZpcnN0aGFsZjsKKwlpbnQgc2Vjb25kaGFsZjsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAoZWRnZV9wb3J0ID09IE5VTEwpCisJCXJldHVybiAtRU5PREVWOworCisJLy8gZ2V0IGEgcG9pbnRlciB0byB0aGUgVHggZmlmbworCWZpZm8gPSAmZWRnZV9wb3J0LT50eGZpZm87CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZWRnZV9wb3J0LT5lcF9sb2NrLCBmbGFncyk7CisKKwkvLyBjYWxjdWxhdGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHB1dCBpbiBmaWZvCisJY29weVNpemUgPSBtaW4gKCh1bnNpZ25lZCBpbnQpY291bnQsIChlZGdlX3BvcnQtPnR4Q3JlZGl0cyAtIGZpZm8tPmNvdW50KSk7CisKKwlkYmcoIiVzKCVkKSBvZiAlZCBieXRlKHMpIEZpZm8gcm9vbSAgJWQgLS0gd2lsbCBjb3B5ICVkIGJ5dGVzIiwgX19GVU5DVElPTl9fLCAKKwkgICAgcG9ydC0+bnVtYmVyLCBjb3VudCwgZWRnZV9wb3J0LT50eENyZWRpdHMgLSBmaWZvLT5jb3VudCwgY29weVNpemUpOworCisJLyogY2F0Y2ggd3JpdGVzIG9mIDAgYnl0ZXMgd2hpY2ggdGhlIHR0eSBkcml2ZXIgbGlrZXMgdG8gZ2l2ZSB1cywgYW5kIHdoZW4gdHhDcmVkaXRzIGlzIGVtcHR5ICovCisJaWYgKGNvcHlTaXplID09IDApIHsKKwkJZGJnKCIlcyAtIGNvcHlTaXplID0gWmVybyIsIF9fRlVOQ1RJT05fXyk7CisJCWdvdG8gZmluaXNoX3dyaXRlOworCX0KKworCS8vIHF1ZXVlIHRoZSBkYXRhCQorCS8vIHNpbmNlIHdlIGNhbiBuZXZlciBvdmVyZmxvdyB0aGUgYnVmZmVyIHdlIGRvIG5vdCBoYXZlIHRvIGNoZWNrIGZvciBmdWxsIGNvbmRpdGlvbgorCisJLy8gdGhlIGNvcHkgaXMgZG9uZSBpcyB0d28gcGFydHMgLS0gZmlyc3QgZmlsbCB0byB0aGUgZW5kIG9mIHRoZSBidWZmZXIKKwkvLyB0aGVuIGNvcHkgdGhlIHJlc2V0IGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBidWZmZXIgCisKKwlieXRlc2xlZnQgPSBmaWZvLT5zaXplIC0gZmlmby0+aGVhZDsKKwlmaXJzdGhhbGYgPSBtaW4gKGJ5dGVzbGVmdCwgY29weVNpemUpOworCWRiZygiJXMgLSBjb3B5ICVkIGJ5dGVzIG9mICVkIGludG8gZmlmbyAiLCBfX0ZVTkNUSU9OX18sIGZpcnN0aGFsZiwgYnl0ZXNsZWZ0KTsKKworCS8qIG5vdyBjb3B5IG91ciBkYXRhICovCisJbWVtY3B5KCZmaWZvLT5maWZvW2ZpZm8tPmhlYWRdLCBkYXRhLCBmaXJzdGhhbGYpOworCXVzYl9zZXJpYWxfZGVidWdfZGF0YShkZWJ1ZywgJnBvcnQtPmRldiwgX19GVU5DVElPTl9fLCBmaXJzdGhhbGYsICZmaWZvLT5maWZvW2ZpZm8tPmhlYWRdKTsKKworCS8vIHVwZGF0ZSB0aGUgaW5kZXggYW5kIHNpemUKKwlmaWZvLT5oZWFkICArPSBmaXJzdGhhbGY7CisJZmlmby0+Y291bnQgKz0gZmlyc3RoYWxmOworCisJLy8gd3JhcCB0aGUgaW5kZXgKKwlpZiAoZmlmby0+aGVhZCA9PSBmaWZvLT5zaXplKSB7CisJCWZpZm8tPmhlYWQgPSAwOworCX0KKworCXNlY29uZGhhbGYgPSBjb3B5U2l6ZS1maXJzdGhhbGY7CisKKwlpZiAoc2Vjb25kaGFsZikgeworCQlkYmcoIiVzIC0gY29weSByZXN0IG9mIGRhdGEgJWQiLCBfX0ZVTkNUSU9OX18sIHNlY29uZGhhbGYpOworCQltZW1jcHkoJmZpZm8tPmZpZm9bZmlmby0+aGVhZF0sICZkYXRhW2ZpcnN0aGFsZl0sIHNlY29uZGhhbGYpOworCQl1c2Jfc2VyaWFsX2RlYnVnX2RhdGEoZGVidWcsICZwb3J0LT5kZXYsIF9fRlVOQ1RJT05fXywgc2Vjb25kaGFsZiwgJmZpZm8tPmZpZm9bZmlmby0+aGVhZF0pOworCQkvLyB1cGRhdGUgdGhlIGluZGV4IGFuZCBzaXplCisJCWZpZm8tPmNvdW50ICs9IHNlY29uZGhhbGY7CisJCWZpZm8tPmhlYWQgICs9IHNlY29uZGhhbGY7CisJCS8vIE5vIG5lZWQgdG8gY2hlY2sgZm9yIHdyYXAgc2luY2Ugd2UgY2FuIG5vdCBnZXQgdG8gZW5kIG9mIGZpZm8gaW4gdGhpcyBwYXJ0CisJfQorCitmaW5pc2hfd3JpdGU6CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZWRnZV9wb3J0LT5lcF9sb2NrLCBmbGFncyk7CisKKwlzZW5kX21vcmVfcG9ydF9kYXRhKChzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsICopdXNiX2dldF9zZXJpYWxfZGF0YShwb3J0LT5zZXJpYWwpLCBlZGdlX3BvcnQpOworCisJZGJnKCIlcyB3cm90ZSAlZCBieXRlKHMpIFR4Q3JlZGl0cyAlZCwgRmlmbyAlZCIsIF9fRlVOQ1RJT05fXywgY29weVNpemUsIGVkZ2VfcG9ydC0+dHhDcmVkaXRzLCBmaWZvLT5jb3VudCk7CisKKwlyZXR1cm4gY29weVNpemU7ICAgCit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIHNlbmRfbW9yZV9wb3J0X2RhdGEoKQorICoKKyAqCVRoaXMgcm91dGluZSBhdHRlbXB0cyB0byB3cml0ZSBhZGRpdGlvbmFsIFVBUlQgdHJhbnNtaXQgZGF0YQorICoJdG8gYSBwb3J0IG92ZXIgdGhlIFVTQiBidWxrIHBpcGUuIEl0IGlzIGNhbGxlZCAoMSkgd2hlbiBuZXcKKyAqCWRhdGEgaGFzIGJlZW4gd3JpdHRlbiB0byBhIHBvcnQncyBUeEJ1ZmZlciBmcm9tIGhpZ2hlciBsYXllcnMKKyAqCSgyKSB3aGVuIHRoZSBwZXJpcGhlcmFsIHNlbmRzIHVzIGFkZGl0aW9uYWwgVHhDcmVkaXRzIGluZGljYXRpbmcKKyAqCXRoYXQgaXQgY2FuIGFjY2VwdCBtb3JlCVR4IGRhdGEgZm9yIGEgZ2l2ZW4gcG9ydDsgYW5kICgzKSB3aGVuCisgKglhIGJ1bGsgd3JpdGUgY29tcGxldGVzIHN1Y2Nlc3NmdWxseSBhbmQgd2Ugd2FudCB0byBzZWUgaWYgd2UKKyAqCWNhbiB0cmFuc21pdCBtb3JlLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgdm9pZCBzZW5kX21vcmVfcG9ydF9kYXRhKHN0cnVjdCBlZGdlcG9ydF9zZXJpYWwgKmVkZ2Vfc2VyaWFsLCBzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqZWRnZV9wb3J0KQoreworCXN0cnVjdCBUeEZpZm8JKmZpZm8gPSAmZWRnZV9wb3J0LT50eGZpZm87CisJc3RydWN0IHVyYgkqdXJiOworCXVuc2lnbmVkIGNoYXIJKmJ1ZmZlcjsKKwlpbnQJCXN0YXR1czsKKwlpbnQJCWNvdW50OworCWludAkJYnl0ZXNsZWZ0OworCWludAkJZmlyc3RoYWxmOworCWludAkJc2Vjb25kaGFsZjsKKwl1bnNpZ25lZCBsb25nCWZsYWdzOworCisJZGJnKCIlcyglZCkiLCBfX0ZVTkNUSU9OX18sIGVkZ2VfcG9ydC0+cG9ydC0+bnVtYmVyKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZlZGdlX3BvcnQtPmVwX2xvY2ssIGZsYWdzKTsKKworCWlmIChlZGdlX3BvcnQtPndyaXRlX2luX3Byb2dyZXNzIHx8CisJICAgICFlZGdlX3BvcnQtPm9wZW4gICAgICAgICAgICAgfHwKKwkgICAgKGZpZm8tPmNvdW50ID09IDApKSB7CisJCWRiZygiJXMoJWQpIEVYSVQgLSBmaWZvICVkLCBQZW5kaW5nV3JpdGUgPSAlZCIsIF9fRlVOQ1RJT05fXywgZWRnZV9wb3J0LT5wb3J0LT5udW1iZXIsIGZpZm8tPmNvdW50LCBlZGdlX3BvcnQtPndyaXRlX2luX3Byb2dyZXNzKTsKKwkJZ290byBleGl0X3NlbmQ7CisJfQorCisJLy8gc2luY2UgdGhlIGFtb3VudCBvZiBkYXRhIGluIHRoZSBmaWZvIHdpbGwgYWx3YXlzIGZpdCBpbnRvIHRoZQorCS8vIGVkZ2Vwb3J0IGJ1ZmZlciB3ZSBkbyBub3QgbmVlZCB0byBjaGVjayB0aGUgd3JpdGUgbGVuZ3RoCisKKwkvLwlEbyB3ZSBoYXZlIGVub3VnaCBjcmVkaXRzIGZvciB0aGlzIHBvcnQgdG8gbWFrZSBpdCB3b3J0aHdoaWxlCisJLy8JdG8gYm90aGVyIHF1ZXVlaW5nIGEgd3JpdGUuIElmIGl0J3MgdG9vIHNtYWxsLCBzYXkgYSBmZXcgYnl0ZXMsCisJLy8JaXQncyBiZXR0ZXIgdG8gd2FpdCBmb3IgbW9yZSBjcmVkaXRzIHNvIHdlIGNhbiBkbyBhIGxhcmdlcgorCS8vCXdyaXRlLgorCWlmIChlZGdlX3BvcnQtPnR4Q3JlZGl0cyA8IEVER0VfRldfR0VUX1RYX0NSRURJVFNfU0VORF9USFJFU0hPTEQoZWRnZV9wb3J0LT5tYXhUeENyZWRpdHMsRURHRV9GV19CVUxLX01BWF9QQUNLRVRfU0laRSkpIHsKKwkJZGJnKCIlcyglZCkgTm90IGVub3VnaCBjcmVkaXQgLSBmaWZvICVkIFR4Q3JlZGl0ICVkIiwgX19GVU5DVElPTl9fLCBlZGdlX3BvcnQtPnBvcnQtPm51bWJlciwgZmlmby0+Y291bnQsIGVkZ2VfcG9ydC0+dHhDcmVkaXRzICk7CisJCWdvdG8gZXhpdF9zZW5kOworCX0KKworCS8vIGxvY2sgdGhpcyB3cml0ZQorCWVkZ2VfcG9ydC0+d3JpdGVfaW5fcHJvZ3Jlc3MgPSBUUlVFOworCisJLy8gZ2V0IGEgcG9pbnRlciB0byB0aGUgd3JpdGVfdXJiCisJdXJiID0gZWRnZV9wb3J0LT53cml0ZV91cmI7CisKKwkvKiBpZiB0aGlzIHVyYiBoYWQgYSB0cmFuc2ZlciBidWZmZXIgYWxyZWFkeSAob2xkIHRyYW5zZmVyKSBmcmVlIGl0ICovCisJaWYgKHVyYi0+dHJhbnNmZXJfYnVmZmVyICE9IE5VTEwpIHsKKwkJa2ZyZWUodXJiLT50cmFuc2Zlcl9idWZmZXIpOworCQl1cmItPnRyYW5zZmVyX2J1ZmZlciA9IE5VTEw7CisJfQorCisJLyogYnVpbGQgdGhlIGRhdGEgaGVhZGVyIGZvciB0aGUgYnVmZmVyIGFuZCBwb3J0IHRoYXQgd2UgYXJlIGFib3V0IHRvIHNlbmQgb3V0ICovCisJY291bnQgPSBmaWZvLT5jb3VudDsKKwlidWZmZXIgPSBrbWFsbG9jIChjb3VudCsyLCBHRlBfQVRPTUlDKTsKKwlpZiAoYnVmZmVyID09IE5VTEwpIHsKKwkJZGV2X2VycigmZWRnZV9wb3J0LT5wb3J0LT5kZXYsICIlcyAtIG5vIG1vcmUga2VybmVsIG1lbW9yeS4uLlxuIiwgX19GVU5DVElPTl9fKTsKKwkJZWRnZV9wb3J0LT53cml0ZV9pbl9wcm9ncmVzcyA9IEZBTFNFOworCQlnb3RvIGV4aXRfc2VuZDsKKwl9CisJYnVmZmVyWzBdID0gSU9TUF9CVUlMRF9EQVRBX0hEUjEgKGVkZ2VfcG9ydC0+cG9ydC0+bnVtYmVyIC0gZWRnZV9wb3J0LT5wb3J0LT5zZXJpYWwtPm1pbm9yLCBjb3VudCk7CisJYnVmZmVyWzFdID0gSU9TUF9CVUlMRF9EQVRBX0hEUjIgKGVkZ2VfcG9ydC0+cG9ydC0+bnVtYmVyIC0gZWRnZV9wb3J0LT5wb3J0LT5zZXJpYWwtPm1pbm9yLCBjb3VudCk7CisKKwkvKiBub3cgY29weSBvdXIgZGF0YSAqLworCWJ5dGVzbGVmdCA9ICBmaWZvLT5zaXplIC0gZmlmby0+dGFpbDsKKwlmaXJzdGhhbGYgPSBtaW4gKGJ5dGVzbGVmdCwgY291bnQpOworCW1lbWNweSgmYnVmZmVyWzJdLCAmZmlmby0+Zmlmb1tmaWZvLT50YWlsXSwgZmlyc3RoYWxmKTsKKwlmaWZvLT50YWlsICArPSBmaXJzdGhhbGY7CisJZmlmby0+Y291bnQgLT0gZmlyc3RoYWxmOworCWlmIChmaWZvLT50YWlsID09IGZpZm8tPnNpemUpIHsKKwkJZmlmby0+dGFpbCA9IDA7CisJfQorCisJc2Vjb25kaGFsZiA9IGNvdW50LWZpcnN0aGFsZjsKKwlpZiAoc2Vjb25kaGFsZikgeworCQltZW1jcHkoJmJ1ZmZlclsyK2ZpcnN0aGFsZl0sICZmaWZvLT5maWZvW2ZpZm8tPnRhaWxdLCBzZWNvbmRoYWxmKTsKKwkJZmlmby0+dGFpbCAgKz0gc2Vjb25kaGFsZjsKKwkJZmlmby0+Y291bnQgLT0gc2Vjb25kaGFsZjsKKwl9CisKKwlpZiAoY291bnQpCisJCXVzYl9zZXJpYWxfZGVidWdfZGF0YShkZWJ1ZywgJmVkZ2VfcG9ydC0+cG9ydC0+ZGV2LCBfX0ZVTkNUSU9OX18sIGNvdW50LCAmYnVmZmVyWzJdKTsKKworCS8qIGZpbGwgdXAgdGhlIHVyYiB3aXRoIGFsbCBvZiBvdXIgZGF0YSBhbmQgc3VibWl0IGl0ICovCisJdXNiX2ZpbGxfYnVsa191cmIgKHVyYiwgZWRnZV9zZXJpYWwtPnNlcmlhbC0+ZGV2LCAKKwkJICAgICAgIHVzYl9zbmRidWxrcGlwZShlZGdlX3NlcmlhbC0+c2VyaWFsLT5kZXYsIGVkZ2Vfc2VyaWFsLT5idWxrX291dF9lbmRwb2ludCksCisJCSAgICAgICBidWZmZXIsIGNvdW50KzIsIGVkZ2VfYnVsa19vdXRfZGF0YV9jYWxsYmFjaywgZWRnZV9wb3J0KTsKKworCS8qIGRlY3JlbWVudCB0aGUgbnVtYmVyIG9mIGNyZWRpdHMgd2UgaGF2ZSBieSB0aGUgbnVtYmVyIHdlIGp1c3Qgc2VudCAqLworCWVkZ2VfcG9ydC0+dHhDcmVkaXRzIC09IGNvdW50OworCWVkZ2VfcG9ydC0+aWNvdW50LnR4ICs9IGNvdW50OworCisJdXJiLT5kZXYgPSBlZGdlX3NlcmlhbC0+c2VyaWFsLT5kZXY7CisJc3RhdHVzID0gdXNiX3N1Ym1pdF91cmIodXJiLCBHRlBfQVRPTUlDKTsKKwlpZiAoc3RhdHVzKSB7CisJCS8qIHNvbWV0aGluZyB3ZW50IHdyb25nICovCisJCWRldl9lcnIoJmVkZ2VfcG9ydC0+cG9ydC0+ZGV2LCAiJXMgLSB1c2Jfc3VibWl0X3VyYih3cml0ZSBidWxrKSBmYWlsZWQsIHN0YXR1cyA9ICVkLCBkYXRhIGxvc3RcbiIsIF9fRlVOQ1RJT05fXywgc3RhdHVzKTsKKwkJZWRnZV9wb3J0LT53cml0ZV9pbl9wcm9ncmVzcyA9IEZBTFNFOworCisJCS8qIHJldmVydCB0aGUgY3JlZGl0cyBhcyBzb21ldGhpbmcgYmFkIGhhcHBlbmVkLiAqLworCQllZGdlX3BvcnQtPnR4Q3JlZGl0cyArPSBjb3VudDsKKwkJZWRnZV9wb3J0LT5pY291bnQudHggLT0gY291bnQ7CisJfQorCWRiZygiJXMgd3JvdGUgJWQgYnl0ZShzKSBUeENyZWRpdCAlZCwgRmlmbyAlZCIsIF9fRlVOQ1RJT05fXywgY291bnQsIGVkZ2VfcG9ydC0+dHhDcmVkaXRzLCBmaWZvLT5jb3VudCk7CisKK2V4aXRfc2VuZDoKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlZGdlX3BvcnQtPmVwX2xvY2ssIGZsYWdzKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGVkZ2Vfd3JpdGVfcm9vbQorICoJdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHR0eSBkcml2ZXIgd2hlbiBpdCB3YW50cyB0byBrbm93IGhvdyBtYW55CisgKglieXRlcyBvZiBkYXRhIHdlIGNhbiBhY2NlcHQgZm9yIGEgc3BlY2lmaWMgcG9ydC4KKyAqCUlmIHN1Y2Nlc3NmdWwsIHdlIHJldHVybiB0aGUgYW1vdW50IG9mIHJvb20gdGhhdCB3ZSBoYXZlIGZvciB0aGlzIHBvcnQKKyAqCSh0aGUgdHhDcmVkaXRzKSwgCisgKglPdGhlcndpc2Ugd2UgcmV0dXJuIGEgbmVnYXRpdmUgZXJyb3IgbnVtYmVyLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIGludCBlZGdlX3dyaXRlX3Jvb20gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpCit7CisJc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKmVkZ2VfcG9ydCA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlpbnQgcm9vbTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZGJnKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwlpZiAoZWRnZV9wb3J0ID09IE5VTEwpCisJCXJldHVybiAtRU5PREVWOworCWlmIChlZGdlX3BvcnQtPmNsb3NlUGVuZGluZyA9PSBUUlVFKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJaWYgKCFlZGdlX3BvcnQtPm9wZW4pIHsKKwkJZGJnKCIlcyAtIHBvcnQgbm90IG9wZW5lZCIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8vIHRvdGFsIG9mIGJvdGggYnVmZmVycyBpcyBzdGlsbCB0eENyZWRpdAorCXNwaW5fbG9ja19pcnFzYXZlKCZlZGdlX3BvcnQtPmVwX2xvY2ssIGZsYWdzKTsKKwlyb29tID0gZWRnZV9wb3J0LT50eENyZWRpdHMgLSBlZGdlX3BvcnQtPnR4Zmlmby5jb3VudDsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlZGdlX3BvcnQtPmVwX2xvY2ssIGZsYWdzKTsKKworCWRiZygiJXMgLSByZXR1cm5zICVkIiwgX19GVU5DVElPTl9fLCByb29tKTsKKwlyZXR1cm4gcm9vbTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGVkZ2VfY2hhcnNfaW5fYnVmZmVyCisgKgl0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdHR5IGRyaXZlciB3aGVuIGl0IHdhbnRzIHRvIGtub3cgaG93IG1hbnkKKyAqCWJ5dGVzIG9mIGRhdGEgd2UgY3VycmVudGx5IGhhdmUgb3V0c3RhbmRpbmcgaW4gdGhlIHBvcnQgKGRhdGEgdGhhdCBoYXMKKyAqCWJlZW4gd3JpdHRlbiwgYnV0IGhhc24ndCBtYWRlIGl0IG91dCB0aGUgcG9ydCB5ZXQpCisgKglJZiBzdWNjZXNzZnVsLCB3ZSByZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcyBsZWZ0IHRvIGJlIHdyaXR0ZW4gaW4gdGhlIAorICoJc3lzdGVtLCAKKyAqCU90aGVyd2lzZSB3ZSByZXR1cm4gYSBuZWdhdGl2ZSBlcnJvciBudW1iZXIuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgaW50IGVkZ2VfY2hhcnNfaW5fYnVmZmVyIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJaW50IG51bV9jaGFyczsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZGJnKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwlpZiAoZWRnZV9wb3J0ID09IE5VTEwpCisJCXJldHVybiAtRU5PREVWOworCWlmIChlZGdlX3BvcnQtPmNsb3NlUGVuZGluZyA9PSBUUlVFKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWlmICghZWRnZV9wb3J0LT5vcGVuKSB7CisJCWRiZygiJXMgLSBwb3J0IG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZWRnZV9wb3J0LT5lcF9sb2NrLCBmbGFncyk7CisJbnVtX2NoYXJzID0gZWRnZV9wb3J0LT5tYXhUeENyZWRpdHMgLSBlZGdlX3BvcnQtPnR4Q3JlZGl0cyArIGVkZ2VfcG9ydC0+dHhmaWZvLmNvdW50OworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVkZ2VfcG9ydC0+ZXBfbG9jaywgZmxhZ3MpOworCWlmIChudW1fY2hhcnMpIHsKKwkJZGJnKCIlcyhwb3J0ICVkKSAtIHJldHVybnMgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlciwgbnVtX2NoYXJzKTsKKwl9CisKKwlyZXR1cm4gbnVtX2NoYXJzOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogU2VyaWFsVGhyb3R0bGUKKyAqCXRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0dHkgZHJpdmVyIHdoZW4gaXQgd2FudHMgdG8gc3RvcCB0aGUgZGF0YQorICoJYmVpbmcgcmVhZCBmcm9tIHRoZSBwb3J0LgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHZvaWQgZWRnZV90aHJvdHRsZSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKK3sKKwlzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqZWRnZV9wb3J0ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXN0cnVjdCB0dHlfc3RydWN0ICp0dHk7CisJaW50IHN0YXR1czsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJaWYgKGVkZ2VfcG9ydCA9PSBOVUxMKQorCQlyZXR1cm47CisKKwlpZiAoIWVkZ2VfcG9ydC0+b3BlbikgeworCQlkYmcoIiVzIC0gcG9ydCBub3Qgb3BlbmVkIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuOworCX0KKworCXR0eSA9IHBvcnQtPnR0eTsKKwlpZiAoIXR0eSkgeworCQlkYmcgKCIlcyAtIG5vIHR0eSBhdmFpbGFibGUiLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm47CisJfQorCisJLyogaWYgd2UgYXJlIGltcGxlbWVudGluZyBYT04vWE9GRiwgc2VuZCB0aGUgc3RvcCBjaGFyYWN0ZXIgKi8KKwlpZiAoSV9JWE9GRih0dHkpKSB7CisJCXVuc2lnbmVkIGNoYXIgc3RvcF9jaGFyID0gU1RPUF9DSEFSKHR0eSk7CisJCXN0YXR1cyA9IGVkZ2Vfd3JpdGUgKHBvcnQsICZzdG9wX2NoYXIsIDEpOworCQlpZiAoc3RhdHVzIDw9IDApIHsKKwkJCXJldHVybjsKKwkJfQorCX0KKworCS8qIGlmIHdlIGFyZSBpbXBsZW1lbnRpbmcgUlRTL0NUUywgdG9nZ2xlIHRoYXQgbGluZSAqLworCWlmICh0dHktPnRlcm1pb3MtPmNfY2ZsYWcgJiBDUlRTQ1RTKSB7CisJCWVkZ2VfcG9ydC0+c2hhZG93TUNSICY9IH5NQ1JfUlRTOworCQlzdGF0dXMgPSBzZW5kX2NtZF93cml0ZV91YXJ0X3JlZ2lzdGVyKGVkZ2VfcG9ydCwgTUNSLCBlZGdlX3BvcnQtPnNoYWRvd01DUik7CisJCWlmIChzdGF0dXMgIT0gMCkgeworCQkJcmV0dXJuOworCQl9CisJfQorCisJcmV0dXJuOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogZWRnZV91bnRocm90dGxlCisgKgl0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdHR5IGRyaXZlciB3aGVuIGl0IHdhbnRzIHRvIHJlc3VtZSB0aGUgZGF0YQorICoJYmVpbmcgcmVhZCBmcm9tIHRoZSBwb3J0IChjYWxsZWQgYWZ0ZXIgU2VyaWFsVGhyb3R0bGUgaXMgY2FsbGVkKQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHZvaWQgZWRnZV91bnRocm90dGxlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eTsKKwlpbnQgc3RhdHVzOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAoZWRnZV9wb3J0ID09IE5VTEwpCisJCXJldHVybjsKKworCWlmICghZWRnZV9wb3J0LT5vcGVuKSB7CisJCWRiZygiJXMgLSBwb3J0IG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm47CisJfQorCisJdHR5ID0gcG9ydC0+dHR5OworCWlmICghdHR5KSB7CisJCWRiZyAoIiVzIC0gbm8gdHR5IGF2YWlsYWJsZSIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybjsKKwl9CisKKwkvKiBpZiB3ZSBhcmUgaW1wbGVtZW50aW5nIFhPTi9YT0ZGLCBzZW5kIHRoZSBzdGFydCBjaGFyYWN0ZXIgKi8KKwlpZiAoSV9JWE9GRih0dHkpKSB7CisJCXVuc2lnbmVkIGNoYXIgc3RhcnRfY2hhciA9IFNUQVJUX0NIQVIodHR5KTsKKwkJc3RhdHVzID0gZWRnZV93cml0ZSAocG9ydCwgJnN0YXJ0X2NoYXIsIDEpOworCQlpZiAoc3RhdHVzIDw9IDApIHsKKwkJCXJldHVybjsKKwkJfQorCX0KKworCS8qIGlmIHdlIGFyZSBpbXBsZW1lbnRpbmcgUlRTL0NUUywgdG9nZ2xlIHRoYXQgbGluZSAqLworCWlmICh0dHktPnRlcm1pb3MtPmNfY2ZsYWcgJiBDUlRTQ1RTKSB7CisJCWVkZ2VfcG9ydC0+c2hhZG93TUNSIHw9IE1DUl9SVFM7CisJCXN0YXR1cyA9IHNlbmRfY21kX3dyaXRlX3VhcnRfcmVnaXN0ZXIoZWRnZV9wb3J0LCBNQ1IsIGVkZ2VfcG9ydC0+c2hhZG93TUNSKTsKKwkJaWYgKHN0YXR1cyAhPSAwKSB7CisJCQlyZXR1cm47CisJCX0KKwl9CisKKwlyZXR1cm47Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBTZXJpYWxTZXRUZXJtaW9zCisgKgl0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdHR5IGRyaXZlciB3aGVuIGl0IHdhbnRzIHRvIGNoYW5nZSB0aGUgdGVybWlvcyBzdHJ1Y3R1cmUKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyB2b2lkIGVkZ2Vfc2V0X3Rlcm1pb3MgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCB0ZXJtaW9zICpvbGRfdGVybWlvcykKK3sKKwlzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqZWRnZV9wb3J0ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXN0cnVjdCB0dHlfc3RydWN0ICp0dHkgPSBwb3J0LT50dHk7CisJdW5zaWduZWQgaW50IGNmbGFnOworCisJaWYgKCFwb3J0LT50dHkgfHwgIXBvcnQtPnR0eS0+dGVybWlvcykgeworCQlkYmcgKCIlcyAtIG5vIHR0eSBvciB0ZXJtaW9zIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuOworCX0KKworCWNmbGFnID0gdHR5LT50ZXJtaW9zLT5jX2NmbGFnOworCS8qIGNoZWNrIHRoYXQgdGhleSByZWFsbHkgd2FudCB1cyB0byBjaGFuZ2Ugc29tZXRoaW5nICovCisJaWYgKG9sZF90ZXJtaW9zKSB7CisJCWlmIChjZmxhZyA9PSBvbGRfdGVybWlvcy0+Y19jZmxhZyAmJgorCQkgICAgdHR5LT50ZXJtaW9zLT5jX2lmbGFnID09IG9sZF90ZXJtaW9zLT5jX2lmbGFnKSB7CisJCQlkYmcoIiVzIC0gbm90aGluZyB0byBjaGFuZ2UiLCBfX0ZVTkNUSU9OX18pOworCQkJcmV0dXJuOworCQl9CisJfQorCisJZGJnKCIlcyAtIGNsZmFnICUwOHggaWZsYWcgJTA4eCIsIF9fRlVOQ1RJT05fXywgCisJICAgIHR0eS0+dGVybWlvcy0+Y19jZmxhZywgdHR5LT50ZXJtaW9zLT5jX2lmbGFnKTsKKwlpZiAob2xkX3Rlcm1pb3MpIHsKKwkJZGJnKCIlcyAtIG9sZCBjbGZhZyAlMDh4IG9sZCBpZmxhZyAlMDh4IiwgX19GVU5DVElPTl9fLAorCQkgICAgb2xkX3Rlcm1pb3MtPmNfY2ZsYWcsIG9sZF90ZXJtaW9zLT5jX2lmbGFnKTsKKwl9CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCWlmIChlZGdlX3BvcnQgPT0gTlVMTCkKKwkJcmV0dXJuOworCisJaWYgKCFlZGdlX3BvcnQtPm9wZW4pIHsKKwkJZGJnKCIlcyAtIHBvcnQgbm90IG9wZW5lZCIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybjsKKwl9CisKKwkvKiBjaGFuZ2UgdGhlIHBvcnQgc2V0dGluZ3MgdG8gdGhlIG5ldyBvbmVzIHNwZWNpZmllZCAqLworCWNoYW5nZV9wb3J0X3NldHRpbmdzIChlZGdlX3BvcnQsIG9sZF90ZXJtaW9zKTsKKworCXJldHVybjsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGdldF9sc3JfaW5mbyAtIGdldCBsaW5lIHN0YXR1cyByZWdpc3RlciBpbmZvCisgKgorICogUHVycG9zZTogTGV0IHVzZXIgY2FsbCBpb2N0bCgpIHRvIGdldCBpbmZvIHdoZW4gdGhlIFVBUlQgcGh5c2ljYWxseQorICogCSAgICBpcyBlbXB0aWVkLiAgT24gYnVzIHR5cGVzIGxpa2UgUlM0ODUsIHRoZSB0cmFuc21pdHRlciBtdXN0CisgKiAJICAgIHJlbGVhc2UgdGhlIGJ1cyBhZnRlciB0cmFuc21pdHRpbmcuIFRoaXMgbXVzdCBiZSBkb25lIHdoZW4KKyAqIAkgICAgdGhlIHRyYW5zbWl0IHNoaWZ0IHJlZ2lzdGVyIGlzIGVtcHR5LCBub3QgYmUgZG9uZSB3aGVuIHRoZQorICogCSAgICB0cmFuc21pdCBob2xkaW5nIHJlZ2lzdGVyIGlzIGVtcHR5LiAgVGhpcyBmdW5jdGlvbmFsaXR5CisgKiAJICAgIGFsbG93cyBhbiBSUzQ4NSBkcml2ZXIgdG8gYmUgd3JpdHRlbiBpbiB1c2VyIHNwYWNlLiAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBpbnQgZ2V0X2xzcl9pbmZvKHN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQsIHVuc2lnbmVkIGludCBfX3VzZXIgKnZhbHVlKQoreworCXVuc2lnbmVkIGludCByZXN1bHQgPSAwOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZWRnZV9wb3J0LT5lcF9sb2NrLCBmbGFncyk7CisJaWYgKGVkZ2VfcG9ydC0+bWF4VHhDcmVkaXRzID09IGVkZ2VfcG9ydC0+dHhDcmVkaXRzICYmCisJICAgIGVkZ2VfcG9ydC0+dHhmaWZvLmNvdW50ID09IDApIHsKKwkJZGJnKCIlcyAtLSBFbXB0eSIsIF9fRlVOQ1RJT05fXyk7CisJCXJlc3VsdCA9IFRJT0NTRVJfVEVNVDsKKwl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZWRnZV9wb3J0LT5lcF9sb2NrLCBmbGFncyk7CisKKwlpZiAoY29weV90b191c2VyKHZhbHVlLCAmcmVzdWx0LCBzaXplb2YoaW50KSkpCisJCXJldHVybiAtRUZBVUxUOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGdldF9udW1iZXJfYnl0ZXNfYXZhaWwoc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKmVkZ2VfcG9ydCwgdW5zaWduZWQgaW50IF9fdXNlciAqdmFsdWUpCit7CisJdW5zaWduZWQgaW50IHJlc3VsdCA9IDA7CisJc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSA9IGVkZ2VfcG9ydC0+cG9ydC0+dHR5OworCisJaWYgKCF0dHkpCisJCXJldHVybiAtRU5PSU9DVExDTUQ7CisKKwlyZXN1bHQgPSB0dHktPnJlYWRfY250OworCisJZGJnKCIlcyglZCkgPSAlZCIsIF9fRlVOQ1RJT05fXywgIGVkZ2VfcG9ydC0+cG9ydC0+bnVtYmVyLCByZXN1bHQpOworCWlmIChjb3B5X3RvX3VzZXIodmFsdWUsICZyZXN1bHQsIHNpemVvZihpbnQpKSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisJLy9yZXR1cm4gMDsKKwlyZXR1cm4gLUVOT0lPQ1RMQ01EOworfQorCitzdGF0aWMgaW50IGVkZ2VfdGlvY21zZXQgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgc2V0LCB1bnNpZ25lZCBpbnQgY2xlYXIpCit7CisJc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKmVkZ2VfcG9ydCA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwl1bnNpZ25lZCBpbnQgbWNyOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwltY3IgPSBlZGdlX3BvcnQtPnNoYWRvd01DUjsKKwlpZiAoc2V0ICYgVElPQ01fUlRTKQorCQltY3IgfD0gTUNSX1JUUzsKKwlpZiAoc2V0ICYgVElPQ01fRFRSKQorCQltY3IgfD0gTUNSX0RUUjsKKwlpZiAoc2V0ICYgVElPQ01fTE9PUCkKKwkJbWNyIHw9IE1DUl9MT09QQkFDSzsKKworCWlmIChjbGVhciAmIFRJT0NNX1JUUykKKwkJbWNyICY9IH5NQ1JfUlRTOworCWlmIChjbGVhciAmIFRJT0NNX0RUUikKKwkJbWNyICY9IH5NQ1JfRFRSOworCWlmIChjbGVhciAmIFRJT0NNX0xPT1ApCisJCW1jciAmPSB+TUNSX0xPT1BCQUNLOworCisJZWRnZV9wb3J0LT5zaGFkb3dNQ1IgPSBtY3I7CisKKwlzZW5kX2NtZF93cml0ZV91YXJ0X3JlZ2lzdGVyKGVkZ2VfcG9ydCwgTUNSLCBlZGdlX3BvcnQtPnNoYWRvd01DUik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBlZGdlX3Rpb2NtZ2V0KHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJdW5zaWduZWQgaW50IHJlc3VsdCA9IDA7CisJdW5zaWduZWQgaW50IG1zcjsKKwl1bnNpZ25lZCBpbnQgbWNyOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwltc3IgPSBlZGdlX3BvcnQtPnNoYWRvd01TUjsKKwltY3IgPSBlZGdlX3BvcnQtPnNoYWRvd01DUjsKKwlyZXN1bHQgPSAoKG1jciAmIE1DUl9EVFIpCT8gVElPQ01fRFRSOiAwKQkgIC8qIDB4MDAyICovCisJCSAgfCAoKG1jciAmIE1DUl9SVFMpCT8gVElPQ01fUlRTOiAwKSAgIC8qIDB4MDA0ICovCisJCSAgfCAoKG1zciAmIEVER0VQT1JUX01TUl9DVFMpCT8gVElPQ01fQ1RTOiAwKSAgIC8qIDB4MDIwICovCisJCSAgfCAoKG1zciAmIEVER0VQT1JUX01TUl9DRCkJPyBUSU9DTV9DQVI6IDApICAgLyogMHgwNDAgKi8KKwkJICB8ICgobXNyICYgRURHRVBPUlRfTVNSX1JJKQk/IFRJT0NNX1JJOiAgMCkgICAvKiAweDA4MCAqLworCQkgIHwgKChtc3IgJiBFREdFUE9SVF9NU1JfRFNSKQk/IFRJT0NNX0RTUjogMCk7ICAvKiAweDEwMCAqLworCisKKwlkYmcoIiVzIC0tICV4IiwgX19GVU5DVElPTl9fLCByZXN1bHQpOworCisJcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGludCBnZXRfc2VyaWFsX2luZm8oc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKmVkZ2VfcG9ydCwgc3RydWN0IHNlcmlhbF9zdHJ1Y3QgX191c2VyICpyZXRpbmZvKQoreworCXN0cnVjdCBzZXJpYWxfc3RydWN0IHRtcDsKKworCWlmICghcmV0aW5mbykKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwltZW1zZXQoJnRtcCwgMCwgc2l6ZW9mKHRtcCkpOworCisJdG1wLnR5cGUJCT0gUE9SVF8xNjU1MEE7CisJdG1wLmxpbmUJCT0gZWRnZV9wb3J0LT5wb3J0LT5zZXJpYWwtPm1pbm9yOworCXRtcC5wb3J0CQk9IGVkZ2VfcG9ydC0+cG9ydC0+bnVtYmVyOworCXRtcC5pcnEJCQk9IDA7CisJdG1wLmZsYWdzCQk9IEFTWU5DX1NLSVBfVEVTVCB8IEFTWU5DX0FVVE9fSVJROworCXRtcC54bWl0X2ZpZm9fc2l6ZQk9IGVkZ2VfcG9ydC0+bWF4VHhDcmVkaXRzOworCXRtcC5iYXVkX2Jhc2UJCT0gOTYwMDsKKwl0bXAuY2xvc2VfZGVsYXkJCT0gNSpIWjsKKwl0bXAuY2xvc2luZ193YWl0CT0gMzAqSFo7CisvLwl0bXAuY3VzdG9tX2Rpdmlzb3IJPSBzdGF0ZS0+Y3VzdG9tX2Rpdmlzb3I7CisvLwl0bXAuaHViNgkJPSBzdGF0ZS0+aHViNjsKKy8vCXRtcC5pb190eXBlCQk9IHN0YXRlLT5pb190eXBlOworCisJaWYgKGNvcHlfdG9fdXNlcihyZXRpbmZvLCAmdG1wLCBzaXplb2YoKnJldGluZm8pKSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisJcmV0dXJuIDA7Cit9CisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFNlcmlhbElvY3RsCisgKgl0aGlzIGZ1bmN0aW9uIGhhbmRsZXMgYW55IGlvY3RsIGNhbGxzIHRvIHRoZSBkcml2ZXIKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBpbnQgZWRnZV9pb2N0bCAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQoreworCURFRklORV9XQUlUKHdhaXQpOworCXN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJc3RydWN0IGFzeW5jX2ljb3VudCBjbm93OworCXN0cnVjdCBhc3luY19pY291bnQgY3ByZXY7CisJc3RydWN0IHNlcmlhbF9pY291bnRlcl9zdHJ1Y3QgaWNvdW50OworCisJZGJnKCIlcyAtIHBvcnQgJWQsIGNtZCA9IDB4JXgiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlciwgY21kKTsKKworCXN3aXRjaCAoY21kKSB7CisJCS8vIHJldHVybiBudW1iZXIgb2YgYnl0ZXMgYXZhaWxhYmxlCisJCWNhc2UgVElPQ0lOUToKKwkJCWRiZygiJXMgKCVkKSBUSU9DSU5RIiwgX19GVU5DVElPTl9fLCAgcG9ydC0+bnVtYmVyKTsKKwkJCXJldHVybiBnZXRfbnVtYmVyX2J5dGVzX2F2YWlsKGVkZ2VfcG9ydCwgKHVuc2lnbmVkIGludCBfX3VzZXIgKikgYXJnKTsKKwkJCWJyZWFrOworCisJCWNhc2UgVElPQ1NFUkdFVExTUjoKKwkJCWRiZygiJXMgKCVkKSBUSU9DU0VSR0VUTFNSIiwgX19GVU5DVElPTl9fLCAgcG9ydC0+bnVtYmVyKTsKKwkJCXJldHVybiBnZXRfbHNyX2luZm8oZWRnZV9wb3J0LCAodW5zaWduZWQgaW50IF9fdXNlciAqKSBhcmcpOworCQkJcmV0dXJuIDA7CisKKwkJY2FzZSBUSU9DR1NFUklBTDoKKwkJCWRiZygiJXMgKCVkKSBUSU9DR1NFUklBTCIsIF9fRlVOQ1RJT05fXywgIHBvcnQtPm51bWJlcik7CisJCQlyZXR1cm4gZ2V0X3NlcmlhbF9pbmZvKGVkZ2VfcG9ydCwgKHN0cnVjdCBzZXJpYWxfc3RydWN0IF9fdXNlciAqKSBhcmcpOworCisJCWNhc2UgVElPQ1NTRVJJQUw6CisJCQlkYmcoIiVzICglZCkgVElPQ1NTRVJJQUwiLCBfX0ZVTkNUSU9OX18sICBwb3J0LT5udW1iZXIpOworCQkJYnJlYWs7CisKKwkJY2FzZSBUSU9DTUlXQUlUOgorCQkJZGJnKCIlcyAoJWQpIFRJT0NNSVdBSVQiLCBfX0ZVTkNUSU9OX18sICBwb3J0LT5udW1iZXIpOworCQkJY3ByZXYgPSBlZGdlX3BvcnQtPmljb3VudDsKKwkJCXdoaWxlICgxKSB7CisJCQkJcHJlcGFyZV90b193YWl0KCZlZGdlX3BvcnQtPmRlbHRhX21zcl93YWl0LCAmd2FpdCwgVEFTS19JTlRFUlJVUFRJQkxFKTsKKwkJCQlzY2hlZHVsZSgpOworCQkJCWZpbmlzaF93YWl0KCZlZGdlX3BvcnQtPmRlbHRhX21zcl93YWl0LCAmd2FpdCk7CisJCQkJLyogc2VlIGlmIGEgc2lnbmFsIGRpZCBpdCAqLworCQkJCWlmIChzaWduYWxfcGVuZGluZyhjdXJyZW50KSkKKwkJCQkJcmV0dXJuIC1FUkVTVEFSVFNZUzsKKwkJCQljbm93ID0gZWRnZV9wb3J0LT5pY291bnQ7CisJCQkJaWYgKGNub3cucm5nID09IGNwcmV2LnJuZyAmJiBjbm93LmRzciA9PSBjcHJldi5kc3IgJiYKKwkJCQkgICAgY25vdy5kY2QgPT0gY3ByZXYuZGNkICYmIGNub3cuY3RzID09IGNwcmV2LmN0cykKKwkJCQkJcmV0dXJuIC1FSU87IC8qIG5vIGNoYW5nZSA9PiBlcnJvciAqLworCQkJCWlmICgoKGFyZyAmIFRJT0NNX1JORykgJiYgKGNub3cucm5nICE9IGNwcmV2LnJuZykpIHx8CisJCQkJICAgICgoYXJnICYgVElPQ01fRFNSKSAmJiAoY25vdy5kc3IgIT0gY3ByZXYuZHNyKSkgfHwKKwkJCQkgICAgKChhcmcgJiBUSU9DTV9DRCkgICYmIChjbm93LmRjZCAhPSBjcHJldi5kY2QpKSB8fAorCQkJCSAgICAoKGFyZyAmIFRJT0NNX0NUUykgJiYgKGNub3cuY3RzICE9IGNwcmV2LmN0cykpICkgeworCQkJCQlyZXR1cm4gMDsKKwkJCQl9CisJCQkJY3ByZXYgPSBjbm93OworCQkJfQorCQkJLyogTk9UUkVBQ0hFRCAqLworCQkJYnJlYWs7CisKKwkJY2FzZSBUSU9DR0lDT1VOVDoKKwkJCWNub3cgPSBlZGdlX3BvcnQtPmljb3VudDsKKwkJCW1lbXNldCgmaWNvdW50LCAwLCBzaXplb2YoaWNvdW50KSk7CisJCQlpY291bnQuY3RzID0gY25vdy5jdHM7CisJCQlpY291bnQuZHNyID0gY25vdy5kc3I7CisJCQlpY291bnQucm5nID0gY25vdy5ybmc7CisJCQlpY291bnQuZGNkID0gY25vdy5kY2Q7CisJCQlpY291bnQucnggPSBjbm93LnJ4OworCQkJaWNvdW50LnR4ID0gY25vdy50eDsKKwkJCWljb3VudC5mcmFtZSA9IGNub3cuZnJhbWU7CisJCQlpY291bnQub3ZlcnJ1biA9IGNub3cub3ZlcnJ1bjsKKwkJCWljb3VudC5wYXJpdHkgPSBjbm93LnBhcml0eTsKKwkJCWljb3VudC5icmsgPSBjbm93LmJyazsKKwkJCWljb3VudC5idWZfb3ZlcnJ1biA9IGNub3cuYnVmX292ZXJydW47CisKKwkJCWRiZygiJXMgKCVkKSBUSU9DR0lDT1VOVCBSWD0lZCwgVFg9JWQiLCBfX0ZVTkNUSU9OX18sICBwb3J0LT5udW1iZXIsIGljb3VudC5yeCwgaWNvdW50LnR4ICk7CisJCQlpZiAoY29weV90b191c2VyKCh2b2lkIF9fdXNlciAqKWFyZywgJmljb3VudCwgc2l6ZW9mKGljb3VudCkpKQorCQkJCXJldHVybiAtRUZBVUxUOworCQkJcmV0dXJuIDA7CisJfQorCisJcmV0dXJuIC1FTk9JT0NUTENNRDsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFNlcmlhbEJyZWFrCisgKgl0aGlzIGZ1bmN0aW9uIHNlbmRzIGEgYnJlYWsgdG8gdGhlIHBvcnQKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyB2b2lkIGVkZ2VfYnJlYWsgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIGludCBicmVha19zdGF0ZSkKK3sKKwlzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqZWRnZV9wb3J0ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCWludCBzdGF0dXM7CisKKwkvKiBmbHVzaCBhbmQgY2hhc2UgKi8KKwllZGdlX3BvcnQtPmNoYXNlUmVzcG9uc2VQZW5kaW5nID0gVFJVRTsKKworCWRiZygiJXMgLSBTZW5kaW5nIElPU1BfQ01EX0NIQVNFX1BPUlQiLCBfX0ZVTkNUSU9OX18pOworCXN0YXR1cyA9IHNlbmRfaW9zcF9leHRfY21kIChlZGdlX3BvcnQsIElPU1BfQ01EX0NIQVNFX1BPUlQsIDApOworCWlmIChzdGF0dXMgPT0gMCkgeworCQkvLyBibG9jayB1bnRpbCBjaGFzZSBmaW5pc2hlZAorCQlibG9ja191bnRpbF9jaGFzZV9yZXNwb25zZShlZGdlX3BvcnQpOworCX0gZWxzZSB7CisJCWVkZ2VfcG9ydC0+Y2hhc2VSZXNwb25zZVBlbmRpbmcgPSBGQUxTRTsKKwl9CisKKwlpZiAoYnJlYWtfc3RhdGUgPT0gLTEpIHsKKwkJZGJnKCIlcyAtIFNlbmRpbmcgSU9TUF9DTURfU0VUX0JSRUFLIiwgX19GVU5DVElPTl9fKTsKKwkJc3RhdHVzID0gc2VuZF9pb3NwX2V4dF9jbWQgKGVkZ2VfcG9ydCwgSU9TUF9DTURfU0VUX0JSRUFLLCAwKTsKKwl9IGVsc2UgeworCQlkYmcoIiVzIC0gU2VuZGluZyBJT1NQX0NNRF9DTEVBUl9CUkVBSyIsIF9fRlVOQ1RJT05fXyk7CisJCXN0YXR1cyA9IHNlbmRfaW9zcF9leHRfY21kIChlZGdlX3BvcnQsIElPU1BfQ01EX0NMRUFSX0JSRUFLLCAwKTsKKwl9CisJaWYgKHN0YXR1cykgeworCQlkYmcoIiVzIC0gZXJyb3Igc2VuZGluZyBicmVhayBzZXQvY2xlYXIgY29tbWFuZC4iLCBfX0ZVTkNUSU9OX18pOworCX0KKworCXJldHVybjsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIHByb2Nlc3NfcmN2ZF9kYXRhCisgKgl0aGlzIGZ1bmN0aW9uIGhhbmRsZXMgdGhlIGRhdGEgcmVjZWl2ZWQgb24gdGhlIGJ1bGsgaW4gcGlwZS4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyB2b2lkIHByb2Nlc3NfcmN2ZF9kYXRhIChzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsICplZGdlX3NlcmlhbCwgdW5zaWduZWQgY2hhciAqIGJ1ZmZlciwgX191MTYgYnVmZmVyTGVuZ3RoKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQ7CisJc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKmVkZ2VfcG9ydDsKKwlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5OworCV9fdTE2IGxhc3RCdWZmZXJMZW5ndGg7CisJX191MTYgcnhMZW47CisKKwlkYmcoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCWxhc3RCdWZmZXJMZW5ndGggPSBidWZmZXJMZW5ndGggKyAxOworCisJd2hpbGUgKGJ1ZmZlckxlbmd0aCA+IDApIHsKKwkJLyogZmFpbHNhZmUgaW5jYXNlIHdlIGdldCBhIG1lc3NhZ2UgdGhhdCB3ZSBkb24ndCB1bmRlcnN0YW5kICovCisJCWlmIChsYXN0QnVmZmVyTGVuZ3RoID09IGJ1ZmZlckxlbmd0aCkgeworCQkJZGJnKCIlcyAtIHN0dWNrIGluIGxvb3AsIGV4aXRpbmcgaXQuIiwgX19GVU5DVElPTl9fKTsKKwkJCWJyZWFrOworCQl9CisJCWxhc3RCdWZmZXJMZW5ndGggPSBidWZmZXJMZW5ndGg7CisKKwkJc3dpdGNoIChlZGdlX3NlcmlhbC0+cnhTdGF0ZSkgeworCQkJY2FzZSBFWFBFQ1RfSERSMToKKwkJCQllZGdlX3NlcmlhbC0+cnhIZWFkZXIxID0gKmJ1ZmZlcjsKKwkJCQkrK2J1ZmZlcjsKKwkJCQktLWJ1ZmZlckxlbmd0aDsKKworCQkJCWlmIChidWZmZXJMZW5ndGggPT0gMCkgeworCQkJCQllZGdlX3NlcmlhbC0+cnhTdGF0ZSA9IEVYUEVDVF9IRFIyOworCQkJCQlicmVhazsKKwkJCQl9CisJCQkJLyogb3RoZXJ3aXNlLCBkcm9wIG9uIHRocm91Z2ggKi8KKworCQkJY2FzZSBFWFBFQ1RfSERSMjoKKwkJCQllZGdlX3NlcmlhbC0+cnhIZWFkZXIyID0gKmJ1ZmZlcjsKKwkJCQkrK2J1ZmZlcjsKKwkJCQktLWJ1ZmZlckxlbmd0aDsKKworCQkJCWRiZygiJXMgLSBIZHIxPSUwMlggSGRyMj0lMDJYIiwgX19GVU5DVElPTl9fLCBlZGdlX3NlcmlhbC0+cnhIZWFkZXIxLCBlZGdlX3NlcmlhbC0+cnhIZWFkZXIyKTsKKworCQkJCS8vIFByb2Nlc3MgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhpcyBoZWFkZXIgaXMKKwkJCQkvLyBkYXRhIG9yIHN0YXR1cworCisJCQkJaWYgKElTX0NNRF9TVEFUX0hEUihlZGdlX3NlcmlhbC0+cnhIZWFkZXIxKSkgeworCQkJCQkvLyBEZWNvZGUgdGhpcyBzdGF0dXMgaGVhZGVyIGFuZCBnb3RvIEVYUEVDVF9IRFIxIChpZiB3ZQorCQkJCQkvLyBjYW4gcHJvY2VzcyB0aGUgc3RhdHVzIHdpdGggb25seSAyIGJ5dGVzKSwgb3IgZ290bworCQkJCQkvLyBFWFBFQ1RfSERSMyB0byBnZXQgdGhlIHRoaXJkIGJ5dGUuCisKKwkJCQkJZWRnZV9zZXJpYWwtPnJ4UG9ydCAgICAgICA9IElPU1BfR0VUX0hEUl9QT1JUKGVkZ2Vfc2VyaWFsLT5yeEhlYWRlcjEpOworCQkJCQllZGdlX3NlcmlhbC0+cnhTdGF0dXNDb2RlID0gSU9TUF9HRVRfU1RBVFVTX0NPREUoZWRnZV9zZXJpYWwtPnJ4SGVhZGVyMSk7CisKKwkJCQkJaWYgKCFJT1NQX1NUQVRVU19JU18yQllURShlZGdlX3NlcmlhbC0+cnhTdGF0dXNDb2RlKSkgeworCQkJCQkJLy8gVGhpcyBzdGF0dXMgbmVlZHMgYWRkaXRpb25hbCBieXRlcy4gU2F2ZSB3aGF0IHdlIGhhdmUKKwkJCQkJCS8vIGFuZCB0aGVuIHdhaXQgZm9yIG1vcmUgZGF0YS4KKwkJCQkJCWVkZ2Vfc2VyaWFsLT5yeFN0YXR1c1BhcmFtID0gZWRnZV9zZXJpYWwtPnJ4SGVhZGVyMjsKKworCQkJCQkJZWRnZV9zZXJpYWwtPnJ4U3RhdGUgPSBFWFBFQ1RfSERSMzsKKwkJCQkJCWJyZWFrOworCQkJCQl9CisKKwkJCQkJLy8gV2UgaGF2ZSBhbGwgdGhlIGhlYWRlciBieXRlcywgcHJvY2VzcyB0aGUgc3RhdHVzIG5vdworCQkJCQlwcm9jZXNzX3JjdmRfc3RhdHVzIChlZGdlX3NlcmlhbCwgZWRnZV9zZXJpYWwtPnJ4SGVhZGVyMiwgMCk7CisJCQkJCWVkZ2Vfc2VyaWFsLT5yeFN0YXRlID0gRVhQRUNUX0hEUjE7CisJCQkJCWJyZWFrOworCQkJCX0gZWxzZSB7CisJCQkJCWVkZ2Vfc2VyaWFsLT5yeFBvcnQgPSBJT1NQX0dFVF9IRFJfUE9SVChlZGdlX3NlcmlhbC0+cnhIZWFkZXIxKTsKKwkJCQkJZWRnZV9zZXJpYWwtPnJ4Qnl0ZXNSZW1haW5pbmcgPSBJT1NQX0dFVF9IRFJfREFUQV9MRU4oZWRnZV9zZXJpYWwtPnJ4SGVhZGVyMSwgZWRnZV9zZXJpYWwtPnJ4SGVhZGVyMik7CisKKwkJCQkJZGJnKCIlcyAtIERhdGEgZm9yIFBvcnQgJXUgTGVuICV1IiwgX19GVU5DVElPTl9fLCBlZGdlX3NlcmlhbC0+cnhQb3J0LCBlZGdlX3NlcmlhbC0+cnhCeXRlc1JlbWFpbmluZyk7CisKKwkJCQkJLy9BU1NFUlQoIERldkV4dC0+UnhQb3J0IDwgRGV2RXh0LT5OdW1Qb3J0cyApOworCQkJCQkvL0FTU0VSVCggRGV2RXh0LT5SeEJ5dGVzUmVtYWluaW5nIDwgSU9TUF9NQVhfREFUQV9MRU5HVEggKTsKKworCQkJCQlpZiAoYnVmZmVyTGVuZ3RoID09IDAgKSB7CisJCQkJCQllZGdlX3NlcmlhbC0+cnhTdGF0ZSA9IEVYUEVDVF9EQVRBOworCQkJCQkJYnJlYWs7CisJCQkJCX0KKwkJCQkJLy8gRWxzZSwgZHJvcCB0aHJvdWdoCisJCQkJfQorCisJCQljYXNlIEVYUEVDVF9EQVRBOgkvLyBFeHBlY3QgZGF0YQorCisJCQkJaWYgKGJ1ZmZlckxlbmd0aCA8IGVkZ2Vfc2VyaWFsLT5yeEJ5dGVzUmVtYWluaW5nKSB7CisJCQkJCXJ4TGVuID0gYnVmZmVyTGVuZ3RoOworCQkJCQllZGdlX3NlcmlhbC0+cnhTdGF0ZSA9IEVYUEVDVF9EQVRBOwkvLyBFeHBlY3QgZGF0YSB0byBzdGFydCBuZXh0IGJ1ZmZlcgorCQkJCX0gZWxzZSB7CisJCQkJCS8vIEJ1ZkxlbiA+PSBSeEJ5dGVzUmVtYWluaW5nCisJCQkJCXJ4TGVuID0gZWRnZV9zZXJpYWwtPnJ4Qnl0ZXNSZW1haW5pbmc7CisJCQkJCWVkZ2Vfc2VyaWFsLT5yeFN0YXRlID0gRVhQRUNUX0hEUjE7CS8vIFN0YXJ0IGFub3RoZXIgaGVhZGVyIG5leHQgdGltZQorCQkJCX0KKworCQkJCWJ1ZmZlckxlbmd0aCAtPSByeExlbjsKKwkJCQllZGdlX3NlcmlhbC0+cnhCeXRlc1JlbWFpbmluZyAtPSByeExlbjsKKworCQkJCS8qIHNwaXQgdGhpcyBkYXRhIGJhY2sgaW50byB0aGUgdHR5IGRyaXZlciBpZiB0aGlzIHBvcnQgaXMgb3BlbiAqLworCQkJCWlmIChyeExlbikgeworCQkJCQlwb3J0ID0gZWRnZV9zZXJpYWwtPnNlcmlhbC0+cG9ydFtlZGdlX3NlcmlhbC0+cnhQb3J0XTsKKwkJCQkJZWRnZV9wb3J0ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCQkJCQlpZiAoZWRnZV9wb3J0LT5vcGVuKSB7CisJCQkJCQl0dHkgPSBlZGdlX3BvcnQtPnBvcnQtPnR0eTsKKwkJCQkJCWlmICh0dHkpIHsKKwkJCQkJCQlkYmcoIiVzIC0gU2VuZGluZyAlZCBieXRlcyB0byBUVFkgZm9yIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHJ4TGVuLCBlZGdlX3NlcmlhbC0+cnhQb3J0KTsKKwkJCQkJCQllZGdlX3R0eV9yZWN2KCZlZGdlX3NlcmlhbC0+c2VyaWFsLT5kZXYtPmRldiwgdHR5LCBidWZmZXIsIHJ4TGVuKTsKKwkJCQkJCX0KKwkJCQkJCWVkZ2VfcG9ydC0+aWNvdW50LnJ4ICs9IHJ4TGVuOworCQkJCQl9CisJCQkJCWJ1ZmZlciArPSByeExlbjsKKwkJCQl9CisKKwkJCQlicmVhazsKKworCQkJY2FzZSBFWFBFQ1RfSERSMzoJCQkvLyBFeHBlY3QgM3JkIGJ5dGUgb2Ygc3RhdHVzIGhlYWRlcgorCQkJCWVkZ2Vfc2VyaWFsLT5yeEhlYWRlcjMgPSAqYnVmZmVyOworCQkJCSsrYnVmZmVyOworCQkJCS0tYnVmZmVyTGVuZ3RoOworCisJCQkJLy8gV2UgaGF2ZSBhbGwgdGhlIGhlYWRlciBieXRlcywgcHJvY2VzcyB0aGUgc3RhdHVzIG5vdworCQkJCXByb2Nlc3NfcmN2ZF9zdGF0dXMgKGVkZ2Vfc2VyaWFsLCBlZGdlX3NlcmlhbC0+cnhTdGF0dXNQYXJhbSwgZWRnZV9zZXJpYWwtPnJ4SGVhZGVyMyk7CisJCQkJZWRnZV9zZXJpYWwtPnJ4U3RhdGUgPSBFWFBFQ1RfSERSMTsKKwkJCQlicmVhazsKKworCQl9CisJfQorfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogcHJvY2Vzc19yY3ZkX3N0YXR1cworICoJdGhpcyBmdW5jdGlvbiBoYW5kbGVzIHRoZSBhbnkgc3RhdHVzIG1lc3NhZ2VzIHJlY2VpdmVkIG9uIHRoZSBidWxrIGluIHBpcGUuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgdm9pZCBwcm9jZXNzX3JjdmRfc3RhdHVzIChzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsICplZGdlX3NlcmlhbCwgX191OCBieXRlMiwgX191OCBieXRlMykKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0OworCXN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQ7CisJX191OCBjb2RlID0gZWRnZV9zZXJpYWwtPnJ4U3RhdHVzQ29kZTsKKworCS8qIHN3aXRjaCB0aGUgcG9ydCBwb2ludGVyIHRvIHRoZSBvbmUgYmVpbmcgY3VycmVudGx5IHRhbGtlZCBhYm91dCAqLworCXBvcnQgPSBlZGdlX3NlcmlhbC0+c2VyaWFsLT5wb3J0W2VkZ2Vfc2VyaWFsLT5yeFBvcnRdOworCWVkZ2VfcG9ydCA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlpZiAoZWRnZV9wb3J0ID09IE5VTEwpIHsKKwkJZGV2X2VycigmZWRnZV9zZXJpYWwtPnNlcmlhbC0+ZGV2LT5kZXYsICIlcyAtIGVkZ2VfcG9ydCA9PSBOVUxMIGZvciBwb3J0ICVkXG4iLCBfX0ZVTkNUSU9OX18sIGVkZ2Vfc2VyaWFsLT5yeFBvcnQpOworCQlyZXR1cm47CisJfQorCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIGVkZ2Vfc2VyaWFsLT5yeFBvcnQpOworCisJaWYgKGNvZGUgPT0gSU9TUF9FWFRfU1RBVFVTKSB7CisJCXN3aXRjaCAoYnl0ZTIpIHsKKwkJCWNhc2UgSU9TUF9FWFRfU1RBVFVTX0NIQVNFX1JTUDoKKwkJCQkvLyB3ZSB3YW50IHRvIGRvIEVYVCBzdGF0dXMgcmVnYXJkbGVzcyBvZiBwb3J0IG9wZW4vY2xvc2VkIAorCQkJCWRiZygiJXMgLSBQb3J0ICV1IEVYVCBDSEFTRV9SU1AgRGF0YSA9ICUwMngiLCBfX0ZVTkNUSU9OX18sIGVkZ2Vfc2VyaWFsLT5yeFBvcnQsIGJ5dGUzICk7CisJCQkJLy8gQ3VycmVudGx5LCB0aGUgb25seSBFWFRfU1RBVFVTIGlzIENoYXNlLCBzbyBwcm9jZXNzIGhlcmUgaW5zdGVhZCBvZiBvbmUgbW9yZSBjYWxsCisJCQkJLy8gdG8gb25lIG1vcmUgc3Vicm91dGluZS4gSWYvd2hlbiBtb3JlIEVYVF9TVEFUVVMsIHRoZXJlJ2xsIGJlIG1vcmUgd29yayB0byBkby4KKwkJCQkvLyBBbHNvLCB3ZSBjdXJyZW50bHkgY2xlYXIgZmxhZyBhbmQgY2xvc2UgdGhlIHBvcnQgcmVnYXJkbGVzcyBvZiBjb250ZW50IG9mIGFib3ZlJ3MgQnl0ZTMuCisJCQkJLy8gV2UgY291bGQgY2hvb3NlIHRvIGRvIHNvbWV0aGluZyBlbHNlIHdoZW4gQnl0ZTMgc2F5cyBUaW1lb3V0IG9uIENoYXNlIGZyb20gRWRnZXBvcnQsCisJCQkJLy8gbGlrZSB3YWl0IGxvbmdlciBpbiBibG9ja191bnRpbF9jaGFzZV9yZXNwb25zZSwgYnV0IGZvciBub3cgd2UgZG9uJ3QuIAorCQkJCWVkZ2VfcG9ydC0+Y2hhc2VSZXNwb25zZVBlbmRpbmcgPSBGQUxTRTsKKwkJCQl3YWtlX3VwICgmZWRnZV9wb3J0LT53YWl0X2NoYXNlKTsKKwkJCQlyZXR1cm47CisKKwkJCWNhc2UgSU9TUF9FWFRfU1RBVFVTX1JYX0NIRUNLX1JTUDoKKwkJCQlkYmcoIiVzID09PT09PT09PT0gUG9ydCAldSBDSEVDS19SU1AgU2VxdWVuY2UgPSAlMDJ4ID09PT09PT09PT09PT1cbiIsIF9fRlVOQ1RJT05fXywgZWRnZV9zZXJpYWwtPnJ4UG9ydCwgYnl0ZTMgKTsKKwkJCQkvL1BvcnQtPlJ4Q2hlY2tSc3AgPSBUUlVFOworCQkJCXJldHVybjsKKwkJfQorCX0KKworCWlmIChjb2RlID09IElPU1BfU1RBVFVTX09QRU5fUlNQKSB7CisJCWVkZ2VfcG9ydC0+dHhDcmVkaXRzID0gR0VUX1RYX0JVRkZFUl9TSVpFKGJ5dGUzKTsKKwkJZWRnZV9wb3J0LT5tYXhUeENyZWRpdHMgPSBlZGdlX3BvcnQtPnR4Q3JlZGl0czsKKwkJZGJnKCIlcyAtIFBvcnQgJXUgT3BlbiBSZXNwb25zZSBJbml0YWwgTVNSID0gJTAyeCBUeEJ1ZmZlclNpemUgPSAlZCIsIF9fRlVOQ1RJT05fXywgZWRnZV9zZXJpYWwtPnJ4UG9ydCwgYnl0ZTIsIGVkZ2VfcG9ydC0+dHhDcmVkaXRzKTsKKwkJaGFuZGxlX25ld19tc3IgKGVkZ2VfcG9ydCwgYnl0ZTIpOworCisJCS8qIHNlbmQgdGhlIGN1cnJlbnQgbGluZSBzZXR0aW5ncyB0byB0aGUgcG9ydCBzbyB3ZSBhcmUgaW4gc3luYyB3aXRoIGFueSBmdXJ0aGVyIHRlcm1pb3MgY2FsbHMgKi8KKwkJaWYgKGVkZ2VfcG9ydC0+cG9ydC0+dHR5KQorCQkJY2hhbmdlX3BvcnRfc2V0dGluZ3MgKGVkZ2VfcG9ydCwgZWRnZV9wb3J0LT5wb3J0LT50dHktPnRlcm1pb3MpOworCisJCS8qIHdlIGhhdmUgY29tcGxldGVkIHRoZSBvcGVuICovCisJCWVkZ2VfcG9ydC0+b3BlblBlbmRpbmcgPSBGQUxTRTsKKwkJZWRnZV9wb3J0LT5vcGVuID0gVFJVRTsKKwkJd2FrZV91cCgmZWRnZV9wb3J0LT53YWl0X29wZW4pOworCQlyZXR1cm47CisJfQorCisJLy8gSWYgcG9ydCBpcyBjbG9zZWQsIHNpbGVudGx5IGRpc2NhcmQgYWxsIHJjdmQgc3RhdHVzLiBXZSBjYW4KKwkvLyBoYXZlIGNhc2VzIHdoZXJlIGJ1ZmZlcmVkIHN0YXR1cyBpcyByZWNlaXZlZCBBRlRFUiB0aGUgY2xvc2UKKwkvLyBwb3J0IGNvbW1hbmQgaXMgc2VudCB0byB0aGUgRWRnZXBvcnQuCisJaWYgKCghZWRnZV9wb3J0LT5vcGVuICkgfHwgKGVkZ2VfcG9ydC0+Y2xvc2VQZW5kaW5nKSkgeworCQlyZXR1cm47CisJfQorCisJc3dpdGNoIChjb2RlKSB7CisJCS8vIE5vdCBjdXJyZW50bHkgc2VudCBieSBFZGdlcG9ydAorCQljYXNlIElPU1BfU1RBVFVTX0xTUjoKKwkJCWRiZygiJXMgLSBQb3J0ICV1IExTUiBTdGF0dXMgPSAlMDJ4IiwgX19GVU5DVElPTl9fLCBlZGdlX3NlcmlhbC0+cnhQb3J0LCBieXRlMik7CisJCQloYW5kbGVfbmV3X2xzciAoZWRnZV9wb3J0LCBGQUxTRSwgYnl0ZTIsIDApOworCQkJYnJlYWs7CisKKwkJY2FzZSBJT1NQX1NUQVRVU19MU1JfREFUQToKKwkJCWRiZygiJXMgLSBQb3J0ICV1IExTUiBTdGF0dXMgPSAlMDJ4LCBEYXRhID0gJTAyeCIsIF9fRlVOQ1RJT05fXywgZWRnZV9zZXJpYWwtPnJ4UG9ydCwgYnl0ZTIsIGJ5dGUzKTsKKwkJCS8vIGJ5dGUyIGlzIExTUiBSZWdpc3RlcgorCQkJLy8gYnl0ZTMgaXMgYnJva2VuIGRhdGEgYnl0ZQorCQkJaGFuZGxlX25ld19sc3IgKGVkZ2VfcG9ydCwgVFJVRSwgYnl0ZTIsIGJ5dGUzKTsKKwkJCWJyZWFrOworCQkJLy8KKwkJCS8vCWNhc2UgSU9TUF9FWFRfNF9TVEFUVVM6CisJCQkvLwkJZGJnKCIlcyAtIFBvcnQgJXUgTFNSIFN0YXR1cyA9ICUwMnggRGF0YSA9ICUwMngiLCBfX0ZVTkNUSU9OX18sIGVkZ2Vfc2VyaWFsLT5yeFBvcnQsIGJ5dGUyLCBieXRlMyk7CisJCQkvLwkJYnJlYWs7CisJCQkvLworCQljYXNlIElPU1BfU1RBVFVTX01TUjoKKwkJCWRiZygiJXMgLSBQb3J0ICV1IE1TUiBTdGF0dXMgPSAlMDJ4IiwgX19GVU5DVElPTl9fLCBlZGdlX3NlcmlhbC0+cnhQb3J0LCBieXRlMik7CisKKwkJCS8vIFByb2Nlc3MgdGhpcyBuZXcgbW9kZW0gc3RhdHVzIGFuZCBnZW5lcmF0ZSBhcHByb3ByaWF0ZQorCQkJLy8gZXZlbnRzLCBldGMsIGJhc2VkIG9uIHRoZSBuZXcgc3RhdHVzLiBUaGlzIHJvdXRpbmUKKwkJCS8vIGFsc28gc2F2ZXMgdGhlIE1TUiBpbiBQb3J0LT5TaGFkb3dNc3IuCisJCQloYW5kbGVfbmV3X21zcihlZGdlX3BvcnQsIGJ5dGUyKTsKKwkJCWJyZWFrOworCisJCWRlZmF1bHQ6CisJCQlkYmcoIiVzIC0gVW5yZWNvZ25pemVkIElPU1Agc3RhdHVzIGNvZGUgJXVcbiIsIF9fRlVOQ1RJT05fXywgY29kZSk7CisJCQlicmVhazsKKwl9CisKKwlyZXR1cm47Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBlZGdlX3R0eV9yZWN2CisgKgl0aGlzIGZ1bmN0aW9uIHBhc3NlcyBkYXRhIG9uIHRvIHRoZSB0dHkgZmxpcCBidWZmZXIKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyB2b2lkIGVkZ2VfdHR5X3JlY3Yoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCB1bnNpZ25lZCBjaGFyICpkYXRhLCBpbnQgbGVuZ3RoKQoreworCWludCBjbnQ7CisKKwlkbyB7CisJCWlmICh0dHktPmZsaXAuY291bnQgPj0gVFRZX0ZMSVBCVUZfU0laRSkgeworCQkJdHR5X2ZsaXBfYnVmZmVyX3B1c2godHR5KTsKKwkJCWlmICh0dHktPmZsaXAuY291bnQgPj0gVFRZX0ZMSVBCVUZfU0laRSkgeworCQkJCWRldl9lcnIoZGV2LCAiJXMgLSBkcm9wcGluZyBkYXRhLCAlZCBieXRlcyBsb3N0XG4iLAorCQkJCQlfX0ZVTkNUSU9OX18sIGxlbmd0aCk7CisJCQkJcmV0dXJuOworCQkJfQorCQl9CisJCWNudCA9IG1pbihsZW5ndGgsIFRUWV9GTElQQlVGX1NJWkUgLSB0dHktPmZsaXAuY291bnQpOworCQltZW1jcHkodHR5LT5mbGlwLmNoYXJfYnVmX3B0ciwgZGF0YSwgY250KTsKKwkJbWVtc2V0KHR0eS0+ZmxpcC5mbGFnX2J1Zl9wdHIsIDAsIGNudCk7CisJCXR0eS0+ZmxpcC5jaGFyX2J1Zl9wdHIgKz0gY250OworCQl0dHktPmZsaXAuZmxhZ19idWZfcHRyICs9IGNudDsKKwkJdHR5LT5mbGlwLmNvdW50ICs9IGNudDsKKwkJZGF0YSArPSBjbnQ7CisJCWxlbmd0aCAtPSBjbnQ7CisJfSB3aGlsZSAobGVuZ3RoID4gMCk7CisKKwl0dHlfZmxpcF9idWZmZXJfcHVzaCh0dHkpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogaGFuZGxlX25ld19tc3IKKyAqCXRoaXMgZnVuY3Rpb24gaGFuZGxlcyBhbnkgY2hhbmdlIHRvIHRoZSBtc3IgcmVnaXN0ZXIgZm9yIGEgcG9ydC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyB2b2lkIGhhbmRsZV9uZXdfbXNyKHN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQsIF9fdTggbmV3TXNyKQoreworCXN0cnVjdCAgYXN5bmNfaWNvdW50ICppY291bnQ7CisKKwlkYmcoIiVzICUwMngiLCBfX0ZVTkNUSU9OX18sIG5ld01zcik7CisKKwlpZiAobmV3TXNyICYgKEVER0VQT1JUX01TUl9ERUxUQV9DVFMgfCBFREdFUE9SVF9NU1JfREVMVEFfRFNSIHwgRURHRVBPUlRfTVNSX0RFTFRBX1JJIHwgRURHRVBPUlRfTVNSX0RFTFRBX0NEKSkgeworCQlpY291bnQgPSAmZWRnZV9wb3J0LT5pY291bnQ7CisKKwkJLyogdXBkYXRlIGlucHV0IGxpbmUgY291bnRlcnMgKi8KKwkJaWYgKG5ld01zciAmIEVER0VQT1JUX01TUl9ERUxUQV9DVFMpIHsKKwkJCWljb3VudC0+Y3RzKys7CisJCX0KKwkJaWYgKG5ld01zciAmIEVER0VQT1JUX01TUl9ERUxUQV9EU1IpIHsKKwkJCWljb3VudC0+ZHNyKys7CisJCX0KKwkJaWYgKG5ld01zciAmIEVER0VQT1JUX01TUl9ERUxUQV9DRCkgeworCQkJaWNvdW50LT5kY2QrKzsKKwkJfQorCQlpZiAobmV3TXNyICYgRURHRVBPUlRfTVNSX0RFTFRBX1JJKSB7CisJCQlpY291bnQtPnJuZysrOworCQl9CisJCXdha2VfdXBfaW50ZXJydXB0aWJsZSgmZWRnZV9wb3J0LT5kZWx0YV9tc3Jfd2FpdCk7CisJfQorCisJLyogU2F2ZSB0aGUgbmV3IG1vZGVtIHN0YXR1cyAqLworCWVkZ2VfcG9ydC0+c2hhZG93TVNSID0gbmV3TXNyICYgMHhmMDsKKworCXJldHVybjsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGhhbmRsZV9uZXdfbHNyCisgKgl0aGlzIGZ1bmN0aW9uIGhhbmRsZXMgYW55IGNoYW5nZSB0byB0aGUgbHNyIHJlZ2lzdGVyIGZvciBhIHBvcnQuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgdm9pZCBoYW5kbGVfbmV3X2xzcihzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqZWRnZV9wb3J0LCBfX3U4IGxzckRhdGEsIF9fdTggbHNyLCBfX3U4IGRhdGEpCit7CisJX191OCAgICBuZXdMc3IgPSAoX191OCkobHNyICYgKF9fdTgpKExTUl9PVkVSX0VSUiB8IExTUl9QQVJfRVJSIHwgTFNSX0ZSTV9FUlIgfCBMU1JfQlJFQUspKTsKKwlzdHJ1Y3QgIGFzeW5jX2ljb3VudCAqaWNvdW50OworCisJZGJnKCIlcyAtICUwMngiLCBfX0ZVTkNUSU9OX18sIG5ld0xzcik7CisKKwllZGdlX3BvcnQtPnNoYWRvd0xTUiA9IGxzcjsKKworCWlmIChuZXdMc3IgJiBMU1JfQlJFQUspIHsKKwkJLy8KKwkJLy8gUGFyaXR5IGFuZCBGcmFtaW5nIGVycm9ycyBvbmx5IGNvdW50IGlmIHRoZXkKKwkJLy8gb2NjdXIgZXhjbHVzaXZlIG9mIGEgYnJlYWsgYmVpbmcKKwkJLy8gcmVjZWl2ZWQuCisJCS8vCisJCW5ld0xzciAmPSAoX191OCkoTFNSX09WRVJfRVJSIHwgTFNSX0JSRUFLKTsKKwl9CisKKwkvKiBQbGFjZSBMU1IgZGF0YSBieXRlIGludG8gUnggYnVmZmVyICovCisJaWYgKGxzckRhdGEgJiYgZWRnZV9wb3J0LT5wb3J0LT50dHkpCisJCWVkZ2VfdHR5X3JlY3YoJmVkZ2VfcG9ydC0+cG9ydC0+ZGV2LCBlZGdlX3BvcnQtPnBvcnQtPnR0eSwgJmRhdGEsIDEpOworCisJLyogdXBkYXRlIGlucHV0IGxpbmUgY291bnRlcnMgKi8KKwlpY291bnQgPSAmZWRnZV9wb3J0LT5pY291bnQ7CisJaWYgKG5ld0xzciAmIExTUl9CUkVBSykgeworCQlpY291bnQtPmJyaysrOworCX0KKwlpZiAobmV3THNyICYgTFNSX09WRVJfRVJSKSB7CisJCWljb3VudC0+b3ZlcnJ1bisrOworCX0KKwlpZiAobmV3THNyICYgTFNSX1BBUl9FUlIpIHsKKwkJaWNvdW50LT5wYXJpdHkrKzsKKwl9CisJaWYgKG5ld0xzciAmIExTUl9GUk1fRVJSKSB7CisJCWljb3VudC0+ZnJhbWUrKzsKKwl9CisKKwlyZXR1cm47Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIHNyYW1fd3JpdGUKKyAqCXdyaXRlcyBhIG51bWJlciBvZiBieXRlcyB0byB0aGUgRWRnZXBvcnQgZGV2aWNlJ3Mgc3JhbSBzdGFydGluZyBhdCB0aGUgCisgKglnaXZlbiBhZGRyZXNzLgorICoJSWYgc3VjY2Vzc2Z1bCByZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiwgb3RoZXJ3aXNlIGl0IHJldHVybnMKKyAqCWEgbmVnYXRpdmUgZXJyb3IgbnVtYmVyIG9mIHRoZSBwcm9ibGVtLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgaW50IHNyYW1fd3JpdGUgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIF9fdTE2IGV4dEFkZHIsIF9fdTE2IGFkZHIsIF9fdTE2IGxlbmd0aCwgX191OCAqZGF0YSkKK3sKKwlpbnQgcmVzdWx0OworCV9fdTE2IGN1cnJlbnRfbGVuZ3RoOworCXVuc2lnbmVkIGNoYXIgKnRyYW5zZmVyX2J1ZmZlcjsKKworCWRiZygiJXMgLSAleCwgJXgsICVkIiwgX19GVU5DVElPTl9fLCBleHRBZGRyLCBhZGRyLCBsZW5ndGgpOworCisJdHJhbnNmZXJfYnVmZmVyID0gIGttYWxsb2MgKDY0LCBHRlBfS0VSTkVMKTsKKwlpZiAoIXRyYW5zZmVyX2J1ZmZlcikgeworCQlkZXZfZXJyKCZzZXJpYWwtPmRldi0+ZGV2LCAiJXMgLSBrbWFsbG9jKCVkKSBmYWlsZWQuXG4iLCBfX0ZVTkNUSU9OX18sIDY0KTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJLyogbmVlZCB0byBzcGxpdCB0aGVzZSB3cml0ZXMgdXAgaW50byA2NCBieXRlIGNodW5rcyAqLworCXJlc3VsdCA9IDA7CisJd2hpbGUgKGxlbmd0aCA+IDApIHsKKwkJaWYgKGxlbmd0aCA+IDY0KSB7CisJCQljdXJyZW50X2xlbmd0aCA9IDY0OworCQl9IGVsc2UgeworCQkJY3VycmVudF9sZW5ndGggPSBsZW5ndGg7CisJCX0KKy8vCQlkYmcoIiVzIC0gd3JpdGluZyAleCwgJXgsICVkIiwgX19GVU5DVElPTl9fLCBleHRBZGRyLCBhZGRyLCBjdXJyZW50X2xlbmd0aCk7CisJCW1lbWNweSAodHJhbnNmZXJfYnVmZmVyLCBkYXRhLCBjdXJyZW50X2xlbmd0aCk7CisJCXJlc3VsdCA9IHVzYl9jb250cm9sX21zZyAoc2VyaWFsLT5kZXYsIHVzYl9zbmRjdHJscGlwZShzZXJpYWwtPmRldiwgMCksIFVTQl9SRVFVRVNUX0lPTl9XUklURV9SQU0sIAorCQkJCQkgIDB4NDAsIGFkZHIsIGV4dEFkZHIsIHRyYW5zZmVyX2J1ZmZlciwgY3VycmVudF9sZW5ndGgsIDMwMCk7CisJCWlmIChyZXN1bHQgPCAwKQorCQkJYnJlYWs7CisJCWxlbmd0aCAtPSBjdXJyZW50X2xlbmd0aDsKKwkJYWRkciArPSBjdXJyZW50X2xlbmd0aDsKKwkJZGF0YSArPSBjdXJyZW50X2xlbmd0aDsKKwl9ICAgICAgIAorCisJa2ZyZWUgKHRyYW5zZmVyX2J1ZmZlcik7CisJcmV0dXJuIHJlc3VsdDsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogcm9tX3dyaXRlCisgKgl3cml0ZXMgYSBudW1iZXIgb2YgYnl0ZXMgdG8gdGhlIEVkZ2Vwb3J0IGRldmljZSdzIFJPTSBzdGFydGluZyBhdCB0aGUKKyAqCWdpdmVuIGFkZHJlc3MuCisgKglJZiBzdWNjZXNzZnVsIHJldHVybnMgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuLCBvdGhlcndpc2UgaXQgcmV0dXJucworICoJYSBuZWdhdGl2ZSBlcnJvciBudW1iZXIgb2YgdGhlIHByb2JsZW0uCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBpbnQgcm9tX3dyaXRlIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLCBfX3UxNiBleHRBZGRyLCBfX3UxNiBhZGRyLCBfX3UxNiBsZW5ndGgsIF9fdTggKmRhdGEpCit7CisJaW50IHJlc3VsdDsKKwlfX3UxNiBjdXJyZW50X2xlbmd0aDsKKwl1bnNpZ25lZCBjaGFyICp0cmFuc2Zlcl9idWZmZXI7CisKKy8vCWRiZygiJXMgLSAleCwgJXgsICVkIiwgX19GVU5DVElPTl9fLCBleHRBZGRyLCBhZGRyLCBsZW5ndGgpOworCisJdHJhbnNmZXJfYnVmZmVyID0gIGttYWxsb2MgKDY0LCBHRlBfS0VSTkVMKTsKKwlpZiAoIXRyYW5zZmVyX2J1ZmZlcikgeworCQlkZXZfZXJyKCZzZXJpYWwtPmRldi0+ZGV2LCAiJXMgLSBrbWFsbG9jKCVkKSBmYWlsZWQuXG4iLCBfX0ZVTkNUSU9OX18sIDY0KTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJLyogbmVlZCB0byBzcGxpdCB0aGVzZSB3cml0ZXMgdXAgaW50byA2NCBieXRlIGNodW5rcyAqLworCXJlc3VsdCA9IDA7CisJd2hpbGUgKGxlbmd0aCA+IDApIHsKKwkJaWYgKGxlbmd0aCA+IDY0KSB7CisJCQljdXJyZW50X2xlbmd0aCA9IDY0OworCQl9IGVsc2UgeworCQkJY3VycmVudF9sZW5ndGggPSBsZW5ndGg7CisJCX0KKy8vCQlkYmcoIiVzIC0gd3JpdGluZyAleCwgJXgsICVkIiwgX19GVU5DVElPTl9fLCBleHRBZGRyLCBhZGRyLCBjdXJyZW50X2xlbmd0aCk7CisJCW1lbWNweSAodHJhbnNmZXJfYnVmZmVyLCBkYXRhLCBjdXJyZW50X2xlbmd0aCk7CisJCXJlc3VsdCA9IHVzYl9jb250cm9sX21zZyAoc2VyaWFsLT5kZXYsIHVzYl9zbmRjdHJscGlwZShzZXJpYWwtPmRldiwgMCksIFVTQl9SRVFVRVNUX0lPTl9XUklURV9ST00sIAorCQkJCQkgIDB4NDAsIGFkZHIsIGV4dEFkZHIsIHRyYW5zZmVyX2J1ZmZlciwgY3VycmVudF9sZW5ndGgsIDMwMCk7CisJCWlmIChyZXN1bHQgPCAwKQorCQkJYnJlYWs7CisJCWxlbmd0aCAtPSBjdXJyZW50X2xlbmd0aDsKKwkJYWRkciArPSBjdXJyZW50X2xlbmd0aDsKKwkJZGF0YSArPSBjdXJyZW50X2xlbmd0aDsKKwl9ICAgICAgIAorCisJa2ZyZWUgKHRyYW5zZmVyX2J1ZmZlcik7CisJcmV0dXJuIHJlc3VsdDsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogcm9tX3JlYWQKKyAqCXJlYWRzIGEgbnVtYmVyIG9mIGJ5dGVzIGZyb20gdGhlIEVkZ2Vwb3J0IGRldmljZSBzdGFydGluZyBhdCB0aGUgZ2l2ZW4KKyAqCWFkZHJlc3MuCisgKglJZiBzdWNjZXNzZnVsIHJldHVybnMgdGhlIG51bWJlciBvZiBieXRlcyByZWFkLCBvdGhlcndpc2UgaXQgcmV0dXJucworICoJYSBuZWdhdGl2ZSBlcnJvciBudW1iZXIgb2YgdGhlIHByb2JsZW0uCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBpbnQgcm9tX3JlYWQgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIF9fdTE2IGV4dEFkZHIsIF9fdTE2IGFkZHIsIF9fdTE2IGxlbmd0aCwgX191OCAqZGF0YSkKK3sKKwlpbnQgcmVzdWx0OworCV9fdTE2IGN1cnJlbnRfbGVuZ3RoOworCXVuc2lnbmVkIGNoYXIgKnRyYW5zZmVyX2J1ZmZlcjsKKworCWRiZygiJXMgLSAleCwgJXgsICVkIiwgX19GVU5DVElPTl9fLCBleHRBZGRyLCBhZGRyLCBsZW5ndGgpOworCisJdHJhbnNmZXJfYnVmZmVyID0gIGttYWxsb2MgKDY0LCBHRlBfS0VSTkVMKTsKKwlpZiAoIXRyYW5zZmVyX2J1ZmZlcikgeworCQlkZXZfZXJyKCZzZXJpYWwtPmRldi0+ZGV2LCAiJXMgLSBrbWFsbG9jKCVkKSBmYWlsZWQuXG4iLCBfX0ZVTkNUSU9OX18sIDY0KTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJLyogbmVlZCB0byBzcGxpdCB0aGVzZSByZWFkcyB1cCBpbnRvIDY0IGJ5dGUgY2h1bmtzICovCisJcmVzdWx0ID0gMDsKKwl3aGlsZSAobGVuZ3RoID4gMCkgeworCQlpZiAobGVuZ3RoID4gNjQpIHsKKwkJCWN1cnJlbnRfbGVuZ3RoID0gNjQ7CisJCX0gZWxzZSB7CisJCQljdXJyZW50X2xlbmd0aCA9IGxlbmd0aDsKKwkJfQorLy8JCWRiZygiJXMgLSAleCwgJXgsICVkIiwgX19GVU5DVElPTl9fLCBleHRBZGRyLCBhZGRyLCBjdXJyZW50X2xlbmd0aCk7CisJCXJlc3VsdCA9IHVzYl9jb250cm9sX21zZyAoc2VyaWFsLT5kZXYsIHVzYl9yY3ZjdHJscGlwZShzZXJpYWwtPmRldiwgMCksIFVTQl9SRVFVRVNUX0lPTl9SRUFEX1JPTSwgCisJCQkJCSAgMHhDMCwgYWRkciwgZXh0QWRkciwgdHJhbnNmZXJfYnVmZmVyLCBjdXJyZW50X2xlbmd0aCwgMzAwKTsKKwkJaWYgKHJlc3VsdCA8IDApCisJCQlicmVhazsKKwkJbWVtY3B5IChkYXRhLCB0cmFuc2Zlcl9idWZmZXIsIGN1cnJlbnRfbGVuZ3RoKTsKKwkJbGVuZ3RoIC09IGN1cnJlbnRfbGVuZ3RoOworCQlhZGRyICs9IGN1cnJlbnRfbGVuZ3RoOworCQlkYXRhICs9IGN1cnJlbnRfbGVuZ3RoOworCX0gICAgICAgCisKKwlrZnJlZSAodHJhbnNmZXJfYnVmZmVyKTsKKwlyZXR1cm4gcmVzdWx0OworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBzZW5kX2lvc3BfZXh0X2NtZAorICoJSXMgdXNlZCB0byBzZW5kIGEgSU9TUCBtZXNzYWdlIHRvIHRoZSBFZGdlcG9ydCBkZXZpY2UKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIGludCBzZW5kX2lvc3BfZXh0X2NtZCAoc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKmVkZ2VfcG9ydCwgX191OCBjb21tYW5kLCBfX3U4IHBhcmFtKQoreworCXVuc2lnbmVkIGNoYXIgICAqYnVmZmVyOworCXVuc2lnbmVkIGNoYXIgICAqY3VycmVudENvbW1hbmQ7CisJaW50ICAgICAgICAgICAgIGxlbmd0aCA9IDA7CisJaW50ICAgICAgICAgICAgIHN0YXR1cyA9IDA7CisKKwlkYmcoIiVzIC0gJWQsICVkIiwgX19GVU5DVElPTl9fLCBjb21tYW5kLCBwYXJhbSk7CisKKwlidWZmZXIgPSAga21hbGxvYyAoMTAsIEdGUF9BVE9NSUMpOworCWlmICghYnVmZmVyKSB7CisJCWRldl9lcnIoJmVkZ2VfcG9ydC0+cG9ydC0+ZGV2LCAiJXMgLSBrbWFsbG9jKCVkKSBmYWlsZWQuXG4iLCBfX0ZVTkNUSU9OX18sIDEwKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJY3VycmVudENvbW1hbmQgPSBidWZmZXI7CisKKwlNQUtFX0NNRF9FWFRfQ01EICgmY3VycmVudENvbW1hbmQsICZsZW5ndGgsCisJCQkgIGVkZ2VfcG9ydC0+cG9ydC0+bnVtYmVyIC0gZWRnZV9wb3J0LT5wb3J0LT5zZXJpYWwtPm1pbm9yLAorCQkJICBjb21tYW5kLCBwYXJhbSk7CisKKwlzdGF0dXMgPSB3cml0ZV9jbWRfdXNiIChlZGdlX3BvcnQsIGJ1ZmZlciwgbGVuZ3RoKTsKKwlpZiAoc3RhdHVzKSB7CisJCS8qIHNvbWV0aGluZyBiYWQgaGFwcGVuZWQsIGxldCdzIGZyZWUgdXAgdGhlIG1lbW9yeSAqLworCQlrZnJlZShidWZmZXIpOworCX0KKworCXJldHVybiBzdGF0dXM7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiB3cml0ZV9jbWRfdXNiCisgKgl0aGlzIGZ1bmN0aW9uIHdyaXRlcyB0aGUgZ2l2ZW4gYnVmZmVyIG91dCB0byB0aGUgYnVsayB3cml0ZSBlbmRwb2ludC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBpbnQgd3JpdGVfY21kX3VzYiAoc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKmVkZ2VfcG9ydCwgdW5zaWduZWQgY2hhciAqYnVmZmVyLCBpbnQgbGVuZ3RoKQoreworCXN0cnVjdCBlZGdlcG9ydF9zZXJpYWwgKmVkZ2Vfc2VyaWFsID0gdXNiX2dldF9zZXJpYWxfZGF0YShlZGdlX3BvcnQtPnBvcnQtPnNlcmlhbCk7CisJaW50IHN0YXR1cyA9IDA7CisJc3RydWN0IHVyYiAqdXJiOworCWludCB0aW1lb3V0OworCisJdXNiX3NlcmlhbF9kZWJ1Z19kYXRhKGRlYnVnLCAmZWRnZV9wb3J0LT5wb3J0LT5kZXYsIF9fRlVOQ1RJT05fXywgbGVuZ3RoLCBidWZmZXIpOworCisJLyogQWxsb2NhdGUgb3VyIG5leHQgdXJiICovCisJdXJiID0gdXNiX2FsbG9jX3VyYiAoMCwgR0ZQX0FUT01JQyk7CisJaWYgKCF1cmIpCisJCXJldHVybiAtRU5PTUVNOworCisJQ21kVXJicysrOworCWRiZygiJXMgLSBBTExPQ0FURSBVUkIgJXAgKG91dHN0YW5kaW5nICVkKSIsIF9fRlVOQ1RJT05fXywgdXJiLCBDbWRVcmJzKTsKKworCXVzYl9maWxsX2J1bGtfdXJiICh1cmIsIGVkZ2Vfc2VyaWFsLT5zZXJpYWwtPmRldiwgCisJCSAgICAgICB1c2Jfc25kYnVsa3BpcGUoZWRnZV9zZXJpYWwtPnNlcmlhbC0+ZGV2LCBlZGdlX3NlcmlhbC0+YnVsa19vdXRfZW5kcG9pbnQpLAorCQkgICAgICAgYnVmZmVyLCBsZW5ndGgsIGVkZ2VfYnVsa19vdXRfY21kX2NhbGxiYWNrLCBlZGdlX3BvcnQpOworCisJZWRnZV9wb3J0LT5jb21tYW5kUGVuZGluZyA9IFRSVUU7CisJc3RhdHVzID0gdXNiX3N1Ym1pdF91cmIodXJiLCBHRlBfQVRPTUlDKTsKKworCWlmIChzdGF0dXMpIHsKKwkJLyogc29tZXRoaW5nIHdlbnQgd3JvbmcgKi8KKwkJZGV2X2VycigmZWRnZV9wb3J0LT5wb3J0LT5kZXYsICIlcyAtIHVzYl9zdWJtaXRfdXJiKHdyaXRlIGNvbW1hbmQpIGZhaWxlZCwgc3RhdHVzID0gJWRcbiIsIF9fRlVOQ1RJT05fXywgc3RhdHVzKTsKKwkJdXNiX2tpbGxfdXJiKHVyYik7CisJCXVzYl9mcmVlX3VyYih1cmIpOworCQlDbWRVcmJzLS07CisJCXJldHVybiBzdGF0dXM7CisJfQorCisJLy8gd2FpdCBmb3IgY29tbWFuZCB0byBmaW5pc2gKKwl0aW1lb3V0ID0gQ09NTUFORF9USU1FT1VUOworI2lmIDAKKwl3YWl0X2V2ZW50ICgmZWRnZV9wb3J0LT53YWl0X2NvbW1hbmQsIChlZGdlX3BvcnQtPmNvbW1hbmRQZW5kaW5nID09IEZBTFNFKSk7CisKKwlpZiAoZWRnZV9wb3J0LT5jb21tYW5kUGVuZGluZyA9PSBUUlVFKSB7CisJCS8qIGNvbW1hbmQgdGltZWQgb3V0ICovCisJCWRiZygiJXMgLSBjb21tYW5kIHRpbWVkIG91dCIsIF9fRlVOQ1RJT05fXyk7CisJCXN0YXR1cyA9IC1FSU5WQUw7CisJfQorI2VuZGlmCisJcmV0dXJuIHN0YXR1czsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIHNlbmRfY21kX3dyaXRlX2JhdWRfcmF0ZQorICoJdGhpcyBmdW5jdGlvbiBzZW5kcyB0aGUgcHJvcGVyIGNvbW1hbmQgdG8gY2hhbmdlIHRoZSBiYXVkIHJhdGUgb2YgdGhlCisgKglzcGVjaWZpZWQgcG9ydC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBpbnQgc2VuZF9jbWRfd3JpdGVfYmF1ZF9yYXRlIChzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqZWRnZV9wb3J0LCBpbnQgYmF1ZFJhdGUpCit7CisJdW5zaWduZWQgY2hhciAqY21kQnVmZmVyOworCXVuc2lnbmVkIGNoYXIgKmN1cnJDbWQ7CisJaW50IGNtZExlbiA9IDA7CisJaW50IGRpdmlzb3I7CisJaW50IHN0YXR1czsKKwl1bnNpZ25lZCBjaGFyIG51bWJlciA9IGVkZ2VfcG9ydC0+cG9ydC0+bnVtYmVyIC0gZWRnZV9wb3J0LT5wb3J0LT5zZXJpYWwtPm1pbm9yOworCisJZGJnKCIlcyAtIHBvcnQgPSAlZCwgYmF1ZCA9ICVkIiwgX19GVU5DVElPTl9fLCBlZGdlX3BvcnQtPnBvcnQtPm51bWJlciwgYmF1ZFJhdGUpOworCisJc3RhdHVzID0gY2FsY19iYXVkX3JhdGVfZGl2aXNvciAoYmF1ZFJhdGUsICZkaXZpc29yKTsKKwlpZiAoc3RhdHVzKSB7CisJCWRldl9lcnIoJmVkZ2VfcG9ydC0+cG9ydC0+ZGV2LCAiJXMgLSBiYWQgYmF1ZCByYXRlXG4iLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm4gc3RhdHVzOworCX0KKworCS8vIEFsbG9jIG1lbW9yeSBmb3IgdGhlIHN0cmluZyBvZiBjb21tYW5kcy4KKwljbWRCdWZmZXIgPSAga21hbGxvYyAoMHgxMDAsIEdGUF9BVE9NSUMpOworCWlmICghY21kQnVmZmVyKSB7CisJCWRldl9lcnIoJmVkZ2VfcG9ydC0+cG9ydC0+ZGV2LCAiJXMgLSBrbWFsbG9jKCVkKSBmYWlsZWQuXG4iLCBfX0ZVTkNUSU9OX18sIDB4MTAwKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCWN1cnJDbWQgPSBjbWRCdWZmZXI7CisKKwkvLyBFbmFibGUgYWNjZXNzIHRvIGRpdmlzb3IgbGF0Y2gKKwlNQUtFX0NNRF9XUklURV9SRUcoICZjdXJyQ21kLCAmY21kTGVuLCBudW1iZXIsIExDUiwgTENSX0RMX0VOQUJMRSApOworCisJLy8gV3JpdGUgdGhlIGRpdmlzb3IgaXRzZWxmCisJTUFLRV9DTURfV1JJVEVfUkVHKCAmY3VyckNtZCwgJmNtZExlbiwgbnVtYmVyLCBETEwsIExPVzggKGRpdmlzb3IpICk7CisJTUFLRV9DTURfV1JJVEVfUkVHKCAmY3VyckNtZCwgJmNtZExlbiwgbnVtYmVyLCBETE0sIEhJR0g4KGRpdmlzb3IpICk7CisKKwkvLyBSZXN0b3JlIG9yaWdpbmFsIHZhbHVlIHRvIGRpc2FibGUgYWNjZXNzIHRvIGRpdmlzb3IgbGF0Y2gKKwlNQUtFX0NNRF9XUklURV9SRUcoICZjdXJyQ21kLCAmY21kTGVuLCBudW1iZXIsIExDUiwgZWRnZV9wb3J0LT5zaGFkb3dMQ1IpOworCisJc3RhdHVzID0gd3JpdGVfY21kX3VzYihlZGdlX3BvcnQsIGNtZEJ1ZmZlciwgY21kTGVuICk7CisJaWYgKHN0YXR1cykgeworCQkvKiBzb21ldGhpbmcgYmFkIGhhcHBlbmVkLCBsZXQncyBmcmVlIHVwIHRoZSBtZW1vcnkgKi8KKwkJa2ZyZWUgKGNtZEJ1ZmZlcik7CisJfQorCisJcmV0dXJuIHN0YXR1czsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGNhbGNfYmF1ZF9yYXRlX2Rpdmlzb3IKKyAqCXRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlcyB0aGUgcHJvcGVyIGJhdWQgcmF0ZSBkaXZpc29yIGZvciB0aGUgc3BlY2lmaWVkCisgKgliYXVkIHJhdGUuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgaW50IGNhbGNfYmF1ZF9yYXRlX2Rpdmlzb3IgKGludCBiYXVkcmF0ZSwgaW50ICpkaXZpc29yKQoreworCWludCBpOworCV9fdTE2IGN1c3RvbTsKKworCisJZGJnKCIlcyAtICVkIiwgX19GVU5DVElPTl9fLCBiYXVkcmF0ZSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgTlVNX0VOVFJJRVMoZGl2aXNvcl90YWJsZSk7IGkrKykgeworCQlpZiAoIGRpdmlzb3JfdGFibGVbaV0uQmF1ZFJhdGUgPT0gYmF1ZHJhdGUgKSB7CisJCQkqZGl2aXNvciA9IGRpdmlzb3JfdGFibGVbaV0uRGl2aXNvcjsKKwkJCXJldHVybiAwOworCQl9CisJfQorCisJLy8gV2UgaGF2ZSB0cmllZCBhbGwgb2YgdGhlIHN0YW5kYXJkIGJhdWQgcmF0ZXMKKwkvLyBsZXRzIHRyeSB0byBjYWxjdWxhdGUgdGhlIGRpdmlzb3IgZm9yIHRoaXMgYmF1ZCByYXRlCisJLy8gTWFrZSBzdXJlIHRoZSBiYXVkIHJhdGUgaXMgcmVhc29uYWJsZQorCWlmIChiYXVkcmF0ZSA+IDUwICYmIGJhdWRyYXRlIDwgMjMwNDAwKSB7CisJCS8vIGdldCBkaXZpc29yCisJCWN1c3RvbSA9IChfX3UxNikoKDIzMDQwMEwgKyBiYXVkcmF0ZS8yKSAvIGJhdWRyYXRlKTsKKworCQkqZGl2aXNvciA9IGN1c3RvbTsKKworCQlkYmcoIiVzIC0gQmF1ZCAlZCA9ICVkXG4iLCBfX0ZVTkNUSU9OX18sIGJhdWRyYXRlLCBjdXN0b20pOworCQlyZXR1cm4gMDsKKwl9CisKKwlyZXR1cm4gLTE7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBzZW5kX2NtZF93cml0ZV91YXJ0X3JlZ2lzdGVyCisgKgl0aGlzIGZ1bmN0aW9uIGJ1aWxkcyB1cCBhIHVhcnQgcmVnaXN0ZXIgbWVzc2FnZSBhbmQgc2VuZHMgdG8gdG8gdGhlIGRldmljZS4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBpbnQgc2VuZF9jbWRfd3JpdGVfdWFydF9yZWdpc3RlciAoc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKmVkZ2VfcG9ydCwgX191OCByZWdOdW0sIF9fdTggcmVnVmFsdWUpCit7CisJdW5zaWduZWQgY2hhciAqY21kQnVmZmVyOworCXVuc2lnbmVkIGNoYXIgKmN1cnJDbWQ7CisJdW5zaWduZWQgbG9uZyBjbWRMZW4gPSAwOworCWludCBzdGF0dXM7CisKKwlkYmcoIiVzIC0gd3JpdGUgdG8gJXMgcmVnaXN0ZXIgMHglMDJ4IiwgKHJlZ051bSA9PSBNQ1IpID8gIk1DUiIgOiAiTENSIiwgX19GVU5DVElPTl9fLCByZWdWYWx1ZSk7CisKKwkvLyBBbGxvYyBtZW1vcnkgZm9yIHRoZSBzdHJpbmcgb2YgY29tbWFuZHMuCisJY21kQnVmZmVyID0ga21hbGxvYyAoMHgxMCwgR0ZQX0FUT01JQyk7CisJaWYgKGNtZEJ1ZmZlciA9PSBOVUxMICkgeworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwljdXJyQ21kID0gY21kQnVmZmVyOworCisJLy8gQnVpbGQgYSBjbWQgaW4gdGhlIGJ1ZmZlciB0byB3cml0ZSB0aGUgZ2l2ZW4gcmVnaXN0ZXIKKwlNQUtFX0NNRF9XUklURV9SRUcgKCZjdXJyQ21kLCAmY21kTGVuLAorCQkJICAgIGVkZ2VfcG9ydC0+cG9ydC0+bnVtYmVyIC0gZWRnZV9wb3J0LT5wb3J0LT5zZXJpYWwtPm1pbm9yLAorCQkJICAgIHJlZ051bSwgcmVnVmFsdWUpOworCisJc3RhdHVzID0gd3JpdGVfY21kX3VzYihlZGdlX3BvcnQsIGNtZEJ1ZmZlciwgY21kTGVuKTsKKwlpZiAoc3RhdHVzKSB7CisJCS8qIHNvbWV0aGluZyBiYWQgaGFwcGVuZWQsIGxldCdzIGZyZWUgdXAgdGhlIG1lbW9yeSAqLworCQlrZnJlZSAoY21kQnVmZmVyKTsKKwl9CisKKwlyZXR1cm4gc3RhdHVzOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogY2hhbmdlX3BvcnRfc2V0dGluZ3MKKyAqCVRoaXMgcm91dGluZSBpcyBjYWxsZWQgdG8gc2V0IHRoZSBVQVJUIG9uIHRoZSBkZXZpY2UgdG8gbWF0Y2ggdGhlIHNwZWNpZmllZAorICoJbmV3IHNldHRpbmdzLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lmbmRlZiBDTVNQQVIKKyNkZWZpbmUgQ01TUEFSIDAKKyNlbmRpZgorc3RhdGljIHZvaWQgY2hhbmdlX3BvcnRfc2V0dGluZ3MgKHN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQsIHN0cnVjdCB0ZXJtaW9zICpvbGRfdGVybWlvcykKK3sKKwlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5OworCWludCBiYXVkOworCXVuc2lnbmVkIGNmbGFnOworCV9fdTggbWFzayA9IDB4ZmY7CisJX191OCBsRGF0YTsKKwlfX3U4IGxQYXJpdHk7CisJX191OCBsU3RvcDsKKwlfX3U4IHJ4RmxvdzsKKwlfX3U4IHR4RmxvdzsKKwlpbnQgc3RhdHVzOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIGVkZ2VfcG9ydC0+cG9ydC0+bnVtYmVyKTsKKworCWlmICgoIWVkZ2VfcG9ydC0+b3BlbikgJiYKKwkgICAgKCFlZGdlX3BvcnQtPm9wZW5QZW5kaW5nKSkgeworCQlkYmcoIiVzIC0gcG9ydCBub3Qgb3BlbmVkIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuOworCX0KKworCXR0eSA9IGVkZ2VfcG9ydC0+cG9ydC0+dHR5OworCWlmICgoIXR0eSkgfHwKKwkgICAgKCF0dHktPnRlcm1pb3MpKSB7CisJCWRiZygiJXMgLSBubyB0dHkgc3RydWN0dXJlcyIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybjsKKwl9CisKKwljZmxhZyA9IHR0eS0+dGVybWlvcy0+Y19jZmxhZzsKKworCXN3aXRjaCAoY2ZsYWcgJiBDU0laRSkgeworCQljYXNlIENTNTogICBsRGF0YSA9IExDUl9CSVRTXzU7IG1hc2sgPSAweDFmOyAgICBkYmcoIiVzIC0gZGF0YSBiaXRzID0gNSIsIF9fRlVOQ1RJT05fXyk7ICAgYnJlYWs7CisJCWNhc2UgQ1M2OiAgIGxEYXRhID0gTENSX0JJVFNfNjsgbWFzayA9IDB4M2Y7ICAgIGRiZygiJXMgLSBkYXRhIGJpdHMgPSA2IiwgX19GVU5DVElPTl9fKTsgICBicmVhazsKKwkJY2FzZSBDUzc6ICAgbERhdGEgPSBMQ1JfQklUU183OyBtYXNrID0gMHg3ZjsgICAgZGJnKCIlcyAtIGRhdGEgYml0cyA9IDciLCBfX0ZVTkNUSU9OX18pOyAgIGJyZWFrOworCQlkZWZhdWx0OgorCQljYXNlIENTODogICBsRGF0YSA9IExDUl9CSVRTXzg7ICAgICAgICAgICAgICAgICBkYmcoIiVzIC0gZGF0YSBiaXRzID0gOCIsIF9fRlVOQ1RJT05fXyk7ICAgYnJlYWs7CisJfQorCisJbFBhcml0eSA9IExDUl9QQVJfTk9ORTsKKwlpZiAoY2ZsYWcgJiBQQVJFTkIpIHsKKwkJaWYgKGNmbGFnICYgQ01TUEFSKSB7CisJCQlpZiAoY2ZsYWcgJiBQQVJPREQpIHsKKwkJCQlsUGFyaXR5ID0gTENSX1BBUl9NQVJLOworCQkJCWRiZygiJXMgLSBwYXJpdHkgPSBtYXJrIiwgX19GVU5DVElPTl9fKTsKKwkJCX0gZWxzZSB7CisJCQkJbFBhcml0eSA9IExDUl9QQVJfU1BBQ0U7CisJCQkJZGJnKCIlcyAtIHBhcml0eSA9IHNwYWNlIiwgX19GVU5DVElPTl9fKTsKKwkJCX0KKwkJfSBlbHNlIGlmIChjZmxhZyAmIFBBUk9ERCkgeworCQkJbFBhcml0eSA9IExDUl9QQVJfT0REOworCQkJZGJnKCIlcyAtIHBhcml0eSA9IG9kZCIsIF9fRlVOQ1RJT05fXyk7CisJCX0gZWxzZSB7CisJCQlsUGFyaXR5ID0gTENSX1BBUl9FVkVOOworCQkJZGJnKCIlcyAtIHBhcml0eSA9IGV2ZW4iLCBfX0ZVTkNUSU9OX18pOworCQl9CisJfSBlbHNlIHsKKwkJZGJnKCIlcyAtIHBhcml0eSA9IG5vbmUiLCBfX0ZVTkNUSU9OX18pOworCX0KKworCWlmIChjZmxhZyAmIENTVE9QQikgeworCQlsU3RvcCA9IExDUl9TVE9QXzI7CisJCWRiZygiJXMgLSBzdG9wIGJpdHMgPSAyIiwgX19GVU5DVElPTl9fKTsKKwl9IGVsc2UgeworCQlsU3RvcCA9IExDUl9TVE9QXzE7CisJCWRiZygiJXMgLSBzdG9wIGJpdHMgPSAxIiwgX19GVU5DVElPTl9fKTsKKwl9CisKKwkvKiBmaWd1cmUgb3V0IHRoZSBmbG93IGNvbnRyb2wgc2V0dGluZ3MgKi8KKwlyeEZsb3cgPSB0eEZsb3cgPSAweDAwOworCWlmIChjZmxhZyAmIENSVFNDVFMpIHsKKwkJcnhGbG93IHw9IElPU1BfUlhfRkxPV19SVFM7CisJCXR4RmxvdyB8PSBJT1NQX1RYX0ZMT1dfQ1RTOworCQlkYmcoIiVzIC0gUlRTL0NUUyBpcyBlbmFibGVkIiwgX19GVU5DVElPTl9fKTsKKwl9IGVsc2UgeworCQlkYmcoIiVzIC0gUlRTL0NUUyBpcyBkaXNhYmxlZCIsIF9fRlVOQ1RJT05fXyk7CisJfQorCisJLyogaWYgd2UgYXJlIGltcGxlbWVudGluZyBYT04vWE9GRiwgc2V0IHRoZSBzdGFydCBhbmQgc3RvcCBjaGFyYWN0ZXIgaW4gdGhlIGRldmljZSAqLworCWlmIChJX0lYT0ZGKHR0eSkgfHwgSV9JWE9OKHR0eSkpIHsKKwkJdW5zaWduZWQgY2hhciBzdG9wX2NoYXIgID0gU1RPUF9DSEFSKHR0eSk7CisJCXVuc2lnbmVkIGNoYXIgc3RhcnRfY2hhciA9IFNUQVJUX0NIQVIodHR5KTsKKworCQlzZW5kX2lvc3BfZXh0X2NtZCAoZWRnZV9wb3J0LCBJT1NQX0NNRF9TRVRfWE9OX0NIQVIsIHN0YXJ0X2NoYXIpOworCQlzZW5kX2lvc3BfZXh0X2NtZCAoZWRnZV9wb3J0LCBJT1NQX0NNRF9TRVRfWE9GRl9DSEFSLCBzdG9wX2NoYXIpOworCisJCS8qIGlmIHdlIGFyZSBpbXBsZW1lbnRpbmcgSU5CT1VORCBYT04vWE9GRiAqLworCQlpZiAoSV9JWE9GRih0dHkpKSB7CisJCQlyeEZsb3cgfD0gSU9TUF9SWF9GTE9XX1hPTl9YT0ZGOworCQkJZGJnKCIlcyAtIElOQk9VTkQgWE9OL1hPRkYgaXMgZW5hYmxlZCwgWE9OID0gJTJ4LCBYT0ZGID0gJTJ4IiwgX19GVU5DVElPTl9fLCBzdGFydF9jaGFyLCBzdG9wX2NoYXIpOworCQl9IGVsc2UgeworCQkJZGJnKCIlcyAtIElOQk9VTkQgWE9OL1hPRkYgaXMgZGlzYWJsZWQiLCBfX0ZVTkNUSU9OX18pOworCQl9CisKKwkJLyogaWYgd2UgYXJlIGltcGxlbWVudGluZyBPVVRCT1VORCBYT04vWE9GRiAqLworCQlpZiAoSV9JWE9OKHR0eSkpIHsKKwkJCXR4RmxvdyB8PSBJT1NQX1RYX0ZMT1dfWE9OX1hPRkY7CisJCQlkYmcoIiVzIC0gT1VUQk9VTkQgWE9OL1hPRkYgaXMgZW5hYmxlZCwgWE9OID0gJTJ4LCBYT0ZGID0gJTJ4IiwgX19GVU5DVElPTl9fLCBzdGFydF9jaGFyLCBzdG9wX2NoYXIpOworCQl9IGVsc2UgeworCQkJZGJnKCIlcyAtIE9VVEJPVU5EIFhPTi9YT0ZGIGlzIGRpc2FibGVkIiwgX19GVU5DVElPTl9fKTsKKwkJfQorCX0KKworCS8qIFNldCBmbG93IGNvbnRyb2wgdG8gdGhlIGNvbmZpZ3VyZWQgdmFsdWUgKi8KKwlzZW5kX2lvc3BfZXh0X2NtZCAoZWRnZV9wb3J0LCBJT1NQX0NNRF9TRVRfUlhfRkxPVywgcnhGbG93KTsKKwlzZW5kX2lvc3BfZXh0X2NtZCAoZWRnZV9wb3J0LCBJT1NQX0NNRF9TRVRfVFhfRkxPVywgdHhGbG93KTsKKworCisJZWRnZV9wb3J0LT5zaGFkb3dMQ1IgJj0gfihMQ1JfQklUU19NQVNLIHwgTENSX1NUT1BfTUFTSyB8IExDUl9QQVJfTUFTSyk7CisJZWRnZV9wb3J0LT5zaGFkb3dMQ1IgfD0gKGxEYXRhIHwgbFBhcml0eSB8IGxTdG9wKTsKKworCWVkZ2VfcG9ydC0+dmFsaWREYXRhTWFzayA9IG1hc2s7CisKKwkvKiBTZW5kIHRoZSB1cGRhdGVkIExDUiB2YWx1ZSB0byB0aGUgRWRnZVBvcnQgKi8KKwlzdGF0dXMgPSBzZW5kX2NtZF93cml0ZV91YXJ0X3JlZ2lzdGVyKGVkZ2VfcG9ydCwgTENSLCBlZGdlX3BvcnQtPnNoYWRvd0xDUik7CisJaWYgKHN0YXR1cyAhPSAwKSB7CisJCXJldHVybjsKKwl9CisKKwkvKiBzZXQgdXAgdGhlIE1DUiByZWdpc3RlciBhbmQgc2VuZCBpdCB0byB0aGUgRWRnZVBvcnQgKi8KKwllZGdlX3BvcnQtPnNoYWRvd01DUiA9IE1DUl9NQVNURVJfSUU7CisJaWYgKGNmbGFnICYgQ0JBVUQpIHsKKwkJZWRnZV9wb3J0LT5zaGFkb3dNQ1IgfD0gKE1DUl9EVFIgfCBNQ1JfUlRTKTsKKwl9CisJc3RhdHVzID0gc2VuZF9jbWRfd3JpdGVfdWFydF9yZWdpc3RlcihlZGdlX3BvcnQsIE1DUiwgZWRnZV9wb3J0LT5zaGFkb3dNQ1IpOworCWlmIChzdGF0dXMgIT0gMCkgeworCQlyZXR1cm47CisJfQorCisJLyogRGV0ZXJtaW5lIGRpdmlzb3IgYmFzZWQgb24gYmF1ZCByYXRlICovCisJYmF1ZCA9IHR0eV9nZXRfYmF1ZF9yYXRlKHR0eSk7CisJaWYgKCFiYXVkKSB7CisJCS8qIHBpY2sgYSBkZWZhdWx0LCBhbnkgZGVmYXVsdC4uLiAqLworCQliYXVkID0gOTYwMDsKKwl9CisKKwlkYmcoIiVzIC0gYmF1ZCByYXRlID0gJWQiLCBfX0ZVTkNUSU9OX18sIGJhdWQpOworCXN0YXR1cyA9IHNlbmRfY21kX3dyaXRlX2JhdWRfcmF0ZSAoZWRnZV9wb3J0LCBiYXVkKTsKKworCXJldHVybjsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogdW5pY29kZV90b19hc2NpaQorICoJVHVybnMgYSBzdHJpbmcgZnJvbSBVbmljb2RlIGludG8gQVNDSUkuCisgKglEb2Vzbid0IGRvIGEgZ29vZCBqb2Igd2l0aCBhbnkgY2hhcmFjdGVycyB0aGF0IGFyZSBvdXRzaWRlIHRoZSBub3JtYWwKKyAqCUFTQ0lJIHJhbmdlLCBidXQgaXQncyBvbmx5IGZvciBkZWJ1Z2dpbmcuLi4KKyAqCU5PVEU6IGV4cGVjdHMgdGhlIHVuaWNvZGUgaW4gTEUgZm9ybWF0CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyB2b2lkIHVuaWNvZGVfdG9fYXNjaWkgKGNoYXIgKnN0cmluZywgX19sZTE2ICp1bmljb2RlLCBpbnQgdW5pY29kZV9zaXplKQoreworCWludCBpOworCisJaWYgKHVuaWNvZGVfc2l6ZSA8PSAwKQorCQlyZXR1cm47CisKKwlmb3IgKGkgPSAwOyBpIDwgdW5pY29kZV9zaXplOyArK2kpCisJCXN0cmluZ1tpXSA9IChjaGFyKShsZTE2X3RvX2NwdSh1bmljb2RlW2ldKSk7CisJc3RyaW5nW3VuaWNvZGVfc2l6ZV0gPSAweDAwOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBnZXRfbWFudWZhY3R1cmluZ19kZXNjCisgKglyZWFkcyBpbiB0aGUgbWFudWZhY3R1cmluZyBkZXNjcmlwdG9yIGFuZCBzdG9yZXMgaXQgaW50byB0aGUgc2VyaWFsIAorICoJc3RydWN0dXJlLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgdm9pZCBnZXRfbWFudWZhY3R1cmluZ19kZXNjIChzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsICplZGdlX3NlcmlhbCkKK3sKKwlpbnQgcmVzcG9uc2U7CisKKwlkYmcoImdldHRpbmcgbWFudWZhY3R1cmVyIGRlc2NyaXB0b3IiKTsKKworCXJlc3BvbnNlID0gcm9tX3JlYWQgKGVkZ2Vfc2VyaWFsLT5zZXJpYWwsIChFREdFX01BTlVGX0RFU0NfQUREUiAmIDB4ZmZmZjAwMDApID4+IDE2LCAKKwkJCSAgICAoX191MTYpKEVER0VfTUFOVUZfREVTQ19BRERSICYgMHgwMDAwZmZmZiksIEVER0VfTUFOVUZfREVTQ19MRU4sCisJCQkgICAgKF9fdTggKikoJmVkZ2Vfc2VyaWFsLT5tYW51Zl9kZXNjcmlwdG9yKSk7CisKKwlpZiAocmVzcG9uc2UgPCAxKSB7CisJCWRldl9lcnIoJmVkZ2Vfc2VyaWFsLT5zZXJpYWwtPmRldi0+ZGV2LCAiZXJyb3IgaW4gZ2V0dGluZyBtYW51ZmFjdHVyZXIgZGVzY3JpcHRvclxuIik7CisJfSBlbHNlIHsKKwkJY2hhciBzdHJpbmdbMzBdOworCQlkYmcoIioqTWFudWZhY3R1cmVyIERlc2NyaXB0b3IiKTsKKwkJZGJnKCIgIFJvbVNpemU6ICAgICAgICAlZEsiLCBlZGdlX3NlcmlhbC0+bWFudWZfZGVzY3JpcHRvci5Sb21TaXplKTsKKwkJZGJnKCIgIFJhbVNpemU6ICAgICAgICAlZEsiLCBlZGdlX3NlcmlhbC0+bWFudWZfZGVzY3JpcHRvci5SYW1TaXplKTsKKwkJZGJnKCIgIENwdVJldjogICAgICAgICAlZCIsIGVkZ2Vfc2VyaWFsLT5tYW51Zl9kZXNjcmlwdG9yLkNwdVJldik7CisJCWRiZygiICBCb2FyZFJldjogICAgICAgJWQiLCBlZGdlX3NlcmlhbC0+bWFudWZfZGVzY3JpcHRvci5Cb2FyZFJldik7CisJCWRiZygiICBOdW1Qb3J0czogICAgICAgJWQiLCBlZGdlX3NlcmlhbC0+bWFudWZfZGVzY3JpcHRvci5OdW1Qb3J0cyk7CisJCWRiZygiICBEZXNjRGF0ZTogICAgICAgJWQvJWQvJWQiLCBlZGdlX3NlcmlhbC0+bWFudWZfZGVzY3JpcHRvci5EZXNjRGF0ZVswXSwgZWRnZV9zZXJpYWwtPm1hbnVmX2Rlc2NyaXB0b3IuRGVzY0RhdGVbMV0sIGVkZ2Vfc2VyaWFsLT5tYW51Zl9kZXNjcmlwdG9yLkRlc2NEYXRlWzJdKzE5MDApOworCQl1bmljb2RlX3RvX2FzY2lpIChzdHJpbmcsIGVkZ2Vfc2VyaWFsLT5tYW51Zl9kZXNjcmlwdG9yLlNlcmlhbE51bWJlciwgZWRnZV9zZXJpYWwtPm1hbnVmX2Rlc2NyaXB0b3IuU2VyTnVtTGVuZ3RoLzItMSk7CisJCWRiZygiICBTZXJpYWxOdW1iZXI6ICVzIiwgc3RyaW5nKTsKKwkJdW5pY29kZV90b19hc2NpaSAoc3RyaW5nLCBlZGdlX3NlcmlhbC0+bWFudWZfZGVzY3JpcHRvci5Bc3NlbWJseU51bWJlciwgZWRnZV9zZXJpYWwtPm1hbnVmX2Rlc2NyaXB0b3IuQXNzZW1ibHlOdW1MZW5ndGgvMi0xKTsKKwkJZGJnKCIgIEFzc2VtYmx5TnVtYmVyOiAlcyIsIHN0cmluZyk7CisJCXVuaWNvZGVfdG9fYXNjaWkgKHN0cmluZywgZWRnZV9zZXJpYWwtPm1hbnVmX2Rlc2NyaXB0b3IuT2VtQXNzeU51bWJlciwgZWRnZV9zZXJpYWwtPm1hbnVmX2Rlc2NyaXB0b3IuT2VtQXNzeU51bUxlbmd0aC8yLTEpOworCQlkYmcoIiAgT2VtQXNzeU51bWJlcjogICVzIiwgc3RyaW5nKTsKKwkJZGJnKCIgIFVhcnRUeXBlOiAgICAgICAlZCIsIGVkZ2Vfc2VyaWFsLT5tYW51Zl9kZXNjcmlwdG9yLlVhcnRUeXBlKTsKKwkJZGJnKCIgIElvblBpZDogICAgICAgICAlZCIsIGVkZ2Vfc2VyaWFsLT5tYW51Zl9kZXNjcmlwdG9yLklvblBpZCk7CisJCWRiZygiICBJb25Db25maWc6ICAgICAgJWQiLCBlZGdlX3NlcmlhbC0+bWFudWZfZGVzY3JpcHRvci5Jb25Db25maWcpOworCX0KK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogZ2V0X2Jvb3RfZGVzYworICoJcmVhZHMgaW4gdGhlIGJvb3Rsb2FkZXIgZGVzY3JpcHRvciBhbmQgc3RvcmVzIGl0IGludG8gdGhlIHNlcmlhbCAKKyAqCXN0cnVjdHVyZS4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHZvaWQgZ2V0X2Jvb3RfZGVzYyAoc3RydWN0IGVkZ2Vwb3J0X3NlcmlhbCAqZWRnZV9zZXJpYWwpCit7CisJaW50IHJlc3BvbnNlOworCisJZGJnKCJnZXR0aW5nIGJvb3QgZGVzY3JpcHRvciIpOworCisJcmVzcG9uc2UgPSByb21fcmVhZCAoZWRnZV9zZXJpYWwtPnNlcmlhbCwgKEVER0VfQk9PVF9ERVNDX0FERFIgJiAweGZmZmYwMDAwKSA+PiAxNiwgCisJCQkgICAgKF9fdTE2KShFREdFX0JPT1RfREVTQ19BRERSICYgMHgwMDAwZmZmZiksIEVER0VfQk9PVF9ERVNDX0xFTiwKKwkJCSAgICAoX191OCAqKSgmZWRnZV9zZXJpYWwtPmJvb3RfZGVzY3JpcHRvcikpOworCisJaWYgKHJlc3BvbnNlIDwgMSkgeworCQlkZXZfZXJyKCZlZGdlX3NlcmlhbC0+c2VyaWFsLT5kZXYtPmRldiwgImVycm9yIGluIGdldHRpbmcgYm9vdCBkZXNjcmlwdG9yXG4iKTsKKwl9IGVsc2UgeworCQlkYmcoIioqQm9vdCBEZXNjcmlwdG9yOiIpOworCQlkYmcoIiAgQm9vdENvZGVMZW5ndGg6ICVkIiwgbGUxNl90b19jcHUoZWRnZV9zZXJpYWwtPmJvb3RfZGVzY3JpcHRvci5Cb290Q29kZUxlbmd0aCkpOworCQlkYmcoIiAgTWFqb3JWZXJzaW9uOiAgICVkIiwgZWRnZV9zZXJpYWwtPmJvb3RfZGVzY3JpcHRvci5NYWpvclZlcnNpb24pOworCQlkYmcoIiAgTWlub3JWZXJzaW9uOiAgICVkIiwgZWRnZV9zZXJpYWwtPmJvb3RfZGVzY3JpcHRvci5NaW5vclZlcnNpb24pOworCQlkYmcoIiAgQnVpbGROdW1iZXI6ICAgICVkIiwgbGUxNl90b19jcHUoZWRnZV9zZXJpYWwtPmJvb3RfZGVzY3JpcHRvci5CdWlsZE51bWJlcikpOworCQlkYmcoIiAgQ2FwYWJpbGl0aWVzOiAgIDB4JXgiLCBsZTE2X3RvX2NwdShlZGdlX3NlcmlhbC0+Ym9vdF9kZXNjcmlwdG9yLkNhcGFiaWxpdGllcykpOworCQlkYmcoIiAgVUNvbmZpZzA6ICAgICAgICVkIiwgZWRnZV9zZXJpYWwtPmJvb3RfZGVzY3JpcHRvci5VQ29uZmlnMCk7CisJCWRiZygiICBVQ29uZmlnMTogICAgICAgJWQiLCBlZGdlX3NlcmlhbC0+Ym9vdF9kZXNjcmlwdG9yLlVDb25maWcxKTsKKwl9Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGxvYWRfYXBwbGljYXRpb25fZmlybXdhcmUKKyAqCVRoaXMgaXMgY2FsbGVkIHRvIGxvYWQgdGhlIGFwcGxpY2F0aW9uIGZpcm13YXJlIHRvIHRoZSBkZXZpY2UKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHZvaWQgbG9hZF9hcHBsaWNhdGlvbl9maXJtd2FyZSAoc3RydWN0IGVkZ2Vwb3J0X3NlcmlhbCAqZWRnZV9zZXJpYWwpCit7CisJc3RydWN0IGVkZ2VfZmlybXdhcmVfaW1hZ2VfcmVjb3JkICpyZWNvcmQ7CisJdW5zaWduZWQgY2hhciAqZmlybXdhcmU7CisJdW5zaWduZWQgY2hhciAqRmlybXdhcmVJbWFnZTsKKwlpbnQgSW1hZ2VTaXplOworCWludCByZXNwb25zZTsKKworCisJc3dpdGNoIChlZGdlX3NlcmlhbC0+cHJvZHVjdF9pbmZvLmlEb3dubG9hZEZpbGUpIHsKKwkJY2FzZSBFREdFX0RPV05MT0FEX0ZJTEVfSTkzMDoKKwkJCWRiZygiZG93bmxvYWRpbmcgZmlybXdhcmUgdmVyc2lvbiAoOTMwKSAlZC4lZC4lZCIsIAorCQkJICAgIE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbl9HRU4xLk1ham9yVmVyc2lvbiwgCisJCQkgICAgT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uX0dFTjEuTWlub3JWZXJzaW9uLCAKKwkJCSAgICBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb25fR0VOMS5CdWlsZE51bWJlcik7CisJCQlmaXJtd2FyZSA9ICZPcGVyYXRpb25hbENvZGVJbWFnZV9HRU4xWzBdOworCQkJRmlybXdhcmVJbWFnZSA9ICZPcGVyYXRpb25hbENvZGVJbWFnZV9HRU4xWzBdOworCQkJSW1hZ2VTaXplID0gc2l6ZW9mKE9wZXJhdGlvbmFsQ29kZUltYWdlX0dFTjEpOworCQkJYnJlYWs7CisKKwkJY2FzZSBFREdFX0RPV05MT0FEX0ZJTEVfODAyNTE6CisJCQlkYmcoImRvd25sb2FkaW5nIGZpcm13YXJlIHZlcnNpb24gKDgwMjUxKSAlZC4lZC4lZCIsIAorCQkJICAgIE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbl9HRU4yLk1ham9yVmVyc2lvbiwgCisJCQkgICAgT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uX0dFTjIuTWlub3JWZXJzaW9uLCAKKwkJCSAgICBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb25fR0VOMi5CdWlsZE51bWJlcik7CisJCQlmaXJtd2FyZSA9ICZPcGVyYXRpb25hbENvZGVJbWFnZV9HRU4yWzBdOworCQkJRmlybXdhcmVJbWFnZSA9ICZPcGVyYXRpb25hbENvZGVJbWFnZV9HRU4yWzBdOworCQkJSW1hZ2VTaXplID0gc2l6ZW9mKE9wZXJhdGlvbmFsQ29kZUltYWdlX0dFTjIpOworCQkJYnJlYWs7CisKKwkJY2FzZSBFREdFX0RPV05MT0FEX0ZJTEVfTk9ORToKKwkJCWRiZyAgICAgKCJObyBkb3dubG9hZCBmaWxlIHNwZWNpZmllZCwgc2tpcHBpbmcgZG93bmxvYWRcbiIpOworCQkJcmV0dXJuOworCisJCWRlZmF1bHQ6CisJCQlyZXR1cm47CisJfQorCisKKwlmb3IgKDs7KSB7CisJCXJlY29yZCA9IChzdHJ1Y3QgZWRnZV9maXJtd2FyZV9pbWFnZV9yZWNvcmQgKilmaXJtd2FyZTsKKwkJcmVzcG9uc2UgPSBzcmFtX3dyaXRlIChlZGdlX3NlcmlhbC0+c2VyaWFsLCBsZTE2X3RvX2NwdShyZWNvcmQtPkV4dEFkZHIpLCBsZTE2X3RvX2NwdShyZWNvcmQtPkFkZHIpLCBsZTE2X3RvX2NwdShyZWNvcmQtPkxlbiksICZyZWNvcmQtPkRhdGFbMF0pOworCQlpZiAocmVzcG9uc2UgPCAwKSB7CisJCQlkZXZfZXJyKCZlZGdlX3NlcmlhbC0+c2VyaWFsLT5kZXYtPmRldiwgInNyYW1fd3JpdGUgZmFpbGVkICgleCwgJXgsICVkKVxuIiwgbGUxNl90b19jcHUocmVjb3JkLT5FeHRBZGRyKSwgbGUxNl90b19jcHUocmVjb3JkLT5BZGRyKSwgbGUxNl90b19jcHUocmVjb3JkLT5MZW4pKTsKKwkJCWJyZWFrOworCQl9CisJCWZpcm13YXJlICs9IHNpemVvZiAoc3RydWN0IGVkZ2VfZmlybXdhcmVfaW1hZ2VfcmVjb3JkKSArIGxlMTZfdG9fY3B1KHJlY29yZC0+TGVuKTsKKwkJaWYgKGZpcm13YXJlID49ICZGaXJtd2FyZUltYWdlW0ltYWdlU2l6ZV0pIHsKKwkJCWJyZWFrOworCQl9CisJfQorCisJZGJnKCJzZW5kaW5nIGV4ZWNfZGxfY29kZSIpOworCXJlc3BvbnNlID0gdXNiX2NvbnRyb2xfbXNnIChlZGdlX3NlcmlhbC0+c2VyaWFsLT5kZXYsIAorCQkJCSAgICB1c2Jfc25kY3RybHBpcGUoZWRnZV9zZXJpYWwtPnNlcmlhbC0+ZGV2LCAwKSwgCisJCQkJICAgIFVTQl9SRVFVRVNUX0lPTl9FWEVDX0RMX0NPREUsIAorCQkJCSAgICAweDQwLCAweDQwMDAsIDB4MDAwMSwgTlVMTCwgMCwgMzAwMCk7CisKKwlyZXR1cm47Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGVkZ2Vfc3RhcnR1cAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgaW50IGVkZ2Vfc3RhcnR1cCAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkKK3sKKwlzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsICplZGdlX3NlcmlhbDsKKwlzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqZWRnZV9wb3J0OworCXN0cnVjdCB1c2JfZGV2aWNlICpkZXY7CisJaW50IGk7CisKKwlkZXYgPSBzZXJpYWwtPmRldjsKKworCS8qIGNyZWF0ZSBvdXIgcHJpdmF0ZSBzZXJpYWwgc3RydWN0dXJlICovCisJZWRnZV9zZXJpYWwgPSBrbWFsbG9jIChzaXplb2Yoc3RydWN0IGVkZ2Vwb3J0X3NlcmlhbCksIEdGUF9LRVJORUwpOworCWlmIChlZGdlX3NlcmlhbCA9PSBOVUxMKSB7CisJCWRldl9lcnIoJnNlcmlhbC0+ZGV2LT5kZXYsICIlcyAtIE91dCBvZiBtZW1vcnlcbiIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKwltZW1zZXQgKGVkZ2Vfc2VyaWFsLCAwLCBzaXplb2Yoc3RydWN0IGVkZ2Vwb3J0X3NlcmlhbCkpOworCXNwaW5fbG9ja19pbml0KCZlZGdlX3NlcmlhbC0+ZXNfbG9jayk7CisJZWRnZV9zZXJpYWwtPnNlcmlhbCA9IHNlcmlhbDsKKwl1c2Jfc2V0X3NlcmlhbF9kYXRhKHNlcmlhbCwgZWRnZV9zZXJpYWwpOworCisJLyogZ2V0IHRoZSBuYW1lIGZvciB0aGUgZGV2aWNlIGZyb20gdGhlIGRldmljZSAqLworCWlmICggKGkgPSBnZXRfc3RyaW5nKGRldiwgZGV2LT5kZXNjcmlwdG9yLmlNYW51ZmFjdHVyZXIsICZlZGdlX3NlcmlhbC0+bmFtZVswXSkpICE9IDApIHsKKwkJZWRnZV9zZXJpYWwtPm5hbWVbaS0xXSA9ICcgJzsKKwl9CisKKwlnZXRfc3RyaW5nKGRldiwgZGV2LT5kZXNjcmlwdG9yLmlQcm9kdWN0LCAmZWRnZV9zZXJpYWwtPm5hbWVbaV0pOworCisJZGV2X2luZm8oJnNlcmlhbC0+ZGV2LT5kZXYsICIlcyBkZXRlY3RlZFxuIiwgZWRnZV9zZXJpYWwtPm5hbWUpOworCisJLyogZ2V0IHRoZSBtYW51ZmFjdHVyaW5nIGRlc2NyaXB0b3IgZm9yIHRoaXMgZGV2aWNlICovCisJZ2V0X21hbnVmYWN0dXJpbmdfZGVzYyAoZWRnZV9zZXJpYWwpOworCisJLyogZ2V0IHRoZSBib290IGRlc2NyaXB0b3IgKi8KKwlnZXRfYm9vdF9kZXNjIChlZGdlX3NlcmlhbCk7CisKKwlnZXRfcHJvZHVjdF9pbmZvKGVkZ2Vfc2VyaWFsKTsKKworCS8qIHNldCB0aGUgbnVtYmVyIG9mIHBvcnRzIGZyb20gdGhlIG1hbnVmYWN0dXJpbmcgZGVzY3JpcHRpb24gKi8KKwkvKiBzZXJpYWwtPm51bV9wb3J0cyA9IHNlcmlhbC0+cHJvZHVjdF9pbmZvLk51bVBvcnRzOyAqLworCWlmIChlZGdlX3NlcmlhbC0+cHJvZHVjdF9pbmZvLk51bVBvcnRzICE9IHNlcmlhbC0+bnVtX3BvcnRzKSB7CisJCXdhcm4oIiVzIC0gRGV2aWNlIFJlcG9ydGVkICVkIHNlcmlhbCBwb3J0cyB2cyBjb3JlICIKKwkJICAgICAidGhpbmtpbmcgd2UgaGF2ZSAlZCBwb3J0cywgZW1haWwgZ3JlZ0Brcm9haC5jb20gdGhpcyBpbmZvLiIsCisJCSAgICAgX19GVU5DVElPTl9fLCBlZGdlX3NlcmlhbC0+cHJvZHVjdF9pbmZvLk51bVBvcnRzLCAKKwkJICAgICBzZXJpYWwtPm51bV9wb3J0cyk7CisJfQorCisJZGJnKCIlcyAtIHRpbWUgMSAlbGQiLCBfX0ZVTkNUSU9OX18sIGppZmZpZXMpOworCisJLyogbm93IGxvYWQgdGhlIGFwcGxpY2F0aW9uIGZpcm13YXJlIGludG8gdGhpcyBkZXZpY2UgKi8KKwlsb2FkX2FwcGxpY2F0aW9uX2Zpcm13YXJlIChlZGdlX3NlcmlhbCk7CisKKwlkYmcoIiVzIC0gdGltZSAyICVsZCIsIF9fRlVOQ1RJT05fXywgamlmZmllcyk7CisKKwkvKiBDaGVjayBjdXJyZW50IEVkZ2Vwb3J0IEVFUFJPTSBhbmQgdXBkYXRlIGlmIG5lY2Vzc2FyeSAqLworCXVwZGF0ZV9lZGdlcG9ydF9FMlBST00gKGVkZ2Vfc2VyaWFsKTsKKwkKKwlkYmcoIiVzIC0gdGltZSAzICVsZCIsIF9fRlVOQ1RJT05fXywgamlmZmllcyk7CisKKwkvKiBzZXQgdGhlIGNvbmZpZ3VyYXRpb24gdG8gdXNlICMxICovCisvLwlkYmcoInNldF9jb25maWd1cmF0aW9uIDEiKTsKKy8vCXVzYl9zZXRfY29uZmlndXJhdGlvbiAoZGV2LCAxKTsKKworCS8qIHdlIHNldCB1cCB0aGUgcG9pbnRlcnMgdG8gdGhlIGVuZHBvaW50cyBpbiB0aGUgZWRnZV9vcGVuIGZ1bmN0aW9uLCAKKwkgKiBhcyB0aGUgc3RydWN0dXJlcyBhcmVuJ3QgY3JlYXRlZCB5ZXQuICovCisKKwkvKiBzZXQgdXAgb3VyIHBvcnQgcHJpdmF0ZSBzdHJ1Y3R1cmVzICovCisJZm9yIChpID0gMDsgaSA8IHNlcmlhbC0+bnVtX3BvcnRzOyArK2kpIHsKKwkJZWRnZV9wb3J0ID0ga21hbGxvYyAoc2l6ZW9mKHN0cnVjdCBlZGdlcG9ydF9wb3J0KSwgR0ZQX0tFUk5FTCk7CisJCWlmIChlZGdlX3BvcnQgPT0gTlVMTCkgeworCQkJZGV2X2Vycigmc2VyaWFsLT5kZXYtPmRldiwgIiVzIC0gT3V0IG9mIG1lbW9yeVxuIiwgX19GVU5DVElPTl9fKTsKKwkJCXVzYl9zZXRfc2VyaWFsX2RhdGEoc2VyaWFsLCBOVUxMKTsKKwkJCWtmcmVlKGVkZ2Vfc2VyaWFsKTsKKwkJCXJldHVybiAtRU5PTUVNOworCQl9CisJCW1lbXNldCAoZWRnZV9wb3J0LCAwLCBzaXplb2Yoc3RydWN0IGVkZ2Vwb3J0X3BvcnQpKTsKKwkJc3Bpbl9sb2NrX2luaXQoJmVkZ2VfcG9ydC0+ZXBfbG9jayk7CisJCWVkZ2VfcG9ydC0+cG9ydCA9IHNlcmlhbC0+cG9ydFtpXTsKKwkJdXNiX3NldF9zZXJpYWxfcG9ydF9kYXRhKHNlcmlhbC0+cG9ydFtpXSwgZWRnZV9wb3J0KTsKKwl9CisJCisJcmV0dXJuIDA7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGVkZ2Vfc2h1dGRvd24KKyAqCVRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBkZXZpY2UgaXMgcmVtb3ZlZCBmcm9tIHRoZSB1c2IgYnVzLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgdm9pZCBlZGdlX3NodXRkb3duIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQoreworCWludCBpOworCisJZGJnKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwkvKiBzdG9wIHJlYWRzIGFuZCB3cml0ZXMgb24gYWxsIHBvcnRzICovCisJZm9yIChpPTA7IGkgPCBzZXJpYWwtPm51bV9wb3J0czsgKytpKSB7CisJCWtmcmVlICh1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEoc2VyaWFsLT5wb3J0W2ldKSk7CisJCXVzYl9zZXRfc2VyaWFsX3BvcnRfZGF0YShzZXJpYWwtPnBvcnRbaV0sICBOVUxMKTsKKwl9CisJa2ZyZWUgKHVzYl9nZXRfc2VyaWFsX2RhdGEoc2VyaWFsKSk7CisJdXNiX3NldF9zZXJpYWxfZGF0YShzZXJpYWwsIE5VTEwpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBlZGdlcG9ydF9pbml0CisgKglUaGlzIGlzIGNhbGxlZCBieSB0aGUgbW9kdWxlIHN1YnN5c3RlbSwgb3Igb24gc3RhcnR1cCB0byBpbml0aWFsaXplIHVzCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBpbnQgX19pbml0IGVkZ2Vwb3J0X2luaXQodm9pZCkKK3sKKwlpbnQgcmV0dmFsOworCisJcmV0dmFsID0gdXNiX3NlcmlhbF9yZWdpc3RlcigmZWRnZXBvcnRfMnBvcnRfZGV2aWNlKTsKKwlpZiAocmV0dmFsKQorCQlnb3RvIGZhaWxlZF8ycG9ydF9kZXZpY2VfcmVnaXN0ZXI7CisJcmV0dmFsID0gdXNiX3NlcmlhbF9yZWdpc3RlcigmZWRnZXBvcnRfNHBvcnRfZGV2aWNlKTsKKwlpZiAocmV0dmFsKQorCQlnb3RvIGZhaWxlZF80cG9ydF9kZXZpY2VfcmVnaXN0ZXI7CisJcmV0dmFsID0gdXNiX3NlcmlhbF9yZWdpc3RlcigmZWRnZXBvcnRfOHBvcnRfZGV2aWNlKTsKKwlpZiAocmV0dmFsKQorCQlnb3RvIGZhaWxlZF84cG9ydF9kZXZpY2VfcmVnaXN0ZXI7CisJcmV0dmFsID0gdXNiX3JlZ2lzdGVyKCZpb19kcml2ZXIpOworCWlmIChyZXR2YWwpIAorCQlnb3RvIGZhaWxlZF91c2JfcmVnaXN0ZXI7CisJaW5mbyhEUklWRVJfREVTQyAiICIgRFJJVkVSX1ZFUlNJT04pOworCXJldHVybiAwOworCitmYWlsZWRfdXNiX3JlZ2lzdGVyOgorCXVzYl9zZXJpYWxfZGVyZWdpc3RlcigmZWRnZXBvcnRfOHBvcnRfZGV2aWNlKTsKK2ZhaWxlZF84cG9ydF9kZXZpY2VfcmVnaXN0ZXI6CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyKCZlZGdlcG9ydF80cG9ydF9kZXZpY2UpOworZmFpbGVkXzRwb3J0X2RldmljZV9yZWdpc3RlcjoKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIoJmVkZ2Vwb3J0XzJwb3J0X2RldmljZSk7CitmYWlsZWRfMnBvcnRfZGV2aWNlX3JlZ2lzdGVyOgorCXJldHVybiByZXR2YWw7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGVkZ2Vwb3J0X2V4aXQKKyAqCUNhbGxlZCB3aGVuIHRoZSBkcml2ZXIgaXMgYWJvdXQgdG8gYmUgdW5sb2FkZWQuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyB2b2lkIF9fZXhpdCBlZGdlcG9ydF9leGl0ICh2b2lkKQoreworCXVzYl9kZXJlZ2lzdGVyICgmaW9fZHJpdmVyKTsKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIgKCZlZGdlcG9ydF8ycG9ydF9kZXZpY2UpOworCXVzYl9zZXJpYWxfZGVyZWdpc3RlciAoJmVkZ2Vwb3J0XzRwb3J0X2RldmljZSk7CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyICgmZWRnZXBvcnRfOHBvcnRfZGV2aWNlKTsKK30KKworbW9kdWxlX2luaXQoZWRnZXBvcnRfaW5pdCk7Cittb2R1bGVfZXhpdChlZGdlcG9ydF9leGl0KTsKKworLyogTW9kdWxlIGluZm9ybWF0aW9uICovCitNT0RVTEVfQVVUSE9SKCBEUklWRVJfQVVUSE9SICk7CitNT0RVTEVfREVTQ1JJUFRJT04oIERSSVZFUl9ERVNDICk7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CisKK21vZHVsZV9wYXJhbShkZWJ1ZywgYm9vbCwgU19JUlVHTyB8IFNfSVdVU1IpOworTU9EVUxFX1BBUk1fREVTQyhkZWJ1ZywgIkRlYnVnIGVuYWJsZWQgb3Igbm90Iik7CisKK21vZHVsZV9wYXJhbShsb3dfbGF0ZW5jeSwgYm9vbCwgU19JUlVHTyB8IFNfSVdVU1IpOworTU9EVUxFX1BBUk1fREVTQyhsb3dfbGF0ZW5jeSwgIkxvdyBsYXRlbmN5IGVuYWJsZWQgb3Igbm90Iik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZWRnZXBvcnQuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19lZGdlcG9ydC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxMTJkN2EKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZWRnZXBvcnQuaApAQCAtMCwwICsxLDE0MSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqCWlvX2VkZ2Vwb3J0LmgJRWRnZXBvcnQgTGludXggSW50ZXJmYWNlIGRlZmluaXRpb25zCisgKgorICoJQ29weXJpZ2h0IChDKSAyMDAwIEluc2lkZSBPdXQgTmV0d29ya3MsIEluYy4KKyAqCisgKglUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICoJaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqCXRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKgkoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWYgIWRlZmluZWQoX0lPX0VER0VQT1JUX0hfKQorI2RlZmluZQlfSU9fRURHRVBPUlRfSF8KKworCisjZGVmaW5lIE1BWF9SUzIzMl9QT1JUUwkJOAkvKiBNYXggIyBvZiBSUy0yMzIgcG9ydHMgcGVyIGRldmljZSAqLworCisvKiB0eXBlZGVmcyB0aGF0IHRoZSBpbnNpZGVvdXQgaGVhZGVycyBuZWVkICovCisjaWZuZGVmIFRSVUUKKwkjZGVmaW5lIFRSVUUJCSgxKQorI2VuZGlmCisjaWZuZGVmIEZBTFNFCisJI2RlZmluZSBGQUxTRQkJKDApCisjZW5kaWYKKyNpZm5kZWYgTE9XOAorCSNkZWZpbmUgTE9XOChhKQkJKCh1bnNpZ25lZCBjaGFyKShhICYgMHhmZikpCisjZW5kaWYKKyNpZm5kZWYgSElHSDgKKwkjZGVmaW5lIEhJR0g4KGEpCSgodW5zaWduZWQgY2hhcikoKGEgJiAweGZmMDApID4+IDgpKQorI2VuZGlmCisjaWZuZGVmIE5VTV9FTlRSSUVTCisJI2RlZmluZSBOVU1fRU5UUklFUyh4KQkoc2l6ZW9mKHgpL3NpemVvZigoeClbMF0pKQorI2VuZGlmCisKKyNpZm5kZWYgX19LRVJORUxfXworI2RlZmluZSBfX0tFUk5FTF9fCisjZW5kaWYKKworI2luY2x1ZGUgImlvX3VzYnZlbmQuaCIKKworCisKKy8qIFRoZSBmb2xsb3dpbmcgdGFibGUgaXMgdXNlZCB0byBtYXAgdGhlIFVTQnggcG9ydCBudW1iZXIgdG8gCisgKiB0aGUgZGV2aWNlIHNlcmlhbCBudW1iZXIgKG9yIHBoeXNpY2FsIFVTQiBwYXRoKSwgKi8KKyNkZWZpbmUgTUFYX0VER0VQT1JUUwk2NAorCitzdHJ1Y3QgY29tTWFwcGVyIHsKKwljaGFyCVNlcmlhbE51bWJlcltNQVhfU0VSSUFMTlVNQkVSX0xFTisxXTsJLyogU2VyaWFsIG51bWJlci91c2IgcGF0aCAqLworCWludAludW1Qb3J0czsJCQkgICAgICAgCS8qIE51bWJlciBvZiBwb3J0cyAqLworCWludAlPcmlnaW5hbFtNQVhfUlMyMzJfUE9SVFNdOwkgICAgICAgCS8qIFBvcnQgbnVtYmVycyBzZXQgYnkgSU9DVEwgKi8KKwlpbnQJUG9ydFtNQVhfUlMyMzJfUE9SVFNdOwkJICAgICAgIAkvKiBBY3R1YWwgdXNlZCBwb3J0IG51bWJlcnMgKi8KK307CisKKworI2RlZmluZSBFREdFUE9SVF9DT05GSUdfREVWSUNFICIvcHJvYy9lZGdlcG9ydCIKKworLyogL3Byb2MvZWRnZXBvcnQgSW50ZXJmYWNlCisgKiBUaGlzIGludGVyZmFjZSB1c2VzIHJlYWQvd3JpdGUvbHNlZWsgaW50ZXJmYWNlIHRvIHRhbGsgdG8gdGhlIGVkZ2Vwb3J0IGRyaXZlcgorICogdGhlIGZvbGxvd2luZyByZWFkIGZ1bmN0aW9ucyBhcmUgc3VwcG9ydGVkOiAqLworI2RlZmluZSBQUk9DX0dFVF9NQVBQSU5HX1RPX1BBVEggCTEKKyNkZWZpbmUgUFJPQ19HRVRfQ09NX0VOVFJZCQkyCisjZGVmaW5lIFBST0NfR0VUX0VER0VfTUFOVUZfREVTQ1JJUFRPUgkzCisjZGVmaW5lIFBST0NfR0VUX0JPT1RfREVTQ1JJUFRPUgk0CisjZGVmaW5lIFBST0NfR0VUX1BST0RVQ1RfSU5GTwkJNQorI2RlZmluZSBQUk9DX0dFVF9TVFJJTkdTCQk2CisjZGVmaW5lIFBST0NfR0VUX0NVUlJFTlRfQ09NX01BUFBJTkcJNworCisvKiBUaGUgcGFyYW1ldGVycyB0byB0aGUgbHNlZWsoKSBmb3IgdGhlIHJlYWQgaXM6ICovCisjZGVmaW5lIFBST0NfUkVBRF9TRVRVUChDb21tYW5kLCBBcmd1bWVudCkJKChDb21tYW5kKSArICgoQXJndW1lbnQpPDw4KSkKKworCisvKiB0aGUgZm9sbG93aW5nIHdyaXRlIGZ1bmN0aW9ucyBhcmUgc3VwcG9ydGVkOiAqLworI2RlZmluZSBQUk9DX1NFVF9DT01fTUFQUElORyAJCTEKKyNkZWZpbmUgUFJPQ19TRVRfQ09NX0VOVFJZCQkyCisKKworLyogVGhlIGZvbGxvd2luZyBzdHVyY3R1cmUgaXMgcGFzc2VkIHRvIHRoZSB3cml0ZSAqLworc3RydWN0IHByb2NXcml0ZSB7CisJaW50CUNvbW1hbmQ7CisJdW5pb24geworCQlzdHJ1Y3QgY29tTWFwcGVyCUVudHJ5OworCQlpbnQJCQlDb21NYXBwaW5nQmFzZWRPblVTQlBvcnQ7CS8qIEJvb2xlYW4gdmFsdWUgKi8KKwl9IHU7Cit9OworCisvKgorICoJUHJvZHVjdCBpbmZvcm1hdGlvbiByZWFkIGZyb20gdGhlIEVkZ2Vwb3J0CisgKi8KK3N0cnVjdCBlZGdlcG9ydF9wcm9kdWN0X2luZm8geworCV9fdTE2CVByb2R1Y3RJZDsJCQkvKiBQcm9kdWN0IElkZW50aWZpZXIgKi8KKwlfX3U4CU51bVBvcnRzOwkJCS8qIE51bWJlciBvZiBwb3J0cyBvbiBlZGdlcG9ydCAqLworCV9fdTgJUHJvZEluZm9WZXI7CQkJLyogV2hhdCB2ZXJzaW9uIG9mIHN0cnVjdHVyZSBpcyB0aGlzPyAqLworCisJX191MzIJSXNTZXJ2ZXIgICAgICAgIDoxOwkJLyogU2V0IGlmIFNlcnZlciAqLworCV9fdTMyCUlzUlMyMzIgICAgICAgICA6MTsJCS8qIFNldCBpZiBSUy0yMzIgcG9ydHMgZXhpc3QgKi8KKwlfX3UzMglJc1JTNDIyICAgICAgICAgOjE7CQkvKiBTZXQgaWYgUlMtNDIyIHBvcnRzIGV4aXN0ICovCisJX191MzIJSXNSUzQ4NSAgICAgICAgIDoxOwkJLyogU2V0IGlmIFJTLTQ4NSBwb3J0cyBleGlzdCAqLworCV9fdTMyCUlzUmVzZXJ2ZWQgICAgICA6Mjg7CQkvKiBSZXNlcnZlZCBmb3IgbGF0ZXIgZXhwYW5zaW9uICovCisKKwlfX3U4CVJvbVNpemU7CQkJLyogU2l6ZSBvZiBST00vRTJQUk9NIGluIEsgKi8KKwlfX3U4CVJhbVNpemU7CQkJLyogU2l6ZSBvZiBleHRlcm5hbCBSQU0gaW4gSyAqLworCV9fdTgJQ3B1UmV2OwkJCQkvKiBDUFUgcmV2aXNpb24gbGV2ZWwgKGNoZyBvbmx5IGlmIHMvdyB2aXNpYmxlKSAqLworCV9fdTgJQm9hcmRSZXY7CQkJLyogUENCIHJldmlzaW9uIGxldmVsIChjaGcgb25seSBpZiBzL3cgdmlzaWJsZSkgKi8KKworCV9fdTgJQm9vdE1ham9yVmVyc2lvbjsJCS8qIEJvb3QgRmlybXdhcmUgdmVyc2lvbjogeHguICovCisJX191OAlCb290TWlub3JWZXJzaW9uOwkJLyoJICAgCQkgIHl5LiAqLworCV9fbGUxNglCb290QnVpbGROdW1iZXI7CQkvKgkJICAgICAgCSAgenp6eiAoTEUgZm9ybWF0KSAqLworCisJX191OAlGaXJtd2FyZU1ham9yVmVyc2lvbjsJCS8qIE9wZXJhdGlvbmFsIEZpcm13YXJlIHZlcnNpb246eHguICovCisJX191OAlGaXJtd2FyZU1pbm9yVmVyc2lvbjsJCS8qCQkJCXl5LiAqLworCV9fbGUxNglGaXJtd2FyZUJ1aWxkTnVtYmVyOwkJLyoJCQkJenp6eiAoTEUgZm9ybWF0KSAqLworCisJX191OAlNYW51ZmFjdHVyZURlc2NEYXRlWzNdOwkJLyogTU0vREQvWVkgd2hlbiBkZXNjcmlwdG9yIHRlbXBsYXRlIHdhcyBjb21waWxlZCAqLworCV9fdTgJVW51c2VkMVsxXTsJCQkvKiBBdmFpbGFibGUgKi8KKworCV9fdTgJaURvd25sb2FkRmlsZTsJCQkvKiBXaGF0IHRvIGRvd25sb2FkIHRvIEVQaUMgZGV2aWNlICovCisJX191OAlVbnVzZWQyWzJdOwkJCS8qIEF2YWlsYWJsZSAqLworfTsKKworLyoKKyAqCUVkZ2Vwb3J0IFN0cmluZ2Jsb2NrIFN0cmluZyBsb2NhdGlvbnMKKyAqLworI2RlZmluZSBFREdFU1RSSU5HX01BTlVGTkFNRQkJMQkvKiBNYW51ZmFjdHVyZSBOYW1lICovCisjZGVmaW5lIEVER0VTVFJJTkdfUFJPRE5BTUUJCTIJLyogUHJvZHVjdCBOYW1lICovCisjZGVmaW5lIEVER0VTVFJJTkdfU0VSSUFMTlVNCQkzCS8qIFNlcmlhbCBOdW1iZXIgKi8KKyNkZWZpbmUgRURHRVNUUklOR19BU1NFTU5VTQkJNAkvKiBBc3NlbWJseSBOdW1iZXIgKi8KKyNkZWZpbmUgRURHRVNUUklOR19PRU1BU1NFTU5VTQkJNQkvKiBPRU0gQXNzZW1ibHkgTnVtYmVyICovCisjZGVmaW5lIEVER0VTVFJJTkdfTUFOVUZEQVRFCQk2CS8qIE1hbnVmYWN0dXJlIERhdGUgKi8KKyNkZWZpbmUgRURHRVNUUklOR19PUklHU0VSSUFMTlVNCTcJLyogU2VyaWFsIE51bWJlciAqLworCitzdHJ1Y3Qgc3RyaW5nX2Jsb2NrIHsKKwlfX3UxNglOdW1TdHJpbmdzOwkJCS8qIE51bWJlciBvZiBzdHJpbmdzIGluIGJsb2NrICovCisJX191MTYJU3RyaW5nc1sxXTsJCQkvKiBTdGFydCBvZiBzdHJpbmcgYmxvY2sgKi8KK307CisKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19md19ib290LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZndfYm9vdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5OWZhZmEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZndfYm9vdC5oCkBAIC0wLDAgKzEsNTU2IEBACisvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisvLyogRWRnZXBvcnQvNCBCaW5hcnkgSW1hZ2UKKy8vKiBHZW5lcmF0ZWQgYnkgSEVYMkMgdjEuMDYKKy8vKiBDb3B5cmlnaHQgKEMpIDE5OTggSW5zaWRlIE91dCBOZXR3b3JrcywgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vKglUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorLy8qCWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisvLyoJdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKy8vKgkoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisKKy8vSW1hZ2Ugc3RydWN0dXJlIGRlZmluaXRpb24KKyNpZiAhZGVmaW5lZChERUZJTkVEX0VER0VfRklSTVdBUkVfSU1BR0VfUkVDT1JEKQorI2RlZmluZSBERUZJTkVEX0VER0VfRklSTVdBUkVfSU1BR0VfUkVDT1JECisJc3RydWN0IGVkZ2VfZmlybXdhcmVfaW1hZ2VfcmVjb3JkIHsKKwkJX19sZTE2IEV4dEFkZHI7CisJCV9fbGUxNiBBZGRyOworCQlfX2xlMTYgTGVuOworCQl1bnNpZ25lZCBjaGFyICBEYXRhWzBdOworCX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCisJc3RydWN0IGVkZ2VfZmlybXdhcmVfdmVyc2lvbl9pbmZvIHsKKwkJdW5zaWduZWQgY2hhcgkgTWFqb3JWZXJzaW9uOworCQl1bnNpZ25lZCBjaGFyICBNaW5vclZlcnNpb247CisJCXVuc2lnbmVkIHNob3J0IEJ1aWxkTnVtYmVyOworCX07CisKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoSU1BR0VfQVJSQVlfTkFNRSkKKyNkZWZpbmUgSU1BR0VfQVJSQVlfTkFNRQkJRmlybXdhcmVJbWFnZQorI2RlZmluZSBJTUFHRV9WRVJTSU9OX05BTUUJRmlybXdhcmVJbWFnZVZlcnNpb24KKyNlbmRpZgorCitzdGF0aWMgdW5zaWduZWQgY2hhciBJTUFHRV9BUlJBWV9OQU1FW10gPSB7CisKKy8vIFNlZ21lbnQgIzEsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMDAsIExlbmd0aCA2CisweGZmLDB4MDAsMHgwMCwweDAwLDB4MDYsMHgwMCwKKyAgICAweDAyLCAweDAwLCAweDgwLCAweDAyLCAweDAwLCAweDAzLCAKKworLy8gU2VnbWVudCAjMiwgU3RhcnQgQWRkcmVzcyAwMGZmMDAwYiwgTGVuZ3RoIDMKKzB4ZmYsMHgwMCwweDBiLDB4MDAsMHgwMywweDAwLAorICAgIDB4MDIsIDB4MDAsIDB4MGIsIAorCisvLyBTZWdtZW50ICMzLCBTdGFydCBBZGRyZXNzIDAwZmYwMDEzLCBMZW5ndGggMworMHhmZiwweDAwLDB4MTMsMHgwMCwweDAzLDB4MDAsCisgICAgMHgwMiwgMHgwMSwgMHhiOCwgCisKKy8vIFNlZ21lbnQgIzQsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMWIsIExlbmd0aCAzCisweGZmLDB4MDAsMHgxYiwweDAwLDB4MDMsMHgwMCwKKyAgICAweDAyLCAweDAwLCAweDFiLCAKKworLy8gU2VnbWVudCAjNSwgU3RhcnQgQWRkcmVzcyAwMGZmMDAyMywgTGVuZ3RoIDMKKzB4ZmYsMHgwMCwweDIzLDB4MDAsMHgwMywweDAwLAorICAgIDB4MDIsIDB4MDAsIDB4MjMsIAorCisvLyBTZWdtZW50ICM2LCBTdGFydCBBZGRyZXNzIDAwZmYwMDJiLCBMZW5ndGggMworMHhmZiwweDAwLDB4MmIsMHgwMCwweDAzLDB4MDAsCisgICAgMHgwMiwgMHgwMCwgMHgyYiwgCisKKy8vIFNlZ21lbnQgIzcsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMzMsIExlbmd0aCAzCisweGZmLDB4MDAsMHgzMywweDAwLDB4MDMsMHgwMCwKKyAgICAweDAyLCAweDAwLCAweDMzLCAKKworLy8gU2VnbWVudCAjOCwgU3RhcnQgQWRkcmVzcyAwMGZmMDAzYiwgTGVuZ3RoIDMKKzB4ZmYsMHgwMCwweDNiLDB4MDAsMHgwMywweDAwLAorICAgIDB4MDIsIDB4MDAsIDB4M2IsIAorCisvLyBTZWdtZW50ICM5LCBTdGFydCBBZGRyZXNzIDAwZmYwMDQzLCBMZW5ndGggMworMHhmZiwweDAwLDB4NDMsMHgwMCwweDAzLDB4MDAsCisgICAgMHgwMiwgMHgwMSwgMHhiZCwgCisKKy8vIFNlZ21lbnQgIzEwLCBTdGFydCBBZGRyZXNzIDAwZmYwMDRiLCBMZW5ndGggMworMHhmZiwweDAwLDB4NGIsMHgwMCwweDAzLDB4MDAsCisgICAgMHgwMiwgMHgwMSwgMHhkMCwgCisKKy8vIFNlZ21lbnQgIzExLCBTdGFydCBBZGRyZXNzIDAwZmYwMDUzLCBMZW5ndGggMworMHhmZiwweDAwLDB4NTMsMHgwMCwweDAzLDB4MDAsCisgICAgMHgwMiwgMHgwMSwgMHgyMSwgCisKKy8vIFNlZ21lbnQgIzEyLCBTdGFydCBBZGRyZXNzIDAwZmYwMDdiLCBMZW5ndGggMworMHhmZiwweDAwLDB4N2IsMHgwMCwweDAzLDB4MDAsCisgICAgMHgwMiwgMHgwMCwgMHg3YiwgCisKKy8vIFNlZ21lbnQgIzEzLCBTdGFydCBBZGRyZXNzIDAwZmYwMDgwLCBMZW5ndGggMzU4CisweGZmLDB4MDAsMHg4MCwweDAwLDB4NjYsMHgwMSwKKyAgICAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDNmLCAweGYyLCAweDdlLCAweGY4LCAweDAwLCAweDIzLCAweDdlLCAweDAwLCAweDAxLCAweDdlLCAweDEwLCAKKyAgICAweDAwLCAweDEyLCAweDA3LCAweDVmLCAweDY5LCAweDIwLCAweDAwLCAweDBhLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDc4LCAweDA1LCAweDc1LCAweDkwLCAKKyAgICAweDBkLCAweDgwLCAweDAzLCAweDc1LCAweDkwLCAweDFkLCAweGQyLCAweGI1LCAweDdlLCAweDAwLCAweDAwLCAweGE1LCAweGQ4LCAweGZkLCAweDc1LCAweGE4LCAKKyAgICAweDAwLCAweDc1LCAweGIxLCAweDAwLCAweGE5LCAweGQ1LCAweDg3LCAweGNhLCAweDI5LCAweDEyLCAweDA5LCAweGNjLCAweDEyLCAweDA5LCAweGEwLCAweGY1LCAKKyAgICAweDA5LCAweDdhLCAweGExLCAweDIwLCAweDEyLCAweDAxLCAweGU2LCAweGRhLCAweDI5LCAweGE5LCAweGQwLCAweGM3LCAweDdlLCAweDAwLCAweDA1LCAweDdhLCAKKyAgICAweDAxLCAweGYxLCAweDc1LCAweGUxLCAweDEwLCAweGE5LCAweGQ3LCAweGY0LCAweGE5LCAweGQ3LCAweGU0LCAweGE1LCAweGQ4LCAweGYxLCAweDc1LCAweGYxLCAKKyAgICAweDAwLCAweDc1LCAweGUxLCAweDNmLCAweDc1LCAweGEyLCAweDAzLCAweDc1LCAweGEzLCAweDAwLCAweDc1LCAweGMwLCAweDAwLCAweDc1LCAweGMxLCAweDAwLCAKKyAgICAweGE5LCAweGQxLCAweGIxLCAweGE5LCAweGQwLCAweGIxLCAweGE5LCAweGQ1LCAweGQzLCAweGQyLCAweGFmLCAweGU0LCAweDdlLCAweDA0LCAweDI4LCAweDAwLCAKKyAgICAweDhkLCAweGVmLCAweDFiLCAweDA0LCAweDc4LCAweGZhLCAweDA0LCAweGE5LCAweDM0LCAweGQzLCAweDAzLCAweDMwLCAweGUwLCAweGVlLCAweGJlLCAweDI0LCAKKyAgICAweDAwLCAweDAwLCAweDc4LCAweDA1LCAweDYzLCAweDkwLCAweDMwLCAweDgwLCAweGUzLCAweGIyLCAweDk1LCAweDgwLCAweGRmLCAweGJlLCAweGIwLCAweDAyLCAKKyAgICAweDIyLCAweGMwLCAweGQwLCAweGE5LCAweDIwLCAweGRmLCAweDBmLCAweGE5LCAweDMxLCAweGRmLCAweDAzLCAweDAyLCAweDAxLCAweGI1LCAweDc1LCAweDA4LCAKKyAgICAweDAxLCAweDEyLCAweDA4LCAweDMzLCAweDgwLCAweGZlLCAweDc1LCAweDA4LCAweGZlLCAweDEyLCAweDA4LCAweDMzLCAweDc1LCAweGE4LCAweDAwLCAweDdlLCAKKyAgICAweGIzLCAweDNmLCAweGYyLCAweDMwLCAweGUwLCAweDRiLCAweDMwLCAweDAxLCAweDQ2LCAweGMyLCAweDkyLCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAKKyAgICAweDExLCAweDA5LCAweDc0LCAweDA4LCAweDE5LCAweGIyLCAweDAwLCAweDEwLCAweDc0LCAweDBlLCAweDE5LCAweGIyLCAweDAwLCAweDA0LCAweDJlLCAweDI0LCAKKyAgICAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweGVkLCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDA5LCAweGU0LCAweGQ1LCAweGUwLCAweGZkLCAKKyAgICAweDA5LCAweGIyLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDBhLCAweDA5LCAweGIyLCAweDAwLCAweDAwLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDgwLCAKKyAgICAweGViLCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweGU0LCAweDQzLCAweDkwLCAweDMwLCAweGQyLCAweGFhLCAweDgwLCAweDA1LCAweGQyLCAKKyAgICAweGFhLCAweDQzLCAweDkwLCAweDM0LCAweGQyLCAweGFmLCAweGE5LCAweGQxLCAweDg3LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweGE5LCAweDExLCAKKyAgICAweGRmLCAweDAzLCAweGE5LCAweGQyLCAweGRmLCAweDc1LCAweDA4LCAweGZmLCAweDEyLCAweDA4LCAweDMzLCAweGMwLCAweGQxLCAweGNhLCAweDAyLCAweGZmLCAKKyAgICAweGNhLCAweDA2LCAweDgzLCAweDAwLCAweDMyLCAweGQwLCAweGQwLCAweDMyLCAweGMyLCAweDhiLCAweGMyLCAweGFhLCAweDMyLCAweDc1LCAweDA4LCAweDA4LCAKKyAgICAweDEyLCAweDA4LCAweDMzLCAweGE5LCAweGMwLCAweGIxLCAweGE5LCAweGM1LCAweGQzLCAweGE5LCAweGM2LCAweGQzLCAweGE5LCAweGQyLCAweGIxLCAweDMyLCAKKyAgICAweGNhLCAweGI4LCAweDc1LCAweDA4LCAweDAyLCAweDEyLCAweDA4LCAweDMzLCAweGU1LCAweGMwLCAweDU0LCAweDAzLCAweDY4LCAweDA1LCAweDEyLCAweDAxLCAKKyAgICAweGVlLCAweDgwLCAweGY1LCAweGRhLCAweGI4LCAweDMyLCAKKworLy8gU2VnbWVudCAjMTQsIFN0YXJ0IEFkZHJlc3MgMDBmZjFiY2EsIExlbmd0aCAxCisweGZmLDB4MDAsMHhjYSwweDFiLDB4MDEsMHgwMCwKKyAgICAweDAwLCAKKworLy8gU2VnbWVudCAjMTUsIFN0YXJ0IEFkZHJlc3MgMDBmZjAxZTYsIExlbmd0aCAxNjEzCisweGZmLDB4MDAsMHhlNiwweDAxLDB4NGQsMHgwNiwKKyAgICAweGU0LCAweDdhLCAweGIzLCAweDNmLCAweGYxLCAweDAyLCAweDAyLCAweDYzLCAweGNhLCAweDBiLCAweGNhLCAweDFiLCAweGNhLCAweDJiLCAweGNhLCAweDNiLCAKKyAgICAweGNhLCAweDRiLCAweGNhLCAweDViLCAweGNhLCAweDZiLCAweGNhLCAweDdiLCAweGNhLCAweGViLCAweGMwLCAweGYxLCAweDdlLCAweGIzLCAweDAxLCAweDJiLCAKKyAgICAweGI0LCAweDAwLCAweDAyLCAweDgwLCAweDE5LCAweGI0LCAweDAxLCAweDE2LCAweDMwLCAweGMwLCAweDA4LCAweDc1LCAweGYxLCAweDAwLCAweDEyLCAweDAyLCAKKyAgICAweDRkLCAweDgwLCAweDFmLCAweDMwLCAweGMxLCAweDFjLCAweDc1LCAweGYxLCAweDAwLCAweDEyLCAweDAyLCAweGRlLCAweDgwLCAweDE0LCAweDMwLCAweGMxLCAKKyAgICAweDA4LCAweDc1LCAweGYxLCAweDAwLCAweDEyLCAweDAyLCAweGRlLCAweDgwLCAweDA5LCAweDMwLCAweGMwLCAweDA2LCAweDc1LCAweGYxLCAweDAwLCAweDEyLCAKKyAgICAweDAyLCAweDRkLCAweGQwLCAweGYxLCAweGRhLCAweGViLCAweGRhLCAweDdiLCAweGRhLCAweDZiLCAweGRhLCAweDViLCAweGRhLCAweDRiLCAweGRhLCAweDNiLCAKKyAgICAweGRhLCAweDJiLCAweGRhLCAweDFiLCAweGRhLCAweDBiLCAweDIyLCAweGMyLCAweGMwLCAweDdlLCAweGIzLCAweDAxLCAweDJiLCAweGI0LCAweDAyLCAweDA3LCAKKyAgICAweDEyLCAweDAyLCAweDZmLCAweDAyLCAweDAyLCAweDYzLCAweDIyLCAweGI0LCAweDAxLCAweGZjLCAweDAyLCAweDAyLCAweGE5LCAweDdlLCAweDAwLCAweDAwLCAKKyAgICAweDdhLCAweDAzLCAweDAxLCAweDJiLCAweDdhLCAweDAzLCAweDAxLCAweDJjLCAweDIyLCAweDdlLCAweGIzLCAweDAxLCAweDIzLCAweDU0LCAweDYwLCAweDYwLCAKKyAgICAweDA1LCAweGI0LCAweDQwLCAweDE1LCAweDgwLCAweDEzLCAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDA1LCAweDBjLCAweDc1LCAweDA4LCAweDcxLCAKKyAgICAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAweDI2LCAweGY1LCAweDhmLCAweDIyLCAweDc1LCAweGY2LCAweDAwLCAweDIyLCAweGJlLCAweDU3LCAKKyAgICAweDAxLCAweDI5LCAweDI4LCAweDA0LCAweDdlLCAweDU3LCAweDAxLCAweDI5LCAweDdhLCAweDBmLCAweDAxLCAweDJlLCAweDdhLCAweDU3LCAweDAxLCAweDMyLCAKKyAgICAweDAyLCAweDAyLCAweGE5LCAweDdlLCAweGVmLCAweDAxLCAweDJlLCAweDdlLCAweGY3LCAweDAxLCAweDMyLCAweDdlLCAweDA3LCAweDAxLCAweDMyLCAweDRkLCAKKyAgICAweDAwLCAweDY4LCAweDIxLCAweDdlLCAweDAwLCAweDAwLCAweDdlLCAweGViLCAweGIwLCAweGY1LCAweGYzLCAweGEzLCAweGE1LCAweDA4LCAweDFiLCAweGY0LCAKKyAgICAweDY4LCAweDA0LCAweGE1LCAweGI4LCAweDA4LCAweGYwLCAweDdhLCAweGVmLCAweDAxLCAweDJlLCAweDdhLCAweGY3LCAweDAxLCAweDMyLCAweDc1LCAweDA4LCAKKyAgICAweDA2LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDAxLCAweGY2LCAweDIyLCAweGMyLCAweGMxLCAweDc1LCAweDA4LCAweDAzLCAweDEyLCAweDA4LCAweDMzLCAKKyAgICAweGE5LCAweDM2LCAweGUyLCAweDE2LCAweGU1LCAweGY1LCAweDU0LCAweGMwLCAweDY4LCAweDA3LCAweGE5LCAweGQ3LCAweGY0LCAweGE5LCAweDI3LCAweGY0LCAKKyAgICAweGZjLCAweDUzLCAweGUxLCAweDNmLCAweDQzLCAweGYyLCAweDg4LCAweDAyLCAweDAzLCAweDU1LCAweDdlLCAweGIzLCAweDAxLCAweDJjLCAweGI0LCAweDAyLCAKKyAgICAweDBmLCAweGE5LCAweGQ0LCAweGU0LCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDAxLCAweDJjLCAweDdhLCAweGIzLCAweDAxLCAweDJiLCAweDIyLCAKKyAgICAweGI0LCAweDAxLCAweDM5LCAweDdlLCAweDIxLCAweGU2LCAweDdjLCAweDMyLCAweDdlLCAweDEzLCAweDAxLCAweDJkLCAweDJjLCAweDIxLCAweDdhLCAweDIzLCAKKyAgICAweDAxLCAweDJkLCAweDdlLCAweDAwLCAweDAwLCAweDJlLCAweDA0LCAweDAxLCAweDM0LCAweGU1LCAweGUzLCAweDdhLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAKKyAgICAweGE1LCAweGRiLCAweGY2LCAweGE5LCAweGQ0LCAweGU0LCAweDc1LCAweDA4LCAweDcwLCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAweDJkLCAKKyAgICAweDdlLCAweGEzLCAweDAxLCAweDJhLCAweGJjLCAweGFiLCAweDc4LCAweDAzLCAweDEyLCAweDAzLCAweGVjLCAweDIyLCAweDAyLCAweDA3LCAweDU1LCAweGU1LCAKKyAgICAweGU2LCAweGI0LCAweDA4LCAweDY1LCAweGE5LCAweGM0LCAweGUyLCAweDdlLCAweDAxLCAweGUzLCAweDdlLCAweDExLCAweGUzLCAweDdlLCAweDMxLCAweGUzLCAKKyAgICAweDdlLCAweDIxLCAweGUzLCAweDdlLCAweDUxLCAweGUzLCAweDdlLCAweDQxLCAweGUzLCAweDdlLCAweDcxLCAweGUzLCAweDdlLCAweDYxLCAweGUzLCAweDdhLCAKKyAgICAweDBmLCAweDAxLCAweDIzLCAweDdhLCAweDFmLCAweDAxLCAweDI3LCAweDc1LCAweDA4LCAweDA0LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDAxLCAweDA4LCAKKyAgICAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDExLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDIxLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAKKyAgICAweDMxLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDQxLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDUxLCAweDA4LCAweDEyLCAweDA4LCAKKyAgICAweDMzLCAweDdhLCAweDYxLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDcxLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweGE5LCAweGQ0LCAweGU0LCAKKyAgICAweGE5LCAweGQ3LCAweGY0LCAweGE5LCAweGM2LCAweGUyLCAweDEyLCAweDAzLCAweGMwLCAweDIyLCAweDZkLCAweDAwLCAweDdlLCAweDE0LCAweDAxLCAweDAyLCAKKyAgICAweDdhLCAweDA3LCAweDAxLCAweDMyLCAweDdhLCAweDAzLCAweDAxLCAweDJkLCAweDdlLCAweGIzLCAweDAxLCAweDIzLCAweDIwLCAweGU3LCAweDBmLCAweDdhLCAKKyAgICAweDIzLCAweDAxLCAweDJjLCAweDdhLCAweDMzLCAweDAxLCAweDJiLCAweGJlLCAweDA3LCAweDAxLCAweDI5LCAweDY4LCAweDA5LCAweDIyLCAweDdhLCAweDMzLCAKKyAgICAweDAxLCAweDJjLCAweDdhLCAweDIzLCAweDAxLCAweDJiLCAweDdlLCAweGIzLCAweDAxLCAweDIzLCAweDU0LCAweGUzLCAweDIzLCAweDIzLCAweDMwLCAweGUwLCAKKyAgICAweDAyLCAweGQyLCAweGU1LCAweDMwLCAweGU3LCAweDAyLCAweGQyLCAweGU0LCAweDMwLCAweGU1LCAweDA2LCAweDMwLCAweGU0LCAweDAzLCAweDAyLCAweDA3LCAKKyAgICAweDU1LCAweDU0LCAweDNlLCAweGY1LCAweGYwLCAweDAzLCAweDU0LCAweDFmLCAweGMzLCAweDI1LCAweGYwLCAweDkwLCAweDA0LCAweDE4LCAweDc1LCAweDg0LCAKKyAgICAweGZmLCAweDczLCAweDAyLCAweDA1LCAweDZjLCAweDAyLCAweDA0LCAweDYwLCAweDAyLCAweDA2LCAweDA5LCAweDAyLCAweDA2LCAweDI0LCAweDAyLCAweDA1LCAKKyAgICAweDA1LCAweDAyLCAweDA0LCAweGM2LCAweDAyLCAweDA2LCAweDNkLCAweDAyLCAweDA2LCAweDNkLCAweDAyLCAweDA2LCAweDQwLCAweDAyLCAweDA2LCAweDQwLCAKKyAgICAweDAyLCAweDA2LCAweDQwLCAweDAyLCAweDA2LCAweDQwLCAweDAyLCAweDA2LCAweDQwLCAweDAyLCAweDA2LCAweDQwLCAweDAyLCAweDA2LCAweDQwLCAweDAyLCAKKyAgICAweDA2LCAweDQwLCAweDAyLCAweDA2LCAweDQ2LCAweDAyLCAweDA2LCAweGZhLCAweDAyLCAweDA2LCAweDQzLCAweDAyLCAweDA2LCAweDQzLCAweDAyLCAweDA2LCAKKyAgICAweDQzLCAweDAyLCAweDA2LCAweDQzLCAweDAyLCAweDA2LCAweDQzLCAweDAyLCAweDA2LCAweDQzLCAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDA2LCAKKyAgICAweDJhLCAweDdlLCAweGIzLCAweDAxLCAweDI1LCAweDYwLCAweDU2LCAweDdjLCAweDBiLCAweDdlLCAweDEzLCAweDAxLCAweDI2LCAweDdlLCAweDE3LCAweDAxLCAKKyAgICAweDI3LCAweDc1LCAweDA4LCAweDcyLCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDAxLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDExLCAweDA4LCAKKyAgICAweDEyLCAweDA4LCAweDMzLCAweDEyLCAweDA3LCAweDVmLCAweDQwLCAweDM1LCAweDAyLCAweDAyLCAweDk0LCAweGI0LCAweDA4LCAweDEwLCAweDc1LCAweDA4LCAKKyAgICAweDc0LCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDNmLCAweGYxLCAweGY1LCAweGYzLCAweDc1LCAweGY2LCAweDAxLCAweDIyLCAweGI0LCAweDAwLCAKKyAgICAweDFjLCAweDc1LCAweDA4LCAweDc1LCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDNmLCAweGYyLCAweDMwLCAweGUwLCAweDA1LCAweDc1LCAweGYzLCAKKyAgICAweDAyLCAweDgwLCAweDAzLCAweDc1LCAweGYzLCAweDAwLCAweDc1LCAweGYzLCAweDAwLCAweDc1LCAweGY2LCAweDAyLCAweDIyLCAweDAyLCAweDA3LCAweDU1LCAKKyAgICAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDAwLCAweDM1LCAweDc1LCAweDA4LCAweDc2LCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAKKyAgICAweDI4LCAweDU0LCAweDBmLCAweGY1LCAweGYxLCAweDdlLCAweGIzLCAweDAxLCAweDI4LCAweDIwLCAweGU3LCAweDA5LCAweGU1LCAweGUxLCAweDMwLCAweGU3LCAKKyAgICAweDBkLCAweDc0LCAweDAxLCAweDgwLCAweDBiLCAweGU1LCAweGUxLCAweDMwLCAweGU2LCAweDA0LCAweDc0LCAweDAxLCAweDgwLCAweDAyLCAweDc0LCAweDAwLCAKKyAgICAweDUzLCAweGYxLCAweDgwLCAweGY1LCAweGYzLCAweDc1LCAweGYzLCAweDAwLCAweDc1LCAweGY2LCAweDAyLCAweDIyLCAweDAyLCAweDA3LCAweDU1LCAweGMwLCAKKyAgICAweGYxLCAweDdlLCAweGIzLCAweDAxLCAweDI4LCAweDU0LCAweDBmLCAweDQyLCAweGYxLCAweDdlLCAweGIzLCAweDAxLCAweDI2LCAweGI0LCAweDAwLCAweDQ1LCAKKyAgICAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDAxLCAweDI0LCAweDc1LCAweDA4LCAweDc3LCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAKKyAgICAweDI4LCAweDU0LCAweDBmLCAweDc4LCAweDA1LCAweDUzLCAweGUxLCAweDNmLCAweDgwLCAweDM3LCAweDdlLCAweGIzLCAweDAxLCAweDI4LCAweDIwLCAweGU3LCAKKyAgICAweDA1LCAweDUzLCAweGUxLCAweDdmLCAweDgwLCAweDJiLCAweDUzLCAweGUxLCAweGJmLCAweDgwLCAweDI2LCAweGI0LCAweDAzLCAweDE3LCAweDc1LCAweDA4LCAKKyAgICAweDc4LCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAweDI4LCAweDIwLCAweGU3LCAweDA1LCAweDQzLCAweGUxLCAweDgwLCAweDgwLCAweDExLCAKKyAgICAweDQzLCAweGUxLCAweDQwLCAweDgwLCAweDBjLCAweDQzLCAweGUxLCAweGMwLCAweGQwLCAweGYxLCAweDc1LCAweDA4LCAweDA3LCAweDEyLCAweDA4LCAweDMzLCAKKyAgICAweDIyLCAweGQwLCAweGYxLCAweDAyLCAweDAyLCAweDkwLCAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDA5LCAweDIzLCAweDc1LCAweDA4LCAweDc5LCAKKyAgICAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAweDI2LCAweGJlLCAweGIzLCAweDNmLCAweGYxLCAweDY4LCAweDExLCAweGNhLCAweGI4LCAweGMwLCAKKyAgICAweGYxLCAweDEyLCAweDAxLCAweDFkLCAweGQwLCAweGYxLCAweGRhLCAweGI4LCAweDUwLCAweDc2LCAweDdhLCAweGIzLCAweDNmLCAweGYxLCAweDgwLCAweDZkLCAKKyAgICAweGI0LCAweDA1LCAweDA4LCAweDc1LCAweDA4LCAweDdhLCAweDEyLCAweDA4LCAweDMzLCAweDgwLCAweDYyLCAweGI0LCAweDAzLCAweDE5LCAweDc1LCAweDA4LCAKKyAgICAweDdiLCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAweDI2LCAweGI0LCAweDAxLCAweDU1LCAweDdlLCAweGIzLCAweDNmLCAweGYyLCAweDQ0LCAKKyAgICAweDAxLCAweDdhLCAweGIzLCAweDNmLCAweGYyLCAweDgwLCAweDQ2LCAweGI0LCAweDAxLCAweDE5LCAweDc1LCAweDA4LCAweDdjLCAweDEyLCAweDA4LCAweDMzLCAKKyAgICAweDdlLCAweGIzLCAweDAxLCAweDI2LCAweGI0LCAweDAxLCAweDM5LCAweDdlLCAweGIzLCAweDNmLCAweGYyLCAweDU0LCAweGZlLCAweDdhLCAweGIzLCAweDNmLCAKKyAgICAweGYyLCAweDgwLCAweDJhLCAweGI0LCAweDA3LCAweDJhLCAweDdlLCAweGIzLCAweDAxLCAweDI1LCAweDYwLCAweDI0LCAweDdjLCAweDBiLCAweDdlLCAweDEzLCAKKyAgICAweDAxLCAweDI2LCAweDdlLCAweDE3LCAweDAxLCAweDI3LCAweDc1LCAweDA4LCAweDczLCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDAxLCAweDA4LCAweDEyLCAKKyAgICAweDA4LCAweDMzLCAweDdhLCAweDExLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweDEyLCAweDA3LCAweDhiLCAweDQwLCAweDAzLCAweDAyLCAweDAyLCAweDkwLCAKKyAgICAweDAyLCAweDA3LCAweDU1LCAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDBiLCAweGY2LCAweDc1LCAweDA4LCAweDdkLCAweDEyLCAweDA4LCAweDMzLCAKKyAgICAweDdlLCAweGIzLCAweDAxLCAweDI2LCAweDdlLCAweGEzLCAweDAxLCAweDI4LCAweDRjLCAweGFiLCAweDc4LCAweGU0LCAweDgwLCAweGRmLCAweDdlLCAweGIzLCAKKyAgICAweDAxLCAweDI0LCAweGI0LCAweDBhLCAweGRiLCAweDc1LCAweDA4LCAweDdlLCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAweDI2LCAweDcwLCAKKyAgICAweGNmLCAweGY1LCAweGYzLCAweDc1LCAweGY2LCAweDAxLCAweDIyLCAweDAyLCAweDA3LCAweDU1LCAweDAyLCAweDA3LCAweDU1LCAweDAyLCAweDA3LCAweDU1LCAKKyAgICAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDA0LCAweDIwLCAweDc1LCAweDA4LCAweGMzLCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweDA0LCAweDAwLCAKKyAgICAweDAxLCAweDdlLCAweDE3LCAweDAxLCAweDI1LCAweDdlLCAweDE4LCAweDAxLCAweDM0LCAweDdhLCAweDFjLCAweDAwLCAweDAwLCAweDdlLCAweDQ3LCAweDAxLCAKKyAgICAweDI5LCAweDEyLCAweDA4LCAweDNmLCAweDAyLCAweDA2LCAweGY0LCAweGI0LCAweDA2LCAweDNhLCAweDc1LCAweDA4LCAweGMxLCAweDEyLCAweDA4LCAweDMzLCAKKyAgICAweDdlLCAweDU4LCAweDAwLCAweDAwLCAweDdhLCAweDVjLCAweDAwLCAweGZlLCAweDdkLCAweGNhLCAweDdlLCAweGQ3LCAweDAxLCAweDI1LCAweDdlLCAweDc4LCAKKyAgICAweDAxLCAweDM0LCAweDdhLCAweDdjLCAweDAwLCAweDAwLCAweDdlLCAweDc3LCAweDAxLCAweDI5LCAweDc1LCAweDA4LCAweGMxLCAweDEyLCAweDA4LCAweDMzLCAKKyAgICAweGMwLCAweGE4LCAweGMwLCAweDg3LCAweGMyLCAweGFmLCAweGE5LCAweGQ1LCAweDg3LCAweDEyLCAweDA4LCAweGQ2LCAweGQwLCAweDg3LCAweGQwLCAweGE4LCAKKyAgICAweDQwLCAweDRmLCAweDgwLCAweDRhLCAweGI0LCAweDAwLCAweDFjLCAweGMyLCAweGFmLCAweGE5LCAweGQ1LCAweDg3LCAweDEyLCAweDAyLCAweDkwLCAweGU0LCAKKyAgICAweDhkLCAweGVmLCAweDhkLCAweGVmLCAweDhkLCAweGVmLCAweGQ1LCAweGUwLCAweGY3LCAweGMwLCAweGQxLCAweGNhLCAweDAyLCAweGZmLCAweGNhLCAweDA2LCAKKyAgICAweDAwLCAweDAwLCAweDMyLCAweGI0LCAweDA5LCAweDEyLCAweDdlLCAweDU3LCAweDAxLCAweDI1LCAweDRkLCAweDU1LCAweDY4LCAweDA1LCAweGE5LCAweGQyLCAKKyAgICAweGIxLCAweDgwLCAweDAzLCAweGE5LCAweGMyLCAweGIxLCAweDgwLCAweDE2LCAweGI0LCAweDA3LCAweDE2LCAweGMyLCAweGFmLCAweDdlLCAweDA3LCAweDAxLCAKKyAgICAweDI3LCAweDdlLCAweDE3LCAweDAxLCAweDI1LCAweGMwLCAweGQxLCAweGNhLCAweDE4LCAweGNhLCAweDM4LCAweGNhLCAweDI4LCAweDMyLCAweDAyLCAweDAyLCAKKyAgICAweDkwLCAweDAyLCAweDA3LCAweDU1LCAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDAzLCAweDE1LCAweDc1LCAweDA4LCAweGMyLCAweDEyLCAweDA4LCAKKyAgICAweDMzLCAweDdlLCAweDA0LCAweDAwLCAweDAxLCAweDdlLCAweDE3LCAweDAxLCAweDI1LCAweDdlLCAweDU3LCAweDAxLCAweDI5LCAweDAyLCAweDAyLCAweDk0LCAKKyAgICAweGI0LCAweDA1LCAweDM5LCAweDc1LCAweDA4LCAweGMwLCAweDEyLCAweDA4LCAweDMzLCAweGMwLCAweGE4LCAweGMwLCAweDg3LCAweGMyLCAweGFmLCAweGE5LCAKKyAgICAweGQ1LCAweDg3LCAweDdlLCAweDA4LCAweDAxLCAweDM0LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweDdlLCAweDI0LCAweDAwLCAweGZlLCAweDdlLCAweDM3LCAKKyAgICAweDAxLCAweDI1LCAweDdlLCAweDQ3LCAweDAxLCAweDI5LCAweDEyLCAweDA4LCAweDNmLCAweGQwLCAweDg3LCAweGQwLCAweGE4LCAweDdlLCAweDA4LCAweDAxLCAKKyAgICAweDM0LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweDdlLCAweDU3LCAweDAxLCAweDI5LCAweDAyLCAweDAyLCAweDk0LCAweDAyLCAweDA3LCAweDU1LCAweDc1LCAKKyAgICAweDA4LCAweDA3LCAweDEyLCAweDA4LCAweDMzLCAweDQzLCAweGUxLCAweGMwLCAweDIyLCAweGMwLCAweGE4LCAweGMwLCAweDg3LCAweGMyLCAweGFmLCAweGE5LCAKKyAgICAweGQ1LCAweDg3LCAweDEyLCAweDA3LCAweGNhLCAweDQwLCAweDE5LCAweDdlLCAweDA4LCAweDAxLCAweDM0LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweGNhLCAKKyAgICAweDBiLCAweGNhLCAweDQ5LCAweDEyLCAweDA4LCAweDNmLCAweGRhLCAweDU5LCAweGRhLCAweDBiLCAweGQwLCAweDg3LCAweGQwLCAweGE4LCAweGMzLCAweDIyLCAKKyAgICAweGQwLCAweDg3LCAweGQwLCAweGE4LCAweDIyLCAweGMwLCAweGE4LCAweGMwLCAweDg3LCAweGMyLCAweGFmLCAweGE5LCAweGQ1LCAweDg3LCAweDEyLCAweDA3LCAKKyAgICAweGNhLCAweDQwLCAweDJiLCAweDdlLCAweDU4LCAweDAwLCAweDAwLCAweDdhLCAweDVjLCAweDAwLCAweGZlLCAweDdmLCAweDYxLCAweDdlLCAweDc4LCAweDAxLCAKKyAgICAweDM0LCAweDdhLCAweDdjLCAweDAwLCAweDAwLCAweDdlLCAweDc3LCAweDAxLCAweDI5LCAweGJkLCAweDc0LCAweDc4LCAweDExLCAweDc1LCAweDA4LCAweGMxLCAKKyAgICAweDEyLCAweDA4LCAweDMzLCAweDEyLCAweDA4LCAweGQ2LCAweDQwLCAweDA2LCAweGQwLCAweDg3LCAweGQwLCAweGE4LCAweGMzLCAweDIyLCAweGQwLCAweDg3LCAKKyAgICAweGQwLCAweGE4LCAweGQzLCAweDIyLCAweDdlLCAweDI0LCAweDAwLCAweGZlLCAweDdlLCAweDM0LCAweDdmLCAweGNhLCAweDBiLCAweDFhLCAweDUwLCAweGM1LCAKKyAgICAweGYwLCAweDdkLCAweDYyLCAweDdkLCAweDc1LCAweDdkLCAweDg3LCAweDdlLCAweDM0LCAweDdmLCAweDAzLCAweDdlLCAweDFiLCAweGIwLCAweGJjLCAweDBiLCAKKyAgICAweDUwLCAweDQ5LCAweDNlLCAweDAwLCAweDNlLCAweDAwLCAweDBhLCAweDUwLCAweDJkLCAweDc1LCAweDBiLCAweDNhLCAweDMwLCAweDY5LCAweDUzLCAweDAwLCAKKyAgICAweDAyLCAweGJkLCAweDM4LCAweDUwLCAweDAyLCAweDJkLCAweDM4LCAweGJjLCAweDFiLCAweDUwLCAweDMwLCAweDNlLCAweDEwLCAweDNlLCAweDEwLCAweDBhLCAKKyAgICAweDUxLCAweDJkLCAweDM1LCAweDY5LCAweDQxLCAweDAwLCAweDAyLCAweDBiLCAweDFhLCAweDMwLCAweGJkLCAweDM4LCAweDUwLCAweDAyLCAweDJkLCAweDM4LCAKKyAgICAweGJlLCAweDQ0LCAweGZmLCAweGZmLCAweDc4LCAweDA1LCAweDdlLCAweDFiLCAweDkwLCAweDBhLCAweDQ5LCAweDRkLCAweDQ0LCAweDY4LCAweDBjLCAweGJlLCAKKyAgICAweDQ0LCAweDAwLCAweGZmLCAweDI4LCAweDA0LCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweGMzLCAweDIyLCAweGQzLCAweDIyLCAKKworLy8gU2VnbWVudCAjMTYsIEVYQ0xVREVEIFN0YXJ0IEFkZHJlc3MgMDBmZjdjMDAsIExlbmd0aCAxOTkKKworCisvLyBTZWdtZW50ICMxNywgRVhDTFVERUQgU3RhcnQgQWRkcmVzcyAwMGZmN2YwMCwgTGVuZ3RoIDE5MgorCisKKy8vIFNlZ21lbnQgIzE3LCBTdGFydCBBZGRyZXNzIDAwZmY3ZmMwLCBMZW5ndGggNjQKKzB4ZmYsMHgwMCwweGMwLDB4N2YsMHg0MCwweDAwLAorICAgIDB4NDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4Y2EsIDB4MWIsIDB4MDEsIDB4MGMsIDB4MDIsIDB4MDAsIDB4MDAsIDB4N2MsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIAorICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIAorICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIAorICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4ZjEsIDB4N2YsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIAorCisvLyBTZWdtZW50ICMxOCwgU3RhcnQgQWRkcmVzcyAwMGZmMDgzMywgTGVuZ3RoIDUwMTUKKzB4ZmYsMHgwMCwweDMzLDB4MDgsMHg5NywweDEzLAorICAgIDB4Y2EsIDB4MDgsIDB4N2UsIDB4MDEsIDB4MDgsIDB4N2EsIDB4MDMsIDB4M2YsIDB4ZjAsIDB4ZGEsIDB4MDgsIDB4MjIsIDB4ODAsIDB4NTAsIDB4MGIsIDB4MWEsIAorICAgIDB4NjAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MWEsIDB4NzAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MWEsIDB4ODAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MWEsIDB4OTAsIAorICAgIDB4MGIsIDB4MzUsIDB4MGIsIDB4MWEsIDB4YTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MWEsIDB4YjAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MWEsIDB4YzAsIDB4MGIsIAorICAgIDB4MzUsIDB4MGIsIDB4MWEsIDB4ZDAsIDB4MGIsIDB4MzUsIDB4MWIsIDB4MGEsIDB4NjAsIDB4MGIsIDB4MTUsIDB4MWIsIDB4MGEsIDB4NzAsIDB4MGIsIDB4MTUsIAorICAgIDB4MWIsIDB4MGEsIDB4ODAsIDB4MGIsIDB4MTUsIDB4MWIsIDB4MGEsIDB4OTAsIDB4MGIsIDB4MTUsIDB4MWIsIDB4MGEsIDB4YTAsIDB4MGIsIDB4MTUsIDB4MWIsIAorICAgIDB4MGEsIDB4YjAsIDB4MGIsIDB4MTUsIDB4MWIsIDB4MGEsIDB4YzAsIDB4MGIsIDB4MTUsIDB4MWIsIDB4MGEsIDB4ZDAsIDB4MGIsIDB4MTUsIDB4OWUsIDB4NDQsIAorICAgIDB4MDAsIDB4MTAsIDB4NTAsIDB4YWEsIDB4MmUsIDB4NDQsIDB4MDAsIDB4MTAsIDB4NjgsIDB4MGUsIDB4N2UsIDB4MWIsIDB4YzAsIDB4N2EsIDB4MGIsIDB4YzAsIAorICAgIDB4MGIsIDB4MTQsIDB4MGIsIDB4MzQsIDB4MWIsIDB4NDQsIDB4NzgsIDB4ZjIsIDB4MjIsIDB4N2YsIDB4NmYsIDB4N2YsIDB4ZjAsIDB4MWIsIDB4ZmMsIDB4N2MsIAorICAgIDB4NTQsIDB4N2QsIDB4MzIsIDB4ODAsIDB4MDgsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MWIsIDB4OWUsIDB4NDQsIDB4MDAsIAorICAgIDB4MTAsIDB4NTAsIDB4ZjIsIDB4MmUsIDB4NDQsIDB4MDAsIDB4MTAsIDB4NjgsIDB4MDYsIDB4Y2EsIDB4NDgsIDB4MWIsIDB4NDQsIDB4NzgsIDB4ZmEsIDB4N2YsIAorICAgIDB4ZjYsIDB4ODksIDB4ZTQsIDB4Y2EsIDB4NmIsIDB4NWUsIDB4ZDQsIDB4MDAsIDB4M2YsIDB4NjgsIDB4MjAsIDB4N2UsIDB4ODQsIDB4MDAsIDB4NDAsIDB4OWQsIAorICAgIDB4OGQsIDB4ZGEsIDB4NmIsIDB4YmQsIDB4ODcsIDB4MzgsIDB4MTYsIDB4Y2EsIDB4NzksIDB4N2QsIDB4NzgsIDB4MTIsIDB4MDksIDB4MDAsIDB4ZGEsIDB4NzksIAorICAgIDB4NDAsIDB4MDgsIDB4OWQsIDB4NzgsIDB4NjgsIDB4MDIsIDB4ODAsIDB4MDUsIDB4YzIsIDB4ZDcsIDB4MjIsIDB4ZGEsIDB4NmIsIDB4NDMsIDB4OTAsIDB4MzAsIAorICAgIDB4NzQsIDB4YWEsIDB4MzksIDB4YjUsIDB4NTUsIDB4NTUsIDB4NzQsIDB4NTUsIDB4MzksIDB4YjUsIDB4MmEsIDB4YWEsIDB4NzQsIDB4YTAsIDB4MzksIDB4YjUsIAorICAgIDB4NTUsIDB4NTUsIDB4N2UsIDB4MDQsIDB4MDAsIDB4NDAsIDB4OWQsIDB4NzAsIDB4NTAsIDB4MDYsIDB4MmQsIDB4NzAsIDB4N2QsIDB4MDcsIDB4NmQsIDB4NzcsIAorICAgIDB4N2MsIDB4MzEsIDB4N2UsIDB4N2IsIDB4MDAsIDB4N2EsIDB4NmIsIDB4MDAsIDB4MGIsIDB4N2MsIDB4MGIsIDB4NmMsIDB4YTUsIDB4ZDksIDB4ZjMsIDB4N2YsIAorICAgIDB4MTYsIDB4MWIsIDB4MWMsIDB4N2UsIDB4NTQsIDB4MjcsIDB4MTAsIDB4N2UsIDB4MWIsIDB4MTAsIDB4YmMsIDB4MTAsIDB4NjgsIDB4MDYsIDB4MWIsIDB4NTQsIAorICAgIDB4NzgsIDB4ZjUsIDB4ODAsIDB4MmMsIDB4NmQsIDB4MDAsIDB4N2MsIDB4MjAsIDB4N2YsIDB4MTYsIDB4OWYsIDB4MTAsIDB4N2YsIDB4MjcsIDB4OWYsIDB4MjAsIAorICAgIDB4N2UsIDB4MmIsIDB4MDAsIDB4N2UsIDB4MWIsIDB4MTAsIDB4YmMsIDB4MDEsIDB4NzgsIDB4MTYsIDB4MGIsIDB4MmMsIDB4MGIsIDB4MWMsIDB4YTUsIDB4ZGIsIAorICAgIDB4ZWYsIDB4N2MsIDB4YjYsIDB4MjAsIDB4ZTAsIDB4MDMsIDB4NjMsIDB4OTAsIDB4MzAsIDB4NGQsIDB4NzcsIDB4NzgsIDB4OTMsIDB4YzIsIDB4ZDcsIDB4MjIsIAorICAgIDB4ZDIsIDB4ZDcsIDB4MjIsIDB4MDAsIDB4MDQsIDB4MDAsIDB4MDQsIDB4MDAsIDB4MDAsIDB4MDYsIDB4MDQsIDB4MDIsIDB4MDQsIDB4MDAsIDB4MDIsIDB4MDEsIAorICAgIDB4MDQsIDB4MDEsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDIsIDB4MDIsIDB4MDIsIDB4MDIsIAorICAgIDB4MDQsIDB4MDAsIDB4MDgsIDB4MTAsIDB4MDIsIDB4MTAsIDB4MDQsIDB4MDIsIDB4MDgsIDB4MDAsIDB4MDEsIDB4MDEsIDB4MDgsIDB4N2UsIDB4MTgsIDB4N2YsIAorICAgIDB4YmQsIDB4N2EsIDB4MWMsIDB4MDAsIDB4ZmYsIDB4MGIsIDB4MWEsIDB4MDAsIDB4YmUsIDB4MTAsIDB4MTQsIDB4MzgsIDB4MWEsIDB4MGEsIDB4NTEsIDB4MjMsIAorICAgIDB4N2UsIDB4MTgsIDB4MDksIDB4NzYsIDB4N2EsIDB4MWMsIDB4MDAsIDB4ZmYsIDB4MmQsIDB4MzUsIDB4MGIsIDB4MWEsIDB4NTAsIDB4NjAsIDB4MDgsIDB4YTUsIAorICAgIDB4YjgsIDB4MDIsIDB4MDMsIDB4NGUsIDB4YTAsIDB4MDgsIDB4MjIsIDB4ODAsIDB4ZmUsIDB4N2UsIDB4ZTgsIDB4N2YsIDB4YmYsIDB4N2EsIDB4ZWMsIDB4MDAsIAorICAgIDB4ZmYsIDB4ZTAsIDB4ZjUsIDB4MjIsIDB4NTQsIDB4YzAsIDB4NjgsIDB4MTYsIDB4N2UsIDB4ZTgsIDB4N2YsIDB4YmUsIDB4N2EsIDB4ZWMsIDB4MDAsIDB4ZmYsIAorICAgIDB4ZTAsIDB4NjAsIDB4MGMsIDB4MTIsIDB4MDksIDB4YTAsIDB4ZjUsIDB4MDksIDB4N2EsIDB4YTEsIDB4MjAsIDB4MDIsIDB4MGYsIDB4MGEsIDB4MjIsIDB4YzIsIAorICAgIDB4OTUsIDB4ZDIsIDB4OTQsIDB4MTIsIDB4MTksIDB4ZmIsIDB4NTMsIDB4OTAsIDB4Y2YsIDB4MTIsIDB4MTksIDB4ZmIsIDB4ODAsIDB4ZjEsIDB4MGQsIDB4MGEsIAorICAgIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGQsIAorICAgIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIAorICAgIDB4NDUsIDB4NjQsIDB4NjcsIDB4NjUsIDB4NzAsIDB4NmYsIDB4NzIsIDB4NzQsIDB4MmYsIDB4MzQsIDB4MjAsIDB4MmQsIDB4MjAsIDB4NDgsIDB4NjEsIDB4NzIsIAorICAgIDB4NjQsIDB4NzcsIDB4NjEsIDB4NzIsIDB4NjUsIDB4MjAsIDB4NDQsIDB4NjksIDB4NjEsIDB4NjcsIDB4NmUsIDB4NmYsIDB4NzMsIDB4NzQsIDB4NjksIDB4NjMsIAorICAgIDB4NzMsIDB4MmMsIDB4MjAsIDB4NTIsIDB4NjUsIDB4NzYsIDB4MjAsIDB4MzEsIDB4MmUsIDB4MzAsIDB4MzAsIDB4M2IsIDB4MjAsIDB4NDMsIDB4NmYsIDB4NzAsIAorICAgIDB4NzksIDB4NzIsIDB4NjksIDB4NjcsIDB4NjgsIDB4NzQsIDB4MjAsIDB4MzEsIDB4MzksIDB4MzksIDB4MzgsIDB4MjAsIDB4NDksIDB4NmUsIDB4NzMsIDB4NjksIAorICAgIDB4NjQsIDB4NjUsIDB4MjAsIDB4NGYsIDB4NzUsIDB4NzQsIDB4MjAsIDB4NGUsIDB4NjUsIDB4NzQsIDB4NzcsIDB4NmYsIDB4NzIsIDB4NmIsIDB4NzMsIDB4MGQsIAorICAgIDB4MGEsIDB4MDAsIDB4NTAsIDB4NjEsIDB4NzMsIDB4NzMsIDB4MDAsIDB4NDYsIDB4NDEsIDB4NDksIDB4NGMsIDB4MjAsIDB4MjEsIDB4MjEsIDB4MDAsIDB4NTAsIAorICAgIDB4NjEsIDB4NzMsIDB4NzMsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4NDYsIDB4NDEsIDB4NDksIDB4NGMsIDB4MjAsIDB4MjEsIDB4MjEsIDB4MjAsIAorICAgIDB4MDAsIDB4MGQsIDB4MGEsIDB4NDQsIDB4NjUsIDB4NzQsIDB4NjUsIDB4NjMsIDB4NzQsIDB4MjAsIDB4NTIsIDB4NjEsIDB4NmQsIDB4M2EsIDB4MjAsIDB4MjAsIAorICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorICAgIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTIsIDB4NjEsIDB4NmQsIDB4MjAsIDB4NTQsIDB4NjUsIDB4NzMsIDB4NzQsIDB4M2EsIDB4MjAsIDB4MjAsIAorICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NDEsIDB4NjQsIDB4NjQsIDB4NzIsIDB4NjUsIDB4NzMsIDB4NzMsIDB4MjAsIDB4NjIsIAorICAgIDB4NjksIDB4NzQsIDB4MjAsIDB4MzAsIDB4MmQsIDB4MzEsIDB4MzQsIDB4MjAsIDB4NzQsIDB4NjUsIDB4NzMsIDB4NzQsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIAorICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTcsIDB4NzIsIDB4NmYsIDB4NzQsIDB4NjUsIDB4MjAsIDB4NDEsIAorICAgIDB4NjQsIDB4NjQsIDB4NzIsIDB4NjUsIDB4NzMsIDB4NzMsIDB4M2EsIDB4MjAsIDB4MzAsIDB4MzAsIDB4M2EsIDB4MDAsIDB4MjAsIDB4MjAsIDB4NzcsIDB4NjksIAorICAgIDB4NzQsIDB4NjgsIDB4MjAsIDB4NjQsIDB4NjEsIDB4NzQsIDB4NjEsIDB4M2EsIDB4MjAsIDB4MDAsIDB4MmMsIDB4MjAsIDB4NjEsIDB4NmUsIDB4NjQsIDB4MjAsIAorICAgIDB4NzIsIDB4NjUsIDB4NjEsIDB4NjQsIDB4M2EsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NGYsIDB4NmUsIDB4NjUsIDB4MjAsIDB4NmYsIDB4NzIsIDB4MjAsIAorICAgIDB4NjIsIDB4NmYsIDB4NzQsIDB4NjgsIDB4MjAsIDB4NmYsIDB4NjYsIDB4MjAsIDB4NzQsIDB4NjgsIDB4NjUsIDB4MjAsIDB4NjYsIDB4NmYsIDB4NmMsIDB4NmMsIAorICAgIDB4NmYsIDB4NzcsIDB4NjksIDB4NmUsIDB4NjcsIDB4MjAsIDB4NDEsIDB4NjQsIDB4NjQsIDB4NzIsIDB4NjUsIDB4NzMsIDB4NzMsIDB4MjAsIDB4NjIsIDB4NjksIAorICAgIDB4NzQsIDB4NzMsIDB4MjAsIDB4NmMsIDB4NjksIDB4NzMsIDB4NzQsIDB4NjUsIDB4NjQsIDB4MjAsIDB4NjEsIDB4NzIsIDB4NjUsIDB4MjAsIDB4NzMsIDB4NjgsIAorICAgIDB4NmYsIDB4NzIsIDB4NzQsIDB4NjUsIDB4NjQsIDB4MGQsIDB4MGEsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NzMsIDB4NmYsIDB4NmQsIDB4NjUsIDB4NzQsIDB4NjgsIAorICAgIDB4NjksIDB4NmUsIDB4NjcsIDB4M2EsIDB4MjAsIDB4MDAsIDB4MjAsIDB4NjEsIDB4NmUsIDB4NjQsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NDQsIDB4NjUsIAorICAgIDB4NzQsIDB4NjUsIDB4NjMsIDB4NzQsIDB4MjAsIDB4NTUsIDB4NjEsIDB4NzIsIDB4NzQsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIAorICAgIDB4NTMsIDB4NjMsIDB4NzIsIDB4NjEsIDB4NzQsIDB4NjMsIDB4NjgsIDB4MjAsIDB4NTAsIDB4NjEsIDB4NjQsIDB4MmMsIDB4NDYsIDB4NjksIDB4NDYsIDB4NmYsIAorICAgIDB4MjAsIDB4NDUsIDB4NmUsIDB4NjEsIDB4NjIsIDB4NmMsIDB4NjUsIDB4MjAsIDB4MjYsIDB4MjAsIDB4NTIsIDB4NTMsIDB4NTQsIDB4M2EsIDB4MjAsIDB4MDAsIAorICAgIDB4MGQsIDB4MGEsIDB4MGEsIDB4MjAsIDB4MjAsIDB4MjAsIDB4NTUsIDB4NjEsIDB4NzIsIDB4NzQsIDB4MjAsIDB4NTQsIDB4NjUsIDB4NzMsIDB4NzQsIDB4NzMsIAorICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4NTAsIDB4NmYsIDB4NzIsIDB4NzQsIDB4MzEsIDB4MjAsIDB4MjAsIDB4MjAsIDB4NTAsIDB4NmYsIDB4NzIsIDB4NzQsIAorICAgIDB4MzIsIDB4MjAsIDB4MjAsIDB4MjAsIDB4NTAsIDB4NmYsIDB4NzIsIDB4NzQsIDB4MzMsIDB4MjAsIDB4MjAsIDB4MjAsIDB4NTAsIDB4NmYsIDB4NzIsIDB4NzQsIAorICAgIDB4MzQsIDB4MGQsIDB4MGEsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIAorICAgIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIAorICAgIDB4MmQsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTAsIDB4NmYsIDB4NzIsIDB4NzQsIDB4MjAsIDB4NDQsIDB4NjUsIDB4NjMsIDB4NmYsIDB4NjQsIDB4NjUsIDB4NzIsIAorICAgIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NDQsIDB4NjksIDB4NjcsIDB4NjksIDB4NzQsIDB4NjEsIDB4NmMsIDB4MjAsIAorICAgIDB4NGMsIDB4NmYsIDB4NmYsIDB4NzAsIDB4NjIsIDB4NjEsIDB4NjMsIDB4NmIsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NDEsIDB4NmUsIDB4NjEsIDB4NmMsIAorICAgIDB4NmYsIDB4NjcsIDB4MjAsIDB4NGMsIDB4NmYsIDB4NmYsIDB4NzAsIDB4NjIsIDB4NjEsIDB4NjMsIDB4NmIsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIAorICAgIDB4NTIsIDB4NTgsIDB4NDQsIDB4MmMsIDB4NTQsIDB4NTgsIDB4NDQsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NTIsIDB4NTQsIDB4NTMsIDB4MmMsIDB4NDMsIAorICAgIDB4NTQsIDB4NTMsIDB4MmMsIDB4NTIsIDB4NDksIDB4MjAsIDB4NTMsIDB4NjgsIDB4NmYsIDB4NzIsIDB4NzQsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorICAgIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTIsIDB4NTgsIDB4NDQsIDB4MmMsIDB4NTQsIDB4NTgsIDB4NDQsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NDQsIAorICAgIDB4NTQsIDB4NTIsIDB4MmMsIDB4NDQsIDB4NTMsIDB4NTIsIDB4MmMsIDB4NDMsIDB4NDQsIDB4MjAsIDB4NTMsIDB4NjgsIDB4NmYsIDB4NzIsIDB4NzQsIDB4M2EsIAorICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTIsIDB4NTQsIDB4NTMsIDB4NWIsIDB4NDMsIDB4NTQsIDB4NTMsIDB4MmMsIAorICAgIDB4NTIsIDB4NDksIDB4NWQsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NDQsIDB4NTQsIDB4NTIsIDB4MmMsIDB4NDQsIDB4NTMsIDB4NTIsIDB4MmMsIDB4NDMsIAorICAgIDB4NDQsIDB4MjAsIDB4NTMsIDB4NjgsIDB4NmYsIDB4NzIsIDB4NzQsIDB4M2EsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTIsIDB4NTQsIDB4NTMsIDB4NWIsIAorICAgIDB4NDMsIDB4NTQsIDB4NTMsIDB4MmMsIDB4NDMsIDB4NDQsIDB4NWQsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NDQsIDB4NTMsIDB4NTIsIDB4MmMsIDB4NTIsIAorICAgIDB4NDksIDB4MjAsIDB4NTMsIDB4NjgsIDB4NmYsIDB4NzIsIDB4NzQsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIAorICAgIDB4NDQsIDB4NTQsIDB4NTIsIDB4NWIsIDB4NDQsIDB4NTMsIDB4NTIsIDB4MmMsIDB4NDMsIDB4NDQsIDB4NWQsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NTIsIAorICAgIDB4NTQsIDB4NTMsIDB4MmMsIDB4NDMsIDB4NTQsIDB4NTMsIDB4MmMsIDB4NTIsIDB4NDksIDB4MjAsIDB4NTMsIDB4NjgsIDB4NmYsIDB4NzIsIDB4NzQsIDB4M2EsIAorICAgIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NDQsIDB4NTQsIDB4NTIsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NDMsIDB4NTQsIDB4NTMsIDB4MmMsIDB4NDMsIAorICAgIDB4NDQsIDB4MjAsIDB4NTMsIDB4NjgsIDB4NmYsIDB4NzIsIDB4NzQsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTIsIDB4NTQsIDB4NTMsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NDMsIAorICAgIDB4NTQsIDB4NTMsIDB4MmMsIDB4NTIsIDB4NDksIDB4MjAsIDB4NGMsIDB4NmYsIDB4NmYsIDB4NzAsIDB4NjIsIDB4NjEsIDB4NjMsIDB4NmIsIDB4M2EsIDB4MjAsIAorICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTIsIDB4NTQsIDB4NTMsIDB4MjAsIAorICAgIDB4NzQsIDB4NmYsIDB4MjAsIDB4NDMsIDB4NTQsIDB4NTMsIDB4MmMsIDB4NDMsIDB4NDQsIDB4MjAsIDB4NGMsIDB4NmYsIDB4NmYsIDB4NzAsIDB4NjIsIDB4NjEsIAorICAgIDB4NjMsIDB4NmIsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIAorICAgIDB4NDQsIDB4NTQsIDB4NTIsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NDQsIDB4NTMsIDB4NTIsIDB4MmMsIDB4NDMsIDB4NDQsIDB4MjAsIDB4NGMsIDB4NmYsIAorICAgIDB4NmYsIDB4NzAsIDB4NjIsIDB4NjEsIDB4NjMsIDB4NmIsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorICAgIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4MGEsIDB4MjAsIDB4MjAsIDB4MjAsIDB4NDUsIDB4MjAsIDB4NTIsIDB4MjAsIDB4NTIsIDB4MjAsIDB4NGYsIDB4MjAsIAorICAgIDB4NTIsIDB4MjAsIDB4MjEsIDB4MjEsIDB4MjEsIDB4MmMsIDB4MjAsIDB4NDUsIDB4MjAsIDB4NTIsIDB4MjAsIDB4NTIsIDB4MjAsIDB4NGYsIDB4MjAsIDB4NTIsIAorICAgIDB4MjAsIDB4MjEsIDB4MjEsIDB4MjEsIDB4MjAsIDB4MmMsIDB4MjAsIDB4NDUsIDB4MjAsIDB4NTIsIDB4MjAsIDB4NTIsIDB4MjAsIDB4NGYsIDB4MjAsIDB4NTIsIAorICAgIDB4MjAsIDB4MjEsIDB4MjEsIDB4MjEsIDB4MGQsIDB4MGEsIDB4MGEsIDB4NDQsIDB4NjksIDB4NjEsIDB4NjcsIDB4NmUsIDB4NmYsIDB4NzMsIDB4NzQsIDB4NjksIAorICAgIDB4NjMsIDB4NzMsIDB4MjAsIDB4NmUsIDB4NmYsIDB4NzcsIDB4MjAsIDB4NzcsIDB4NjksIDB4NmMsIDB4NmMsIDB4MjAsIDB4NjUsIDB4NmUsIDB4NzQsIDB4NjUsIAorICAgIDB4NzIsIDB4MjAsIDB4NjEsIDB4MjAsIDB4NjQsIDB4NjUsIDB4NjIsIDB4NzUsIDB4NjcsIDB4MjAsIDB4NmMsIDB4NmYsIDB4NmYsIDB4NzAsIDB4MjAsIDB4NmYsIAorICAgIDB4NjYsIDB4MjAsIDB4NzQsIDB4NjgsIDB4NjUsIDB4MjAsIDB4NjYsIDB4NjksIDB4NzIsIDB4NzMsIDB4NzQsIDB4MjAsIDB4NjQsIDB4NjUsIDB4NzQsIDB4NjUsIAorICAgIDB4NjMsIDB4NzQsIDB4NjUsIDB4NjQsIDB4MjAsIDB4NjUsIDB4NzIsIDB4NzIsIDB4NmYsIDB4NzIsIDB4MmUsIDB4MDAsIDB4MGQsIDB4MGEsIDB4MGEsIDB4NGUsIAorICAgIDB4NmYsIDB4MjAsIDB4NDgsIDB4NjEsIDB4NzIsIDB4NjQsIDB4NzcsIDB4NjEsIDB4NzIsIDB4NjUsIDB4MjAsIDB4NjUsIDB4NzIsIDB4NzIsIDB4NmYsIDB4NzIsIAorICAgIDB4NzMsIDB4MjAsIDB4NjQsIDB4NjUsIDB4NzQsIDB4NjUsIDB4NjMsIDB4NzQsIDB4NjUsIDB4NjQsIDB4MmUsIDB4MGQsIDB4MGEsIDB4MDAsIDB4NDMsIDB4NmYsIAorICAgIDB4NzAsIDB4NzksIDB4NjksIDB4NmUsIDB4NjcsIDB4MjAsIDB4NjMsIDB4NmYsIDB4NjQsIDB4NjUsIDB4MjAsIDB4NjYsIDB4NzIsIDB4NmYsIDB4NmQsIDB4MjAsIAorICAgIDB4NGQsIDB4NjEsIDB4NzMsIDB4NzQsIDB4NjUsIDB4NzIsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NTMsIDB4NmMsIDB4NjEsIDB4NzYsIDB4NjUsIDB4MjcsIAorICAgIDB4NzMsIDB4MjAsIDB4NDUsIDB4NDUsIDB4NzAsIDB4NzIsIDB4NmYsIDB4NmQsIDB4MjAsIDB4MmUsIDB4MmUsIDB4MmUsIDB4MDAsIDB4NDQsIDB4NmYsIDB4NmUsIAorICAgIDB4NjUsIDB4MGQsIDB4MGEsIDB4MGEsIDB4MmQsIDB4M2UsIDB4MjAsIDB4NTQsIDB4NzUsIDB4NzIsIDB4NmUsIDB4MjAsIDB4NzUsIDB4NmUsIDB4NjksIDB4NzQsIAorICAgIDB4MjAsIDB4NmYsIDB4NjYsIDB4NjYsIDB4MmMsIDB4MjAsIDB4NjQsIDB4NjksIDB4NzMsIDB4NjMsIDB4NmYsIDB4NmUsIDB4NmUsIDB4NjUsIDB4NjMsIDB4NzQsIAorICAgIDB4MjAsIDB4NjMsIDB4NjEsIDB4NjIsIDB4NmMsIDB4NjUsIDB4MjAsIDB4NjEsIDB4NmUsIDB4NjQsIDB4MjAsIDB4NzIsIDB4NzUsIDB4NmUsIDB4MjAsIDB4NzMsIAorICAgIDB4NzQsIDB4NjEsIDB4NmUsIDB4NjQsIDB4NjEsIDB4NmMsIDB4NmYsIDB4NmUsIDB4NjUsIDB4MjAsIDB4NjQsIDB4NjksIDB4NjEsIDB4NjcsIDB4NmUsIDB4NmYsIAorICAgIDB4NzMsIDB4NzQsIDB4NjksIDB4NjMsIDB4NzMsIDB4MmUsIDB4MDAsIDB4YzIsIDB4YWYsIDB4YzIsIDB4MDksIDB4YzIsIDB4MGEsIDB4NzUsIDB4OTAsIDB4MGQsIAorICAgIDB4MjAsIDB4MTcsIDB4MDIsIDB4ZDIsIDB4YjUsIDB4NDMsIDB4OTAsIDB4MzAsIDB4NmMsIDB4MDAsIDB4N2UsIDB4MTAsIDB4MDMsIDB4MTIsIDB4MGYsIDB4MzgsIAorICAgIDB4N2UsIDB4NjgsIDB4MGEsIDB4MDEsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MGIsIDB4MDAsIDB4MzAsIDB4YjQsIDB4MDIsIAorICAgIDB4ODAsIDB4MjQsIDB4MDIsIDB4MWIsIDB4M2MsIDB4MjAsIDB4MDksIDB4MWQsIDB4YzIsIDB4OTQsIDB4ZDIsIDB4OTUsIDB4MTIsIDB4MTksIDB4ZmIsIDB4NTMsIAorICAgIDB4OTAsIDB4Y2YsIDB4MTIsIDB4MTksIDB4ZmIsIDB4YzIsIDB4OTUsIDB4ZDIsIDB4OTQsIDB4MTIsIDB4MTksIDB4ZmIsIDB4YTUsIDB4ZDksIDB4ZTYsIDB4NDMsIAorICAgIDB4OTAsIDB4MzAsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MjIsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OTQsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIAorICAgIDB4OTMsIDB4N2UsIDB4ZTQsIDB4MTAsIDB4MDAsIDB4N2UsIDB4NDAsIDB4NTUsIDB4N2EsIDB4ZTksIDB4NDAsIDB4MGIsIDB4ZTQsIDB4N2UsIDB4NTAsIDB4YWEsIAorICAgIDB4N2EsIDB4ZTksIDB4NTAsIDB4MWIsIDB4ZTQsIDB4YmUsIDB4ZTksIDB4NDAsIDB4NjgsIDB4MTksIDB4N2UsIDB4NjgsIDB4MGEsIDB4N2EsIDB4N2EsIDB4NmMsIAorICAgIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MTMsIDB4N2EsIDB4ZTksIDB4NDAsIDB4N2UsIDB4ZTksIAorICAgIDB4MTAsIDB4ODAsIDB4ZjgsIDB4N2UsIDB4NjgsIDB4MGEsIDB4NzUsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MGIsIDB4MDAsIAorICAgIDB4N2UsIDB4NjgsIDB4MGEsIDB4ZDgsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4NzgsIDB4MDAsIDB4MDAsIDB4N2UsIAorICAgIDB4NzAsIDB4MGUsIDB4N2UsIDB4YTQsIDB4ZmYsIDB4ZmYsIDB4N2UsIDB4YjQsIDB4YmYsIDB4ZmYsIDB4N2QsIDB4Y2IsIDB4MGUsIDB4YzQsIDB4N2QsIDB4ZGMsIAorICAgIDB4NWQsIDB4ZGIsIDB4NmMsIDB4YmIsIDB4N2QsIDB4ZmEsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4N2EsIDB4N2IsIDB4YjAsIDB4MGIsIDB4YjAsIDB4N2QsIAorICAgIDB4ZmIsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4N2EsIDB4N2IsIDB4YjAsIDB4MGIsIDB4YjAsIDB4N2QsIDB4ZmMsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIAorICAgIDB4N2EsIDB4N2IsIDB4YjAsIDB4MGIsIDB4YjAsIDB4N2QsIDB4ZmQsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4N2EsIDB4N2IsIDB4YjAsIDB4NmMsIDB4YmIsIAorICAgIDB4N2QsIDB4ZmEsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4YmUsIDB4N2IsIDB4YjAsIDB4NzgsIDB4NDEsIDB4MGIsIDB4YjAsIDB4N2QsIDB4ZmIsIDB4NWUsIAorICAgIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4YmUsIDB4N2IsIDB4YjAsIDB4NzgsIDB4MzQsIDB4MGIsIDB4YjAsIDB4N2QsIDB4ZmMsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIAorICAgIDB4YmUsIDB4N2IsIDB4YjAsIDB4NzgsIDB4MjcsIDB4MGIsIDB4YjAsIDB4N2QsIDB4ZmQsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4YmUsIDB4N2IsIDB4YjAsIAorICAgIDB4NzgsIDB4MWEsIDB4MGIsIDB4YjAsIDB4YmUsIDB4YzQsIDB4ZmYsIDB4ZmUsIDB4NzgsIDB4OTIsIDB4MGUsIDB4YjQsIDB4YTUsIDB4ZGYsIDB4OGIsIDB4N2UsIAorICAgIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ODAsIDB4NzcsIDB4Y2EsIDB4NWIsIDB4Y2EsIDB4NmIsIAorICAgIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4NjgsIDB4MGIsIDB4MmEsIDB4N2EsIAorICAgIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MGEsIDB4NDcsIDB4MTIsIDB4MWEsIDB4YzksIDB4N2UsIDB4NjgsIDB4MGIsIDB4NzksIDB4N2EsIAorICAgIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4NmMsIDB4NzcsIDB4ZGEsIDB4NmIsIDB4Y2EsIDB4NmIsIDB4MGIsIDB4NzAsIDB4MGUsIDB4YzQsIAorICAgIDB4YmUsIDB4YzQsIDB4ZmYsIDB4ZmYsIDB4NzgsIDB4ZjYsIDB4MWIsIDB4NzAsIDB4MGEsIDB4NDcsIDB4MTIsIDB4MWEsIDB4YzksIDB4MTIsIDB4MWEsIDB4MDgsIAorICAgIDB4MzAsIDB4MDksIDB4MzAsIDB4ZGEsIDB4NmIsIDB4ZGEsIDB4NWIsIDB4NmMsIDB4YmIsIDB4N2UsIDB4NzgsIDB4MDAsIDB4MDAsIDB4N2QsIDB4ZmEsIDB4NWUsIAorICAgIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4N2EsIDB4N2IsIDB4YjAsIDB4N2QsIDB4ZmIsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4N2EsIDB4N2IsIDB4YjAsIDB4N2QsIAorICAgIDB4ZmMsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4N2EsIDB4N2IsIDB4YjAsIDB4N2QsIDB4ZmQsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4N2EsIDB4N2IsIAorICAgIDB4YjAsIDB4ODAsIDB4ZDQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4YjYsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MzAsIDB4MTcsIAorICAgIDB4MGUsIDB4N2UsIDB4NzgsIDB4MDQsIDB4MjAsIDB4N2EsIDB4N2MsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NDQsIDB4N2IsIDB4ZTAsIDB4ODAsIDB4MGMsIDB4N2UsIAorICAgIDB4NzgsIDB4MDAsIDB4MDAsIDB4N2EsIDB4N2MsIDB4MDAsIDB4MDEsIDB4N2UsIDB4NDQsIDB4ODAsIDB4MDAsIDB4MGIsIDB4MDAsIDB4N2UsIDB4NDAsIDB4M2EsIAorICAgIDB4N2MsIDB4NTQsIDB4N2YsIDB4NTcsIDB4N2QsIDB4ODQsIDB4NmMsIDB4NjYsIDB4N2EsIDB4NWIsIDB4NTAsIDB4MGIsIDB4NWMsIDB4MGIsIDB4NTAsIDB4YTUsIAorICAgIDB4ZGUsIDB4MDIsIDB4MGIsIDB4NTAsIDB4MWIsIDB4ODQsIDB4NzgsIDB4ZjAsIDB4N2MsIDB4NTQsIDB4N2YsIDB4NTcsIDB4N2QsIDB4ODQsIDB4NmMsIDB4NjYsIAorICAgIDB4YmUsIDB4NWIsIDB4NTAsIDB4NzgsIDB4MWEsIDB4MGIsIDB4NWMsIDB4MGIsIDB4NTAsIDB4YTUsIDB4ZGUsIDB4MDIsIDB4MGIsIDB4NTAsIDB4MWIsIDB4ODQsIAorICAgIDB4NzgsIDB4ZWUsIDB4N2UsIDB4NjgsIDB4MGEsIDB4NzUsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ODAsIDB4NGIsIDB4N2YsIAorICAgIDB4NDUsIDB4N2UsIDB4NjgsIDB4MGEsIDB4N2EsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ZmEsIAorICAgIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2QsIDB4NGIsIDB4MTIsIDB4MWEsIDB4YzksIDB4N2UsIDB4NjgsIDB4MGIsIDB4MGYsIAorICAgIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4NmMsIDB4ODgsIDB4N2MsIDB4OTUsIDB4MTIsIDB4MWEsIDB4YzksIDB4N2UsIDB4NjgsIAorICAgIDB4MGIsIDB4MWQsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4NGIsIDB4OTAsIDB4MTIsIDB4MWEsIDB4YzksIDB4MTIsIAorICAgIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MDUsIDB4N2UsIDB4NGIsIDB4OTAsIDB4ODAsIDB4ZmIsIDB4N2UsIDB4NjgsIDB4MGIsIDB4N2YsIDB4N2EsIDB4NmMsIAorICAgIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MGIsIDB4MDAsIDB4ZDIsIDB4OTIsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIAorICAgIDB4MDgsIDB4YmUsIDB4YjAsIDB4MDEsIDB4NzgsIDB4MGIsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4YmUsIDB4YjAsIDB4NjAsIDB4NzgsIDB4MDIsIDB4ODAsIAorICAgIDB4MTcsIDB4N2UsIDB4NjgsIDB4MGEsIDB4N2EsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIAorICAgIDB4MDksIDB4MTEsIDB4MDksIDB4YjIsIDB4MDAsIDB4MDgsIDB4ODAsIDB4ZmEsIDB4N2UsIDB4NjgsIDB4MGEsIDB4NzUsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIAorICAgIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4NjgsIDB4MGIsIDB4YTEsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MGIsIDB4MDAsIAorICAgIDB4YzIsIDB4OTIsIDB4MTIsIDB4MTksIDB4ZWUsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4YTAsIDB4NTUsIDB4MTksIDB4YTIsIDB4MDAsIDB4MWMsIAorICAgIDB4N2UsIDB4YjAsIDB4MDEsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDgsIDB4MDksIDB4YjIsIDB4MDAsIDB4MWMsIDB4YmMsIDB4YWIsIDB4NzgsIDB4MzcsIDB4MDksIAorICAgIDB4YjIsIDB4MDAsIDB4MDgsIDB4NWUsIDB4YjAsIDB4YzAsIDB4YmUsIDB4YjAsIDB4YzAsIDB4NzgsIDB4MmIsIDB4N2UsIDB4YTAsIDB4YWEsIDB4MTksIDB4YTIsIAorICAgIDB4MDAsIDB4MWMsIDB4NmMsIDB4YmIsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDgsIDB4MDksIDB4YjIsIDB4MDAsIDB4MWMsIDB4YmMsIDB4YWIsIDB4NzgsIDB4MTYsIAorICAgIDB4MDksIDB4YjIsIDB4MDAsIDB4MDgsIDB4NWUsIDB4YjAsIDB4YzAsIDB4NzgsIDB4MGQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4NzUsIDB4N2EsIDB4NmMsIDB4MDAsIAorICAgIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ODAsIDB4MWIsIDB4N2UsIDB4NjgsIDB4MGEsIDB4N2EsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIAorICAgIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MGEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MWMsIDB4MDksIDB4YjIsIDB4MDAsIDB4MWMsIDB4ODAsIAorICAgIDB4ZjYsIDB4N2UsIDB4NjgsIDB4MGIsIDB4YzMsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4NjgsIDB4MGMsIDB4NDUsIAorICAgIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4N2UsIDB4YjAsIAorICAgIDB4MDEsIDB4MTksIDB4YjIsIDB4MDAsIDB4MWMsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4MGIsIDB4YjAsIDB4YTUsIDB4ZDksIDB4ZjMsIDB4N2UsIDB4MjQsIAorICAgIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4N2UsIDB4YjAsIDB4MDEsIDB4MGIsIDB4MDAsIDB4MDksIDB4YTIsIDB4MDAsIDB4MWMsIDB4YmMsIDB4YWIsIAorICAgIDB4NzgsIDB4MTYsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MmUsIDB4MjQsIDB4MDEsIAorICAgIDB4MDAsIDB4MGIsIDB4YjAsIDB4YTUsIDB4ZDksIDB4ZTIsIDB4ODAsIDB4MjUsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIAorICAgIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4ZTQsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIAorICAgIDB4MDksIDB4YTIsIDB4MDAsIDB4MWMsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4ZjUsIDB4ODAsIDB4ZWMsIDB4N2UsIDB4NjgsIDB4MGMsIAorICAgIDB4NjksIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MTMsIDB4OGEsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIAorICAgIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4NzQsIDB4MTAsIDB4MTksIDB4YjIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTMsIDB4MDMsIDB4MmUsIDB4MjQsIDB4MDEsIAorICAgIDB4MDAsIDB4YTUsIDB4ZDksIDB4ZWUsIDB4N2UsIDB4NjgsIDB4MGMsIDB4OGQsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIAorICAgIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4ZTQsIDB4MTksIDB4YjIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTMsIDB4MDMsIAorICAgIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4ZWYsIDB4MzAsIDB4MDAsIDB4MDMsIDB4MDIsIDB4MTgsIDB4YjcsIDB4MDIsIDB4MTMsIDB4YmIsIAorICAgIDB4NzQsIDB4MDcsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDgsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MDksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIAorICAgIDB4MTQsIDB4MDksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4MDksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIAorICAgIDB4MTQsIDB4MDksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4YzIsIDB4MGIsIDB4N2UsIDB4YjAsIDB4NTUsIDB4MTIsIDB4MTMsIAorICAgIDB4NjQsIDB4N2UsIDB4YjAsIDB4YWEsIDB4MTIsIDB4MTMsIDB4NjQsIDB4N2UsIDB4YjAsIDB4MDAsIDB4MTIsIDB4MTMsIDB4NjQsIDB4N2UsIDB4YjAsIDB4ZmYsIAorICAgIDB4MTIsIDB4MTMsIDB4NjQsIDB4MzAsIDB4MGIsIDB4MGYsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIAorICAgIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MjIsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIAorICAgIDB4MjIsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YTIsIDB4MDAsIDB4MDAsIDB4YmMsIDB4YWIsIDB4NzgsIDB4MDEsIAorICAgIDB4MjIsIDB4MjAsIDB4MDksIDB4MDMsIDB4ZDIsIDB4MGIsIDB4MjIsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIAorICAgIDB4ZWUsIDB4MDksIDB4YTIsIDB4MDAsIDB4MDAsIDB4ODAsIDB4ZjMsIDB4ZDIsIDB4OTIsIDB4MTIsIDB4MTksIDB4ZWUsIDB4YzIsIDB4OTIsIDB4MTIsIDB4MTksIAorICAgIDB4ZWUsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4NzQsIDB4ODAsIDB4MTksIDB4YjIsIDB4MDAsIDB4MGMsIDB4N2UsIDB4NTQsIAorICAgIDB4MDAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDAsIDB4NzQsIDB4MDMsIDB4MTksIDB4YjIsIDB4MDAsIDB4MGMsIAorICAgIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4ZTEsIDB4MjIsIDB4N2UsIDB4NjgsIDB4MGMsIDB4YjEsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIAorICAgIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIAorICAgIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4NTUsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIAorICAgIDB4MTgsIDB4NWUsIDB4YjAsIDB4MDUsIDB4NzgsIDB4MGQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIAorICAgIDB4OTMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIAorICAgIDB4MDgsIDB4MzAsIDB4MDksIDB4MDksIDB4MTksIDB4YTIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4ODAsIDB4ZjcsIDB4MmUsIDB4MjQsIDB4MDEsIAorICAgIDB4MDAsIDB4YTUsIDB4ZDksIDB4YjYsIDB4N2UsIDB4NjgsIDB4MGMsIDB4ZDUsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIAorICAgIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIAorICAgIDB4YTAsIDB4NTUsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4MGEsIAorICAgIDB4NzgsIDB4MGQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ODAsIDB4MWEsIDB4N2UsIAorICAgIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MDksIAorICAgIDB4MTksIDB4YTIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4ODAsIDB4ZjcsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4YjYsIAorICAgIDB4MzAsIDB4MDQsIDB4MDMsIDB4MDIsIDB4MTYsIDB4OGMsIDB4N2UsIDB4NjgsIDB4MGMsIDB4ZjksIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIAorICAgIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIAorICAgIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIAorICAgIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4MGEsIDB4NzgsIDB4M2MsIAorICAgIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIAorICAgIDB4MDMsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIAorICAgIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4MGEsIDB4NzgsIDB4MTQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIAorICAgIDB4MTIsIDB4MWEsIDB4OTMsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4OWUsIDB4ODAsIDB4MjAsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIAorICAgIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4ZTYsIDB4N2UsIDB4YTAsIDB4MDIsIAorICAgIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4ODAsIDB4ZjEsIDB4N2UsIDB4NjgsIDB4MGQsIDB4NDEsIAorICAgIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIAorICAgIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4MDEsIAorICAgIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIAorICAgIDB4MTgsIDB4NWUsIDB4YjAsIDB4MDUsIDB4NzgsIDB4M2MsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIAorICAgIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4MDMsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIAorICAgIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4MDUsIDB4NzgsIDB4MTQsIDB4N2UsIDB4NjgsIAorICAgIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4OWUsIAorICAgIDB4ODAsIDB4MjAsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIAorICAgIDB4MzAsIDB4MDksIDB4ZTYsIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIAorICAgIDB4ODAsIDB4ZjEsIDB4N2UsIDB4NjgsIDB4MGQsIDB4ODksIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIAorICAgIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIAorICAgIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4NTAsIDB4YmUsIDB4YjAsIDB4NTAsIDB4NzgsIDB4MWYsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIAorICAgIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4NTAsIDB4NzgsIDB4MGQsIDB4N2UsIDB4NjgsIAorICAgIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ODAsIDB4MjAsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIAorICAgIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MGYsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIAorICAgIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4ODAsIDB4ZjEsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIAorICAgIDB4ZDksIDB4YTIsIDB4N2UsIDB4NjgsIDB4MGQsIDB4ZDEsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIAorICAgIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIAorICAgIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4YTAsIDB4YmUsIDB4YjAsIDB4YTAsIDB4NzgsIDB4MWYsIAorICAgIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4YTAsIAorICAgIDB4NzgsIDB4MGQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ODAsIDB4MjAsIDB4N2UsIAorICAgIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MGYsIAorICAgIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4ODAsIDB4ZjEsIDB4MmUsIAorICAgIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4OWUsIDB4MDIsIDB4MTgsIDB4MmIsIDB4N2UsIDB4NjgsIDB4MGQsIDB4MWQsIDB4N2EsIDB4NmMsIDB4MDAsIAorICAgIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4NmMsIDB4YWEsIDB4MTksIAorICAgIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIAorICAgIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIAorICAgIDB4MDYsIDB4NzgsIDB4M2MsIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIAorICAgIDB4MTgsIDB4N2UsIDB4YTAsIDB4MDMsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIAorICAgIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4MDYsIDB4NzgsIDB4MTQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIAorICAgIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4OWUsIDB4ODAsIDB4MjAsIDB4N2UsIAorICAgIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4ZTYsIAorICAgIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4ODAsIDB4ZjEsIDB4N2UsIAorICAgIDB4NjgsIDB4MGQsIDB4NjUsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIAorICAgIDB4MDksIDB4MGIsIDB4MDAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIAorICAgIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIAorICAgIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4MDksIDB4NzgsIDB4M2MsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIAorICAgIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4MDMsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4N2UsIDB4YTAsIAorICAgIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4MDksIDB4NzgsIAorICAgIDB4MTQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIAorICAgIDB4YTUsIDB4ZDksIDB4OWUsIDB4ODAsIDB4MjAsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIAorICAgIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4ZTYsIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIAorICAgIDB4YTIsIDB4MDAsIDB4MTAsIDB4ODAsIDB4ZjEsIDB4N2UsIDB4NjgsIDB4MGQsIDB4YWQsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIAorICAgIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIAorICAgIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4OTAsIDB4YmUsIDB4YjAsIDB4OTAsIDB4NzgsIDB4MWYsIDB4NmMsIAorICAgIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4OTAsIDB4NzgsIAorICAgIDB4MGQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ODAsIDB4MjAsIDB4N2UsIDB4NjgsIAorICAgIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MGYsIDB4N2UsIAorICAgIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4ODAsIDB4ZjEsIDB4MmUsIDB4MjQsIAorICAgIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4YTIsIDB4MDIsIDB4MTgsIDB4YjcsIDB4MzAsIDB4MTcsIDB4MDMsIDB4MDIsIDB4MTksIDB4M2IsIDB4YzIsIDB4OGEsIAorICAgIDB4MTIsIDB4MTksIDB4MjIsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIAorICAgIDB4MTIsIDB4MTksIDB4ZWUsIDB4MGIsIDB4MDAsIDB4N2UsIDB4YTAsIDB4MDgsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MjAsIAorICAgIDB4OGIsIDB4M2UsIDB4MjAsIDB4ODksIDB4M2IsIDB4N2UsIDB4YTAsIDB4MDgsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIDB4MDksIDB4YTIsIDB4MDAsIDB4MTAsIAorICAgIDB4NGUsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MzAsIDB4OGIsIDB4MjMsIDB4MzAsIDB4ODksIDB4MjAsIAorICAgIDB4MDksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NWUsIDB4YTAsIDB4ZmQsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4N2UsIDB4YTAsIAorICAgIDB4MDAsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MjAsIDB4OGIsIDB4MDUsIDB4MjAsIDB4ODksIDB4MDIsIDB4ODAsIDB4MWEsIAorICAgIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MTQsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MDAsIDB4MDAsIDB4NWUsIAorICAgIDB4YTAsIDB4ZmQsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MDAsIDB4MDAsIDB4ODAsIDB4ZWMsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIAorICAgIDB4ODksIDB4MDIsIDB4MTksIDB4M2IsIDB4MjAsIDB4MTcsIDB4ZmEsIDB4MTIsIDB4MTMsIDB4OGEsIDB4MTIsIDB4MTksIDB4MjIsIDB4N2UsIDB4MjQsIDB4ODAsIAorICAgIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4MjAsIDB4ODksIDB4MjYsIDB4N2UsIDB4YTAsIDB4ZmYsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIAorICAgIDB4MTIsIDB4MTksIDB4ZWUsIDB4N2UsIDB4YjAsIDB4NTUsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MzAsIDB4ODksIDB4MGYsIAorICAgIDB4N2UsIDB4YTAsIDB4MDAsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MjAsIDB4ODksIDB4MDIsIDB4ODAsIDB4MjYsIDB4MTIsIAorICAgIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MjAsIDB4N2UsIDB4YTAsIDB4ZmYsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIDB4MTIsIDB4MTksIDB4ZWUsIDB4N2UsIAorICAgIDB4YjAsIDB4NTUsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4N2UsIDB4YTAsIDB4MDAsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIAorICAgIDB4MTIsIDB4MTksIDB4ZWUsIDB4ODAsIDB4ZTAsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4YTgsIDB4MDIsIDB4MTksIDB4M2IsIDB4N2UsIAorICAgIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4N2UsIDB4YTAsIDB4MDgsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIAorICAgIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4ZWYsIDB4MjIsIDB4MzAsIDB4MGEsIDB4MTksIDB4N2UsIDB4NjgsIDB4MGQsIDB4ZjUsIDB4N2EsIAorICAgIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ZDIsIDB4MDksIDB4MTIsIDB4MTksIDB4ZWUsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MTIsIDB4MTksIAorICAgIDB4ZWUsIDB4MDIsIDB4MGYsIDB4MTAsIDB4MzAsIDB4MTcsIDB4MWMsIDB4N2UsIDB4NjgsIDB4MGUsIDB4NmYsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIAorICAgIDB4MWEsIDB4OTMsIDB4N2UsIDB4NjgsIDB4MGUsIDB4OTEsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWIsIDB4M2MsIAorICAgIDB4MDIsIDB4MTksIDB4ZTYsIDB4MGIsIDB4MDAsIDB4N2UsIDB4NzgsIDB4MTksIDB4YTAsIDB4N2EsIDB4N2MsIDB4MDAsIDB4ZmYsIDB4N2YsIDB4NjcsIDB4N2EsIAorICAgIDB4NmMsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NzAsIDB4M2UsIDB4N2UsIDB4N2IsIDB4YjAsIDB4N2EsIDB4NmIsIDB4YjAsIDB4MGIsIDB4N2MsIDB4MGIsIDB4NmMsIAorICAgIDB4YTUsIDB4ZGYsIDB4ZjMsIDB4N2UsIDB4NzgsIDB4MTksIDB4YTAsIDB4N2EsIDB4N2MsIDB4MDAsIDB4MDAsIDB4ODksIDB4NzgsIDB4N2UsIDB4NzgsIDB4MDAsIAorICAgIDB4MDAsIDB4N2EsIDB4N2MsIDB4MDAsIDB4ZmUsIDB4N2UsIDB4NjgsIDB4N2YsIDB4YmYsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmUsIDB4NzQsIDB4YWEsIDB4MzksIAorICAgIDB4YjcsIDB4NTUsIDB4NTUsIDB4NzQsIDB4NTUsIDB4MzksIDB4YjcsIDB4MmEsIDB4YWEsIDB4NzQsIDB4YTAsIDB4MzksIDB4YjcsIDB4NTUsIDB4NTUsIDB4NmMsIAorICAgIDB4OTksIDB4N2EsIDB4NmIsIDB4OTAsIDB4N2UsIDB4NTQsIDB4MjcsIDB4MTAsIDB4N2UsIDB4NmIsIDB4ODAsIDB4YmMsIDB4ODksIDB4NjgsIDB4MDgsIDB4MWIsIAorICAgIDB4NTQsIDB4NzgsIDB4ZjUsIDB4OGEsIDB4ZmYsIDB4MTksIDB4ZGUsIDB4OGEsIDB4ZmYsIDB4MTksIDB4ZTYsIDB4MTIsIDB4MWEsIDB4MDgsIDB4N2UsIDB4NmIsIAorICAgIDB4ODAsIDB4ODAsIDB4ZmIsIDB4N2UsIDB4MTAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4ODUsIDB4ODAsIDB4ZjgsIDB4Y2EsIDB4ZjksIDB4N2UsIDB4ZjQsIDB4MDAsIAorICAgIDB4ZmYsIDB4MWIsIDB4ZjQsIDB4NzgsIDB4ZmMsIDB4ZGEsIDB4ZjksIDB4MjIsIDB4Y2EsIDB4ZjksIDB4N2UsIDB4ZjQsIDB4MDAsIDB4MDAsIDB4MWIsIDB4ZjQsIAorICAgIDB4NzgsIDB4ZmMsIDB4ZGEsIDB4ZjksIDB4MjIsIDB4MjAsIDB4MDksIDB4MTksIDB4ZDIsIDB4MGEsIDB4MTIsIDB4MTksIDB4ZmIsIDB4YzIsIDB4OTUsIDB4ZDIsIAorICAgIDB4OTQsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4NDMsIDB4OTAsIDB4MzAsIAorICAgIDB4MjIsIDB4Y2EsIDB4MGIsIDB4N2UsIDB4MTAsIDB4MDMsIDB4N2MsIDB4MzAsIDB4NmMsIDB4MjIsIDB4MGIsIDB4MjAsIDB4OWUsIDB4MzAsIDB4MGEsIDB4NTAsIAorICAgIDB4ZjksIDB4MmUsIDB4MzAsIDB4MGIsIDB4MWIsIDB4MjAsIDB4NjgsIDB4MTgsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4NTMsIDB4OTAsIAorICAgIDB4Y2YsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4NDMsIDB4OTAsIDB4MzAsIDB4YTUsIDB4ZGEsIDB4ZTgsIAorICAgIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MWIsIDB4MzAsIDB4NjgsIDB4MTksIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIAorICAgIDB4YzIsIDB4OTUsIDB4ZDIsIDB4OTQsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4NDMsIDB4OTAsIDB4MzAsIAorICAgIDB4YTUsIDB4ZGIsIDB4ZTcsIDB4N2UsIDB4MjAsIDB4MGEsIDB4MTIsIDB4MTksIDB4ZmIsIDB4YTUsIDB4ZGEsIDB4ZmEsIDB4YTUsIDB4ZDksIDB4YTcsIDB4ZGEsIAorICAgIDB4MGIsIDB4MjIsIDB4MjAsIDB4MDksIDB4MGEsIDB4MTIsIDB4MTksIDB4ZmIsIDB4YjIsIDB4OTQsIDB4MTIsIDB4MTksIDB4ZmIsIDB4YjIsIDB4OTQsIDB4MjIsIAorICAgIDB4MzAsIDB4MTcsIDB4MzIsIDB4MjAsIDB4MDksIDB4MmYsIDB4Y2EsIDB4MmIsIDB4Y2EsIDB4N2IsIDB4N2UsIDB4NzgsIDB4ODAsIDB4MDAsIDB4N2EsIDB4N2MsIAorICAgIDB4MDAsIDB4ZmUsIDB4MTIsIDB4MWIsIDB4MWMsIDB4N2UsIDB4NmIsIDB4YTAsIDB4NWMsIDB4YWEsIDB4NjgsIDB4MTAsIDB4MjksIDB4YjcsIDB4MDAsIDB4MTQsIAorICAgIDB4NTQsIDB4NjAsIDB4NjgsIDB4ZjgsIDB4MzksIDB4YTcsIDB4MDAsIDB4MDAsIDB4MGIsIDB4NmMsIDB4ODAsIDB4ZTksIDB4MTIsIDB4MTksIDB4ZWUsIDB4ZDIsIAorICAgIDB4YjUsIDB4ZGEsIDB4N2IsIDB4ZGEsIDB4MmIsIDB4MjIsIDB4MTIsIDB4MWEsIDB4ZDQsIDB4N2UsIDB4NjgsIDB4MDAsIDB4MGIsIDB4MTIsIDB4MWEsIDB4OTMsIAorICAgIDB4MjIsIDB4Y2EsIDB4NTksIDB4Y2EsIDB4NWIsIDB4N2UsIDB4YjQsIDB4MDAsIDB4MGIsIDB4N2MsIDB4YjgsIDB4YzQsIDB4MTIsIDB4MWIsIDB4MDQsIDB4N2MsIAorICAgIDB4YjgsIDB4MTIsIDB4MWIsIDB4MDQsIDB4N2MsIDB4YjksIDB4YzQsIDB4MTIsIDB4MWIsIDB4MDQsIDB4N2MsIDB4YjksIDB4MTIsIDB4MWIsIDB4MDQsIDB4N2UsIAorICAgIDB4YjAsIDB4NjgsIDB4N2EsIDB4YjksIDB4YjAsIDB4MGIsIDB4YjQsIDB4NmMsIDB4YmIsIDB4N2EsIDB4YjksIDB4YjAsIDB4ZGEsIDB4NTksIDB4ZGEsIDB4NWIsIAorICAgIDB4MjIsIDB4NWUsIDB4YjAsIDB4MGYsIDB4N2MsIDB4YWIsIDB4OWUsIDB4YTAsIDB4MGEsIDB4NDAsIDB4MDUsIDB4MmUsIDB4YjAsIDB4MzcsIDB4ODAsIDB4MDMsIAorICAgIDB4MmUsIDB4YjAsIDB4MzAsIDB4N2EsIDB4YjksIDB4YjAsIDB4MGIsIDB4YjQsIDB4MjIsIDB4YzIsIDB4YjUsIDB4YzIsIDB4OTIsIDB4MTIsIDB4MTksIDB4ZWUsIAorICAgIDB4NzQsIDB4ODAsIDB4MzksIDB4YjcsIDB4MDAsIDB4MGMsIDB4N2UsIDB4NTQsIDB4MDAsIDB4MDYsIDB4MzksIDB4YTcsIDB4MDAsIDB4MDQsIDB4MzksIDB4YjcsIAorICAgIDB4MDAsIDB4MDAsIDB4NzQsIDB4MDMsIDB4MzksIDB4YjcsIDB4MDAsIDB4MGMsIDB4MjIsIDB4N2UsIDB4NzgsIDB4MDAsIDB4MDAsIDB4N2EsIDB4N2MsIDB4MDAsIAorICAgIDB4ZmYsIDB4N2UsIDB4NTgsIDB4MDAsIDB4MDAsIDB4N2EsIDB4NWMsIDB4MDAsIDB4MDEsIDB4N2YsIDB4NjUsIDB4N2UsIDB4NzQsIDB4MjAsIDB4MDAsIDB4MTIsIAorICAgIDB4MDgsIDB4ZDYsIDB4NDAsIDB4NTQsIDB4N2UsIDB4NzgsIDB4N2MsIDB4MDAsIDB4N2EsIDB4N2MsIDB4MDAsIDB4ZmYsIDB4N2UsIDB4NTgsIDB4MDAsIDB4MDAsIAorICAgIDB4N2EsIDB4NWMsIDB4MDAsIDB4MDEsIDB4N2UsIDB4NjgsIDB4N2MsIDB4MDAsIDB4N2EsIDB4NmMsIDB4MDAsIDB4MDEsIDB4N2UsIDB4NzQsIDB4MDQsIDB4MDAsIAorICAgIDB4MTIsIDB4MDgsIDB4ZDYsIDB4NDAsIDB4MzMsIDB4NzQsIDB4ODAsIDB4MTIsIDB4MWIsIDB4YjEsIDB4NDAsIDB4MmMsIDB4NTMsIDB4OTAsIDB4Y2YsIDB4ZDIsIAorICAgIDB4MDgsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MDgsIDB4N2UsIDB4MTQsIDB4MDAsIDB4MDAsIDB4ODQsIDB4YTUsIDB4ZGIsIDB4ZmMsIDB4YTUsIDB4ZGEsIDB4ZjksIAorICAgIDB4YTUsIDB4ZDksIDB4ZjYsIDB4NzQsIDB4NDAsIDB4MTIsIDB4MWIsIDB4YjEsIDB4NDAsIDB4MGUsIDB4N2UsIDB4NjgsIDB4MGUsIDB4YzAsIDB4N2EsIDB4NmMsIAorICAgIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MDIsIDB4MTksIDB4ZTYsIDB4YzIsIDB4OTUsIDB4ZDIsIDB4OTQsIDB4ODAsIDB4ZmUsIDB4ZjUsIDB4MGEsIAorICAgIDB4N2UsIDB4NzgsIDB4MDAsIDB4MGEsIDB4N2EsIDB4N2MsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NjgsIDB4N2YsIDB4YmYsIDB4N2EsIDB4NmMsIDB4MDAsIDB4MDEsIAorICAgIDB4N2UsIDB4NzQsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDgsIDB4ZDYsIAorfTsKKworc3RhdGljIHN0cnVjdCBlZGdlX2Zpcm13YXJlX3ZlcnNpb25faW5mbyBJTUFHRV9WRVJTSU9OX05BTUUgPSB7CisJMSwgMTIsIDIgfTsJCS8vIE1ham9yLCBNaW5vciwgQnVpbGQKKworI3VuZGVmIElNQUdFX1ZFUlNJT05fTkFNRQorCisjdW5kZWYgSU1BR0VfQVJSQVlfTkFNRQorCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZndfYm9vdDIuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19md19ib290Mi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3YzNhM2MKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZndfYm9vdDIuaApAQCAtMCwwICsxLDU0NiBAQAorLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLy8qIEVkZ2Vwb3J0LzQgQmluYXJ5IEltYWdlCisvLyogR2VuZXJhdGVkIGJ5IEhFWDJDIHYxLjA2CisvLyogQ29weXJpZ2h0IChDKSAxOTk4IEluc2lkZSBPdXQgTmV0d29ya3MsIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKy8vKglpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorLy8qCXRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisvLyoJKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworCisvL0ltYWdlIHN0cnVjdHVyZSBkZWZpbml0aW9uCisjaWYgIWRlZmluZWQoREVGSU5FRF9FREdFX0ZJUk1XQVJFX0lNQUdFX1JFQ09SRCkKKyNkZWZpbmUgREVGSU5FRF9FREdFX0ZJUk1XQVJFX0lNQUdFX1JFQ09SRAorCXN0cnVjdCBlZGdlX2Zpcm13YXJlX2ltYWdlX3JlY29yZCB7CisJCV9fbGUxNiBFeHRBZGRyOworCQlfX2xlMTYgQWRkcjsKKwkJX19sZTE2IExlbjsKKwkJdW5zaWduZWQgY2hhciAgRGF0YVswXTsKKwl9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKworCXN0cnVjdCBlZGdlX2Zpcm13YXJlX3ZlcnNpb25faW5mbyB7CisJCXVuc2lnbmVkIGNoYXIJIE1ham9yVmVyc2lvbjsKKwkJdW5zaWduZWQgY2hhciAgTWlub3JWZXJzaW9uOworCQl1bnNpZ25lZCBzaG9ydCBCdWlsZE51bWJlcjsKKwl9OworCisjZW5kaWYKKworI2lmICFkZWZpbmVkKElNQUdFX0FSUkFZX05BTUUpCisjZGVmaW5lIElNQUdFX0FSUkFZX05BTUUJCUZpcm13YXJlSW1hZ2UKKyNkZWZpbmUgSU1BR0VfVkVSU0lPTl9OQU1FCUZpcm13YXJlSW1hZ2VWZXJzaW9uCisjZW5kaWYKKworc3RhdGljIHVuc2lnbmVkIGNoYXIgSU1BR0VfQVJSQVlfTkFNRVtdID0geworCisvLyBTZWdtZW50ICMxLCBTdGFydCBBZGRyZXNzIDAwZmYwMDAwLCBMZW5ndGggNgorMHhmZiwweDAwLDB4MDAsMHgwMCwweDA2LDB4MDAsCisgICAgMHgwMiwgMHgwMCwgMHg4MCwgMHgwMiwgMHgwMCwgMHgwMywgCisKKy8vIFNlZ21lbnQgIzIsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMGIsIExlbmd0aCAzCisweGZmLDB4MDAsMHgwYiwweDAwLDB4MDMsMHgwMCwKKyAgICAweDAyLCAweDAwLCAweDBiLCAKKworLy8gU2VnbWVudCAjMywgU3RhcnQgQWRkcmVzcyAwMGZmMDAxMywgTGVuZ3RoIDMKKzB4ZmYsMHgwMCwweDEzLDB4MDAsMHgwMywweDAwLAorICAgIDB4MDIsIDB4MDIsIDB4NTYsIAorCisvLyBTZWdtZW50ICM0LCBTdGFydCBBZGRyZXNzIDAwZmYwMDFiLCBMZW5ndGggMworMHhmZiwweDAwLDB4MWIsMHgwMCwweDAzLDB4MDAsCisgICAgMHgwMiwgMHgwMCwgMHgxYiwgCisKKy8vIFNlZ21lbnQgIzUsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMjMsIExlbmd0aCAzCisweGZmLDB4MDAsMHgyMywweDAwLDB4MDMsMHgwMCwKKyAgICAweDAyLCAweDAwLCAweDIzLCAKKworLy8gU2VnbWVudCAjNiwgU3RhcnQgQWRkcmVzcyAwMGZmMDAyYiwgTGVuZ3RoIDMKKzB4ZmYsMHgwMCwweDJiLDB4MDAsMHgwMywweDAwLAorICAgIDB4MDIsIDB4MDAsIDB4MmIsIAorCisvLyBTZWdtZW50ICM3LCBTdGFydCBBZGRyZXNzIDAwZmYwMDMzLCBMZW5ndGggMworMHhmZiwweDAwLDB4MzMsMHgwMCwweDAzLDB4MDAsCisgICAgMHgwMiwgMHgwMCwgMHgzMywgCisKKy8vIFNlZ21lbnQgIzgsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwM2IsIExlbmd0aCAzCisweGZmLDB4MDAsMHgzYiwweDAwLDB4MDMsMHgwMCwKKyAgICAweDAyLCAweDAwLCAweDNiLCAKKworLy8gU2VnbWVudCAjOSwgU3RhcnQgQWRkcmVzcyAwMGZmMDA0MywgTGVuZ3RoIDMKKzB4ZmYsMHgwMCwweDQzLDB4MDAsMHgwMywweDAwLAorICAgIDB4MDIsIDB4MDAsIDB4NDMsIAorCisvLyBTZWdtZW50ICMxMCwgU3RhcnQgQWRkcmVzcyAwMGZmMDA0YiwgTGVuZ3RoIDMKKzB4ZmYsMHgwMCwweDRiLDB4MDAsMHgwMywweDAwLAorICAgIDB4MDIsIDB4MDAsIDB4NGIsIAorCisvLyBTZWdtZW50ICMxMSwgU3RhcnQgQWRkcmVzcyAwMGZmMDA1MywgTGVuZ3RoIDMKKzB4ZmYsMHgwMCwweDUzLDB4MDAsMHgwMywweDAwLAorICAgIDB4MDIsIDB4MDEsIDB4ZjUsIAorCisvLyBTZWdtZW50ICMxMiwgU3RhcnQgQWRkcmVzcyAwMGZmMDA3YiwgTGVuZ3RoIDMKKzB4ZmYsMHgwMCwweDdiLDB4MDAsMHgwMywweDAwLAorICAgIDB4MDIsIDB4MDAsIDB4N2IsIAorCisvLyBTZWdtZW50ICMxMywgU3RhcnQgQWRkcmVzcyAwMGZmMDA4MCwgTGVuZ3RoIDUzNAorMHhmZiwweDAwLDB4ODAsMHgwMCwweDE2LDB4MDIsCisgICAgMHg3ZSwgMHhiMywgMHg5MSwgMHgwMSwgMHgyMCwgMHhlMywgMHgwYywgMHg3ZSwgMHhiMywgMHgzZiwgMHhmMiwgMHg1NCwgMHhmZSwgMHg3YSwgMHhiMywgMHgzZiwgCisgICAgMHhmMiwgMHg4MCwgMHgwYSwgMHg3ZSwgMHhiMywgMHgzZiwgMHhmMiwgMHg0NCwgMHgwMSwgMHg3YSwgMHhiMywgMHgzZiwgMHhmMiwgMHg3NCwgMHgwMCwgMHg3YSwgCisgICAgMHhiMywgMHg5MSwgMHgwMCwgMHg3NCwgMHgwMSwgMHg3YSwgMHhiMywgMHg5MSwgMHgxMiwgMHg3ZSwgMHhmOCwgMHgwMCwgMHgyNCwgMHg3ZSwgMHgwMCwgMHgwMSwgCisgICAgMHg3ZSwgMHgxMCwgMHgwMCwgMHgxMiwgMHgwOSwgMHhkMCwgMHg2OSwgMHgyMCwgMHgwMCwgMHgwYSwgMHg1ZSwgMHg0MCwgMHgxZiwgMHhiZSwgMHgyNCwgMHgwMCwgCisgICAgMHgwMCwgMHg3OCwgMHgwOSwgMHg3ZSwgMHgwMCwgMHgwMywgMHg3YSwgMHgwMywgMHg5MCwgMHgwMCwgMHg4MCwgMHgwNywgMHg3ZSwgMHgwMCwgMHgwMiwgMHg3YSwgCisgICAgMHgwMywgMHg5MCwgMHgwMCwgMHg3NSwgMHhiMCwgMHhkZiwgMHg3ZSwgMHgwMCwgMHgwMSwgMHg3YSwgMHgwMywgMHg5NCwgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgCisgICAgMHgyNCwgMHg3ZSwgMHgwMCwgMHgwMSwgMHg3YSwgMHgwMywgMHg5MywgMHgwMCwgMHg3ZSwgMHgwMCwgMHgwMCwgMHhhNSwgMHhkOCwgMHhmZCwgMHg3NSwgMHhhOCwgCisgICAgMHgwMCwgMHg3NSwgMHhiMSwgMHgwMCwgMHhjYSwgMHgyOSwgMHgxMiwgMHgwYywgMHg2NiwgMHgxMiwgMHgwYywgMHgzNywgMHhmNSwgMHgyMSwgMHg3YSwgMHhhMSwgCisgICAgMHgyMCwgMHgyMCwgMHgwOSwgMHgwOCwgMHgyMCwgMHgwYSwgMHgwYSwgMHg3ZSwgMHhiMCwgMHgwYywgMHg4MCwgMHgwOCwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg4MCwgCisgICAgMHgwMywgMHg3ZSwgMHhiMCwgMHgwOCwgMHg3YSwgMHhiMywgMHg5MiwgMHgwMCwgMHgxMiwgMHgwMiwgMHg5NiwgMHhkYSwgMHgyOSwgMHg3NCwgMHgxMCwgMHg3YSwgCisgICAgMHhiMywgMHg5MSwgMHgwMSwgMHg3ZSwgMHgyMCwgMHgwNCwgMHg3YywgMHhiMiwgMHhjMiwgMHhkNywgMHgxMywgMHgxMywgMHgxMywgMHgxMywgMHg3YSwgMHhiMywgCisgICAgMHg5MSwgMHgwMCwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxMCwgMHg3NCwgMHg2MCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxYywgMHg3NCwgMHgwMiwgCisgICAgMHg3YSwgMHhiMywgMHg5MSwgMHgxMiwgMHhhNSwgMHhkYSwgMHhkZiwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3NCwgMHg2MCwgMHg3YSwgCisgICAgMHhiMywgMHg5MSwgMHgxYywgMHg3NCwgMHgxMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3NCwgMHgxMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNywgMHg3NCwgCisgICAgMHgzNCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxMywgMHg3NCwgMHgzZiwgMHg3YSwgMHhiMywgMHg5MSwgMHgxNCwgMHg3NCwgMHgwMiwgMHg3YSwgMHhiMywgMHg5MSwgCisgICAgMHgwNiwgMHg3NCwgMHgwMSwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNywgMHg3NCwgMHgwMywgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3NCwgMHg0NCwgMHg3YSwgCisgICAgMHhiMywgMHg5MSwgMHgwNywgMHg3NCwgMHhlZiwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNCwgMHg3NCwgMHgwNywgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3ZSwgCisgICAgMHhiMywgMHg5MSwgMHgwNywgMHg3YSwgMHhiMSwgMHgwYSwgMHg3NSwgMHgwOSwgMHgwMSwgMHhkMiwgMHhhYSwgMHhkMiwgMHhhZiwgMHhlNCwgMHg3ZSwgMHg2MCwgCisgICAgMHgwMiwgMHg0ZCwgMHgyMiwgMHg3OCwgMHgwMywgMHg3ZSwgMHg2MCwgMHgwMywgMHg3YywgMHg3NiwgMHg3ZSwgMHgwNCwgMHgyOCwgMHgwMCwgMHg4ZCwgMHhlZiwgCisgICAgMHgxYiwgMHgwNCwgMHg3OCwgMHhmYSwgMHgwNCwgMHg3ZSwgMHgyMCwgMHgwNywgMHg3YSwgMHgyMywgMHg5MSwgMHgwNiwgMHg3ZSwgMHgyMywgMHg5MSwgMHgwNywgCisgICAgMHg3ZSwgMHgzMSwgMHgwYSwgMHhiYywgMHgzMiwgMHg2OCwgMHgyMiwgMHg3YSwgMHgyMSwgMHgwYSwgMHg3ZSwgMHgyMSwgMHgwOSwgMHg2OCwgMHgxNywgMHhjYSwgCisgICAgMHhiOCwgMHg3NCwgMHgwMywgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3ZSwgMHhiMywgMHg5MSwgMHgwNywgMHg0NCwgMHgwMiwgMHg3YSwgMHhiMywgMHg5MSwgCisgICAgMHgwNywgMHhkYSwgMHhiOCwgMHg3NSwgMHgwOSwgMHgwMCwgMHgzMCwgMHhlMCwgMHhjMSwgMHg2YywgMHg2NywgMHg3YSwgMHg2MywgMHg5MCwgMHgwMCwgMHg4MCwgCisgICAgMHhiOSwgMHhiZSwgMHhiMCwgMHgwMiwgMHgyMiwgMHhjMCwgMHhkMCwgMHg3NSwgMHgwOCwgMHhmZSwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3NCwgMHgwMiwgMHg3YSwgCisgICAgMHhiMywgMHg5MSwgMHgwNiwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNywgMHg3NCwgMHgwMywgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3NCwgCisgICAgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNywgMHg3NCwgMHgwMiwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNCwgMHg3ZSwgMHhiMywgMHgzZiwgMHhmMiwgMHgzMCwgCisgICAgMHhlMCwgMHgwOCwgMHg3NCwgMHgxOCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMSwgMHg4MCwgMHgwNiwgMHg3NCwgMHgxMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMSwgCisgICAgMHg3NCwgMHgxMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNCwgMHgwMiwgMHgwMiwgMHgzNiwgMHg3NSwgMHgwOCwgMHhmZiwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3NCwgCisgICAgMHgwMSwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNCwgMHg3NCwgMHgwMywgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3ZSwgMHhiMywgMHg5MSwgMHgwNywgMHg1NCwgCisgICAgMHhmYywgMHg3YSwgMHhiMywgMHg5MSwgMHgwNywgMHgzMiwgMHhjYSwgMHhiOCwgMHg3NSwgMHgwOCwgMHgwMiwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHhiMywgCisgICAgMHg5MSwgMHgwMywgMHgyMCwgMHhlNSwgMHgwOCwgMHgzMCwgMHhlMCwgMHgyYiwgMHgxMiwgMHgwMiwgMHg5ZSwgMHg4MCwgMHhmMSwgMHg3ZSwgMHhiMywgMHg5MSwgCisgICAgMHgwNCwgMHgzMCwgMHhlMCwgMHgwNSwgMHhkYSwgMHhiOCwgMHgwMiwgMHgwMiwgMHgzOSwgMHgzMCwgMHhlMSwgMHgwNSwgMHhkYSwgMHhiOCwgMHgwMiwgMHgwMSwgCisgICAgMHhmNSwgMHgzMCwgMHhlNiwgMHgwNSwgMHgxMiwgMHgwNCwgMHgwMywgMHg4MCwgMHhkNSwgMHgzMCwgMHhlMiwgMHgwNSwgMHhkYSwgMHhiOCwgMHgwMiwgMHgwMCwgCisgICAgMHg4MCwgMHg4MCwgMHhjYiwgMHhkYSwgMHhiOCwgMHgzMiwgCisKKy8vIFNlZ21lbnQgIzE0LCBFWENMVURFRCBTdGFydCBBZGRyZXNzIDAwZmYzMWQ3LCBMZW5ndGggMQorCisKKy8vIFNlZ21lbnQgIzE1LCBTdGFydCBBZGRyZXNzIDAwZmYwMjk2LCBMZW5ndGggMjA5MAorMHhmZiwweDAwLDB4OTYsMHgwMiwweDJhLDB4MDgsCisgICAgMHhlNCwgMHg3YSwgMHhiMywgMHgzZiwgMHhmMSwgMHgwMiwgMHgwMywgMHg0MSwgMHhjYSwgMHgwYiwgMHhjYSwgMHgxYiwgMHhjYSwgMHgyYiwgMHhjYSwgMHgzYiwgCisgICAgMHhjYSwgMHg0YiwgMHhjYSwgMHg1YiwgMHhjYSwgMHg2YiwgMHhjYSwgMHg3YiwgMHhjYSwgMHhlYiwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgCisgICAgMHg3ZSwgMHhiMywgMHgwMSwgMHgyZSwgMHhiNCwgMHgwMCwgMHgwMiwgMHg4MCwgMHgxYywgMHhiNCwgMHgwMSwgMHgxOSwgMHg3ZSwgMHhiMywgMHg5MSwgMHgxNCwgCisgICAgMHg1NCwgMHgxNCwgMHg2OCwgMHgwNSwgMHgxMiwgMHgwMywgMHgwNSwgMHg4MCwgMHgyMywgMHg3ZSwgMHhiMywgMHg5MSwgMHgxNCwgMHgzMCwgMHhlNSwgMHgxYywgCisgICAgMHgxMiwgMHgwNCwgMHg0MywgMHg4MCwgMHgxNywgMHg3ZSwgMHhiMywgMHg5MSwgMHgxNCwgMHgzMCwgMHhlNSwgMHgwNSwgMHgxMiwgMHgwNCwgMHg0MywgMHg4MCwgCisgICAgMHgwYiwgMHg3ZSwgMHhiMywgMHg5MSwgMHgxNCwgMHg1NCwgMHgxNCwgMHg2OCwgMHgwMywgMHgxMiwgMHgwMywgMHgwNSwgMHhkYSwgMHhlYiwgMHhkYSwgMHg3YiwgCisgICAgMHhkYSwgMHg2YiwgMHhkYSwgMHg1YiwgMHhkYSwgMHg0YiwgMHhkYSwgMHgzYiwgMHhkYSwgMHgyYiwgMHhkYSwgMHgxYiwgMHhkYSwgMHgwYiwgMHgyMiwgMHgyMCwgCisgICAgMHhlNCwgMHgxOSwgMHg3NSwgMHgwOCwgMHgwYSwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyZCwgMHg3MCwgMHgwYSwgMHg3ZSwgMHhiMywgCisgICAgMHgwMSwgMHgyZSwgMHhiNCwgMHgwMSwgMHgxZiwgMHgwMiwgMHgwMywgMHg5ZCwgMHgwMiwgMHgwOSwgMHg4YiwgMHg3NSwgMHgwOCwgMHgwYiwgMHgxMiwgMHgwYSwgCisgICAgMHhjMCwgMHg3NCwgMHgxNCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxNCwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyZSwgMHhiNCwgMHgwMiwgMHgwYywgMHgxMiwgMHgwMywgCisgICAgMHg0ZCwgMHgwMiwgMHgwMywgMHg0MSwgMHg3NCwgMHgwNCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxNCwgMHgyMiwgMHg3ZSwgMHgwMCwgMHgwMCwgMHg3YSwgMHgwMywgCisgICAgMHgwMSwgMHgyZSwgMHg3YSwgMHgwMywgMHgwMSwgMHgyZiwgMHgyMiwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyNSwgMHg1NCwgMHg2MCwgMHg2MCwgMHgwNSwgMHhiNCwgCisgICAgMHg0MCwgMHgxZSwgMHg4MCwgMHgxYywgMHg3ZSwgMHhiMywgMHgwMSwgMHgyNiwgMHhiNCwgMHgwNSwgMHgxNSwgMHg3NSwgMHgwOCwgMHg3MSwgMHgxMiwgMHgwYSwgCisgICAgMHhjMCwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyOCwgMHg3ZSwgMHhhMCwgMHgwMSwgMHg3YSwgMHhhMywgMHg5MSwgMHgwNiwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNywgCisgICAgMHgyMiwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3NCwgMHgxMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxMiwgMHgyMiwgMHhiZSwgMHg1NywgCisgICAgMHgwMSwgMHgyYiwgMHgyOCwgMHgwNCwgMHg3ZSwgMHg1NywgMHgwMSwgMHgyYiwgMHg3YSwgMHgwZiwgMHgwMSwgMHgzMSwgMHg3YSwgMHg1NywgMHgwMSwgMHgzNSwgCisgICAgMHg3NCwgMHgxMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxMiwgMHgyMiwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3ZSwgMHhiMywgMHg5MSwgCisgICAgMHgxYSwgMHg3MCwgMHg1MywgMHg3ZSwgMHhiMywgMHg5MSwgMHgxNCwgMHgyMCwgMHhlNCwgMHg0YywgMHg3ZSwgMHhlZiwgMHgwMSwgMHgzMSwgMHg3ZSwgMHhmNywgCisgICAgMHgwMSwgMHgzNSwgMHg3ZSwgMHgwNywgMHgwMSwgMHgzNSwgMHg0ZCwgMHgwMCwgMHg2OCwgMHgyMSwgMHg3ZSwgMHgwMCwgMHgwMCwgMHhlMCwgMHg3YSwgMHhiMywgCisgICAgMHg5MSwgMHgxNywgMHhhMywgMHhhNSwgMHgwOCwgMHgxYiwgMHhmNCwgMHg2OCwgMHgwNiwgMHhhNSwgMHhiOCwgMHgxMCwgMHhmMCwgMHg4MCwgMHgxOSwgMHg3ZSwgCisgICAgMHhiMCwgMHgwMCwgMHg3YSwgMHhiMywgMHgwMSwgMHgyZSwgMHhiZSwgMHgwMCwgMHgxMCwgMHg2OCwgMHgwZCwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3YSwgMHhiMywgCisgICAgMHgwMSwgMHgyZSwgMHg3NCwgMHg4MCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxZSwgMHg3YSwgMHhlZiwgMHgwMSwgMHgzMSwgMHg3YSwgMHhmNywgMHgwMSwgMHgzNSwgCisgICAgMHg3NSwgMHgwOCwgMHgwNiwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3NCwgMHgwNCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxNCwgMHgyMiwgMHhjYSwgMHgwYiwgMHhjYSwgCisgICAgMHgxYiwgMHhjYSwgMHgyYiwgMHhjYSwgMHgzYiwgMHhjYSwgMHg0YiwgMHhjYSwgMHg1YiwgMHhjYSwgMHg2YiwgMHhjYSwgMHg3YiwgMHhjYSwgMHhlYiwgMHg3NSwgCisgICAgMHgwOCwgMHgwMywgMHgxMiwgMHgwYSwgMHhjMCwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHgwMSwgMHgyZCwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgCisgICAgMHgwMCwgMHg3NCwgMHgwMSwgMHg3YSwgMHhiMywgMHg5MSwgMHgxMiwgMHgxMiwgMHgwNCwgMHhiMiwgMHhkYSwgMHhlYiwgMHhkYSwgMHg3YiwgMHhkYSwgMHg2YiwgCisgICAgMHhkYSwgMHg1YiwgMHhkYSwgMHg0YiwgMHhkYSwgMHgzYiwgMHhkYSwgMHgyYiwgMHhkYSwgMHgxYiwgMHhkYSwgMHgwYiwgMHgyMiwgMHg3NSwgMHgwOCwgMHgwMywgCisgICAgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyZiwgMHhiNCwgMHgwMiwgMHgxMSwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHgwMSwgMHgyZiwgCisgICAgMHg3YSwgMHhiMywgMHgwMSwgMHgyZSwgMHg3NCwgMHgyMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxNCwgMHgyMiwgMHhiNCwgMHgwMSwgMHg0NiwgMHg3ZSwgMHhiMywgCisgICAgMHg5MSwgMHgwNCwgMHgyMCwgMHhlNiwgMHg0MiwgMHg3ZSwgMHgyMywgMHg5MSwgMHgxYSwgMHg3YywgMHgzMiwgMHg3ZSwgMHgxMywgMHgwMSwgMHgzMCwgMHgyYywgCisgICAgMHgyMSwgMHg3YSwgMHgyMywgMHgwMSwgMHgzMCwgMHg3ZSwgMHgwMCwgMHgwMCwgMHgyZSwgMHgwNCwgMHgwMSwgMHgzNywgMHg3ZSwgMHhiMywgMHg5MSwgMHgxNiwgCisgICAgMHg3YSwgMHgwOSwgMHhiMCwgMHgwYiwgMHgwNCwgMHhhNSwgMHhkYiwgMHhmNCwgMHg3NCwgMHgyMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxNCwgMHg3NSwgMHgwOCwgCisgICAgMHg3MCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHhiMywgMHgwMSwgMHgzMCwgMHg3ZSwgMHhhMywgMHgwMSwgMHgyYywgMHhiYywgMHhhYiwgMHg3OCwgMHgwMywgCisgICAgMHgxMiwgMHgwNSwgMHg1MiwgMHgyMiwgMHgwMiwgMHgwOSwgMHg4YiwgMHhkYSwgMHg1OSwgMHgwMiwgMHgwNCwgMHgxNSwgMHg3NCwgMHhlMCwgMHg3YSwgMHhiMywgCisgICAgMHg5MSwgMHgwMCwgMHg3ZSwgMHgwMywgMHg5MSwgMHgxMCwgMHg3ZSwgMHgxMywgMHg5MSwgMHgxMSwgMHg3ZSwgMHgzMywgMHg5MSwgMHgxMiwgMHg3ZSwgMHgyMywgCisgICAgMHg5MSwgMHgxMywgMHg3ZSwgMHg1MywgMHg5MSwgMHgxNCwgMHg3ZSwgMHg0MywgMHg5MSwgMHgxNSwgMHg3ZSwgMHg3MywgMHg5MSwgMHgxNiwgMHg3ZSwgMHg2MywgCisgICAgMHg5MSwgMHgxNywgMHg3YSwgMHgwZiwgMHgwMSwgMHgyNSwgMHg3YSwgMHgxZiwgMHgwMSwgMHgyOSwgMHg3NSwgMHgwOCwgMHgwNCwgMHgxMiwgMHgwYSwgMHhjMCwgCisgICAgMHg3YSwgMHgwMSwgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgMHgxMSwgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgMHgyMSwgMHgwOCwgMHgxMiwgCisgICAgMHgwYSwgMHhjMCwgMHg3YSwgMHgzMSwgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgMHg0MSwgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgMHg1MSwgCisgICAgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgMHg2MSwgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgMHg3MSwgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgCisgICAgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3NCwgMHg0MCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNCwgMHgxMiwgMHgwNSwgMHgyNiwgMHgyMiwgCisgICAgMHg2ZCwgMHgwMCwgMHg3ZSwgMHgxNCwgMHgwMSwgMHgwMiwgMHg3YSwgMHgwNywgMHgwMSwgMHgzNSwgMHg3YSwgMHgwMywgMHgwMSwgMHgzMCwgMHg3ZSwgMHhiMywgCisgICAgMHgwMSwgMHgyNSwgMHgyMCwgMHhlNywgMHgwZiwgMHg3YSwgMHgyMywgMHgwMSwgMHgyZiwgMHg3YSwgMHgzMywgMHgwMSwgMHgyZSwgMHhiZSwgMHgwNywgMHgwMSwgCisgICAgMHgyYiwgMHg2OCwgMHgwOSwgMHgyMiwgMHg3YSwgMHgzMywgMHgwMSwgMHgyZiwgMHg3YSwgMHgyMywgMHgwMSwgMHgyZSwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyNSwgCisgICAgMHg1NCwgMHhlMywgMHgyMywgMHgyMywgMHgzMCwgMHhlMCwgMHgwMiwgMHhkMiwgMHhlNSwgMHgzMCwgMHhlNywgMHgwMiwgMHhkMiwgMHhlNCwgMHgzMCwgMHhlNSwgCisgICAgMHgwNiwgMHgzMCwgMHhlNCwgMHgwMywgMHgwMiwgMHgwOSwgMHg4YiwgMHg1NCwgMHgzZSwgMHhmNSwgMHhmMCwgMHgwMywgMHg1NCwgMHgxZiwgMHhjMywgMHgyNSwgCisgICAgMHhmMCwgMHg5MCwgMHgwNSwgMHg3ZSwgMHg3NSwgMHg4NCwgMHhmZiwgMHg3MywgMHgwMiwgMHgwNywgMHgzOSwgMHgwMiwgMHgwNSwgMHhjNiwgMHgwMiwgMHgwNywgCisgICAgMHhkMiwgMHgwMiwgMHgwNywgMHhlZCwgMHgwMiwgMHgwNiwgMHhkMCwgMHgwMiwgMHgwNiwgMHg1YiwgMHgwMiwgMHgwOCwgMHgxZSwgMHgwMiwgMHgwOCwgMHgxZSwgCisgICAgMHgwMiwgMHgwOCwgMHgyMSwgMHgwMiwgMHgwOCwgMHgyMSwgMHgwMiwgMHgwOCwgMHgyMSwgMHgwMiwgMHgwOCwgMHgyMSwgMHgwMiwgMHgwOCwgMHgyMSwgMHgwMiwgCisgICAgMHgwOCwgMHgyMSwgMHgwMiwgMHgwOCwgMHgyMSwgMHgwMiwgMHgwOCwgMHgyMSwgMHgwMiwgMHgwOCwgMHgyNywgMHgwMiwgMHgwOCwgMHhmOSwgMHgwMiwgMHgwOCwgCisgICAgMHgyNCwgMHgwMiwgMHgwOCwgMHgyNCwgMHgwMiwgMHgwOCwgMHgyNCwgMHgwMiwgMHgwOCwgMHgyNCwgMHgwMiwgMHgwOCwgMHgyNCwgMHgwMiwgMHgwOCwgMHgyNCwgCisgICAgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3NCwgMHg2MCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxYywgMHg3ZSwgMHhiMywgMHgwMSwgMHgyNiwgCisgICAgMHhiNCwgMHgwNiwgMHgyYSwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyNywgMHg2MCwgMHg3OSwgMHg3YywgMHgwYiwgMHg3ZSwgMHgxMywgMHgwMSwgMHgyOCwgMHg3ZSwgCisgICAgMHgxNywgMHgwMSwgMHgyOSwgMHg3NSwgMHgwOCwgMHg3MiwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgMHgwMSwgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgCisgICAgMHgxMSwgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgMHgxMiwgMHgwOSwgMHhkMCwgMHg0MCwgMHg1OCwgMHgwMiwgMHgwMywgMHg4NCwgMHhiNCwgMHgwOCwgMHgxYywgCisgICAgMHg3NSwgMHgwOCwgMHg3NCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHhiMywgMHgzZiwgMHhmMSwgMHg3ZSwgMHgwOCwgMHgwMSwgMHgzNywgMHg3YSwgMHgwYywgCisgICAgMHgwMCwgMHgwMCwgMHg3YSwgMHgwYiwgMHhiMCwgMHg3ZSwgMHg1NCwgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHg4NCwgMHhiNCwgMHgwMCwgMHgzMywgMHg3NSwgCisgICAgMHgwOCwgMHg3NSwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHgwOCwgMHgwMSwgMHgzNywgMHg3YSwgMHgwYywgMHgwMCwgMHgwMCwgMHhjYSwgMHgwYiwgMHg3ZSwgCisgICAgMHhiMywgMHgzZiwgMHhmMiwgMHgzMCwgMHhlMCwgMHgwNywgMHg3NCwgMHgwMiwgMHg3YSwgMHgwYiwgMHhiMCwgMHg4MCwgMHgwNSwgMHg3NCwgMHgwMCwgMHg3YSwgCisgICAgMHgwYiwgMHhiMCwgMHgwYiwgMHgxNCwgMHg3NCwgMHgwMCwgMHg3YSwgMHgwYiwgMHhiMCwgMHg3ZSwgMHg1NCwgMHgwMCwgMHgwMiwgMHhkYSwgMHgwYiwgMHgwMiwgCisgICAgMHgwMywgMHg4NCwgMHgwMiwgMHgwOSwgMHg4YiwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3NCwgMHg2MCwgMHg3YSwgMHhiMywgMHg5MSwgCisgICAgMHgxYywgMHg3ZSwgMHhiMywgMHgwMSwgMHgyNiwgMHhiNCwgMHgwMCwgMHg1ZiwgMHg3NSwgMHgwOCwgMHg3NiwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHhiMywgCisgICAgMHgwMSwgMHgyYSwgMHg1NCwgMHgwZiwgMHhiNCwgMHgwMiwgMHgwNSwgMHg3ZSwgMHhiMCwgMHg2MCwgMHg4MCwgMHgxNywgMHhiNCwgMHgwMCwgMHgwNSwgMHg3ZSwgCisgICAgMHhiMCwgMHgwMCwgMHg4MCwgMHgwZiwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyYSwgMHgyMCwgMHhlNywgMHgwNSwgMHg3ZSwgMHhiMCwgMHg0MCwgMHg4MCwgMHgwMywgCisgICAgMHg3ZSwgMHhiMCwgMHgyMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3ZSwgMHhiMywgMHg5MSwgMHgxMSwgMHgzMCwgMHhlMCwgMHgwNCwgMHg3NCwgMHgwMSwgCisgICAgMHg4MCwgMHgwMiwgMHg3NCwgMHgwMCwgMHg3ZSwgMHgwOCwgMHgwMSwgMHgzNywgMHg3YSwgMHgwYywgMHgwMCwgMHgwMCwgMHhjYSwgMHgwYiwgMHg3YSwgMHgwYiwgCisgICAgMHhiMCwgMHgwYiwgMHgxNCwgMHg3NCwgMHgwMCwgMHg3YSwgMHgwYiwgMHhiMCwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3ZSwgMHg1NCwgCisgICAgMHgwMCwgMHgwMiwgMHhkYSwgMHgwYiwgMHgwMiwgMHgwMywgMHg4NCwgMHgwMiwgMHgwOSwgMHg4YiwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyYSwgMHg1NCwgMHgwZiwgCisgICAgMHhiNCwgMHgwMiwgMHgwNSwgMHg3ZSwgMHhiMCwgMHg2MCwgMHg4MCwgMHgxNywgMHhiNCwgMHgwMCwgMHgwNSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg4MCwgMHgwZiwgCisgICAgMHg3ZSwgMHhiMywgMHgwMSwgMHgyYSwgMHgyMCwgMHhlNywgMHgwNSwgMHg3ZSwgMHhiMCwgMHg0MCwgMHg4MCwgMHgwMywgMHg3ZSwgMHhiMCwgMHgyMCwgMHg3YSwgCisgICAgMHhiMywgMHg5MSwgMHgwMCwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyOCwgMHhiNCwgMHgwMCwgMHgyNiwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyNiwgMHhiNCwgMHgwMSwgCisgICAgMHgwZSwgMHg3NSwgMHgwOCwgMHg3NywgMHgxMiwgMHgwYSwgMHhjMCwgMHg3NCwgMHgwMSwgMHg3YSwgMHhiMywgMHg5MSwgMHgxMiwgMHg4MCwgMHgxYiwgMHhiNCwgCisgICAgMHgwMywgMHgwZSwgMHg3NSwgMHgwOCwgMHg3OCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3NCwgMHgwMSwgMHg3YSwgMHhiMywgMHg5MSwgMHgxMSwgMHg4MCwgMHgwYSwgCisgICAgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHgxMiwgMHgwOSwgMHg4YiwgMHgyMiwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgCisgICAgMHgwMiwgMHgwMywgMHg3NywgMHg3ZSwgMHhiMywgMHgwMSwgMHgyNiwgMHhiNCwgMHgwOSwgMHgxZiwgMHg3NSwgMHgwOCwgMHg3OSwgMHgxMiwgMHgwYSwgMHhjMCwgCisgICAgMHg3ZSwgMHhiMywgMHgwMSwgMHgyOCwgMHhiZSwgMHhiMywgMHgzZiwgMHhmMSwgMHg2OCwgMHgwZCwgMHhjYSwgMHhiOCwgMHgxMiwgMHgwMSwgMHhmMSwgMHhkYSwgCisgICAgMHhiOCwgMHg1MCwgMHg3NiwgMHg3YSwgMHhiMywgMHgzZiwgMHhmMSwgMHg4MCwgMHg2ZCwgMHhiNCwgMHgwNSwgMHgwOCwgMHg3NSwgMHgwOCwgMHg3YSwgMHgxMiwgCisgICAgMHgwYSwgMHhjMCwgMHg4MCwgMHg2MiwgMHhiNCwgMHgwMywgMHgxOSwgMHg3NSwgMHgwOCwgMHg3YiwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHhiMywgMHgwMSwgCisgICAgMHgyOCwgMHhiNCwgMHgwMSwgMHg1NSwgMHg3ZSwgMHhiMywgMHgzZiwgMHhmMiwgMHg0NCwgMHgwMSwgMHg3YSwgMHhiMywgMHgzZiwgMHhmMiwgMHg4MCwgMHg0NiwgCisgICAgMHhiNCwgMHgwMSwgMHgxOSwgMHg3NSwgMHgwOCwgMHg3YywgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyOCwgMHhiNCwgMHgwMSwgMHgzOSwgCisgICAgMHg3ZSwgMHhiMywgMHgzZiwgMHhmMiwgMHg1NCwgMHhmZSwgMHg3YSwgMHhiMywgMHgzZiwgMHhmMiwgMHg4MCwgMHgyYSwgMHhiNCwgMHgwNywgMHgyYSwgMHg3ZSwgCisgICAgMHhiMywgMHgwMSwgMHgyNywgMHg2MCwgMHgyNCwgMHg3YywgMHgwYiwgMHg3ZSwgMHgxMywgMHgwMSwgMHgyOCwgMHg3ZSwgMHgxNywgMHgwMSwgMHgyOSwgMHg3NSwgCisgICAgMHgwOCwgMHg3MywgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgMHgwMSwgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgMHgxMSwgMHgwOCwgMHgxMiwgMHgwYSwgCisgICAgMHhjMCwgMHgxMiwgMHgwYSwgMHgwYSwgMHg0MCwgMHgwMywgMHgwMiwgMHgwMywgMHg3NywgMHgwMiwgMHgwOSwgMHg4YiwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyNiwgCisgICAgMHhiNCwgMHgwYiwgMHhmNiwgMHg3NSwgMHgwOCwgMHg3ZCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyOCwgMHg3ZSwgMHhhMywgMHgwMSwgCisgICAgMHgyYSwgMHg0YywgMHhhYiwgMHg3OCwgMHhlNCwgMHg4MCwgMHhkZiwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3NCwgMHg2MCwgMHg3YSwgCisgICAgMHhiMywgMHg5MSwgMHgxYywgMHg3ZSwgMHhiMywgMHgwMSwgMHgyNiwgMHhiNCwgMHgwYSwgMHhjZiwgMHg3NSwgMHgwOCwgMHg3ZSwgMHgxMiwgMHgwYSwgMHhjMCwgCisgICAgMHg3ZSwgMHhiMywgMHgwMSwgMHgyOCwgMHg3MCwgMHhjMywgMHg3ZSwgMHgwOCwgMHgwMSwgMHgzNywgMHg3YSwgMHgwYywgMHgwMCwgMHgwMCwgMHg3YSwgMHgwYiwgCisgICAgMHhiMCwgMHg3ZSwgMHg1NCwgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHg4NCwgMHgwMiwgMHgwOSwgMHg4YiwgMHgwMiwgMHgwOSwgMHg4YiwgMHgwMiwgMHgwOSwgCisgICAgMHg4YiwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyNiwgMHhiNCwgMHgwNCwgMHgyMCwgMHg3NSwgMHgwOCwgMHhjMywgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHgwNCwgCisgICAgMHgwMCwgMHgwMSwgMHg3ZSwgMHgxNywgMHgwMSwgMHgyNywgMHg3ZSwgMHgxOCwgMHgwMSwgMHgzNywgMHg3YSwgMHgxYywgMHgwMCwgMHgwMCwgMHg3ZSwgMHg0NywgCisgICAgMHgwMSwgMHgyYiwgMHgxMiwgMHgwYSwgMHhjYywgMHgwMiwgMHgwOCwgMHhmMywgMHhiNCwgMHgwNiwgMHg0MiwgMHg3NSwgMHgwOCwgMHhjMSwgMHgxMiwgMHgwYSwgCisgICAgMHhjMCwgMHg3ZSwgMHg1OCwgMHgwMCwgMHgwMCwgMHg3YSwgMHg1YywgMHgwMCwgMHhmZSwgMHg3ZCwgMHhjYSwgMHg3ZSwgMHhkNywgMHgwMSwgMHgyNywgMHg3ZSwgCisgICAgMHg3OCwgMHgwMSwgMHgzNywgMHg3YSwgMHg3YywgMHgwMCwgMHgwMCwgMHg3ZSwgMHg3NywgMHgwMSwgMHgyYiwgMHg3NSwgMHgwOCwgMHhjMSwgMHgxMiwgMHgwYSwgCisgICAgMHhjMCwgMHhjMCwgMHhhOCwgMHhjMiwgMHhhZiwgMHg3ZSwgMHg0MCwgMHgwMSwgMHg3YSwgMHg0MywgMHg5NCwgMHgwMCwgMHgxMiwgMHgwYiwgMHg2MywgMHg3ZSwgCisgICAgMHg0MywgMHgwMSwgMHgyNCwgMHg3YSwgMHg0MywgMHg5NCwgMHgwMCwgMHhkMCwgMHhhOCwgMHg0MCwgMHg2NSwgMHg4MCwgMHg2MCwgMHhiNCwgMHgwMCwgMHgyNCwgCisgICAgMHhjMiwgMHhhZiwgMHg3ZSwgMHhiMCwgMHgwMSwgMHg3YSwgMHhiMywgMHg5NCwgMHgwMCwgMHg3YSwgMHhiMywgMHgwMSwgMHgyNCwgMHgxMiwgMHgwMywgMHg3NywgCisgICAgMHhlNCwgMHg4ZCwgMHhlZiwgMHg4ZCwgMHhlZiwgMHg4ZCwgMHhlZiwgMHhkNSwgMHhlMCwgMHhmNywgMHhjMCwgMHhkMSwgMHhjYSwgMHgwMiwgMHhmZiwgMHhjYSwgCisgICAgMHgwNiwgMHgwMCwgMHgwMCwgMHgzMiwgMHhiNCwgMHgwOSwgMHgyMCwgMHg3NCwgMHgwMywgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3ZSwgMHgyMywgMHg5MSwgCisgICAgMHgwNywgMHg3ZSwgMHg1NywgMHgwMSwgMHgyNywgMHg0ZCwgMHg1NSwgMHg2OCwgMHgwNSwgMHg0ZSwgMHgyMCwgMHgwMiwgMHg4MCwgMHgwMywgMHg1ZSwgMHgyMCwgCisgICAgMHhmZCwgMHg3YSwgMHgyMywgMHg5MSwgMHgwNywgMHg4MCwgMHgxNiwgMHhiNCwgMHgwNywgMHgxNiwgMHhjMiwgMHhhZiwgMHg3ZSwgMHgwNywgMHgwMSwgMHgyOSwgCisgICAgMHg3ZSwgMHgxNywgMHgwMSwgMHgyNywgMHhjMCwgMHhkMSwgMHhjYSwgMHgxOCwgMHhjYSwgMHgzOCwgMHhjYSwgMHgyOCwgMHgzMiwgMHgwMiwgMHgwMywgMHg3NywgCisgICAgMHgwMiwgMHgwOSwgMHg4YiwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3NCwgMHg2MCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxYywgMHg3ZSwgCisgICAgMHhiMywgMHgwMSwgMHgyNiwgMHhiNCwgMHgwMywgMHgxNSwgMHg3NSwgMHgwOCwgMHhjMiwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgwMSwgCisgICAgMHg3ZSwgMHgxNywgMHgwMSwgMHgyNywgMHg3ZSwgMHg1NywgMHgwMSwgMHgyYiwgMHgwMiwgMHgwMywgMHg4NCwgMHhiNCwgMHgwNSwgMHg0MSwgMHg3NSwgMHgwOCwgCisgICAgMHhjMCwgMHgxMiwgMHgwYSwgMHhjMCwgMHhjMCwgMHhhOCwgMHhjMiwgMHhhZiwgMHg3ZSwgMHg0MCwgMHgwMSwgMHg3YSwgMHg0MywgMHg5NCwgMHgwMCwgMHg3ZSwgCisgICAgMHgwOCwgMHgwMSwgMHgzNywgMHg3YSwgMHgwYywgMHgwMCwgMHgwMCwgMHg3ZSwgMHgyNCwgMHgwMCwgMHhmZSwgMHg3ZSwgMHgzNywgMHgwMSwgMHgyNywgMHg3ZSwgCisgICAgMHg0NywgMHgwMSwgMHgyYiwgMHgxMiwgMHgwYSwgMHhjYywgMHg3ZSwgMHg0MywgMHgwMSwgMHgyNCwgMHg3YSwgMHg0MywgMHg5NCwgMHgwMCwgMHhkMCwgMHhhOCwgCisgICAgMHg3ZSwgMHgwOCwgMHgwMSwgMHgzNywgMHg3YSwgMHgwYywgMHgwMCwgMHgwMCwgMHg3ZSwgMHg1NywgMHgwMSwgMHgyYiwgMHgwMiwgMHgwMywgMHg4NCwgMHhiNCwgCisgICAgMHgwMSwgMHgyMCwgMHg3ZSwgMHgwMCwgMHgwMCwgMHg3ZSwgMHgxMCwgMHgwMSwgMHg3NSwgMHgwOCwgMHg3MiwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgMHgwMSwgCisgICAgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgMHgxMSwgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgMHgxMiwgMHgwOSwgMHhkMCwgMHg0MCwgMHgwMywgMHgwMiwgCisgICAgMHgwMywgMHg4NCwgMHgwMiwgMHgwOSwgMHg4YiwgMHg3NSwgMHgwOCwgMHgwNywgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHhiMCwgMHgwMiwgMHg3YSwgMHhiMywgCisgICAgMHg5MCwgMHgwMCwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3NCwgMHg0MCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxNSwgMHg3NCwgMHgwMSwgCisgICAgMHg3YSwgMHhiMywgMHg5MSwgMHgxMSwgMHg3ZSwgMHhiMywgMHg5MSwgMHgxNSwgMHg1NCwgMHg2MCwgMHhiZSwgMHhiMCwgMHg0MCwgMHg2OCwgMHgwOCwgMHg3NCwgCisgICAgMHgyMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxNSwgMHg4MCwgMHhlZCwgMHg3NCwgMHgwMSwgMHg3YSwgMHhiMywgMHg5MSwgMHgxMiwgMHg3NCwgMHgwNCwgMHg3YSwgCisgICAgMHhiMywgMHg5MSwgMHgxNCwgMHg3NCwgMHhmZiwgMHg3YSwgMHhiMywgMHgwMSwgMHgyZCwgMHgyMiwgMHhjMCwgMHhhOCwgMHhjMiwgMHhhZiwgMHg3ZSwgMHg0MCwgCisgICAgMHgwMSwgMHg3YSwgMHg0MywgMHg5NCwgMHgwMCwgMHgxMiwgMHgwYSwgMHg1NywgMHg0MCwgMHgxZiwgMHg3ZSwgMHgwOCwgMHgwMSwgMHgzNywgMHg3YSwgMHgwYywgCisgICAgMHgwMCwgMHgwMCwgMHhjYSwgMHgwYiwgMHhjYSwgMHg0OSwgMHgxMiwgMHgwYSwgMHhjYywgMHhkYSwgMHg1OSwgMHhkYSwgMHgwYiwgMHg3ZSwgMHg0MywgMHgwMSwgCisgICAgMHgyNCwgMHg3YSwgMHg0MywgMHg5NCwgMHgwMCwgMHhkMCwgMHhhOCwgMHhjMywgMHgyMiwgMHg3ZSwgMHg0MywgMHgwMSwgMHgyNCwgMHg3YSwgMHg0MywgMHg5NCwgCisgICAgMHgwMCwgMHhkMCwgMHhhOCwgMHgyMiwgMHhjMCwgMHhhOCwgMHhjMiwgMHhhZiwgMHg3ZSwgMHg0MCwgMHgwMSwgMHg3YSwgMHg0MywgMHg5NCwgMHgwMCwgMHgxMiwgCisgICAgMHgwYSwgMHg1NywgMHg0MCwgMHgzMSwgMHg3ZSwgMHg1OCwgMHgwMCwgMHgwMCwgMHg3YSwgMHg1YywgMHgwMCwgMHhmZSwgMHg3ZiwgMHg2MSwgMHg3ZSwgMHg3OCwgCisgICAgMHgwMSwgMHgzNywgMHg3YSwgMHg3YywgMHgwMCwgMHgwMCwgMHg3ZSwgMHg3NywgMHgwMSwgMHgyYiwgMHhiZCwgMHg3NCwgMHg3OCwgMHgxNywgMHg3NSwgMHgwOCwgCisgICAgMHhjMSwgMHgxMiwgMHgwYSwgMHhjMCwgMHgxMiwgMHgwYiwgMHg2MywgMHg0MCwgMHgwYywgMHg3ZSwgMHg0MywgMHgwMSwgMHgyNCwgMHg3YSwgMHg0MywgMHg5NCwgCisgICAgMHgwMCwgMHhkMCwgMHhhOCwgMHhjMywgMHgyMiwgMHg3ZSwgMHg0MywgMHgwMSwgMHgyNCwgMHg3YSwgMHg0MywgMHg5NCwgMHgwMCwgMHhkMCwgMHhhOCwgMHhkMywgCisgICAgMHgyMiwgMHg3ZSwgMHgyNCwgMHgwMCwgMHhmZSwgMHg3ZSwgMHgzNCwgMHg3ZiwgMHhjYSwgMHgwYiwgMHgxYSwgMHg1MCwgMHhjNSwgMHhmMCwgMHg3ZCwgMHg2MiwgCisgICAgMHg3ZCwgMHg3NSwgMHg3ZCwgMHg4NywgMHg3ZSwgMHgzNCwgMHg3ZiwgMHgwMywgMHg3ZSwgMHgxYiwgMHhiMCwgMHhiYywgMHgwYiwgMHg1MCwgMHg0OSwgMHgzZSwgCisgICAgMHgwMCwgMHgzZSwgMHgwMCwgMHgwYSwgMHg1MCwgMHgyZCwgMHg3NSwgMHgwYiwgMHgzYSwgMHgzMCwgMHg2OSwgMHg1MywgMHgwMCwgMHgwMiwgMHhiZCwgMHgzOCwgCisgICAgMHg1MCwgMHgwMiwgMHgyZCwgMHgzOCwgMHhiYywgMHgxYiwgMHg1MCwgMHgzMCwgMHgzZSwgMHgxMCwgMHgzZSwgMHgxMCwgMHgwYSwgMHg1MSwgMHgyZCwgMHgzNSwgCisgICAgMHg2OSwgMHg0MSwgMHgwMCwgMHgwMiwgMHgwYiwgMHgxYSwgMHgzMCwgMHhiZCwgMHgzOCwgMHg1MCwgMHgwMiwgMHgyZCwgMHgzOCwgMHhiZSwgMHg0NCwgMHhmZiwgCisgICAgMHhmZiwgMHg3OCwgMHgwNSwgMHg3ZSwgMHgxYiwgMHg5MCwgMHgwYSwgMHg0OSwgMHg0ZCwgMHg0NCwgMHg2OCwgMHgwYywgMHhiZSwgMHg0NCwgMHgwMCwgMHhmZiwgCisgICAgMHgyOCwgMHgwNCwgMHg3ZSwgMHg0NCwgMHgwMCwgMHhmZiwgMHhjMywgMHgyMiwgMHhkMywgMHgyMiwgCisKKy8vIFNlZ21lbnQgIzE2LCBFWENMVURFRCBTdGFydCBBZGRyZXNzIDAwZmY3YzAwLCBMZW5ndGggMjI3CisKKworLy8gU2VnbWVudCAjMTcsIEVYQ0xVREVEIFN0YXJ0IEFkZHJlc3MgMDBmZjdmMDAsIExlbmd0aCAxOTIKKworCisvLyBTZWdtZW50ICMxNywgU3RhcnQgQWRkcmVzcyAwMGZmN2ZjMCwgTGVuZ3RoIDY0CisweGZmLDB4MDAsMHhjMCwweDdmLDB4NDAsMHgwMCwKKyAgICAweDQwLCAweDAxLCAweDAyLCAweDAwLCAweGQ3LCAweDMxLCAweDAyLCAweDAwLCAweDAzLCAweDAwLCAweDAwLCAweDdjLCAweDAwLCAweDAwLCAweDAxLCAweDAwLCAKKyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAKKyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAKKyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweGYxLCAweDdmLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAKKworLy8gU2VnbWVudCAjMTgsIFN0YXJ0IEFkZHJlc3MgMDBmZjBhYzAsIExlbmd0aCA0MTYzCisweGZmLDB4MDAsMHhjMCwweDBhLDB4NDMsMHgxMCwKKyAgICAweGNhLCAweDA4LCAweDdlLCAweDAxLCAweDA4LCAweDdhLCAweDAzLCAweDNmLCAweGYwLCAweGRhLCAweDA4LCAweDIyLCAweDgwLCAweDUwLCAweDBiLCAweDFhLCAKKyAgICAweDYwLCAweDBiLCAweDM1LCAweDBiLCAweDFhLCAweDcwLCAweDBiLCAweDM1LCAweDBiLCAweDFhLCAweDgwLCAweDBiLCAweDM1LCAweDBiLCAweDFhLCAweDkwLCAKKyAgICAweDBiLCAweDM1LCAweDBiLCAweDFhLCAweGEwLCAweDBiLCAweDM1LCAweDBiLCAweDFhLCAweGIwLCAweDBiLCAweDM1LCAweDBiLCAweDFhLCAweGMwLCAweDBiLCAKKyAgICAweDM1LCAweDBiLCAweDFhLCAweGQwLCAweDBiLCAweDM1LCAweDFiLCAweDBhLCAweDYwLCAweDBiLCAweDE1LCAweDFiLCAweDBhLCAweDcwLCAweDBiLCAweDE1LCAKKyAgICAweDFiLCAweDBhLCAweDgwLCAweDBiLCAweDE1LCAweDFiLCAweDBhLCAweDkwLCAweDBiLCAweDE1LCAweDFiLCAweDBhLCAweGEwLCAweDBiLCAweDE1LCAweDFiLCAKKyAgICAweDBhLCAweGIwLCAweDBiLCAweDE1LCAweDFiLCAweDBhLCAweGMwLCAweDBiLCAweDE1LCAweDFiLCAweDBhLCAweGQwLCAweDBiLCAweDE1LCAweDllLCAweDQ0LCAKKyAgICAweDAwLCAweDEwLCAweDUwLCAweGFhLCAweDJlLCAweDQ0LCAweDAwLCAweDEwLCAweDY4LCAweDBlLCAweDdlLCAweDFiLCAweGMwLCAweDdhLCAweDBiLCAweGMwLCAKKyAgICAweDBiLCAweDE0LCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDc4LCAweGYyLCAweDIyLCAweDdmLCAweDZmLCAweDdmLCAweGYwLCAweDFiLCAweGZjLCAweDdjLCAKKyAgICAweDU0LCAweDdkLCAweDMyLCAweDgwLCAweDA4LCAweGNhLCAweDFiLCAweGNhLCAweDFiLCAweGNhLCAweDFiLCAweGNhLCAweDFiLCAweDllLCAweDQ0LCAweDAwLCAKKyAgICAweDEwLCAweDUwLCAweGYyLCAweDJlLCAweDQ0LCAweDAwLCAweDEwLCAweDY4LCAweDA2LCAweGNhLCAweDQ4LCAweDFiLCAweDQ0LCAweDc4LCAweGZhLCAweDdmLCAKKyAgICAweGY2LCAweDg5LCAweGU0LCAweGNhLCAweDZiLCAweDVlLCAweGQ0LCAweDAwLCAweDNmLCAweDY4LCAweDIwLCAweDdlLCAweDg0LCAweDAwLCAweDQwLCAweDlkLCAKKyAgICAweDhkLCAweGRhLCAweDZiLCAweGJkLCAweDg3LCAweDM4LCAweDE2LCAweGNhLCAweDc5LCAweDdkLCAweDc4LCAweDEyLCAweDBiLCAweDhkLCAweGRhLCAweDc5LCAKKyAgICAweDQwLCAweDA4LCAweDlkLCAweDc4LCAweDY4LCAweDAyLCAweDgwLCAweDA1LCAweGMyLCAweGQ3LCAweDIyLCAweGRhLCAweDZiLCAweDdlLCAweGMwLCAweDAzLCAKKyAgICAweDdlLCAweGQwLCAweDAwLCAweDdhLCAweGQzLCAweDkwLCAweDAwLCAweDc0LCAweGFhLCAweDM5LCAweGI1LCAweDU1LCAweDU1LCAweDc0LCAweDU1LCAweDM5LCAKKyAgICAweGI1LCAweDJhLCAweGFhLCAweDc0LCAweGEwLCAweDM5LCAweGI1LCAweDU1LCAweDU1LCAweDdlLCAweDA0LCAweDAwLCAweDQwLCAweDlkLCAweDcwLCAweDUwLCAKKyAgICAweDA2LCAweDJkLCAweDcwLCAweDdkLCAweDA3LCAweDZkLCAweDc3LCAweDdjLCAweDMxLCAweDdlLCAweDdiLCAweDAwLCAweDdhLCAweDZiLCAweDAwLCAweDBiLCAKKyAgICAweDdjLCAweDBiLCAweDZjLCAweGE1LCAweGQ5LCAweGYzLCAweDdmLCAweDE2LCAweDFiLCAweDFjLCAweDdlLCAweDU0LCAweDI3LCAweDEwLCAweDdlLCAweDFiLCAKKyAgICAweDEwLCAweGJjLCAweDEwLCAweDY4LCAweDA2LCAweDFiLCAweDU0LCAweDc4LCAweGY1LCAweDgwLCAweDJmLCAweDZkLCAweDAwLCAweDdjLCAweDIwLCAweDdmLCAKKyAgICAweDE2LCAweDlmLCAweDEwLCAweDdmLCAweDI3LCAweDlmLCAweDIwLCAweDdlLCAweDJiLCAweDAwLCAweDdlLCAweDFiLCAweDEwLCAweGJjLCAweDAxLCAweDc4LCAKKyAgICAweDE5LCAweDBiLCAweDJjLCAweDBiLCAweDFjLCAweGE1LCAweGRiLCAweGVmLCAweDdjLCAweGI2LCAweDIwLCAweGUwLCAweDA2LCAweDZjLCAweGRjLCAweDdhLCAKKyAgICAweGQzLCAweDkwLCAweDAwLCAweDRkLCAweDc3LCAweDc4LCAweDkwLCAweGMyLCAweGQ3LCAweDIyLCAweGQyLCAweGQ3LCAweDIyLCAweDAwLCAweDA0LCAweDAwLCAKKyAgICAweDA0LCAweDAwLCAweDAwLCAweDA2LCAweDA0LCAweDAyLCAweDA0LCAweDAwLCAweDAyLCAweDAxLCAweDA0LCAweDAxLCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAKKyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAyLCAweDAyLCAweDAyLCAweDAyLCAweDA0LCAweDAwLCAweDA4LCAweDEwLCAweDAyLCAweDEwLCAKKyAgICAweDA0LCAweDAyLCAweDA4LCAweDAwLCAweDAxLCAweDAxLCAweDA4LCAweDdlLCAweDE4LCAweDdmLCAweGJkLCAweDdhLCAweDFjLCAweDAwLCAweGZmLCAweDBiLCAKKyAgICAweDFhLCAweDAwLCAweDVlLCAweDEwLCAweDFmLCAweGJlLCAweDEwLCAweDE0LCAweDM4LCAweDFhLCAweDBhLCAweDUxLCAweDIzLCAweDdlLCAweDE4LCAweDBjLCAKKyAgICAweDBkLCAweDdhLCAweDFjLCAweDAwLCAweGZmLCAweDJkLCAweDM1LCAweDBiLCAweDFhLCAweDUwLCAweDYwLCAweDA4LCAweGE1LCAweGI4LCAweDAyLCAweDAzLCAKKyAgICAweDRlLCAweGEwLCAweDA4LCAweDIyLCAweDgwLCAweGZlLCAweDdlLCAweGU4LCAweDdmLCAweGJmLCAweDdhLCAweGVjLCAweDAwLCAweGZmLCAweGUwLCAweGY1LCAKKyAgICAweDIzLCAweDU0LCAweGMwLCAweDY4LCAweDM4LCAweDdlLCAweGU4LCAweDdmLCAweGJlLCAweDdhLCAweGVjLCAweDAwLCAweGZmLCAweGUwLCAweDYwLCAweDJlLCAKKyAgICAweDEyLCAweDBjLCAweDM3LCAweGY1LCAweDIxLCAweDdhLCAweGExLCAweDIwLCAweDIwLCAweDA5LCAweDBjLCAweDIwLCAweDBhLCAweDEyLCAweDdlLCAweGIwLCAKKyAgICAweDBlLCAweDdhLCAweGIzLCAweDkyLCAweDAwLCAweDgwLCAweDEwLCAweDdlLCAweGIwLCAweDAyLCAweDdhLCAweGIzLCAweDkyLCAweDAwLCAweDgwLCAweDA3LCAKKyAgICAweDdlLCAweGIwLCAweDBhLCAweDdhLCAweGIzLCAweDkyLCAweDAwLCAweDdhLCAweGIxLCAweDBkLCAweDAyLCAweDBjLCAweGM0LCAweDIyLCAweDdlLCAweGIwLCAKKyAgICAweDAyLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDEyLCAweDE5LCAweDBjLCAweDdlLCAweGIwLCAweDAzLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDEyLCAKKyAgICAweDE5LCAweDBjLCAweDgwLCAweGVhLCAweGMyLCAweGFmLCAweGMyLCAweDExLCAweGMyLCAweDEyLCAweDc1LCAweGIwLCAweGRmLCAweDdlLCAweDAwLCAweDAxLCAKKyAgICAweDdhLCAweDAzLCAweDkzLCAweDAwLCAweDdlLCAweDAwLCAweDAwLCAweDdhLCAweDAzLCAweDkwLCAweDAwLCAweDZjLCAweDAwLCAweDdlLCAweDEwLCAweDAzLCAKKyAgICAweDEyLCAweDBjLCAweGY1LCAweDdlLCAweDY4LCAweDJjLCAweDY2LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDBiLCAweDAwLCAKKyAgICAweDgwLCAweDMyLCAweDAyLCAweDFhLCAweDZlLCAweDIwLCAweDExLCAweDJiLCAweDdlLCAweGIwLCAweDAxLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDEyLCAKKyAgICAweDE5LCAweDBjLCAweDdlLCAweGIwLCAweDAzLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDEyLCAweDE5LCAweDBjLCAweDdlLCAweGIwLCAweDAyLCAweDdhLCAKKyAgICAweGIzLCAweDkwLCAweDAwLCAweDEyLCAweDE5LCAweDBjLCAweGE1LCAweGQ5LCAweGRjLCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAKKyAgICAweDEyLCAweDE5LCAweDBjLCAweDIyLCAweDdlLCAweDY4LCAweDJjLCAweGY5LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAKKyAgICAweGU0LCAweDEwLCAweDAwLCAweDdlLCAweDQwLCAweDU1LCAweDdhLCAweGU5LCAweDQwLCAweDBiLCAweGU0LCAweDdlLCAweDUwLCAweGFhLCAweDdhLCAweGU5LCAKKyAgICAweDUwLCAweDFiLCAweGU0LCAweGJlLCAweGU5LCAweDQwLCAweDY4LCAweDE5LCAweDdlLCAweDY4LCAweDJjLCAweGRmLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAKKyAgICAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAweDEzLCAweDdhLCAweGU5LCAweDQwLCAweDdlLCAweGU5LCAweDEwLCAweDgwLCAKKyAgICAweGY4LCAweDdlLCAweDY4LCAweDJjLCAweGRhLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDBiLCAweDAwLCAweDdlLCAweDY4LCAKKyAgICAweDJkLCAweDNkLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDc4LCAweDAwLCAweDAwLCAweDdlLCAweDcwLCAweDBlLCAKKyAgICAweDdlLCAweGE0LCAweGZmLCAweGZmLCAweDdlLCAweGI0LCAweGJmLCAweGZmLCAweDdkLCAweGNiLCAweDBlLCAweGM0LCAweDdkLCAweGRjLCAweDVkLCAweGRiLCAKKyAgICAweDZjLCAweGJiLCAweDdkLCAweGZhLCAweDVlLCAweGY0LCAweDdmLCAweGZmLCAweDdhLCAweDdiLCAweGIwLCAweDBiLCAweGIwLCAweDdkLCAweGZiLCAweDVlLCAKKyAgICAweGY0LCAweDdmLCAweGZmLCAweDdhLCAweDdiLCAweGIwLCAweDBiLCAweGIwLCAweDdkLCAweGZjLCAweDVlLCAweGY0LCAweDdmLCAweGZmLCAweDdhLCAweDdiLCAKKyAgICAweGIwLCAweDBiLCAweGIwLCAweDdkLCAweGZkLCAweDVlLCAweGY0LCAweDdmLCAweGZmLCAweDdhLCAweDdiLCAweGIwLCAweDZjLCAweGJiLCAweDdkLCAweGZhLCAKKyAgICAweDVlLCAweGY0LCAweDdmLCAweGZmLCAweGJlLCAweDdiLCAweGIwLCAweDc4LCAweDQxLCAweDBiLCAweGIwLCAweDdkLCAweGZiLCAweDVlLCAweGY0LCAweDdmLCAKKyAgICAweGZmLCAweGJlLCAweDdiLCAweGIwLCAweDc4LCAweDM0LCAweDBiLCAweGIwLCAweDdkLCAweGZjLCAweDVlLCAweGY0LCAweDdmLCAweGZmLCAweGJlLCAweDdiLCAKKyAgICAweGIwLCAweDc4LCAweDI3LCAweDBiLCAweGIwLCAweDdkLCAweGZkLCAweDVlLCAweGY0LCAweDdmLCAweGZmLCAweGJlLCAweDdiLCAweGIwLCAweDc4LCAweDFhLCAKKyAgICAweDBiLCAweGIwLCAweGJlLCAweGM0LCAweGZmLCAweGZlLCAweDc4LCAweDkyLCAweDBlLCAweGI0LCAweGE1LCAweGRmLCAweDhiLCAweDdlLCAweDY4LCAweDJjLCAKKyAgICAweGU3LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDgwLCAweDc3LCAweGNhLCAweDViLCAweGNhLCAweDZiLCAweDdlLCAweDY4LCAKKyAgICAweDJjLCAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDY4LCAweDJkLCAweDhmLCAweDdhLCAweDZjLCAweDAwLCAKKyAgICAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDBhLCAweDQ3LCAweDEyLCAweDE5LCAweGZhLCAweDdlLCAweDY4LCAweDJkLCAweGRlLCAweDdhLCAweDZjLCAweDAwLCAKKyAgICAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDZjLCAweDc3LCAweGRhLCAweDZiLCAweGNhLCAweDZiLCAweDBiLCAweDcwLCAweDBlLCAweGM0LCAweGJlLCAweGM0LCAKKyAgICAweGZmLCAweGZmLCAweDc4LCAweGY2LCAweDFiLCAweDcwLCAweDBhLCAweDQ3LCAweDEyLCAweDE5LCAweGZhLCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAKKyAgICAweDMwLCAweGRhLCAweDZiLCAweGRhLCAweDViLCAweDZjLCAweGJiLCAweDdlLCAweDc4LCAweDAwLCAweDAwLCAweDdkLCAweGZhLCAweDVlLCAweGY0LCAweDdmLCAKKyAgICAweGZmLCAweDdhLCAweDdiLCAweGIwLCAweDdkLCAweGZiLCAweDVlLCAweGY0LCAweDdmLCAweGZmLCAweDdhLCAweDdiLCAweGIwLCAweDdkLCAweGZjLCAweDVlLCAKKyAgICAweGY0LCAweDdmLCAweGZmLCAweDdhLCAweDdiLCAweGIwLCAweDdkLCAweGZkLCAweDVlLCAweGY0LCAweDdmLCAweGZmLCAweDdhLCAweDdiLCAweGIwLCAweDgwLCAKKyAgICAweGQ0LCAweDdlLCAweDY4LCAweDJkLCAweDFiLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDMwLCAweDFmLCAweDBlLCAweDdlLCAKKyAgICAweDc4LCAweDA0LCAweDIwLCAweDdhLCAweDdjLCAweDAwLCAweDAwLCAweDdlLCAweDQ0LCAweDdiLCAweGUwLCAweDgwLCAweDBjLCAweDdlLCAweDc4LCAweDAwLCAKKyAgICAweDAwLCAweDdhLCAweDdjLCAweDAwLCAweDAxLCAweDdlLCAweDQ0LCAweDgwLCAweDAwLCAweDBiLCAweDAwLCAweDdlLCAweDQwLCAweDNhLCAweDdjLCAweDU0LCAKKyAgICAweDdmLCAweDU3LCAweDdkLCAweDg0LCAweDZjLCAweDY2LCAweDdhLCAweDViLCAweDUwLCAweDBiLCAweDVjLCAweDBiLCAweDUwLCAweGE1LCAweGRlLCAweDAyLCAKKyAgICAweDBiLCAweDUwLCAweDFiLCAweDg0LCAweDc4LCAweGYwLCAweDdjLCAweDU0LCAweDdmLCAweDU3LCAweDdkLCAweDg0LCAweDZjLCAweDY2LCAweGJlLCAweDViLCAKKyAgICAweDUwLCAweDc4LCAweDFhLCAweDBiLCAweDVjLCAweDBiLCAweDUwLCAweGE1LCAweGRlLCAweDAyLCAweDBiLCAweDUwLCAweDFiLCAweDg0LCAweDc4LCAweGVlLCAKKyAgICAweDdlLCAweDY4LCAweDJjLCAweGRhLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDgwLCAweDRiLCAweDdmLCAweDQ1LCAweDdlLCAKKyAgICAweDY4LCAweDJjLCAweGRmLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDY4LCAweDJkLCAweDVmLCAweDdhLCAweDZjLCAKKyAgICAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdkLCAweDRiLCAweDEyLCAweDE5LCAweGZhLCAweDdlLCAweDY4LCAweDJkLCAweDc0LCAweDdhLCAweDZjLCAKKyAgICAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDZjLCAweDg4LCAweDdjLCAweDk1LCAweDEyLCAweDE5LCAweGZhLCAweDdlLCAweDY4LCAweDJkLCAweDgyLCAKKyAgICAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDRiLCAweDkwLCAweDEyLCAweDE5LCAweGZhLCAweDEyLCAweDE5LCAweDE5LCAKKyAgICAweDMwLCAweDExLCAweDA1LCAweDdlLCAweDRiLCAweDkwLCAweDgwLCAweGZiLCAweDdlLCAweDY4LCAweDJlLCAweDI4LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAKKyAgICAweDEyLCAweDE5LCAweGM0LCAweDBiLCAweDAwLCAweDdlLCAweGIwLCAweDgwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDdlLCAweGEwLCAweDU1LCAweDdhLCAKKyAgICAweGEzLCAweDkxLCAweDEwLCAweDdlLCAweGIzLCAweDkxLCAweDA3LCAweDdlLCAweGIzLCAweDkxLCAweDEwLCAweGJjLCAweGFiLCAweDc4LCAweDIwLCAweDdlLCAKKyAgICAweGEwLCAweGFhLCAweDdhLCAweGEzLCAweDkxLCAweDEwLCAweDdlLCAweGIzLCAweDkxLCAweDA3LCAweDdlLCAweGIzLCAweDkxLCAweDEwLCAweGJjLCAweGFiLCAKKyAgICAweDc4LCAweDBkLCAweDdlLCAweDY4LCAweDJjLCAweGRhLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDgwLCAweDFiLCAweDdlLCAKKyAgICAweDY4LCAweDJjLCAweGRmLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAweDBhLCAKKyAgICAweDdhLCAweGEzLCAweDkxLCAweDEwLCAweDdlLCAweGIzLCAweDkxLCAweDEwLCAweDgwLCAweGY2LCAweDdlLCAweDY4LCAweDJlLCAweDRhLCAweDdhLCAweDZjLCAKKyAgICAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDEyLCAweDMxLCAweDBiLCAweDAwLCAweDdlLCAweGU0LCAweDEwLCAweDAwLCAweDdlLCAweGEwLCAKKyAgICAweGE1LCAweGNhLCAweGE4LCAweDdhLCAweGU5LCAweGEwLCAweDdlLCAweGIwLCAweDMwLCAweDdhLCAweGIzLCAweDk1LCAweDAwLCAweDdlLCAweGU5LCAweGEwLCAKKyAgICAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDk1LCAweDAwLCAweDEyLCAweDE5LCAweDBjLCAweDBiLCAweGU1LCAweDdlLCAweGIwLCAweDIwLCAweDdhLCAKKyAgICAweGIzLCAweDk1LCAweDAwLCAweDdlLCAweGU5LCAweGIwLCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDk1LCAweDAwLCAweDdlLCAweGU5LCAweGIwLCAKKyAgICAweGRhLCAweGE4LCAweGJjLCAweGFiLCAweDc4LCAweDBkLCAweDdlLCAweDY4LCAweDJjLCAweGRhLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAKKyAgICAweGM0LCAweDgwLCAweDFkLCAweDdlLCAweDY4LCAweDJjLCAweGRmLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAKKyAgICAweDE5LCAweDMwLCAweDExLCAweDBjLCAweDdlLCAweGIwLCAweDM4LCAweDdhLCAweGIzLCAweDk1LCAweDAwLCAweDdlLCAweGU5LCAweGIwLCAweDgwLCAweGZiLCAKKyAgICAweDgwLCAweDAwLCAweDdlLCAweDY4LCAweDJkLCAweGU0LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDBiLCAweDAwLCAweDc1LCAKKyAgICAweGIwLCAweGRmLCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDA5LCAweGIyLCAweDAwLCAweDA4LCAweGJlLCAweGIwLCAweDAxLCAweDc4LCAweDBiLCAweDA5LCAKKyAgICAweGIyLCAweDAwLCAweDE0LCAweGJlLCAweGIwLCAweDYwLCAweDc4LCAweDAyLCAweDgwLCAweDE3LCAweDdlLCAweDY4LCAweDJjLCAweGRmLCAweDdhLCAweDZjLCAKKyAgICAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAweDExLCAweDA5LCAweGIyLCAweDAwLCAweDA4LCAweDgwLCAKKyAgICAweGZhLCAweDdlLCAweDY4LCAweDJjLCAweGRhLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDY4LCAweDJlLCAweDA2LCAKKyAgICAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDBiLCAweDAwLCAweDc1LCAweGIwLCAweGVmLCAweDEyLCAweDE4LCAweGZmLCAweDdlLCAKKyAgICAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweGEwLCAweDU1LCAweDE5LCAweGEyLCAweDAwLCAweDFjLCAweDdlLCAweGIwLCAweDAxLCAweDE5LCAweGIyLCAweDAwLCAKKyAgICAweDA4LCAweDA5LCAweGIyLCAweDAwLCAweDFjLCAweGJjLCAweGFiLCAweDc4LCAweDM3LCAweDA5LCAweGIyLCAweDAwLCAweDA4LCAweDVlLCAweGIwLCAweGMwLCAKKyAgICAweGJlLCAweGIwLCAweGMwLCAweDc4LCAweDJiLCAweDdlLCAweGEwLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDFjLCAweDZjLCAweGJiLCAweDE5LCAweGIyLCAKKyAgICAweDAwLCAweDA4LCAweDA5LCAweGIyLCAweDAwLCAweDFjLCAweGJjLCAweGFiLCAweDc4LCAweDE2LCAweDA5LCAweGIyLCAweDAwLCAweDA4LCAweDVlLCAweGIwLCAKKyAgICAweGMwLCAweDc4LCAweDBkLCAweDdlLCAweDY4LCAweDJjLCAweGRhLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDgwLCAweDFiLCAKKyAgICAweDdlLCAweDY4LCAweDJjLCAweGRmLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAKKyAgICAweDBhLCAweDE5LCAweGEyLCAweDAwLCAweDFjLCAweDA5LCAweGIyLCAweDAwLCAweDFjLCAweDgwLCAweGY2LCAweDdlLCAweDY4LCAweDJlLCAweDZjLCAweDdhLCAKKyAgICAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDY4LCAweDJlLCAweGVlLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAKKyAgICAweGM0LCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDdlLCAweGIwLCAweDAxLCAweDE5LCAweGIyLCAweDAwLCAweDFjLCAweDJlLCAKKyAgICAweDI0LCAweDAxLCAweDAwLCAweDBiLCAweGIwLCAweGE1LCAweGQ5LCAweGYzLCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDdlLCAKKyAgICAweGIwLCAweDAxLCAweDBiLCAweDAwLCAweDA5LCAweGEyLCAweDAwLCAweDFjLCAweGJjLCAweGFiLCAweDc4LCAweDE2LCAweDdlLCAweDY4LCAweDJjLCAweGU3LCAKKyAgICAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweDBiLCAweGIwLCAweGE1LCAweGQ5LCAweGUyLCAKKyAgICAweDgwLCAweDI1LCAweDdlLCAweDY4LCAweDJjLCAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAweDE5LCAKKyAgICAweDMwLCAweDExLCAweGU0LCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDA5LCAweGEyLCAweDAwLCAweDFjLCAweDJlLCAweDI0LCAKKyAgICAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweGY1LCAweDgwLCAweGVjLCAweDdlLCAweDY4LCAweDJmLCAweDEyLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAKKyAgICAweDE5LCAweGM0LCAweDEyLCAweDEyLCAweDMxLCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDBiLCAweDAwLCAweDc0LCAweDEwLCAKKyAgICAweDE5LCAweGIyLCAweDAwLCAweDEwLCAweDEyLCAweDExLCAweGFhLCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweGVlLCAweDdlLCAweDY4LCAKKyAgICAweDJmLCAweDM2LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAKKyAgICAweDBiLCAweDAwLCAweGU0LCAweDE5LCAweGIyLCAweDAwLCAweDEwLCAweDEyLCAweDExLCAweGFhLCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAKKyAgICAweGVmLCAweDMwLCAweDAwLCAweDAzLCAweDAyLCAweDE3LCAweDNiLCAweDAyLCAweDEyLCAweDZhLCAweDc0LCAweDA3LCAweDE5LCAweGIyLCAweDAwLCAweDA4LCAKKyAgICAweDEyLCAweDE5LCAweDBjLCAweDA5LCAweGIyLCAweDAwLCAweDAwLCAweDA5LCAweGIyLCAweDAwLCAweDE0LCAweDA5LCAweGIyLCAweDAwLCAweDAwLCAweDA5LCAKKyAgICAweGIyLCAweDAwLCAweDE0LCAweDA5LCAweGIyLCAweDAwLCAweDAwLCAweDA5LCAweGIyLCAweDAwLCAweDE0LCAweDA5LCAweGIyLCAweDAwLCAweDAwLCAweDA5LCAKKyAgICAweGIyLCAweDAwLCAweDE0LCAweGMyLCAweDEzLCAweDdlLCAweGIwLCAweDU1LCAweDEyLCAweDEyLCAweDBiLCAweDdlLCAweGIwLCAweGFhLCAweDEyLCAweDEyLCAKKyAgICAweDBiLCAweDdlLCAweGIwLCAweDAwLCAweDEyLCAweDEyLCAweDBiLCAweDdlLCAweGIwLCAweGZmLCAweDEyLCAweDEyLCAweDBiLCAweDMwLCAweDEzLCAweDBmLCAKKyAgICAweDdlLCAweDY4LCAweDJjLCAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAweDE5LCAweDIyLCAweDdlLCAKKyAgICAweDY4LCAweDJjLCAweGU3LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDIyLCAweDE5LCAweGIyLCAweDAwLCAweDAwLCAweDEyLCAKKyAgICAweDE4LCAweGZmLCAweDA5LCAweGEyLCAweDAwLCAweDAwLCAweGJjLCAweGFiLCAweDc4LCAweDAxLCAweDIyLCAweDIwLCAweDExLCAweDAzLCAweGQyLCAweDEzLCAKKyAgICAweDIyLCAweDEyLCAweDE5LCAweDE5LCAweDE5LCAweGIyLCAweDAwLCAweDAwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGEyLCAweDAwLCAweDAwLCAweDgwLCAKKyAgICAweGYzLCAweDc1LCAweGIwLCAweGRmLCAweDEyLCAweDE4LCAweGZmLCAweDc1LCAweGIwLCAweGVmLCAweDEyLCAweDE4LCAweGZmLCAweDdlLCAweDI0LCAweDgwLCAKKyAgICAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDc0LCAweDgwLCAweDE5LCAweGIyLCAweDAwLCAweDBjLCAweDdlLCAweDU0LCAweDAwLCAweDAyLCAweDE5LCAweGEyLCAKKyAgICAweDAwLCAweDA0LCAweDE5LCAweGIyLCAweDAwLCAweDAwLCAweDc0LCAweDAzLCAweDE5LCAweGIyLCAweDAwLCAweDBjLCAweDc0LCAweDA2LCAweDE5LCAweGIyLCAKKyAgICAweDAwLCAweDA4LCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweGRiLCAweDIyLCAweDdlLCAweDY4LCAweDJmLCAweDVhLCAweDdhLCAweDZjLCAKKyAgICAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDBiLCAweDAwLCAweDEyLCAweDE4LCAKKyAgICAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDU1LCAweDE5LCAweGEyLCAweDAwLCAweDAwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAKKyAgICAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDA1LCAweDc4LCAweDBkLCAweDdlLCAweDY4LCAweDJjLCAweGU3LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAKKyAgICAweDEyLCAweDE5LCAweGM0LCAweDgwLCAweDFhLCAweDdlLCAweDY4LCAweDJjLCAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAKKyAgICAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAweDA5LCAweDE5LCAweGEyLCAweDAwLCAweDAwLCAweDEyLCAweDE4LCAweGZmLCAweDgwLCAweGY3LCAweDJlLCAKKyAgICAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweGI2LCAweDdlLCAweDY4LCAweDJmLCAweDdlLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAKKyAgICAweGM0LCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDBiLCAweDAwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAKKyAgICAweDE4LCAweDdlLCAweGEwLCAweDU1LCAweDE5LCAweGEyLCAweDAwLCAweDAwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAKKyAgICAweGIwLCAweDBhLCAweDc4LCAweDBkLCAweDdlLCAweDY4LCAweDJjLCAweGU3LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDgwLCAKKyAgICAweDFhLCAweDdlLCAweDY4LCAweDJjLCAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAKKyAgICAweDExLCAweDA5LCAweDE5LCAweGEyLCAweDAwLCAweDAwLCAweDEyLCAweDE4LCAweGZmLCAweDgwLCAweGY3LCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAKKyAgICAweGQ5LCAweGI2LCAweDMwLCAweDA0LCAweDAzLCAweDAyLCAweDE1LCAweDlmLCAweDdlLCAweDY4LCAweDJmLCAweGEyLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAKKyAgICAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDBiLCAweDAwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAKKyAgICAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAKKyAgICAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDBhLCAKKyAgICAweDc4LCAweDNjLCAweDdlLCAweGEwLCAweDAxLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAKKyAgICAweDdlLCAweGEwLCAweDAzLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDdlLCAweGEwLCAweDAxLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAKKyAgICAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDBhLCAweDc4LCAweDE0LCAweDdlLCAweDY4LCAweDJjLCAweGU3LCAweDdhLCAweDZjLCAKKyAgICAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweDllLCAweDgwLCAweDIwLCAweDdlLCAweDY4LCAKKyAgICAweDJjLCAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAweGU2LCAweDdlLCAKKyAgICAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDgwLCAweGYxLCAweDdlLCAweDY4LCAKKyAgICAweDJmLCAweGVhLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAKKyAgICAweDBiLCAweDAwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDdlLCAKKyAgICAweGEwLCAweDAxLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAKKyAgICAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDA1LCAweDc4LCAweDNjLCAweDdlLCAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAKKyAgICAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDAzLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDdlLCAweGEwLCAweDAyLCAKKyAgICAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDA1LCAweDc4LCAweDE0LCAKKyAgICAweDdlLCAweDY4LCAweDJjLCAweGU3LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAKKyAgICAweGQ5LCAweDllLCAweDgwLCAweDIwLCAweDdlLCAweDY4LCAweDJjLCAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAKKyAgICAweDE5LCAweDE5LCAweDMwLCAweDExLCAweGU2LCAweDdlLCAweGEwLCAweDAxLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAKKyAgICAweDAwLCAweDEwLCAweDgwLCAweGYxLCAweDdlLCAweDY4LCAweDMwLCAweDMyLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAKKyAgICAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDBiLCAweDAwLCAweDdlLCAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAKKyAgICAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDUwLCAweGJlLCAweGIwLCAweDUwLCAweDc4LCAweDFmLCAweDZjLCAweGFhLCAKKyAgICAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDUwLCAweDc4LCAweDBkLCAKKyAgICAweDdlLCAweDY4LCAweDJjLCAweGU3LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDgwLCAweDIwLCAweDdlLCAweDY4LCAweDJjLCAKKyAgICAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAweDBmLCAweDdlLCAweGEwLCAKKyAgICAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDgwLCAweGYxLCAweDJlLCAweDI0LCAweDAxLCAKKyAgICAweDAwLCAweGE1LCAweGQ5LCAweGEyLCAweDdlLCAweDY4LCAweDMwLCAweDdhLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAKKyAgICAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDBiLCAweDAwLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDAxLCAweDE5LCAKKyAgICAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweGEwLCAweGJlLCAweGIwLCAweGEwLCAKKyAgICAweDc4LCAweDFmLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAKKyAgICAweGIwLCAweGEwLCAweDc4LCAweDBkLCAweDdlLCAweDY4LCAweDJjLCAweGU3LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDgwLCAKKyAgICAweDIwLCAweDdlLCAweDY4LCAweDJjLCAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAKKyAgICAweDExLCAweDBmLCAweDdlLCAweGEwLCAweDAxLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDgwLCAKKyAgICAweGYxLCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweDllLCAweDdlLCAweDY4LCAweDMwLCAweDllLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAKKyAgICAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDBiLCAweDAwLCAweDIwLCAweGIxLCAweDI2LCAweDdlLCAKKyAgICAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDMwLCAweGIxLCAweDE5LCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAKKyAgICAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDIwLCAweGIxLCAweDBkLCAweDdlLCAweDY4LCAweDJjLCAweGU3LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAKKyAgICAweDEyLCAweDE5LCAweGM0LCAweDgwLCAweDIwLCAweDdlLCAweDY4LCAweDJjLCAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAKKyAgICAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAweDBmLCAweDdlLCAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDZjLCAweGFhLCAweDE5LCAKKyAgICAweGEyLCAweDAwLCAweDEwLCAweDgwLCAweGYxLCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweGFlLCAweDAyLCAweDE3LCAweDNiLCAweDdlLCAKKyAgICAweDY4LCAweDJmLCAweGM2LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAKKyAgICAweDIxLCAweDBiLCAweDAwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAKKyAgICAweDdlLCAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAKKyAgICAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDA2LCAweDc4LCAweDNjLCAweDdlLCAweGEwLCAweDAxLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAKKyAgICAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDAzLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDdlLCAweGEwLCAKKyAgICAweDAxLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDA2LCAweDc4LCAKKyAgICAweDE0LCAweDdlLCAweDY4LCAweDJjLCAweGU3LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAKKyAgICAweGE1LCAweGQ5LCAweDllLCAweDgwLCAweDIwLCAweDdlLCAweDY4LCAweDJjLCAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAKKyAgICAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAweGU2LCAweDdlLCAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDZjLCAweGFhLCAweDE5LCAKKyAgICAweGEyLCAweDAwLCAweDEwLCAweDgwLCAweGYxLCAweDdlLCAweDY4LCAweDMwLCAweDBlLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAKKyAgICAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDBiLCAweDAwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAKKyAgICAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDAxLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDZjLCAweGFhLCAweDE5LCAKKyAgICAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDA5LCAweDc4LCAweDNjLCAweDdlLCAKKyAgICAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDAzLCAKKyAgICAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDdlLCAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAKKyAgICAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDA5LCAweDc4LCAweDE0LCAweDdlLCAweDY4LCAweDJjLCAweGU3LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAKKyAgICAweDE5LCAweGM0LCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweDllLCAweDgwLCAweDIwLCAweDdlLCAweDY4LCAweDJjLCAweGYwLCAweDdhLCAKKyAgICAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAweGU2LCAweDdlLCAweGEwLCAweDAxLCAweDE5LCAKKyAgICAweGEyLCAweDAwLCAweDEwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDgwLCAweGYxLCAweDdlLCAweDY4LCAweDMwLCAweDU2LCAweDdhLCAKKyAgICAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDBiLCAweDAwLCAweDdlLCAKKyAgICAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDkwLCAKKyAgICAweGJlLCAweGIwLCAweDkwLCAweDc4LCAweDFmLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAKKyAgICAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDkwLCAweDc4LCAweDBkLCAweDdlLCAweDY4LCAweDJjLCAweGU3LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAKKyAgICAweDE5LCAweGM0LCAweDgwLCAweDIwLCAweDdlLCAweDY4LCAweDJjLCAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAKKyAgICAweDE5LCAweDE5LCAweDMwLCAweDExLCAweDBmLCAweDdlLCAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAKKyAgICAweDAwLCAweDEwLCAweDgwLCAweGYxLCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweGEyLCAweDIwLCAweDFmLCAweDY4LCAweDEyLCAweDEyLCAKKyAgICAweDMxLCAweDEyLCAweDE3LCAweGE5LCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDBiLCAweDAwLCAweDIwLCAweDg5LCAweDI2LCAKKyAgICAweDdlLCAweGEwLCAweGZmLCAweDE5LCAweGEyLCAweDAwLCAweDA0LCAweDEyLCAweDE4LCAweGZmLCAweDdlLCAweGIwLCAweDU1LCAweDE5LCAweGIyLCAweDAwLCAKKyAgICAweDAwLCAweDEyLCAweDE4LCAweGZmLCAweDMwLCAweDg5LCAweDBmLCAweDdlLCAweGEwLCAweDAwLCAweDE5LCAweGEyLCAweDAwLCAweDA0LCAweDEyLCAweDE4LCAKKyAgICAweGZmLCAweDIwLCAweDg5LCAweDAyLCAweDgwLCAweDI2LCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAweDIwLCAweDdlLCAweGEwLCAweGZmLCAweDE5LCAKKyAgICAweGEyLCAweDAwLCAweDA0LCAweDEyLCAweDE4LCAweGZmLCAweDdlLCAweGIwLCAweDU1LCAweDE5LCAweGIyLCAweDAwLCAweDAwLCAweDEyLCAweDE4LCAweGZmLCAKKyAgICAweDdlLCAweGEwLCAweDAwLCAweDE5LCAweGEyLCAweDAwLCAweDA0LCAweDEyLCAweDE4LCAweGZmLCAweDgwLCAweGUwLCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAKKyAgICAweGE1LCAweGQ5LCAweGE4LCAweDAyLCAweDE3LCAweGMyLCAweDAyLCAweDE4LCAweDRjLCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAKKyAgICAweDdlLCAweGEwLCAweDA4LCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAKKyAgICAweGVmLCAweDIyLCAweDMwLCAweDFmLCAweDAzLCAweDAyLCAweDE4LCAweDRjLCAweGMyLCAweDhhLCAweDEyLCAweDE3LCAweGE5LCAweDBiLCAweDAwLCAweDEyLCAKKyAgICAweDE4LCAweDE2LCAweDIwLCAweDhiLCAweDI0LCAweDc0LCAweDAzLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAKKyAgICAweDA3LCAweDc0LCAweDBjLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDA3LCAweDEyLCAweDE5LCAweDBjLCAKKyAgICAweDMwLCAweDhiLCAweDA2LCAweDEyLCAweDE4LCAweDE2LCAweDMwLCAweDhiLCAweGFkLCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAweGE3LCAweDEyLCAKKyAgICAweDE4LCAweDE2LCAweDc0LCAweDAzLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAweDA3LCAweDEyLCAweDE5LCAKKyAgICAweDBjLCAweDEyLCAweDE4LCAweDE2LCAweDgwLCAweGU5LCAweDdlLCAweGEwLCAweDAwLCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDdhLCAKKyAgICAweGEzLCAweDkxLCAweDA3LCAweDc0LCAweDAzLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDdhLCAweGEzLCAweDkxLCAweDA3LCAweDEyLCAweDE4LCAweGZmLCAKKyAgICAweDc0LCAweGVmLCAweDdhLCAweGIzLCAweDkxLCAweDA0LCAweDc0LCAweDgwLCAweDdhLCAweGIzLCAweDkxLCAweDAzLCAweDc0LCAweDBjLCAweDdhLCAweGIzLCAKKyAgICAweDkxLCAweDA2LCAweDc0LCAweDA4LCAweDdhLCAweGIzLCAweDkxLCAweDA3LCAweDEyLCAweDE5LCAweDBjLCAweDIyLCAweDMwLCAweDEyLCAweDE5LCAweDdlLCAKKyAgICAweDY4LCAweDMwLCAweGMyLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweGQyLCAweDExLCAweDEyLCAweDE4LCAweGZmLCAweDEyLCAKKyAgICAweDE4LCAweGZmLCAweDEyLCAweDE4LCAweGZmLCAweDAyLCAweDBjLCAweGNhLCAweDMwLCAweDFmLCAweDFjLCAweDdlLCAweDY4LCAweDMxLCAweDNjLCAweDdhLCAKKyAgICAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDY4LCAweDMxLCAweDVlLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAKKyAgICAweGM0LCAweDEyLCAweDFhLCAweDZlLCAweDAyLCAweDE4LCAweGY3LCAweDBiLCAweDAwLCAweDdlLCAweDc4LCAweDE4LCAweGIxLCAweDdhLCAweDdjLCAweDAwLCAKKyAgICAweGZmLCAweDdmLCAweDY3LCAweDdhLCAweDZjLCAweDAwLCAweDAwLCAweDdlLCAweDcwLCAweDNlLCAweDdlLCAweDdiLCAweGIwLCAweDdhLCAweDZiLCAweGIwLCAKKyAgICAweDBiLCAweDdjLCAweDBiLCAweDZjLCAweGE1LCAweGRmLCAweGYzLCAweDdlLCAweDc4LCAweDE4LCAweGIxLCAweDdhLCAweDdjLCAweDAwLCAweDAwLCAweDg5LCAKKyAgICAweDc4LCAweDdlLCAweDc4LCAweDAwLCAweDAwLCAweDdhLCAweDdjLCAweDAwLCAweGZlLCAweDdlLCAweDY4LCAweDdmLCAweGJmLCAweDdhLCAweDZjLCAweDAwLCAKKyAgICAweGZlLCAweDc0LCAweGFhLCAweDM5LCAweGI3LCAweDU1LCAweDU1LCAweDc0LCAweDU1LCAweDM5LCAweGI3LCAweDJhLCAweGFhLCAweDc0LCAweGEwLCAweDM5LCAKKyAgICAweGI3LCAweDU1LCAweDU1LCAweDZjLCAweDk5LCAweDdhLCAweDZiLCAweDkwLCAweDdlLCAweDU0LCAweDI3LCAweDEwLCAweDdlLCAweDZiLCAweDgwLCAweGJjLCAKKyAgICAweDg5LCAweDY4LCAweDA4LCAweDFiLCAweDU0LCAweDc4LCAweGY1LCAweDhhLCAweGZmLCAweDE4LCAweGVmLCAweDhhLCAweGZmLCAweDE4LCAweGY3LCAweDEyLCAKKyAgICAweDE5LCAweDE5LCAweDdlLCAweDZiLCAweDgwLCAweDgwLCAweGZiLCAweDdlLCAweDEwLCAweGZmLCAweDEyLCAweDE5LCAweGFjLCAweDgwLCAweGY4LCAweGNhLCAKKyAgICAweGY5LCAweDdlLCAweGY0LCAweDAwLCAweGZmLCAweDFiLCAweGY0LCAweDc4LCAweGZjLCAweGRhLCAweGY5LCAweDIyLCAweGNhLCAweGY5LCAweDdlLCAweGY0LCAKKyAgICAweDAwLCAweDAwLCAweDFiLCAweGY0LCAweDc4LCAweGZjLCAweGRhLCAweGY5LCAweDIyLCAweDIwLCAweDExLCAweDIwLCAweGQyLCAweDEyLCAweDEyLCAweDE5LCAKKyAgICAweDBjLCAweDdlLCAweGIwLCAweDAyLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDEyLCAweDE5LCAweDBjLCAweDEyLCAweDE5LCAweDBjLCAweDEyLCAweDE5LCAKKyAgICAweDBjLCAweDEyLCAweDE5LCAweDBjLCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDIyLCAweGNhLCAweDBiLCAweDdlLCAweDEwLCAKKyAgICAweDAzLCAweDdjLCAweDMwLCAweDZjLCAweDIyLCAweDBiLCAweDIwLCAweDllLCAweDMwLCAweDBhLCAweDUwLCAweGY5LCAweDJlLCAweDMwLCAweDBiLCAweDFiLCAKKyAgICAweDIwLCAweDY4LCAweDIwLCAweDEyLCAweDE5LCAweDBjLCAweDEyLCAweDE5LCAweDBjLCAweDdlLCAweGIwLCAweDAzLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAKKyAgICAweDEyLCAweDE5LCAweDBjLCAweDEyLCAweDE5LCAweDBjLCAweDEyLCAweDE5LCAweDBjLCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAKKyAgICAweGE1LCAweGRhLCAweGUwLCAweDEyLCAweDE5LCAweDBjLCAweDEyLCAweDE5LCAweDBjLCAweDFiLCAweDMwLCAweDY4LCAweDIwLCAweDEyLCAweDE5LCAweDBjLCAKKyAgICAweDEyLCAweDE5LCAweDBjLCAweDdlLCAweGIwLCAweDAyLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDEyLCAweDE5LCAweDBjLCAweDEyLCAweDE5LCAweDBjLCAKKyAgICAweDEyLCAweDE5LCAweDBjLCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweGE1LCAweGRiLCAweGUwLCAweDdlLCAweDIwLCAweDBhLCAKKyAgICAweDEyLCAweDE5LCAweDBjLCAweGE1LCAweGRhLCAweGZhLCAweGE1LCAweGQ5LCAweDk4LCAweGRhLCAweDBiLCAweDIyLCAweDIwLCAweDExLCAweDE0LCAweDEyLCAKKyAgICAweDE5LCAweDBjLCAweDdlLCAweGIwLCAweDAxLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDEyLCAweDE5LCAweDBjLCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAKKyAgICAweGIzLCAweDkwLCAweDAwLCAweDIyLCAweDMwLCAweDFmLCAweDMyLCAweDIwLCAweDExLCAweDJmLCAweGNhLCAweDJiLCAweGNhLCAweDdiLCAweDdlLCAweDc4LCAKKyAgICAweDgwLCAweDAwLCAweDdhLCAweDdjLCAweDAwLCAweGZlLCAweDEyLCAweDFhLCAweDRkLCAweDdlLCAweDZiLCAweGEwLCAweDVjLCAweGFhLCAweDY4LCAweDEwLCAKKyAgICAweDI5LCAweGI3LCAweDAwLCAweDE0LCAweDU0LCAweDYwLCAweDY4LCAweGY4LCAweDM5LCAweGE3LCAweDAwLCAweDAwLCAweDBiLCAweDZjLCAweDgwLCAweGU5LCAKKyAgICAweDEyLCAweDE4LCAweGZmLCAweGQyLCAweGI1LCAweGRhLCAweDdiLCAweGRhLCAweDJiLCAweDIyLCAweDEyLCAweDFhLCAweDA1LCAweDdlLCAweDY4LCAweDAwLCAKKyAgICAweDBjLCAweDEyLCAweDE5LCAweGM0LCAweDIyLCAweGNhLCAweDU5LCAweGNhLCAweDViLCAweDdlLCAweGI0LCAweDAwLCAweDBjLCAweDdjLCAweGI4LCAweGM0LCAKKyAgICAweDEyLCAweDFhLCAweDM1LCAweDdjLCAweGI4LCAweDEyLCAweDFhLCAweDM1LCAweDdjLCAweGI5LCAweGM0LCAweDEyLCAweDFhLCAweDM1LCAweDdjLCAweGI5LCAKKyAgICAweDEyLCAweDFhLCAweDM1LCAweDdlLCAweGIwLCAweDY4LCAweDdhLCAweGI5LCAweGIwLCAweDBiLCAweGI0LCAweDZjLCAweGJiLCAweDdhLCAweGI5LCAweGIwLCAKKyAgICAweGRhLCAweDU5LCAweGRhLCAweDViLCAweDIyLCAweDVlLCAweGIwLCAweDBmLCAweDdjLCAweGFiLCAweDllLCAweGEwLCAweDBhLCAweDQwLCAweDA1LCAweDJlLCAKKyAgICAweGIwLCAweDM3LCAweDgwLCAweDAzLCAweDJlLCAweGIwLCAweDMwLCAweDdhLCAweGI5LCAweGIwLCAweDBiLCAweGI0LCAweDIyLCAweGMyLCAweGI1LCAweDc1LCAKKyAgICAweGIwLCAweGVmLCAweDEyLCAweDE4LCAweGZmLCAweDc0LCAweDgwLCAweDM5LCAweGI3LCAweDAwLCAweDBjLCAweDdlLCAweDU0LCAweDAwLCAweDA2LCAweDM5LCAKKyAgICAweGE3LCAweDAwLCAweDA0LCAweDM5LCAweGI3LCAweDAwLCAweDAwLCAweDc0LCAweDAzLCAweDM5LCAweGI3LCAweDAwLCAweDBjLCAweDIyLCAweDdlLCAweDc4LCAKKyAgICAweDAwLCAweDAwLCAweDdhLCAweDdjLCAweDAwLCAweGZmLCAweDdlLCAweDU4LCAweDAwLCAweDAwLCAweDdhLCAweDVjLCAweDAwLCAweDAxLCAweDdmLCAweDY1LCAKKyAgICAweDdlLCAweDc0LCAweDIwLCAweDAwLCAweDEyLCAweDBiLCAweDYzLCAweDQwLCAweDU4LCAweDdlLCAweDc4LCAweDdjLCAweDAwLCAweDdhLCAweDdjLCAweDAwLCAKKyAgICAweGZmLCAweDdlLCAweDU4LCAweDAwLCAweDAwLCAweDdhLCAweDVjLCAweDAwLCAweDAxLCAweDdlLCAweDY4LCAweDdjLCAweDAwLCAweDdhLCAweDZjLCAweDAwLCAKKyAgICAweDAxLCAweDdlLCAweDc0LCAweDA0LCAweDAwLCAweDEyLCAweDBiLCAweDYzLCAweDQwLCAweDM3LCAweDc0LCAweDgwLCAweDEyLCAweDFhLCAweGVhLCAweDQwLCAKKyAgICAweDMwLCAweDdlLCAweDAwLCAweDAzLCAweDdhLCAweDAzLCAweDkwLCAweDAwLCAweGQyLCAweDEwLCAweDdlLCAweDA0LCAweDAwLCAweDA4LCAweDdlLCAweDE0LCAKKyAgICAweDAwLCAweDAwLCAweDg0LCAweGE1LCAweGRiLCAweGZjLCAweGE1LCAweGRhLCAweGY5LCAweGE1LCAweGQ5LCAweGY2LCAweDc0LCAweDQwLCAweDEyLCAweDFhLCAKKyAgICAweGVhLCAweDQwLCAweDBlLCAweDdlLCAweDY4LCAweDMxLCAweDhkLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDAyLCAweDE4LCAKKyAgICAweGY3LCAweDdlLCAweGIwLCAweDAyLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDgwLCAweGZlLCAweGY1LCAweDBiLCAweDdlLCAweDc4LCAweDAwLCAweDBiLCAKKyAgICAweDdhLCAweDdjLCAweDAwLCAweDAwLCAweDdlLCAweDY4LCAweDdmLCAweGJmLCAweDdhLCAweDZjLCAweDAwLCAweDAxLCAweDdlLCAweDc0LCAweDAwLCAweDAxLCAKKyAgICAweDAyLCAweDBiLCAweDYzLCAKKworLy8gU2VnbWVudCAjMTksIEVYQ0xVREVEIFN0YXJ0IEFkZHJlc3MgMDBmZjJjNjYsIExlbmd0aCAxMzkzCisKK307CisKK3N0YXRpYyBzdHJ1Y3QgZWRnZV9maXJtd2FyZV92ZXJzaW9uX2luZm8gSU1BR0VfVkVSU0lPTl9OQU1FID0geworCTIsIDAsIDMgfTsJCS8vIE1ham9yLCBNaW5vciwgQnVpbGQKKworI3VuZGVmIElNQUdFX1ZFUlNJT05fTkFNRQorCisjdW5kZWYgSU1BR0VfQVJSQVlfTkFNRQorCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZndfZG93bi5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Rvd24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTYxZDgwCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Rvd24uaApAQCAtMCwwICsxLDEyMjkgQEAKKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKy8vKiBFZGdlcG9ydC80IEJpbmFyeSBJbWFnZQorLy8qIEdlbmVyYXRlZCBieSBIRVgyQyB2MS4wNgorLy8qIENvcHlyaWdodCAoQykgMTk5OCBJbnNpZGUgT3V0IE5ldHdvcmtzLCBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8qCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisvLyoJaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKy8vKgl0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorLy8qCShhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKworLy9JbWFnZSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbgorI2lmICFkZWZpbmVkKERFRklORURfRURHRV9GSVJNV0FSRV9JTUFHRV9SRUNPUkQpCisJI2RlZmluZSBERUZJTkVEX0VER0VfRklSTVdBUkVfSU1BR0VfUkVDT1JECisJc3RydWN0IGVkZ2VfZmlybXdhcmVfaW1hZ2VfcmVjb3JkIHsKKwkJX19sZTE2IEV4dEFkZHI7CisJCV9fbGUxNiBBZGRyOworCQlfX2xlMTYgTGVuOworCQl1bnNpZ25lZCBjaGFyCURhdGFbMF07CisJfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7CisKKwlzdHJ1Y3QgZWRnZV9maXJtd2FyZV92ZXJzaW9uX2luZm8geworCQl1bnNpZ25lZCBjaGFyCU1ham9yVmVyc2lvbjsKKwkJdW5zaWduZWQgY2hhcglNaW5vclZlcnNpb247CisJCXVuc2lnbmVkIHNob3J0CUJ1aWxkTnVtYmVyOworCX07CisKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoSU1BR0VfQVJSQVlfTkFNRSkKKwkjZGVmaW5lIElNQUdFX0FSUkFZX05BTUUJRmlybXdhcmVJbWFnZQorCSNkZWZpbmUgSU1BR0VfVkVSU0lPTl9OQU1FCUZpcm13YXJlSW1hZ2VWZXJzaW9uCisjZW5kaWYKKworc3RhdGljIHVuc2lnbmVkIGNoYXIgSU1BR0VfQVJSQVlfTkFNRVtdID0geworCisvLyBTZWdtZW50ICMxLCBTdGFydCBBZGRyZXNzIDAwZmYwMDAwLCBMZW5ndGggNgorMHhmZiwweDAwLDB4MDAsMHgwMCwweDA2LDB4MDAsCisgICAgMHgwMiwgMHgwMCwgMHg4MCwgMHgwMiwgMHg0NCwgMHhiMCwgCisKKy8vIFNlZ21lbnQgIzIsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMGIsIExlbmd0aCAzCisweGZmLDB4MDAsMHgwYiwweDAwLDB4MDMsMHgwMCwKKyAgICAweDAyLCAweDQ0LCAweDcyLCAKKworLy8gU2VnbWVudCAjMywgU3RhcnQgQWRkcmVzcyAwMGZmMDAxMywgTGVuZ3RoIDMKKzB4ZmYsMHgwMCwweDEzLDB4MDAsMHgwMywweDAwLAorICAgIDB4MDIsIDB4MDAsIDB4MTMsIAorCisvLyBTZWdtZW50ICM0LCBTdGFydCBBZGRyZXNzIDAwZmYwMDFiLCBMZW5ndGggMworMHhmZiwweDAwLDB4MWIsMHgwMCwweDAzLDB4MDAsCisgICAgMHgwMiwgMHgwMCwgMHgxYiwgCisKKy8vIFNlZ21lbnQgIzUsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMjMsIExlbmd0aCAzCisweGZmLDB4MDAsMHgyMywweDAwLDB4MDMsMHgwMCwKKyAgICAweDAyLCAweDAwLCAweDIzLCAKKworLy8gU2VnbWVudCAjNiwgU3RhcnQgQWRkcmVzcyAwMGZmMDAyYiwgTGVuZ3RoIDMKKzB4ZmYsMHgwMCwweDJiLDB4MDAsMHgwMywweDAwLAorICAgIDB4MDIsIDB4MDAsIDB4MmIsIAorCisvLyBTZWdtZW50ICM3LCBTdGFydCBBZGRyZXNzIDAwZmYwMDMzLCBMZW5ndGggMworMHhmZiwweDAwLDB4MzMsMHgwMCwweDAzLDB4MDAsCisgICAgMHgwMiwgMHgwMCwgMHgzMywgCisKKy8vIFNlZ21lbnQgIzgsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwM2IsIExlbmd0aCAzCisweGZmLDB4MDAsMHgzYiwweDAwLDB4MDMsMHgwMCwKKyAgICAweDAyLCAweDAwLCAweDNiLCAKKworLy8gU2VnbWVudCAjOSwgU3RhcnQgQWRkcmVzcyAwMGZmMDA0MywgTGVuZ3RoIDMKKzB4ZmYsMHgwMCwweDQzLDB4MDAsMHgwMywweDAwLAorICAgIDB4MDIsIDB4MDAsIDB4NDMsIAorCisvLyBTZWdtZW50ICMxMCwgU3RhcnQgQWRkcmVzcyAwMGZmMDA0YiwgTGVuZ3RoIDMKKzB4ZmYsMHgwMCwweDRiLDB4MDAsMHgwMywweDAwLAorICAgIDB4MDIsIDB4NmUsIDB4YzQsIAorCisvLyBTZWdtZW50ICMxMSwgU3RhcnQgQWRkcmVzcyAwMGZmMDA1MywgTGVuZ3RoIDMKKzB4ZmYsMHgwMCwweDUzLDB4MDAsMHgwMywweDAwLAorICAgIDB4MDIsIDB4NzUsIDB4OGQsIAorCisvLyBTZWdtZW50ICMxMiwgU3RhcnQgQWRkcmVzcyAwMGZmMDA3YiwgTGVuZ3RoIDMKKzB4ZmYsMHgwMCwweDdiLDB4MDAsMHgwMywweDAwLAorICAgIDB4MDIsIDB4MDAsIDB4N2IsIAorCisvLyBTZWdtZW50ICMxMywgU3RhcnQgQWRkcmVzcyAwMGZmMDA4MCwgTGVuZ3RoIDcKKzB4ZmYsMHgwMCwweDgwLDB4MDAsMHgwNywweDAwLAorICAgIDB4N2UsIDB4MTQsIDB4MDAsIDB4MDAsIDB4MDIsIDB4NDAsIDB4NTEsIAorCisvLyBTZWdtZW50ICMxNCwgU3RhcnQgQWRkcmVzcyAwMGZmMzAwMCwgTGVuZ3RoIDIxNzgKKzB4ZmYsMHgwMCwweDAwLDB4MzAsMHg4MiwweDA4LAorICAgIDB4MTIsIDB4MzcsIDB4MjgsIDB4MTIsIDB4MzAsIDB4M2UsIDB4MTIsIDB4MzAsIDB4NTQsIDB4MTIsIDB4MzAsIDB4ZTUsIDB4MTIsIDB4MzEsIDB4NjgsIDB4MTIsIAorICAgIDB4MzUsIDB4MjAsIDB4MTIsIDB4MzgsIDB4NTgsIDB4MTIsIDB4MzEsIDB4MTUsIDB4MTIsIDB4MzEsIDB4NDAsIDB4MTIsIDB4MzAsIDB4YTAsIDB4ODAsIDB4ZTAsIAorICAgIDB4ZTUsIDB4MjMsIDB4NjAsIDB4MTksIDB4N2UsIDB4MTQsIDB4MDAsIDB4MDAsIDB4MDksIDB4YjEsIDB4MDEsIDB4Y2YsIDB4YjQsIDB4MDAsIDB4MDIsIDB4ODAsIAorICAgIDB4MDUsIDB4MTQsIDB4MTksIDB4YjEsIDB4MDEsIDB4Y2YsIDB4YTUsIDB4MGIsIDB4YmUsIDB4MzEsIDB4MmYsIDB4NzgsIDB4ZWIsIDB4MjIsIDB4YzIsIDB4YWYsIAorICAgIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjEsIDB4YjQsIDB4MDEsIDB4MGEsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDIsIDB4MTIsIDB4NzAsIDB4ZWYsIDB4ZDAsIAorICAgIDB4ZjEsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4YzIsIDB4YWYsIDB4ZTUsIDB4MjIsIDB4NjAsIDB4NDMsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZTEsIDB4YmUsIDB4MDQsIAorICAgIDB4MDMsIDB4ODAsIDB4MzgsIDB4MzksIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MjAsIDB4MDAsIDB4MTMsIDB4NTAsIDB4MjEsIDB4MDksIDB4YTAsIAorICAgIDB4MDAsIDB4MDQsIDB4NGUsIDB4YTAsIDB4MDUsIDB4MTksIDB4YTAsIDB4MDAsIDB4MDQsIDB4MGEsIDB4MzIsIDB4MDksIDB4NTMsIDB4NjcsIDB4OGUsIDB4NWUsIAorICAgIDB4NTEsIDB4MjcsIDB4NjgsIDB4MGIsIDB4MDksIDB4YTAsIDB4MDAsIDB4MTAsIDB4NGUsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTAsIDB4MDAsIDB4MTAsIDB4MmUsIAorICAgIDB4MDQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4MGEsIDB4YmUsIDB4MjEsIDB4MmYsIDB4NzgsIDB4ZDEsIDB4NzUsIDB4MjIsIDB4MDAsIDB4ZDIsIDB4YWYsIDB4MjIsIAorICAgIDB4YzIsIDB4YWYsIDB4N2UsIDB4MjAsIDB4MDAsIDB4N2UsIDB4MzAsIDB4MDEsIDB4N2MsIDB4YjIsIDB4MjMsIDB4MGEsIDB4MmIsIDB4NDksIDB4MzIsIDB4MDEsIAorICAgIDB4OGYsIDB4YmUsIDB4MzQsIDB4MDAsIDB4MDAsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YjEsIDB4MjEsIDB4YTUsIDB4NGIsIDB4N2EsIDB4YjEsIDB4MjEsIDB4Y2EsIAorICAgIDB4MTksIDB4NDksIDB4MjIsIDB4MzAsIDB4ZDUsIDB4OTksIDB4MjQsIDB4ZGEsIDB4MTksIDB4M2UsIDB4MzAsIDB4YTUsIDB4MGEsIDB4YmUsIDB4MjEsIDB4MmYsIAorICAgIDB4NzgsIDB4ZDYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4NDYsIDB4MGYsIDB4NDksIDB4NjcsIDB4NGMsIDB4YmYsIDB4NTAsIDB4MTcsIDB4NTMsIDB4NmYsIDB4NTYsIAorICAgIDB4YzcsIDB4NWEsIDB4MWYsIDB4NWQsIDB4NzcsIDB4YzIsIDB4YWYsIDB4ZTUsIDB4MzIsIDB4NjAsIDB4MTQsIDB4N2UsIDB4MjAsIDB4MDAsIDB4MTMsIDB4NTAsIAorICAgIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4MzEsIDB4MDIsIDB4ZGEsIDB4YjgsIDB4YTUsIDB4MGEsIDB4YmUsIDB4MjEsIDB4MmYsIDB4NzgsIDB4ZWYsIDB4ZDIsIAorICAgIDB4YWYsIDB4MjIsIDB4Y2EsIDB4MjgsIDB4MTIsIDB4NjcsIDB4YWIsIDB4ZGEsIDB4MjgsIDB4NDAsIDB4MDksIDB4MGEsIDB4MjIsIDB4MDksIDB4YjIsIDB4NjcsIAorICAgIDB4OGUsIDB4ZjQsIDB4NTIsIDB4MzIsIDB4MjIsIDB4YzIsIDB4YWYsIDB4ZTUsIDB4MzQsIDB4NjAsIDB4MTQsIDB4N2UsIDB4MjAsIDB4MDAsIDB4MTMsIDB4NTAsIAorICAgIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4MzEsIDB4MzIsIDB4ZGEsIDB4YjgsIDB4YTUsIDB4MGEsIDB4YmUsIDB4MjEsIDB4MmYsIDB4NzgsIDB4ZWYsIDB4ZDIsIAorICAgIDB4YWYsIDB4MjIsIDB4Y2EsIDB4MjgsIDB4MGEsIDB4MjIsIDB4MDksIDB4NDIsIDB4MDAsIDB4M2UsIDB4MTIsIDB4NjksIDB4YzIsIDB4ZGEsIDB4MjgsIDB4MjIsIAorICAgIDB4YzIsIDB4YWYsIDB4ZTUsIDB4MzUsIDB4NjAsIDB4MTQsIDB4N2UsIDB4MjAsIDB4MDAsIDB4MTMsIDB4NTAsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4MzEsIAorICAgIDB4NWQsIDB4ZGEsIDB4YjgsIDB4YTUsIDB4MGEsIDB4YmUsIDB4MjEsIDB4MmYsIDB4NzgsIDB4ZWYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4Y2EsIDB4MjgsIDB4N2UsIAorICAgIDB4NDAsIDB4MDAsIDB4MTIsIDB4NmMsIDB4NWIsIDB4ZGEsIDB4MjgsIDB4MjIsIDB4YzIsIDB4YWYsIDB4ZTUsIDB4MjMsIDB4NjAsIDB4MTQsIDB4N2UsIDB4MjAsIAorICAgIDB4MDAsIDB4MTMsIDB4NTAsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4MzEsIDB4ODUsIDB4ZGEsIDB4YjgsIDB4YTUsIDB4MGEsIDB4YmUsIDB4MjEsIDB4MmYsIAorICAgIDB4NzgsIDB4ZWYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4N2MsIDB4YjIsIDB4MjMsIDB4MGEsIDB4MmIsIDB4NDksIDB4MjIsIDB4MzEsIDB4OTAsIDB4ODksIDB4MjQsIAorICAgIDB4MzEsIDB4YTAsIDB4MzIsIDB4MTAsIDB4MzIsIDB4ODAsIDB4MzIsIDB4ZjAsIDB4MzMsIDB4NjAsIDB4MzMsIDB4ZDAsIDB4MzQsIDB4NDAsIDB4MzQsIDB4YjAsIAorICAgIDB4N2UsIDB4MjcsIDB4MDEsIDB4OGYsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4MDksIDB4YjIsIAorICAgIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIAorICAgIDB4NDksIDB4MzAsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIAorICAgIDB4MDEsIDB4OWYsIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OWYsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4Y2YsIDB4ODAsIAorICAgIDB4MmUsIDB4N2UsIDB4NjMsIDB4MDEsIDB4Y2YsIDB4YTUsIDB4YmUsIDB4MDAsIDB4MjYsIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIAorICAgIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjIsIDB4YjYsIDB4NDAsIDB4MTgsIDB4NzUsIDB4MzEsIDB4YjMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YzIsIDB4MTgsIDB4NmMsIAorICAgIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4Y2YsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIAorICAgIDB4N2UsIDB4MjcsIDB4MDEsIDB4OTEsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODEsIDB4MDAsIDB4MDksIDB4YjIsIAorICAgIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIAorICAgIDB4NGMsIDB4ODgsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIAorICAgIDB4MDEsIDB4YTEsIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4YTEsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4ZDAsIDB4ODAsIAorICAgIDB4MmUsIDB4N2UsIDB4NjMsIDB4MDEsIDB4ZDAsIDB4YTUsIDB4YmUsIDB4MDAsIDB4MjYsIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIAorICAgIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjIsIDB4YjYsIDB4NDAsIDB4MTgsIDB4NzUsIDB4MzEsIDB4YjMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YzIsIDB4MTksIDB4NmMsIAorICAgIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4ZDAsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIAorICAgIDB4N2UsIDB4MjcsIDB4MDEsIDB4OTMsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODIsIDB4MDAsIDB4MDksIDB4YjIsIAorICAgIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIAorICAgIDB4NGYsIDB4ZTAsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIAorICAgIDB4MDEsIDB4YTMsIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4YTMsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4ZDEsIDB4ODAsIAorICAgIDB4MmUsIDB4N2UsIDB4NjMsIDB4MDEsIDB4ZDEsIDB4YTUsIDB4YmUsIDB4MDAsIDB4MjYsIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIAorICAgIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjIsIDB4YjYsIDB4NDAsIDB4MTgsIDB4NzUsIDB4MzEsIDB4YjMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YzIsIDB4MWEsIDB4NmMsIAorICAgIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4ZDEsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIAorICAgIDB4N2UsIDB4MjcsIDB4MDEsIDB4OTUsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODMsIDB4MDAsIDB4MDksIDB4YjIsIAorICAgIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIAorICAgIDB4NTMsIDB4MzgsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIAorICAgIDB4MDEsIDB4YTUsIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4YTUsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4ZDIsIDB4ODAsIAorICAgIDB4MmUsIDB4N2UsIDB4NjMsIDB4MDEsIDB4ZDIsIDB4YTUsIDB4YmUsIDB4MDAsIDB4MjYsIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIAorICAgIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjIsIDB4YjYsIDB4NDAsIDB4MTgsIDB4NzUsIDB4MzEsIDB4YjMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YzIsIDB4MWIsIDB4NmMsIAorICAgIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4ZDIsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIAorICAgIDB4N2UsIDB4MjcsIDB4MDEsIDB4OTcsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODQsIDB4MDAsIDB4MDksIDB4YjIsIAorICAgIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIAorICAgIDB4NTYsIDB4OTAsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIAorICAgIDB4MDEsIDB4YTcsIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4YTcsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4ZDMsIDB4ODAsIAorICAgIDB4MmUsIDB4N2UsIDB4NjMsIDB4MDEsIDB4ZDMsIDB4YTUsIDB4YmUsIDB4MDAsIDB4MjYsIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIAorICAgIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjIsIDB4YjYsIDB4NDAsIDB4MTgsIDB4NzUsIDB4MzEsIDB4YjMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YzIsIDB4MWMsIDB4NmMsIAorICAgIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4ZDMsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIAorICAgIDB4N2UsIDB4MjcsIDB4MDEsIDB4OTksIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODUsIDB4MDAsIDB4MDksIDB4YjIsIAorICAgIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIAorICAgIDB4NTksIDB4ZTgsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIAorICAgIDB4MDEsIDB4YTksIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4YTksIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4ZDQsIDB4ODAsIAorICAgIDB4MmUsIDB4N2UsIDB4NjMsIDB4MDEsIDB4ZDQsIDB4YTUsIDB4YmUsIDB4MDAsIDB4MjYsIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIAorICAgIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjIsIDB4YjYsIDB4NDAsIDB4MTgsIDB4NzUsIDB4MzEsIDB4YjMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YzIsIDB4MWQsIDB4NmMsIAorICAgIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4ZDQsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIAorICAgIDB4N2UsIDB4MjcsIDB4MDEsIDB4OWIsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODYsIDB4MDAsIDB4MDksIDB4YjIsIAorICAgIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIAorICAgIDB4NWQsIDB4NDAsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIAorICAgIDB4MDEsIDB4YWIsIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4YWIsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4ZDUsIDB4ODAsIAorICAgIDB4MmUsIDB4N2UsIDB4NjMsIDB4MDEsIDB4ZDUsIDB4YTUsIDB4YmUsIDB4MDAsIDB4MjYsIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIAorICAgIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjIsIDB4YjYsIDB4NDAsIDB4MTgsIDB4NzUsIDB4MzEsIDB4YjMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YzIsIDB4MWUsIDB4NmMsIAorICAgIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4ZDUsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIAorICAgIDB4N2UsIDB4MjcsIDB4MDEsIDB4OWQsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODcsIDB4MDAsIDB4MDksIDB4YjIsIAorICAgIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIAorICAgIDB4NjAsIDB4OTgsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIAorICAgIDB4MDEsIDB4YWQsIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4YWQsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4ZDYsIDB4ODAsIAorICAgIDB4MmUsIDB4N2UsIDB4NjMsIDB4MDEsIDB4ZDYsIDB4YTUsIDB4YmUsIDB4MDAsIDB4MjYsIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIAorICAgIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjIsIDB4YjYsIDB4NDAsIDB4MTgsIDB4NzUsIDB4MzEsIDB4YjMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YzIsIDB4MWYsIDB4NmMsIAorICAgIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4ZDYsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIAorICAgIDB4YzIsIDB4YWYsIDB4ZTUsIDB4MjQsIDB4NjAsIDB4MTQsIDB4N2UsIDB4MjAsIDB4MDAsIDB4MTMsIDB4NTAsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4MzUsIAorICAgIDB4M2QsIDB4ZGEsIDB4YjgsIDB4YTUsIDB4MGEsIDB4YmUsIDB4MjEsIDB4MmYsIDB4NzgsIDB4ZWYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4N2MsIDB4YjIsIDB4MjMsIAorICAgIDB4MGEsIDB4MmIsIDB4NDksIDB4MjIsIDB4MzUsIDB4NDgsIDB4ODksIDB4MjQsIDB4MzUsIDB4NTgsIDB4MzUsIDB4OTIsIDB4MzUsIDB4Y2MsIDB4MzYsIDB4MDYsIAorICAgIDB4MzYsIDB4NDAsIDB4MzYsIDB4N2EsIDB4MzYsIDB4YjQsIDB4MzYsIDB4ZWUsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIAorICAgIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NDksIDB4MzAsIAorICAgIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4NWUsIDB4YjAsIDB4MDEsIDB4N2UsIDB4YTAsIDB4OTAsIDB4MTIsIDB4NjIsIDB4OTMsIDB4NDAsIDB4MTIsIDB4NzUsIAorICAgIDB4MzEsIDB4YjgsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YzIsIDB4MjAsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIAorICAgIDB4ZjEsIDB4MjIsIDB4N2UsIDB4MjQsIDB4ODEsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIAorICAgIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NGMsIDB4ODgsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4NWUsIDB4YjAsIAorICAgIDB4MDEsIDB4N2UsIDB4YTAsIDB4OTAsIDB4MTIsIDB4NjIsIDB4OTMsIDB4NDAsIDB4MTIsIDB4NzUsIDB4MzEsIDB4YjgsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YzIsIAorICAgIDB4MjEsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIDB4N2UsIDB4MjQsIDB4ODIsIDB4MDAsIAorICAgIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIAorICAgIDB4MTIsIDB4MTIsIDB4NGYsIDB4ZTAsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4NWUsIDB4YjAsIDB4MDEsIDB4N2UsIDB4YTAsIDB4OTAsIDB4MTIsIDB4NjIsIAorICAgIDB4OTMsIDB4NDAsIDB4MTIsIDB4NzUsIDB4MzEsIDB4YjgsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YzIsIDB4MjIsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIAorICAgIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIDB4N2UsIDB4MjQsIDB4ODMsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIAorICAgIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NTMsIDB4MzgsIDB4N2QsIDB4MjEsIAorICAgIDB4ZGEsIDB4MTksIDB4NWUsIDB4YjAsIDB4MDEsIDB4N2UsIDB4YTAsIDB4OTAsIDB4MTIsIDB4NjIsIDB4OTMsIDB4NDAsIDB4MTIsIDB4NzUsIDB4MzEsIDB4YjgsIAorICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4YzIsIDB4MjMsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIAorICAgIDB4N2UsIDB4MjQsIDB4ODQsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIAorICAgIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NTYsIDB4OTAsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4NWUsIDB4YjAsIDB4MDEsIDB4N2UsIAorICAgIDB4YTAsIDB4OTAsIDB4MTIsIDB4NjIsIDB4OTMsIDB4NDAsIDB4MTIsIDB4NzUsIDB4MzEsIDB4YjgsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YzIsIDB4MjQsIDB4YzAsIAorICAgIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIDB4N2UsIDB4MjQsIDB4ODUsIDB4MDAsIDB4MDksIDB4YjIsIAorICAgIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIAorICAgIDB4NTksIDB4ZTgsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4NWUsIDB4YjAsIDB4MDEsIDB4N2UsIDB4YTAsIDB4OTAsIDB4MTIsIDB4NjIsIDB4OTMsIDB4NDAsIAorICAgIDB4MTIsIDB4NzUsIDB4MzEsIDB4YjgsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YzIsIDB4MjUsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIAorICAgIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIDB4N2UsIDB4MjQsIDB4ODYsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIAorICAgIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NWQsIDB4NDAsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIAorICAgIDB4NWUsIDB4YjAsIDB4MDEsIDB4N2UsIDB4YTAsIDB4OTAsIDB4MTIsIDB4NjIsIDB4OTMsIDB4NDAsIDB4MTIsIDB4NzUsIDB4MzEsIDB4YjgsIDB4MTIsIDB4N2MsIAorICAgIDB4MTUsIDB4YzIsIDB4MjYsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIDB4N2UsIDB4MjQsIAorICAgIDB4ODcsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIAorICAgIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NjAsIDB4OTgsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4NWUsIDB4YjAsIDB4MDEsIDB4N2UsIDB4YTAsIDB4OTAsIAorICAgIDB4MTIsIDB4NjIsIDB4OTMsIDB4NDAsIDB4MTIsIDB4NzUsIDB4MzEsIDB4YjgsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YzIsIDB4MjcsIDB4YzAsIDB4ZjEsIDB4NzUsIAorICAgIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIDB4YzIsIDB4YWYsIDB4ZTUsIDB4MzMsIDB4NjAsIDB4MTQsIDB4N2UsIDB4MjAsIAorICAgIDB4MDAsIDB4MTMsIDB4NTAsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4MzcsIDB4NDUsIDB4ZGEsIDB4YjgsIDB4YTUsIDB4MGEsIDB4YmUsIDB4MjEsIDB4MmYsIAorICAgIDB4NzgsIDB4ZWYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4N2MsIDB4YjIsIDB4MjMsIDB4MGEsIDB4MmIsIDB4NDksIDB4MjIsIDB4MzcsIDB4NTAsIDB4ODksIDB4MjQsIAorICAgIDB4MzcsIDB4NjAsIDB4MzcsIDB4N2YsIDB4MzcsIDB4OWUsIDB4MzcsIDB4YmQsIDB4MzcsIDB4ZGMsIDB4MzcsIDB4ZmIsIDB4MzgsIDB4MWEsIDB4MzgsIDB4MzksIAorICAgIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NDgsIDB4MWIsIDB4ZGEsIDB4MTksIDB4MTAsIDB4MDQsIDB4MDIsIAorICAgIDB4ODAsIDB4MGMsIDB4ZDIsIDB4MDEsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIDB4N2UsIAorICAgIDB4MjQsIDB4ODEsIDB4MDAsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NGIsIDB4NzMsIDB4ZGEsIDB4MTksIDB4MTAsIDB4MDQsIDB4MDIsIDB4ODAsIAorICAgIDB4MGMsIDB4ZDIsIDB4MDEsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIDB4N2UsIDB4MjQsIAorICAgIDB4ODIsIDB4MDAsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NGUsIDB4Y2IsIDB4ZGEsIDB4MTksIDB4MTAsIDB4MDQsIDB4MDIsIDB4ODAsIDB4MGMsIAorICAgIDB4ZDIsIDB4MDEsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIDB4N2UsIDB4MjQsIDB4ODMsIAorICAgIDB4MDAsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NTIsIDB4MjMsIDB4ZGEsIDB4MTksIDB4MTAsIDB4MDQsIDB4MDIsIDB4ODAsIDB4MGMsIDB4ZDIsIAorICAgIDB4MDEsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIDB4N2UsIDB4MjQsIDB4ODQsIDB4MDAsIAorICAgIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NTUsIDB4N2IsIDB4ZGEsIDB4MTksIDB4MTAsIDB4MDQsIDB4MDIsIDB4ODAsIDB4MGMsIDB4ZDIsIDB4MDEsIAorICAgIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIDB4N2UsIDB4MjQsIDB4ODUsIDB4MDAsIDB4Y2EsIAorICAgIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NTgsIDB4ZDMsIDB4ZGEsIDB4MTksIDB4MTAsIDB4MDQsIDB4MDIsIDB4ODAsIDB4MGMsIDB4ZDIsIDB4MDEsIDB4YzAsIAorICAgIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIDB4N2UsIDB4MjQsIDB4ODYsIDB4MDAsIDB4Y2EsIDB4MTksIAorICAgIDB4N2QsIDB4MTIsIDB4MTIsIDB4NWMsIDB4MmIsIDB4ZGEsIDB4MTksIDB4MTAsIDB4MDQsIDB4MDIsIDB4ODAsIDB4MGMsIDB4ZDIsIDB4MDEsIDB4YzAsIDB4ZjEsIAorICAgIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIDB4N2UsIDB4MjQsIDB4ODcsIDB4MDAsIDB4Y2EsIDB4MTksIDB4N2QsIAorICAgIDB4MTIsIDB4MTIsIDB4NWYsIDB4ODMsIDB4ZGEsIDB4MTksIDB4MTAsIDB4MDQsIDB4MDIsIDB4ODAsIDB4MGMsIDB4ZDIsIDB4MDEsIDB4YzAsIDB4ZjEsIDB4NzUsIAorICAgIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIDB4YzIsIDB4YWYsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4YTksIAorICAgIDB4MzIsIDB4ZjIsIDB4MWEsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZTEsIDB4YmUsIDB4MDQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MTAsIDB4ZTUsIDB4ZjUsIDB4MzMsIAorICAgIDB4ODIsIDB4ZTcsIDB4NDAsIDB4MDksIDB4ODUsIDB4MzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4ZjYsIDB4MDAsIDB4ZDAsIDB4ZjEsIDB4ZDIsIAorICAgIDB4YWYsIDB4MjIsIAorCisvLyBTZWdtZW50ICMxNSwgU3RhcnQgQWRkcmVzcyAwMGZmNDAwMCwgTGVuZ3RoIDE1MzgxCisweGZmLDB4MDAsMHgwMCwweDQwLDB4MTUsMHgzYywKKyAgICAweDdlLCAweDA0LCAweDAwLCAweDAxLCAweDdlLCAweDE0LCAweDdmLCAweGY4LCAweDdlLCAweDI0LCAweDAwLCAweGZlLCAweDdkLCAweDMxLCAweDBiLCAweDFhLCAKKyAgICAweDUwLCAweDFiLCAweDBhLCAweDUwLCAweDdlLCAweDE0LCAweDQwLCAweDFiLCAweDAyLCAweDQwLCAweDZhLCAweDdlLCAweGY4LCAweDAwLCAweDZmLCAweGQyLCAKKyAgICAweDA0LCAweGMyLCAweDk0LCAweGQyLCAweDk1LCAweDdlLCAweGY0LCAweDQwLCAweDJjLCAweDAyLCAweDQwLCAweDdjLCAweDEyLCAweDdkLCAweDMwLCAweGY1LCAKKyAgICAweDJmLCAweDdhLCAweGExLCAweDMwLCAweDdhLCAweDExLCAweDZlLCAweDEyLCAweDc1LCAweGNhLCAweDEyLCAweDQwLCAweGRjLCAweDdlLCAweGIzLCAweDNmLCAKKyAgICAweGYxLCAweDYwLCAweDAzLCAweDEyLCAweDQzLCAweGQ0LCAweDc1LCAweGYxLCAweDAwLCAweDEyLCAweDc2LCAweDZmLCAweGQyLCAweGFmLCAweDAyLCAweDMwLCAKKyAgICAweDAwLCAweDdlLCAweDA0LCAweDAwLCAweGZmLCAweDdlLCAweDE4LCAweDQwLCAweDVmLCAweDdhLCAweDFjLCAweDAwLCAweDAxLCAweDg5LCAweDE4LCAweGE5LCAKKyAgICAweDI1LCAweDg3LCAweDAzLCAweGE5LCAweGQ1LCAweDg3LCAweGQyLCAweDkzLCAweDg5LCAweDA4LCAweDdlLCAweDA0LCAweDAwLCAweGZmLCAweDdlLCAweDE4LCAKKyAgICAweDQwLCAweDc4LCAweDdhLCAweDFjLCAweDAwLCAweDAxLCAweDg5LCAweDE4LCAweGMyLCAweDkzLCAweDg5LCAweDA4LCAweDdlLCAweDA4LCAweDAwLCAweDIwLCAKKyAgICAweDdlLCAweDQ0LCAweDA0LCAweDAwLCAweDdlLCAweDQwLCAweDAwLCAweDdlLCAweGU0LCAweDQwLCAweDhlLCAweDAyLCAweDdjLCAweDMwLCAweDdlLCAweDA4LCAKKyAgICAweDAxLCAweDZmLCAweDdlLCAweDQ0LCAweDI4LCAweDdjLCAweDdlLCAweDQwLCAweDAwLCAweDdlLCAweGU0LCAweDQwLCAweGEwLCAweDAyLCAweDdjLCAweDMwLCAKKyAgICAweDdlLCAweDA4LCAweDAwLCAweDZmLCAweDdlLCAweDQ0LCAweDAxLCAweDAwLCAweDdlLCAweDQwLCAweDUzLCAweDdlLCAweGU0LCAweDQwLCAweGIyLCAweDAyLCAKKyAgICAweDdjLCAweDMwLCAweDc1LCAweDZkLCAweDIwLCAweDc1LCAweDZjLCAweDMwLCAweDdlLCAweDA0LCAweDAwLCAweDA4LCAweDc1LCAweDZhLCAweDU4LCAweDc1LCAKKyAgICAweDZiLCAweDA4LCAweDc1LCAweDY3LCAweDA4LCAweDc1LCAweDY5LCAweDAxLCAweDc1LCAweDg5LCAweDAxLCAweDc1LCAweDhhLCAweDAxLCAweDc1LCAweDhjLCAKKyAgICAweDAwLCAweGQyLCAweDhjLCAweDdlLCAweDA0LCAweDAwLCAweDAyLCAweDdhLCAweDA1LCAweDU4LCAweDg5LCAweGY0LCAweDc1LCAweGI3LCAweDdmLCAweDc1LCAKKyAgICAweGI4LCAweDdmLCAweDc1LCAweGIzLCAweDA3LCAweDc1LCAweGIyLCAweDA3LCAweGQyLCAweGE5LCAweDIyLCAweGQyLCAweDkyLCAweGU0LCAweGQ1LCAweGUwLCAKKyAgICAweGZkLCAweGMyLCAweDkyLCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDJmLCAweDdlLCAweGEwLCAweDA4LCAweDE5LCAweGEyLCAweDAwLCAKKyAgICAweDEwLCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweGYyLCAweDdlLCAweDIwLCAweDAwLCAweDEyLCAweDQxLCAweDdlLCAweDBiLCAweDIwLCAKKyAgICAweGJlLCAweDIxLCAweDJmLCAweDc4LCAweGY2LCAweDIyLCAweDdlLCAweDA0LCAweDgwLCAweDAwLCAweDRjLCAweDAyLCAweDc0LCAweGJmLCAweDE5LCAweGIwLCAKKyAgICAweDAwLCAweDBjLCAweDc0LCAweDEwLCAweDE5LCAweGIwLCAweDAwLCAweDA4LCAweDc0LCAweDgwLCAweDE5LCAweGIwLCAweDAwLCAweDBjLCAweDdlLCAweDU0LCAKKyAgICAweDAwLCAweDAyLCAweDE5LCAweGEwLCAweDAwLCAweDA0LCAweDE5LCAweGIwLCAweDAwLCAweDAwLCAweDc0LCAweDAzLCAweDE5LCAweGIwLCAweDAwLCAweDBjLCAKKyAgICAweDc0LCAweDA3LCAweGE5LCAweDIwLCAweDMwLCAweDBiLCAweGE5LCAweDM1LCAweDMwLCAweDA1LCAweGJlLCAweDIwLCAweDAxLCAweDI4LCAweDAyLCAweDc0LCAKKyAgICAweDBmLCAweDE5LCAweGIwLCAweDAwLCAweDA0LCAweGE5LCAweDMzLCAweDMwLCAweDE4LCAweDc0LCAweGJmLCAweDE5LCAweGIwLCAweDAwLCAweDBjLCAweDc0LCAKKyAgICAweDI4LCAweGE5LCAweDIwLCAweDMwLCAweDAyLCAweDc0LCAweDIwLCAweDE5LCAweGIwLCAweDAwLCAweDA0LCAweDc0LCAweDAzLCAweDE5LCAweGIwLCAweDAwLCAKKyAgICAweDBjLCAweDc0LCAweGE3LCAweDE5LCAweGIwLCAweDAwLCAweDA4LCAweDc0LCAweDBjLCAweDE5LCAweGIwLCAweDAwLCAweDEwLCAweDIyLCAweDdlLCAweDA0LCAKKyAgICAweDgwLCAweDAwLCAweDRjLCAweDAyLCAweGU0LCAweDE5LCAweGIwLCAweDAwLCAweDA0LCAweDA5LCAweGIwLCAweDAwLCAweDEwLCAweDU0LCAweDA4LCAweDE5LCAKKyAgICAweGIwLCAweDAwLCAweDEwLCAweDc0LCAweGE3LCAweDE5LCAweGIwLCAweDAwLCAweDA4LCAweDIyLCAweDdjLCAweGIyLCAweDIzLCAweDBhLCAweDJiLCAweDQ5LCAKKyAgICAweDIyLCAweDQxLCAweGE1LCAweDg5LCAweDI0LCAweDQxLCAweGI1LCAweDQxLCAweGQ0LCAweDQxLCAweGYzLCAweDQyLCAweDEyLCAweDQyLCAweDMxLCAweDQyLCAKKyAgICAweDUwLCAweDQyLCAweDZmLCAweDQyLCAweDhlLCAweGMyLCAweDEwLCAweGMyLCAweDE4LCAweGMyLCAweDIwLCAweGMyLCAweDA4LCAweDdlLCAweDA0LCAweDA5LCAKKyAgICAweGUzLCAweDdhLCAweDA3LCAweDAxLCAweDZmLCAweDdhLCAweDA3LCAweDAxLCAweDdmLCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDhmLCAweDdhLCAKKyAgICAweDA3LCAweDAxLCAweDlmLCAweDIyLCAweGMyLCAweDExLCAweGMyLCAweDE5LCAweGMyLCAweDIxLCAweGMyLCAweDA5LCAweDdlLCAweDA0LCAweDBkLCAweGUzLCAKKyAgICAweDdhLCAweDA3LCAweDAxLCAweDcxLCAweDdhLCAweDA3LCAweDAxLCAweDgxLCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDkxLCAweDdhLCAweDA3LCAKKyAgICAweDAxLCAweGExLCAweDIyLCAweGMyLCAweDEyLCAweGMyLCAweDFhLCAweGMyLCAweDIyLCAweGMyLCAweDBhLCAweDdlLCAweDA0LCAweDExLCAweGUzLCAweDdhLCAKKyAgICAweDA3LCAweDAxLCAweDczLCAweDdhLCAweDA3LCAweDAxLCAweDgzLCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDkzLCAweDdhLCAweDA3LCAweDAxLCAKKyAgICAweGEzLCAweDIyLCAweGMyLCAweDEzLCAweGMyLCAweDFiLCAweGMyLCAweDIzLCAweGMyLCAweDBiLCAweDdlLCAweDA0LCAweDE1LCAweGUzLCAweDdhLCAweDA3LCAKKyAgICAweDAxLCAweDc1LCAweDdhLCAweDA3LCAweDAxLCAweDg1LCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDk1LCAweDdhLCAweDA3LCAweDAxLCAweGE1LCAKKyAgICAweDIyLCAweGMyLCAweDE0LCAweGMyLCAweDFjLCAweGMyLCAweDI0LCAweGMyLCAweDBjLCAweDdlLCAweDA0LCAweDE5LCAweGUzLCAweDdhLCAweDA3LCAweDAxLCAKKyAgICAweDc3LCAweDdhLCAweDA3LCAweDAxLCAweDg3LCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDk3LCAweDdhLCAweDA3LCAweDAxLCAweGE3LCAweDIyLCAKKyAgICAweGMyLCAweDE1LCAweGMyLCAweDFkLCAweGMyLCAweDI1LCAweGMyLCAweDBkLCAweDdlLCAweDA0LCAweDFkLCAweGUzLCAweDdhLCAweDA3LCAweDAxLCAweDc5LCAKKyAgICAweDdhLCAweDA3LCAweDAxLCAweDg5LCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDk5LCAweDdhLCAweDA3LCAweDAxLCAweGE5LCAweDIyLCAweGMyLCAKKyAgICAweDE2LCAweGMyLCAweDFlLCAweGMyLCAweDI2LCAweGMyLCAweDBlLCAweDdlLCAweDA0LCAweDIxLCAweGUzLCAweDdhLCAweDA3LCAweDAxLCAweDdiLCAweDdhLCAKKyAgICAweDA3LCAweDAxLCAweDhiLCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDliLCAweDdhLCAweDA3LCAweDAxLCAweGFiLCAweDIyLCAweGMyLCAweDE3LCAKKyAgICAweGMyLCAweDFmLCAweGMyLCAweDI3LCAweGMyLCAweDBmLCAweDdlLCAweDA0LCAweDI1LCAweGUzLCAweDdhLCAweDA3LCAweDAxLCAweDdkLCAweDdhLCAweDA3LCAKKyAgICAweDAxLCAweDhkLCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDlkLCAweDdhLCAweDA3LCAweDAxLCAweGFkLCAweDIyLCAweDdjLCAweGIyLCAweDIzLCAKKyAgICAweDBhLCAweDJiLCAweDQ5LCAweDIyLCAweDQyLCAweGI4LCAweDg5LCAweDI0LCAweDQyLCAweGM4LCAweDQyLCAweGU5LCAweDQzLCAweDBhLCAweDQzLCAweDJiLCAKKyAgICAweDQzLCAweDRjLCAweDQzLCAweDZkLCAweDQzLCAweDhlLCAweDQzLCAweGFmLCAweDMwLCAweDUwLCAweDA3LCAweDIwLCAweDY4LCAweDA0LCAweGMyLCAweDI4LCAKKyAgICAweDgwLCAweDE2LCAweDMwLCAweDQwLCAweDA3LCAweDIwLCAweDYwLCAweDA0LCAweGMyLCAweDI4LCAweDgwLCAweDBjLCAweDMwLCAweDQ4LCAweDA3LCAweDIwLCAKKyAgICAweDU4LCAweDA0LCAweGMyLCAweDI4LCAweDgwLCAweDAyLCAweGQyLCAweDI4LCAweDIyLCAweDMwLCAweDUxLCAweDA3LCAweDIwLCAweDY5LCAweDA0LCAweGMyLCAKKyAgICAweDI5LCAweDgwLCAweDE2LCAweDMwLCAweDQxLCAweDA3LCAweDIwLCAweDYxLCAweDA0LCAweGMyLCAweDI5LCAweDgwLCAweDBjLCAweDMwLCAweDQ5LCAweDA3LCAKKyAgICAweDIwLCAweDU5LCAweDA0LCAweGMyLCAweDI5LCAweDgwLCAweDAyLCAweGQyLCAweDI5LCAweDIyLCAweDMwLCAweDUyLCAweDA3LCAweDIwLCAweDZhLCAweDA0LCAKKyAgICAweGMyLCAweDJhLCAweDgwLCAweDE2LCAweDMwLCAweDQyLCAweDA3LCAweDIwLCAweDYyLCAweDA0LCAweGMyLCAweDJhLCAweDgwLCAweDBjLCAweDMwLCAweDRhLCAKKyAgICAweDA3LCAweDIwLCAweDVhLCAweDA0LCAweGMyLCAweDJhLCAweDgwLCAweDAyLCAweGQyLCAweDJhLCAweDIyLCAweDMwLCAweDUzLCAweDA3LCAweDIwLCAweDZiLCAKKyAgICAweDA0LCAweGMyLCAweDJiLCAweDgwLCAweDE2LCAweDMwLCAweDQzLCAweDA3LCAweDIwLCAweDYzLCAweDA0LCAweGMyLCAweDJiLCAweDgwLCAweDBjLCAweDMwLCAKKyAgICAweDRiLCAweDA3LCAweDIwLCAweDViLCAweDA0LCAweGMyLCAweDJiLCAweDgwLCAweDAyLCAweGQyLCAweDJiLCAweDIyLCAweDMwLCAweDU0LCAweDA3LCAweDIwLCAKKyAgICAweDZjLCAweDA0LCAweGMyLCAweDJjLCAweDgwLCAweDE2LCAweDMwLCAweDQ0LCAweDA3LCAweDIwLCAweDY0LCAweDA0LCAweGMyLCAweDJjLCAweDgwLCAweDBjLCAKKyAgICAweDMwLCAweDRjLCAweDA3LCAweDIwLCAweDVjLCAweDA0LCAweGMyLCAweDJjLCAweDgwLCAweDAyLCAweGQyLCAweDJjLCAweDIyLCAweDMwLCAweDU1LCAweDA3LCAKKyAgICAweDIwLCAweDZkLCAweDA0LCAweGMyLCAweDJkLCAweDgwLCAweDE2LCAweDMwLCAweDQ1LCAweDA3LCAweDIwLCAweDY1LCAweDA0LCAweGMyLCAweDJkLCAweDgwLCAKKyAgICAweDBjLCAweDMwLCAweDRkLCAweDA3LCAweDIwLCAweDVkLCAweDA0LCAweGMyLCAweDJkLCAweDgwLCAweDAyLCAweGQyLCAweDJkLCAweDIyLCAweDMwLCAweDU2LCAKKyAgICAweDA3LCAweDIwLCAweDZlLCAweDA0LCAweGMyLCAweDJlLCAweDgwLCAweDE2LCAweDMwLCAweDQ2LCAweDA3LCAweDIwLCAweDY2LCAweDA0LCAweGMyLCAweDJlLCAKKyAgICAweDgwLCAweDBjLCAweDMwLCAweDRlLCAweDA3LCAweDIwLCAweDVlLCAweDA0LCAweGMyLCAweDJlLCAweDgwLCAweDAyLCAweGQyLCAweDJlLCAweDIyLCAweDMwLCAKKyAgICAweDU3LCAweDA3LCAweDIwLCAweDZmLCAweDA0LCAweGMyLCAweDJmLCAweDgwLCAweDE2LCAweDMwLCAweDQ3LCAweDA3LCAweDIwLCAweDY3LCAweDA0LCAweGMyLCAKKyAgICAweDJmLCAweDgwLCAweDBjLCAweDMwLCAweDRmLCAweDA3LCAweDIwLCAweDVmLCAweDA0LCAweGMyLCAweDJmLCAweDgwLCAweDAyLCAweGQyLCAweDJmLCAweDIyLCAKKyAgICAweDQ0LCAweDM4LCAweDQzLCAweGU1LCAweGJlLCAweGIwLCAweDAyLCAweDQwLCAweDAxLCAweDIyLCAweDIzLCAweDBhLCAweDViLCAweDQ5LCAweDU1LCAweDQzLCAKKyAgICAweGQwLCAweDk5LCAweDU0LCAweGQzLCAweDIyLCAweGE5LCAweGM1LCAweDg3LCAweDEyLCAweDQ0LCAweDQzLCAweDdlLCAweDA0LCAweDA1LCAweGUzLCAweDdhLCAKKyAgICAweDA3LCAweDAxLCAweGQ3LCAweDdhLCAweDA3LCAweDAxLCAweGQ5LCAweDdlLCAweDA0LCAweDAxLCAweGUzLCAweDdhLCAweDA3LCAweDAxLCAweGRkLCAweDdhLCAKKyAgICAweDA3LCAweDAxLCAweGRmLCAweDdlLCAweDA0LCAweDc0LCAweGFkLCAweDdhLCAweDA1LCAweDYxLCAweDc1LCAweGYxLCAweDAxLCAweDc1LCAweGUxLCAweDFmLCAKKyAgICAweDc1LCAweGU0LCAweDA0LCAweDc1LCAweGY0LCAweDA0LCAweDc1LCAweGYxLCAweDAyLCAweDc1LCAweGUxLCAweDAzLCAweDc1LCAweGU0LCAweDA0LCAweDc1LCAKKyAgICAweGY0LCAweDA0LCAweDQzLCAweGEyLCAweDFjLCAweDEyLCAweDQwLCAweGViLCAweDdlLCAweDIwLCAweDAwLCAweDEyLCAweDQxLCAweDlhLCAweDBiLCAweDIwLCAKKyAgICAweGJlLCAweDIxLCAweDJmLCAweDc4LCAweGY2LCAweGQyLCAweGE4LCAweDIyLCAweGE5LCAweGQ1LCAweDg3LCAweDEyLCAweDQ0LCAweDQzLCAweGQyLCAweDkyLCAKKyAgICAweGMyLCAweGE4LCAweDIyLCAweDc1LCAweGEzLCAweDAwLCAweDUzLCAweGEyLCAweDAzLCAweDc1LCAweGMxLCAweDAwLCAweDUzLCAweGMwLCAweDAzLCAweDdlLCAKKyAgICAweDAwLCAweDA1LCAweDdhLCAweDAxLCAweGYxLCAweDQzLCAweGY0LCAweDgwLCAweDQzLCAweGU0LCAweDgwLCAweGU1LCAweGYyLCAweDU0LCAweDdmLCAweDQ0LCAKKyAgICAweDA4LCAweGY1LCAweGYyLCAweGU1LCAweGUyLCAweDU0LCAweDdmLCAweDQ0LCAweDA4LCAweGY1LCAweGUyLCAweDc1LCAweGUxLCAweDEwLCAweGE1LCAweGQ4LCAKKyAgICAweGUxLCAweDIyLCAweGNhLCAweDA5LCAweDEyLCAweDMwLCAweDIwLCAweDEwLCAweDAxLCAweDEyLCAweGQ1LCAweDY3LCAweDFlLCAweDYzLCAweDY5LCAweDAxLCAKKyAgICAweDdlLCAweDAwLCAweDZhLCAweDJlLCAweDAxLCAweDY5LCAweGE1LCAweGU2LCAweGY1LCAweDY3LCAweDgwLCAweDEyLCAweDIwLCAweDAyLCAweDFlLCAweDc1LCAKKyAgICAweDY5LCAweDAwLCAweDg1LCAweDZhLCAweDY3LCAweGQyLCAweDAyLCAweDc0LCAweDAwLCAweDgwLCAweDBkLCAweDMwLCAweDAyLCAweDBmLCAweGMyLCAweDAyLCAKKyAgICAweDdlLCAweDAwLCAweDZjLCAweDJlLCAweDAxLCAweDY5LCAweGE1LCAweGU2LCAweDUzLCAweDkwLCAweGNmLCAweDQyLCAweDkwLCAweGRhLCAweDA5LCAweDMyLCAKKyAgICAweGMwLCAweGQwLCAweGMwLCAweGQxLCAweGMwLCAweGUwLCAweGMwLCAweGYwLCAweGNhLCAweDBiLCAweGNhLCAweDFiLCAweGNhLCAweDJiLCAweGQyLCAweDAxLCAKKyAgICAweDc1LCAweDMxLCAweDg5LCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAKKyAgICAweDAzLCAweDAyLCAweDQ1LCAweDRmLCAweDIwLCAweDc4LCAweDVhLCAweGE1LCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDAzLCAKKyAgICAweDAyLCAweDQ1LCAweDY3LCAweDIwLCAweDc5LCAweDRiLCAweGE1LCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDAzLCAweDAyLCAKKyAgICAweDQ1LCAweDdmLCAweGE1LCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDAzLCAweDAyLCAweDQ1LCAweDk3LCAweDIwLCAweDdhLCAKKyAgICAweDMwLCAweGE1LCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDAzLCAweDAyLCAweDQ1LCAweGFmLCAweGE1LCAweDBhLCAweDA5LCAKKyAgICAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDAzLCAweDAyLCAweDQ1LCAweGM3LCAweGE1LCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAKKyAgICAweGUwLCAweDAzLCAweDAyLCAweDQ1LCAweGRmLCAweGE1LCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDAzLCAweDAyLCAweDQ1LCAKKyAgICAweGY3LCAweDMwLCAweDA0LCAweDBjLCAweGMyLCAweDA0LCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAKKyAgICAweGRhLCAweDJiLCAweGRhLCAweDFiLCAweGRhLCAweDBiLCAweGQwLCAweGYwLCAweGQwLCAweGUwLCAweGQwLCAweGQxLCAweGQwLCAweGQwLCAweDMyLCAweDc1LCAKKyAgICAweDMxLCAweDgwLCAweDEyLCAweDdjLCAweDE1LCAweDU0LCAweDNlLCAweDBhLCAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDYzLCAKKyAgICAweDJiLCAweGNhLCAweDA2LCAweGM2LCAweDQ0LCAweDg5LCAweDU0LCAweDc1LCAweDMxLCAweDgxLCAweDEyLCAweDdjLCAweDE1LCAweDU0LCAweDNlLCAweDBhLCAKKyAgICAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDYzLCAweDZiLCAweGNhLCAweDA2LCAweGM2LCAweDQ0LCAweDg5LCAweDU0LCAweDc1LCAKKyAgICAweDMxLCAweDgyLCAweDEyLCAweDdjLCAweDE1LCAweDU0LCAweDNlLCAweDBhLCAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDYzLCAKKyAgICAweGFiLCAweGNhLCAweDA2LCAweGM2LCAweDQ0LCAweDg5LCAweDU0LCAweDc1LCAweDMxLCAweDgzLCAweDEyLCAweDdjLCAweDE1LCAweDU0LCAweDNlLCAweDBhLCAKKyAgICAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDYzLCAweGViLCAweGNhLCAweDA2LCAweGM2LCAweDQ0LCAweDg5LCAweDU0LCAweDc1LCAKKyAgICAweDMxLCAweDg0LCAweDEyLCAweDdjLCAweDE1LCAweDU0LCAweDNlLCAweDBhLCAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDY0LCAKKyAgICAweDJiLCAweGNhLCAweDA2LCAweGM2LCAweDQ0LCAweDg5LCAweDU0LCAweDc1LCAweDMxLCAweDg1LCAweDEyLCAweDdjLCAweDE1LCAweDU0LCAweDNlLCAweDBhLCAKKyAgICAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDY0LCAweDZiLCAweGNhLCAweDA2LCAweGM2LCAweDQ0LCAweDg5LCAweDU0LCAweDc1LCAKKyAgICAweDMxLCAweDg2LCAweDEyLCAweDdjLCAweDE1LCAweDU0LCAweDNlLCAweDBhLCAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDY0LCAKKyAgICAweGFiLCAweGNhLCAweDA2LCAweGM2LCAweDQ0LCAweDg5LCAweDU0LCAweDc1LCAweDMxLCAweDg3LCAweDEyLCAweDdjLCAweDE1LCAweDU0LCAweDNlLCAweDBhLCAKKyAgICAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDY0LCAweGViLCAweGNhLCAweDA2LCAweGM2LCAweDQ0LCAweDg5LCAweDU0LCAweDEwLCAKKyAgICAweDA4LCAweDAxLCAweDIyLCAweDIwLCAweDI4LCAweDAzLCAweGQyLCAweDA4LCAweDIyLCAweDc1LCAweDMxLCAweGEwLCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAKKyAgICAweDE0LCAweDgwLCAweDAwLCAweDgwLCAweDA2LCAweDIwLCAweDI4LCAweDAzLCAweGQyLCAweDA4LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAKKyAgICAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAweDEyLCAweDQ5LCAweDMwLCAweDIwLCAweGU2LCAweDAzLCAweGQyLCAweDA4LCAKKyAgICAweDIyLCAweDMwLCAweDMwLCAweDQ5LCAweGQyLCAweDcwLCAweDdlLCAweDM3LCAweDAxLCAweDhmLCAweDdlLCAweDI3LCAweDAxLCAweGFmLCAweDlkLCAweDMyLCAKKyAgICAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDQ4LCAweDdhLCAweDA1LCAweDQ4LCAweDdhLCAweDM3LCAweDAxLCAweDhmLCAweDdlLCAweDM3LCAKKyAgICAweDAxLCAweDZmLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDBkLCAweGUyLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAweDZmLCAKKyAgICAweDc1LCAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDEyLCAweDY1LCAweDJiLCAweDEwLCAKKyAgICAweDcwLCAweGM0LCAweDIyLCAweGMyLCAweDcwLCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAweDAxLCAKKyAgICAweDhmLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweGFmLCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAweDAxLCAKKyAgICAweGFmLCAweDdlLCAweDM3LCAweDAxLCAweDhmLCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDQ4LCAweDdhLCAweDA1LCAweDQ4LCAweDdhLCAKKyAgICAweDM3LCAweDAxLCAweDhmLCAweDdlLCAweDM3LCAweDAxLCAweDZmLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDBkLCAweGUyLCAweDM4LCAKKyAgICAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDZmLCAweDc1LCAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAKKyAgICAweDE1LCAweDAyLCAweDY1LCAweDJiLCAweDc1LCAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAKKyAgICAweDllLCAweDQ0LCAweDBkLCAweGUzLCAweDlkLCAweDI0LCAweDEyLCAweDY1LCAweDJiLCAweDdlLCAweDM0LCAweDA5LCAweGUzLCAweDdkLCAweDI0LCAweDJkLCAKKyAgICAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDZmLCAweDEyLCAweDY1LCAweDJiLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDQ2LCAweDdmLCAKKyAgICAweDIyLCAweGQyLCAweDA4LCAweDdlLCAweDA0LCAweDA5LCAweGUzLCAweDdhLCAweDA3LCAweDAxLCAweDZmLCAweDdhLCAweDA3LCAweDAxLCAweDdmLCAweDc1LCAKKyAgICAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDc1LCAweDMxLCAweDAwLCAweDEyLCAweDdjLCAweDE1LCAweDIyLCAweDc1LCAweDMxLCAweDkyLCAweDEyLCAKKyAgICAweDdjLCAweDE1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAweDcwLCAKKyAgICAweDdlLCAweDM3LCAweDAxLCAweGUxLCAweDdlLCAweDI3LCAweDAxLCAweGJmLCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAweDM0LCAKKyAgICAweDA0LCAweDAwLCAweDM4LCAweDNjLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDQ2LCAweDdhLCAweDA1LCAweDQ2LCAweDdhLCAweDM3LCAweDAxLCAweGUxLCAKKyAgICAweDdlLCAweDM3LCAweDAxLCAweGRmLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDA1LCAweGUyLCAweDM4LCAweDQ0LCAweDdhLCAweDQ3LCAKKyAgICAweDAxLCAweGRmLCAweDdlLCAweDI0LCAweDAwLCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAweGJmLCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAweDdhLCAKKyAgICAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweGJlLCAweDUwLCAweDM4LCAweDc4LCAweDAzLCAweDAyLCAweDY2LCAweDE2LCAweDAyLCAweDY1LCAweGZiLCAKKyAgICAweDc1LCAweDMxLCAweDk5LCAweDEyLCAweDdjLCAweDE1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAKKyAgICAweDMwLCAweDM4LCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDEwLCAweDIyLCAKKyAgICAweDgwLCAweDdkLCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDllLCAweDQ0LCAweDA1LCAweGUzLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAKKyAgICAweDAwLCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGJmLCAweDllLCAweDI0LCAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAKKyAgICAweDM1LCAweDEyLCAweDY1LCAweGZiLCAweDdlLCAweDM0LCAweDAxLCAweGUzLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGRmLCAKKyAgICAweDAyLCAweDY1LCAweGZiLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAweDM0LCAweDAxLCAweGUzLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAKKyAgICAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAweDU0LCAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDAwLCAweDdhLCAweDY5LCAKKyAgICAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAweDMxLCAweDkzLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDcxLCAweDMxLCAweDEyLCAKKyAgICAweDdjLCAweDE1LCAweGJkLCAweDA0LCAweDY4LCAweDI5LCAweDdhLCAweDA3LCAweDAxLCAweGRmLCAweDdlLCAweDQ3LCAweDAxLCAweGUxLCAweDJkLCAweDQzLCAKKyAgICAweDdhLCAweDQ3LCAweDAxLCAweGUxLCAweDJlLCAweDM1LCAweDQ2LCAweDdhLCAweDM1LCAweDQ2LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAKKyAgICAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAweDAxLCAweGUzLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDAxLCAweGUzLCAweDgwLCAweDJjLCAweDdlLCAKKyAgICAweDA0LCAweDAxLCAweGUzLCAweDgwLCAweGQxLCAweGQyLCAweDA0LCAweDdlLCAweDA3LCAweDAxLCAweGUxLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAKKyAgICAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGRmLCAweDdlLCAweDQ0LCAweDA1LCAweGUzLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAKKyAgICAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGNlLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAKKyAgICAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAKKyAgICAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAweDdhLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAKKyAgICAweDAyLCAweDQ3LCAweGUzLCAweDc1LCAweDMxLCAweDk5LCAweDEyLCAweDdjLCAweDE1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAKKyAgICAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDM4LCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAKKyAgICAweGQyLCAweDEwLCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDQ3LCAKKyAgICAweGUzLCAweGRhLCAweGI4LCAweDAyLCAweDQ5LCAweDMwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDMxLCAweDkwLCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweGY1LCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweGE1LCAweGZjLCAweDVlLCAweGIwLCAweGYwLCAweGE1LCAweGZkLCAweDA5LCAKKyAgICAweGIxLCAweDAwLCAweDE4LCAweDRjLCAweDRiLCAweDVlLCAweGIwLCAweGYwLCAweGJjLCAweGI1LCAweDc4LCAweGYxLCAweDVlLCAweDQwLCAweDBmLCAweDRjLCAKKyAgICAweDU0LCAweDdjLCAweGI1LCAweDVlLCAweDUwLCAweDBiLCAweDY4LCAweDJhLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDEwLCAweDY4LCAweDA0LCAweGQyLCAKKyAgICAweDY4LCAweDgwLCAweDAyLCAweGMyLCAweDY4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDYwLCAweDgwLCAweDAyLCAKKyAgICAweGMyLCAweDYwLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDU4LCAweDgwLCAweDAyLCAweGMyLCAweDU4LCAweDEyLCAKKyAgICAweDQyLCAweGM4LCAweDAyLCAweDYyLCAweDkzLCAweDc1LCAweDMxLCAweDkxLCAweDEyLCAweDdjLCAweDE1LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAKKyAgICAweGIxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAweDAyLCAweDYyLCAweDkzLCAKKyAgICAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYyLCAweDkzLCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAKKyAgICAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYyLCAweGI2LCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDQ4LCAweDM1LCAweDc1LCAweDMxLCAweDk1LCAweDEyLCAweDdjLCAweDE1LCAweDIyLCAKKyAgICAweDc1LCAweDMxLCAweDk2LCAweDEyLCAweDdjLCAweDE1LCAweDIyLCAweDEwLCAweDA5LCAweDAxLCAweDIyLCAweDIwLCAweDI5LCAweDAzLCAweGQyLCAweDA5LCAKKyAgICAweDIyLCAweDc1LCAweDMxLCAweGExLCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweDE0LCAweDgxLCAweDAwLCAweDgwLCAweDA2LCAweDIwLCAweDI5LCAweDAzLCAKKyAgICAweGQyLCAweDA5LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAKKyAgICAweDEyLCAweDRjLCAweDg4LCAweDIwLCAweGU2LCAweDAzLCAweGQyLCAweDA5LCAweDIyLCAweDMwLCAweDMxLCAweDQ5LCAweGQyLCAweDcxLCAweDdlLCAweDM3LCAKKyAgICAweDAxLCAweDkxLCAweDdlLCAweDI3LCAweDAxLCAweGIxLCAweDlkLCAweDMyLCAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDRhLCAweDdhLCAKKyAgICAweDA1LCAweDRhLCAweDdhLCAweDM3LCAweDAxLCAweDkxLCAweDdlLCAweDM3LCAweDAxLCAweDcxLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAKKyAgICAweDExLCAweGUyLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAweDcxLCAweDc1LCAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDUxLCAKKyAgICAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDEyLCAweDY1LCAweDJiLCAweDEwLCAweDcxLCAweGM0LCAweDIyLCAweGMyLCAweDcxLCAweDJkLCAweDIzLCAweDY4LCAKKyAgICAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAweDAxLCAweDkxLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAKKyAgICAweDI3LCAweDAxLCAweGIxLCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAweDAxLCAweGIxLCAweDdlLCAweDM3LCAweDAxLCAweDkxLCAweDlkLCAweDMyLCAweDdkLCAKKyAgICAweDAyLCAweDJlLCAweDA1LCAweDRhLCAweDdhLCAweDA1LCAweDRhLCAweDdhLCAweDM3LCAweDAxLCAweDkxLCAweDdlLCAweDM3LCAweDAxLCAweDcxLCAweDdkLCAKKyAgICAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDExLCAweGUyLCAweDM4LCAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDcxLCAweDc1LCAweDMxLCAweDk0LCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDAyLCAweDY1LCAweDJiLCAweDc1LCAweDMxLCAweDk0LCAweDEyLCAKKyAgICAweDdjLCAweDE1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDllLCAweDQ0LCAweDExLCAweGUzLCAweDlkLCAweDI0LCAweDEyLCAweDY1LCAKKyAgICAweDJiLCAweDdlLCAweDM0LCAweDBkLCAweGUzLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDcxLCAweDEyLCAweDY1LCAweDJiLCAKKyAgICAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDQ5LCAweGQ3LCAweDIyLCAweGQyLCAweDA5LCAweDdlLCAweDA0LCAweDBkLCAweGUzLCAweDdhLCAKKyAgICAweDA3LCAweDAxLCAweDcxLCAweDdhLCAweDA3LCAweDAxLCAweDgxLCAweDc1LCAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDc1LCAweDMxLCAweDAwLCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweDIyLCAweDc1LCAweDMxLCAweDkyLCAweDEyLCAweDdjLCAweDE1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAKKyAgICAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAweDcwLCAweDdlLCAweDM3LCAweDAxLCAweGUxLCAweDdlLCAweDI3LCAweDAxLCAweGMxLCAKKyAgICAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAweDM4LCAweDNjLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAKKyAgICAweDQ2LCAweDdhLCAweDA1LCAweDQ2LCAweDdhLCAweDM3LCAweDAxLCAweGUxLCAweDdlLCAweDM3LCAweDAxLCAweGRmLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAKKyAgICAweGJlLCAweDQ0LCAweDA1LCAweGUyLCAweDM4LCAweDQ0LCAweDdhLCAweDQ3LCAweDAxLCAweGRmLCAweDdlLCAweDI0LCAweDAxLCAweDAwLCAweDJlLCAweDI3LCAKKyAgICAweDAxLCAweGMxLCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweGJlLCAweDUwLCAweDM4LCAKKyAgICAweDc4LCAweDAzLCAweDAyLCAweDY2LCAweDE2LCAweDAyLCAweDY1LCAweGZiLCAweDc1LCAweDMxLCAweDk5LCAweDEyLCAweDdjLCAweDE1LCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDM5LCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAKKyAgICAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDExLCAweDIyLCAweDgwLCAweDdkLCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAKKyAgICAweDllLCAweDQ0LCAweDA1LCAweGUzLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDAxLCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGMxLCAweDllLCAweDI0LCAKKyAgICAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDY1LCAweGZiLCAweDdlLCAweDM0LCAweDAxLCAweGUzLCAKKyAgICAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGRmLCAweDAyLCAweDY1LCAweGZiLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAweDM0LCAKKyAgICAweDAxLCAweGUzLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAweDU0LCAKKyAgICAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDAxLCAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAweDMxLCAKKyAgICAweDkzLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDcxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweGJkLCAweDA0LCAweDY4LCAweDI5LCAweDdhLCAweDA3LCAKKyAgICAweDAxLCAweGRmLCAweDdlLCAweDQ3LCAweDAxLCAweGUxLCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGUxLCAweDJlLCAweDM1LCAweDQ2LCAweDdhLCAKKyAgICAweDM1LCAweDQ2LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAweDAxLCAweGUzLCAweDgwLCAKKyAgICAweDJhLCAweDdlLCAweDA0LCAweDAxLCAweGUzLCAweDgwLCAweDJjLCAweDdlLCAweDA0LCAweDAxLCAweGUzLCAweDgwLCAweGQxLCAweGQyLCAweDA0LCAweDdlLCAKKyAgICAweDA3LCAweDAxLCAweGUxLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGRmLCAweDdlLCAKKyAgICAweDQ0LCAweDA1LCAweGUzLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAweGJkLCAKKyAgICAweDA0LCAweDY4LCAweGNlLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAweDA5LCAKKyAgICAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAweDdhLCAKKyAgICAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAweDRiLCAweDNiLCAweDc1LCAweDMxLCAweDk5LCAweDEyLCAweDdjLCAKKyAgICAweDE1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDM5LCAweDBhLCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDExLCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAKKyAgICAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDRiLCAweDNiLCAweGRhLCAweGI4LCAweDAyLCAweDRjLCAweDg4LCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDMxLCAweDkwLCAweDEyLCAweDdjLCAweDE1LCAweGY1LCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAKKyAgICAweGE1LCAweGZjLCAweDVlLCAweGIwLCAweGYwLCAweGE1LCAweGZkLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweDRjLCAweDRiLCAweDVlLCAweGIwLCAweGYwLCAKKyAgICAweGJjLCAweGI1LCAweDc4LCAweGYxLCAweDVlLCAweDQwLCAweDBmLCAweDRjLCAweDU0LCAweDdjLCAweGI1LCAweDVlLCAweDUwLCAweDBiLCAweDY4LCAweDJhLCAKKyAgICAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDEwLCAweDY4LCAweDA0LCAweGQyLCAweDY5LCAweDgwLCAweDAyLCAweGMyLCAweDY5LCAweGE1LCAweGZkLCAweDVlLCAKKyAgICAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDYxLCAweDgwLCAweDAyLCAweGMyLCAweDYxLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAKKyAgICAweDA0LCAweGQyLCAweDU5LCAweDgwLCAweDAyLCAweGMyLCAweDU5LCAweDEyLCAweDQyLCAweGU5LCAweDAyLCAweDYyLCAweDkzLCAweDc1LCAweDMxLCAweDkxLCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAweGIxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDIwLCAweGUwLCAweDA4LCAKKyAgICAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAweDAyLCAweDYyLCAweDkzLCAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAKKyAgICAweDEyLCAweDYyLCAweDkzLCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAKKyAgICAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYyLCAweGI2LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDRiLCAKKyAgICAweDhkLCAweDc1LCAweDMxLCAweDk1LCAweDEyLCAweDdjLCAweDE1LCAweDIyLCAweDc1LCAweDMxLCAweDk2LCAweDEyLCAweDdjLCAweDE1LCAweDIyLCAweDEwLCAKKyAgICAweDBhLCAweDAxLCAweDIyLCAweDIwLCAweDJhLCAweDAzLCAweGQyLCAweDBhLCAweDIyLCAweDc1LCAweDMxLCAweGEyLCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAKKyAgICAweDE0LCAweDgyLCAweDAwLCAweDgwLCAweDA2LCAweDIwLCAweDJhLCAweDAzLCAweGQyLCAweDBhLCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAKKyAgICAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAweDEyLCAweDRmLCAweGUwLCAweDIwLCAweGU2LCAweDAzLCAweGQyLCAweDBhLCAKKyAgICAweDIyLCAweDMwLCAweDMyLCAweDQ5LCAweGQyLCAweDcyLCAweDdlLCAweDM3LCAweDAxLCAweDkzLCAweDdlLCAweDI3LCAweDAxLCAweGIzLCAweDlkLCAweDMyLCAKKyAgICAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDRjLCAweDdhLCAweDA1LCAweDRjLCAweDdhLCAweDM3LCAweDAxLCAweDkzLCAweDdlLCAweDM3LCAKKyAgICAweDAxLCAweDczLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDE1LCAweGUyLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAweDczLCAKKyAgICAweDc1LCAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDEyLCAweDY1LCAweDJiLCAweDEwLCAKKyAgICAweDcyLCAweGM0LCAweDIyLCAweGMyLCAweDcyLCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAweDAxLCAKKyAgICAweDkzLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweGIzLCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAweDAxLCAKKyAgICAweGIzLCAweDdlLCAweDM3LCAweDAxLCAweDkzLCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDRjLCAweDdhLCAweDA1LCAweDRjLCAweDdhLCAKKyAgICAweDM3LCAweDAxLCAweDkzLCAweDdlLCAweDM3LCAweDAxLCAweDczLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDE1LCAweGUyLCAweDM4LCAKKyAgICAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDczLCAweDc1LCAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAKKyAgICAweDE1LCAweDAyLCAweDY1LCAweDJiLCAweDc1LCAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAKKyAgICAweDllLCAweDQ0LCAweDE1LCAweGUzLCAweDlkLCAweDI0LCAweDEyLCAweDY1LCAweDJiLCAweDdlLCAweDM0LCAweDExLCAweGUzLCAweDdkLCAweDI0LCAweDJkLCAKKyAgICAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDczLCAweDEyLCAweDY1LCAweDJiLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDRkLCAweDJmLCAKKyAgICAweDIyLCAweGQyLCAweDBhLCAweDdlLCAweDA0LCAweDExLCAweGUzLCAweDdhLCAweDA3LCAweDAxLCAweDczLCAweDdhLCAweDA3LCAweDAxLCAweDgzLCAweDc1LCAKKyAgICAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDc1LCAweDMxLCAweDAwLCAweDEyLCAweDdjLCAweDE1LCAweDIyLCAweDc1LCAweDMxLCAweDkyLCAweDEyLCAKKyAgICAweDdjLCAweDE1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAweDcwLCAKKyAgICAweDdlLCAweDM3LCAweDAxLCAweGUxLCAweDdlLCAweDI3LCAweDAxLCAweGMzLCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAweDM0LCAKKyAgICAweDA0LCAweDAwLCAweDM4LCAweDNjLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDQ2LCAweDdhLCAweDA1LCAweDQ2LCAweDdhLCAweDM3LCAweDAxLCAweGUxLCAKKyAgICAweDdlLCAweDM3LCAweDAxLCAweGRmLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDA1LCAweGUyLCAweDM4LCAweDQ0LCAweDdhLCAweDQ3LCAKKyAgICAweDAxLCAweGRmLCAweDdlLCAweDI0LCAweDAyLCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAweGMzLCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAweDdhLCAKKyAgICAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweGJlLCAweDUwLCAweDM4LCAweDc4LCAweDAzLCAweDAyLCAweDY2LCAweDE2LCAweDAyLCAweDY1LCAweGZiLCAKKyAgICAweDc1LCAweDMxLCAweDk5LCAweDEyLCAweDdjLCAweDE1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAKKyAgICAweDMwLCAweDNhLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDEyLCAweDIyLCAKKyAgICAweDgwLCAweDdkLCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDllLCAweDQ0LCAweDA1LCAweGUzLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAKKyAgICAweDAyLCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGMzLCAweDllLCAweDI0LCAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAKKyAgICAweDM1LCAweDEyLCAweDY1LCAweGZiLCAweDdlLCAweDM0LCAweDAxLCAweGUzLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGRmLCAKKyAgICAweDAyLCAweDY1LCAweGZiLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAweDM0LCAweDAxLCAweGUzLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAKKyAgICAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAweDU0LCAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDAyLCAweDdhLCAweDY5LCAKKyAgICAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAweDMxLCAweDkzLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDcxLCAweDMxLCAweDEyLCAKKyAgICAweDdjLCAweDE1LCAweGJkLCAweDA0LCAweDY4LCAweDI5LCAweDdhLCAweDA3LCAweDAxLCAweGRmLCAweDdlLCAweDQ3LCAweDAxLCAweGUxLCAweDJkLCAweDQzLCAKKyAgICAweDdhLCAweDQ3LCAweDAxLCAweGUxLCAweDJlLCAweDM1LCAweDQ2LCAweDdhLCAweDM1LCAweDQ2LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAKKyAgICAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAweDAxLCAweGUzLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDAxLCAweGUzLCAweDgwLCAweDJjLCAweDdlLCAKKyAgICAweDA0LCAweDAxLCAweGUzLCAweDgwLCAweGQxLCAweGQyLCAweDA0LCAweDdlLCAweDA3LCAweDAxLCAweGUxLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAKKyAgICAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGRmLCAweDdlLCAweDQ0LCAweDA1LCAweGUzLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAKKyAgICAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGNlLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAKKyAgICAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAKKyAgICAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAweDdhLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAKKyAgICAweDAyLCAweDRlLCAweDkzLCAweDc1LCAweDMxLCAweDk5LCAweDEyLCAweDdjLCAweDE1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAKKyAgICAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNhLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAKKyAgICAweGQyLCAweDEyLCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDRlLCAKKyAgICAweDkzLCAweGRhLCAweGI4LCAweDAyLCAweDRmLCAweGUwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDMxLCAweDkwLCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweGY1LCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweGE1LCAweGZjLCAweDVlLCAweGIwLCAweGYwLCAweGE1LCAweGZkLCAweDA5LCAKKyAgICAweGIxLCAweDAwLCAweDE4LCAweDRjLCAweDRiLCAweDVlLCAweGIwLCAweGYwLCAweGJjLCAweGI1LCAweDc4LCAweGYxLCAweDVlLCAweDQwLCAweDBmLCAweDRjLCAKKyAgICAweDU0LCAweDdjLCAweGI1LCAweDVlLCAweDUwLCAweDBiLCAweDY4LCAweDJhLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDEwLCAweDY4LCAweDA0LCAweGQyLCAKKyAgICAweDZhLCAweDgwLCAweDAyLCAweGMyLCAweDZhLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDYyLCAweDgwLCAweDAyLCAKKyAgICAweGMyLCAweDYyLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDVhLCAweDgwLCAweDAyLCAweGMyLCAweDVhLCAweDEyLCAKKyAgICAweDQzLCAweDBhLCAweDAyLCAweDYyLCAweDkzLCAweDc1LCAweDMxLCAweDkxLCAweDEyLCAweDdjLCAweDE1LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAKKyAgICAweGIxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAweDAyLCAweDYyLCAweDkzLCAKKyAgICAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYyLCAweDkzLCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAKKyAgICAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYyLCAweGI2LCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDRlLCAweGU1LCAweDc1LCAweDMxLCAweDk1LCAweDEyLCAweDdjLCAweDE1LCAweDIyLCAKKyAgICAweDc1LCAweDMxLCAweDk2LCAweDEyLCAweDdjLCAweDE1LCAweDIyLCAweDEwLCAweDBiLCAweDAxLCAweDIyLCAweDIwLCAweDJiLCAweDAzLCAweGQyLCAweDBiLCAKKyAgICAweDIyLCAweDc1LCAweDMxLCAweGEzLCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweDE0LCAweDgzLCAweDAwLCAweDgwLCAweDA2LCAweDIwLCAweDJiLCAweDAzLCAKKyAgICAweGQyLCAweDBiLCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAKKyAgICAweDEyLCAweDUzLCAweDM4LCAweDIwLCAweGU2LCAweDAzLCAweGQyLCAweDBiLCAweDIyLCAweDMwLCAweDMzLCAweDQ5LCAweGQyLCAweDczLCAweDdlLCAweDM3LCAKKyAgICAweDAxLCAweDk1LCAweDdlLCAweDI3LCAweDAxLCAweGI1LCAweDlkLCAweDMyLCAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDRlLCAweDdhLCAKKyAgICAweDA1LCAweDRlLCAweDdhLCAweDM3LCAweDAxLCAweDk1LCAweDdlLCAweDM3LCAweDAxLCAweDc1LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAKKyAgICAweDE5LCAweGUyLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAweDc1LCAweDc1LCAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDUxLCAKKyAgICAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDEyLCAweDY1LCAweDJiLCAweDEwLCAweDczLCAweGM0LCAweDIyLCAweGMyLCAweDczLCAweDJkLCAweDIzLCAweDY4LCAKKyAgICAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAweDAxLCAweDk1LCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAKKyAgICAweDI3LCAweDAxLCAweGI1LCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAweDAxLCAweGI1LCAweDdlLCAweDM3LCAweDAxLCAweDk1LCAweDlkLCAweDMyLCAweDdkLCAKKyAgICAweDAyLCAweDJlLCAweDA1LCAweDRlLCAweDdhLCAweDA1LCAweDRlLCAweDdhLCAweDM3LCAweDAxLCAweDk1LCAweDdlLCAweDM3LCAweDAxLCAweDc1LCAweDdkLCAKKyAgICAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDE5LCAweGUyLCAweDM4LCAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDc1LCAweDc1LCAweDMxLCAweDk0LCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDAyLCAweDY1LCAweDJiLCAweDc1LCAweDMxLCAweDk0LCAweDEyLCAKKyAgICAweDdjLCAweDE1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDllLCAweDQ0LCAweDE5LCAweGUzLCAweDlkLCAweDI0LCAweDEyLCAweDY1LCAKKyAgICAweDJiLCAweDdlLCAweDM0LCAweDE1LCAweGUzLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDc1LCAweDEyLCAweDY1LCAweDJiLCAKKyAgICAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDUwLCAweDg3LCAweDIyLCAweGQyLCAweDBiLCAweDdlLCAweDA0LCAweDE1LCAweGUzLCAweDdhLCAKKyAgICAweDA3LCAweDAxLCAweDc1LCAweDdhLCAweDA3LCAweDAxLCAweDg1LCAweDc1LCAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDc1LCAweDMxLCAweDAwLCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweDIyLCAweDc1LCAweDMxLCAweDkyLCAweDEyLCAweDdjLCAweDE1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAKKyAgICAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAweDcwLCAweDdlLCAweDM3LCAweDAxLCAweGUxLCAweDdlLCAweDI3LCAweDAxLCAweGM1LCAKKyAgICAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAweDM4LCAweDNjLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAKKyAgICAweDQ2LCAweDdhLCAweDA1LCAweDQ2LCAweDdhLCAweDM3LCAweDAxLCAweGUxLCAweDdlLCAweDM3LCAweDAxLCAweGRmLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAKKyAgICAweGJlLCAweDQ0LCAweDA1LCAweGUyLCAweDM4LCAweDQ0LCAweDdhLCAweDQ3LCAweDAxLCAweGRmLCAweDdlLCAweDI0LCAweDAzLCAweDAwLCAweDJlLCAweDI3LCAKKyAgICAweDAxLCAweGM1LCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweGJlLCAweDUwLCAweDM4LCAKKyAgICAweDc4LCAweDAzLCAweDAyLCAweDY2LCAweDE2LCAweDAyLCAweDY1LCAweGZiLCAweDc1LCAweDMxLCAweDk5LCAweDEyLCAweDdjLCAweDE1LCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNiLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAKKyAgICAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDEzLCAweDIyLCAweDgwLCAweDdkLCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAKKyAgICAweDllLCAweDQ0LCAweDA1LCAweGUzLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDAzLCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGM1LCAweDllLCAweDI0LCAKKyAgICAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDY1LCAweGZiLCAweDdlLCAweDM0LCAweDAxLCAweGUzLCAKKyAgICAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGRmLCAweDAyLCAweDY1LCAweGZiLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAweDM0LCAKKyAgICAweDAxLCAweGUzLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAweDU0LCAKKyAgICAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDAzLCAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAweDMxLCAKKyAgICAweDkzLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDcxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweGJkLCAweDA0LCAweDY4LCAweDI5LCAweDdhLCAweDA3LCAKKyAgICAweDAxLCAweGRmLCAweDdlLCAweDQ3LCAweDAxLCAweGUxLCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGUxLCAweDJlLCAweDM1LCAweDQ2LCAweDdhLCAKKyAgICAweDM1LCAweDQ2LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAweDAxLCAweGUzLCAweDgwLCAKKyAgICAweDJhLCAweDdlLCAweDA0LCAweDAxLCAweGUzLCAweDgwLCAweDJjLCAweDdlLCAweDA0LCAweDAxLCAweGUzLCAweDgwLCAweGQxLCAweGQyLCAweDA0LCAweDdlLCAKKyAgICAweDA3LCAweDAxLCAweGUxLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGRmLCAweDdlLCAKKyAgICAweDQ0LCAweDA1LCAweGUzLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAweGJkLCAKKyAgICAweDA0LCAweDY4LCAweGNlLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAweDA5LCAKKyAgICAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAweDdhLCAKKyAgICAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAweDUxLCAweGViLCAweDc1LCAweDMxLCAweDk5LCAweDEyLCAweDdjLCAKKyAgICAweDE1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNiLCAweDBhLCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDEzLCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAKKyAgICAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDUxLCAweGViLCAweGRhLCAweGI4LCAweDAyLCAweDUzLCAweDM4LCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDMxLCAweDkwLCAweDEyLCAweDdjLCAweDE1LCAweGY1LCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAKKyAgICAweGE1LCAweGZjLCAweDVlLCAweGIwLCAweGYwLCAweGE1LCAweGZkLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweDRjLCAweDRiLCAweDVlLCAweGIwLCAweGYwLCAKKyAgICAweGJjLCAweGI1LCAweDc4LCAweGYxLCAweDVlLCAweDQwLCAweDBmLCAweDRjLCAweDU0LCAweDdjLCAweGI1LCAweDVlLCAweDUwLCAweDBiLCAweDY4LCAweDJhLCAKKyAgICAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDEwLCAweDY4LCAweDA0LCAweGQyLCAweDZiLCAweDgwLCAweDAyLCAweGMyLCAweDZiLCAweGE1LCAweGZkLCAweDVlLCAKKyAgICAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDYzLCAweDgwLCAweDAyLCAweGMyLCAweDYzLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAKKyAgICAweDA0LCAweGQyLCAweDViLCAweDgwLCAweDAyLCAweGMyLCAweDViLCAweDEyLCAweDQzLCAweDJiLCAweDAyLCAweDYyLCAweDkzLCAweDc1LCAweDMxLCAweDkxLCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAweGIxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDIwLCAweGUwLCAweDA4LCAKKyAgICAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAweDAyLCAweDYyLCAweDkzLCAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAKKyAgICAweDEyLCAweDYyLCAweDkzLCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAKKyAgICAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYyLCAweGI2LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDUyLCAKKyAgICAweDNkLCAweDc1LCAweDMxLCAweDk1LCAweDEyLCAweDdjLCAweDE1LCAweDIyLCAweDc1LCAweDMxLCAweDk2LCAweDEyLCAweDdjLCAweDE1LCAweDIyLCAweDEwLCAKKyAgICAweDBjLCAweDAxLCAweDIyLCAweDIwLCAweDJjLCAweDAzLCAweGQyLCAweDBjLCAweDIyLCAweDc1LCAweDMxLCAweGE0LCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAKKyAgICAweDE0LCAweDg0LCAweDAwLCAweDgwLCAweDA2LCAweDIwLCAweDJjLCAweDAzLCAweGQyLCAweDBjLCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAKKyAgICAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAweDEyLCAweDU2LCAweDkwLCAweDIwLCAweGU2LCAweDAzLCAweGQyLCAweDBjLCAKKyAgICAweDIyLCAweDMwLCAweDM0LCAweDQ5LCAweGQyLCAweDc0LCAweDdlLCAweDM3LCAweDAxLCAweDk3LCAweDdlLCAweDI3LCAweDAxLCAweGI3LCAweDlkLCAweDMyLCAKKyAgICAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDUwLCAweDdhLCAweDA1LCAweDUwLCAweDdhLCAweDM3LCAweDAxLCAweDk3LCAweDdlLCAweDM3LCAKKyAgICAweDAxLCAweDc3LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDFkLCAweGUyLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAweDc3LCAKKyAgICAweDc1LCAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDEyLCAweDY1LCAweDJiLCAweDEwLCAKKyAgICAweDc0LCAweGM0LCAweDIyLCAweGMyLCAweDc0LCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAweDAxLCAKKyAgICAweDk3LCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweGI3LCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAweDAxLCAKKyAgICAweGI3LCAweDdlLCAweDM3LCAweDAxLCAweDk3LCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDUwLCAweDdhLCAweDA1LCAweDUwLCAweDdhLCAKKyAgICAweDM3LCAweDAxLCAweDk3LCAweDdlLCAweDM3LCAweDAxLCAweDc3LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDFkLCAweGUyLCAweDM4LCAKKyAgICAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDc3LCAweDc1LCAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAKKyAgICAweDE1LCAweDAyLCAweDY1LCAweDJiLCAweDc1LCAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAKKyAgICAweDllLCAweDQ0LCAweDFkLCAweGUzLCAweDlkLCAweDI0LCAweDEyLCAweDY1LCAweDJiLCAweDdlLCAweDM0LCAweDE5LCAweGUzLCAweDdkLCAweDI0LCAweDJkLCAKKyAgICAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDc3LCAweDEyLCAweDY1LCAweDJiLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDUzLCAweGRmLCAKKyAgICAweDIyLCAweGQyLCAweDBjLCAweDdlLCAweDA0LCAweDE5LCAweGUzLCAweDdhLCAweDA3LCAweDAxLCAweDc3LCAweDdhLCAweDA3LCAweDAxLCAweDg3LCAweDc1LCAKKyAgICAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDc1LCAweDMxLCAweDAwLCAweDEyLCAweDdjLCAweDE1LCAweDIyLCAweDc1LCAweDMxLCAweDkyLCAweDEyLCAKKyAgICAweDdjLCAweDE1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAweDcwLCAKKyAgICAweDdlLCAweDM3LCAweDAxLCAweGUxLCAweDdlLCAweDI3LCAweDAxLCAweGM3LCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAweDM0LCAKKyAgICAweDA0LCAweDAwLCAweDM4LCAweDNjLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDQ2LCAweDdhLCAweDA1LCAweDQ2LCAweDdhLCAweDM3LCAweDAxLCAweGUxLCAKKyAgICAweDdlLCAweDM3LCAweDAxLCAweGRmLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDA1LCAweGUyLCAweDM4LCAweDQ0LCAweDdhLCAweDQ3LCAKKyAgICAweDAxLCAweGRmLCAweDdlLCAweDI0LCAweDA0LCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAweGM3LCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAweDdhLCAKKyAgICAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweGJlLCAweDUwLCAweDM4LCAweDc4LCAweDAzLCAweDAyLCAweDY2LCAweDE2LCAweDAyLCAweDY1LCAweGZiLCAKKyAgICAweDc1LCAweDMxLCAweDk5LCAweDEyLCAweDdjLCAweDE1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAKKyAgICAweDMwLCAweDNjLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE0LCAweDIyLCAKKyAgICAweDgwLCAweDdkLCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDllLCAweDQ0LCAweDA1LCAweGUzLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAKKyAgICAweDA0LCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGM3LCAweDllLCAweDI0LCAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAKKyAgICAweDM1LCAweDEyLCAweDY1LCAweGZiLCAweDdlLCAweDM0LCAweDAxLCAweGUzLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGRmLCAKKyAgICAweDAyLCAweDY1LCAweGZiLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAweDM0LCAweDAxLCAweGUzLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAKKyAgICAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAweDU0LCAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDA0LCAweDdhLCAweDY5LCAKKyAgICAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAweDMxLCAweDkzLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDcxLCAweDMxLCAweDEyLCAKKyAgICAweDdjLCAweDE1LCAweGJkLCAweDA0LCAweDY4LCAweDI5LCAweDdhLCAweDA3LCAweDAxLCAweGRmLCAweDdlLCAweDQ3LCAweDAxLCAweGUxLCAweDJkLCAweDQzLCAKKyAgICAweDdhLCAweDQ3LCAweDAxLCAweGUxLCAweDJlLCAweDM1LCAweDQ2LCAweDdhLCAweDM1LCAweDQ2LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAKKyAgICAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAweDAxLCAweGUzLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDAxLCAweGUzLCAweDgwLCAweDJjLCAweDdlLCAKKyAgICAweDA0LCAweDAxLCAweGUzLCAweDgwLCAweGQxLCAweGQyLCAweDA0LCAweDdlLCAweDA3LCAweDAxLCAweGUxLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAKKyAgICAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGRmLCAweDdlLCAweDQ0LCAweDA1LCAweGUzLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAKKyAgICAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGNlLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAKKyAgICAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAKKyAgICAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAweDdhLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAKKyAgICAweDAyLCAweDU1LCAweDQzLCAweDc1LCAweDMxLCAweDk5LCAweDEyLCAweDdjLCAweDE1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAKKyAgICAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNjLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAKKyAgICAweGQyLCAweDE0LCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDU1LCAKKyAgICAweDQzLCAweGRhLCAweGI4LCAweDAyLCAweDU2LCAweDkwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDMxLCAweDkwLCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweGY1LCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweGE1LCAweGZjLCAweDVlLCAweGIwLCAweGYwLCAweGE1LCAweGZkLCAweDA5LCAKKyAgICAweGIxLCAweDAwLCAweDE4LCAweDRjLCAweDRiLCAweDVlLCAweGIwLCAweGYwLCAweGJjLCAweGI1LCAweDc4LCAweGYxLCAweDVlLCAweDQwLCAweDBmLCAweDRjLCAKKyAgICAweDU0LCAweDdjLCAweGI1LCAweDVlLCAweDUwLCAweDBiLCAweDY4LCAweDJhLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDEwLCAweDY4LCAweDA0LCAweGQyLCAKKyAgICAweDZjLCAweDgwLCAweDAyLCAweGMyLCAweDZjLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDY0LCAweDgwLCAweDAyLCAKKyAgICAweGMyLCAweDY0LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDVjLCAweDgwLCAweDAyLCAweGMyLCAweDVjLCAweDEyLCAKKyAgICAweDQzLCAweDRjLCAweDAyLCAweDYyLCAweDkzLCAweDc1LCAweDMxLCAweDkxLCAweDEyLCAweDdjLCAweDE1LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAKKyAgICAweGIxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAweDAyLCAweDYyLCAweDkzLCAKKyAgICAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYyLCAweDkzLCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAKKyAgICAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYyLCAweGI2LCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDU1LCAweDk1LCAweDc1LCAweDMxLCAweDk1LCAweDEyLCAweDdjLCAweDE1LCAweDIyLCAKKyAgICAweDc1LCAweDMxLCAweDk2LCAweDEyLCAweDdjLCAweDE1LCAweDIyLCAweDEwLCAweDBkLCAweDAxLCAweDIyLCAweDIwLCAweDJkLCAweDAzLCAweGQyLCAweDBkLCAKKyAgICAweDIyLCAweDc1LCAweDMxLCAweGE1LCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweDE0LCAweDg1LCAweDAwLCAweDgwLCAweDA2LCAweDIwLCAweDJkLCAweDAzLCAKKyAgICAweGQyLCAweDBkLCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAKKyAgICAweDEyLCAweDU5LCAweGU4LCAweDIwLCAweGU2LCAweDAzLCAweGQyLCAweDBkLCAweDIyLCAweDMwLCAweDM1LCAweDQ5LCAweGQyLCAweDc1LCAweDdlLCAweDM3LCAKKyAgICAweDAxLCAweDk5LCAweDdlLCAweDI3LCAweDAxLCAweGI5LCAweDlkLCAweDMyLCAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDUyLCAweDdhLCAKKyAgICAweDA1LCAweDUyLCAweDdhLCAweDM3LCAweDAxLCAweDk5LCAweDdlLCAweDM3LCAweDAxLCAweDc5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAKKyAgICAweDIxLCAweGUyLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAweDc5LCAweDc1LCAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDUxLCAKKyAgICAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDEyLCAweDY1LCAweDJiLCAweDEwLCAweDc1LCAweGM0LCAweDIyLCAweGMyLCAweDc1LCAweDJkLCAweDIzLCAweDY4LCAKKyAgICAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAweDAxLCAweDk5LCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAKKyAgICAweDI3LCAweDAxLCAweGI5LCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAweDAxLCAweGI5LCAweDdlLCAweDM3LCAweDAxLCAweDk5LCAweDlkLCAweDMyLCAweDdkLCAKKyAgICAweDAyLCAweDJlLCAweDA1LCAweDUyLCAweDdhLCAweDA1LCAweDUyLCAweDdhLCAweDM3LCAweDAxLCAweDk5LCAweDdlLCAweDM3LCAweDAxLCAweDc5LCAweDdkLCAKKyAgICAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDIxLCAweGUyLCAweDM4LCAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDc5LCAweDc1LCAweDMxLCAweDk0LCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDAyLCAweDY1LCAweDJiLCAweDc1LCAweDMxLCAweDk0LCAweDEyLCAKKyAgICAweDdjLCAweDE1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDllLCAweDQ0LCAweDIxLCAweGUzLCAweDlkLCAweDI0LCAweDEyLCAweDY1LCAKKyAgICAweDJiLCAweDdlLCAweDM0LCAweDFkLCAweGUzLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDc5LCAweDEyLCAweDY1LCAweDJiLCAKKyAgICAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDU3LCAweDM3LCAweDIyLCAweGQyLCAweDBkLCAweDdlLCAweDA0LCAweDFkLCAweGUzLCAweDdhLCAKKyAgICAweDA3LCAweDAxLCAweDc5LCAweDdhLCAweDA3LCAweDAxLCAweDg5LCAweDc1LCAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDc1LCAweDMxLCAweDAwLCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweDIyLCAweDc1LCAweDMxLCAweDkyLCAweDEyLCAweDdjLCAweDE1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAKKyAgICAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAweDcwLCAweDdlLCAweDM3LCAweDAxLCAweGUxLCAweDdlLCAweDI3LCAweDAxLCAweGM5LCAKKyAgICAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAweDM4LCAweDNjLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAKKyAgICAweDQ2LCAweDdhLCAweDA1LCAweDQ2LCAweDdhLCAweDM3LCAweDAxLCAweGUxLCAweDdlLCAweDM3LCAweDAxLCAweGRmLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAKKyAgICAweGJlLCAweDQ0LCAweDA1LCAweGUyLCAweDM4LCAweDQ0LCAweDdhLCAweDQ3LCAweDAxLCAweGRmLCAweDdlLCAweDI0LCAweDA1LCAweDAwLCAweDJlLCAweDI3LCAKKyAgICAweDAxLCAweGM5LCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweGJlLCAweDUwLCAweDM4LCAKKyAgICAweDc4LCAweDAzLCAweDAyLCAweDY2LCAweDE2LCAweDAyLCAweDY1LCAweGZiLCAweDc1LCAweDMxLCAweDk5LCAweDEyLCAweDdjLCAweDE1LCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNkLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAKKyAgICAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE1LCAweDIyLCAweDgwLCAweDdkLCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAKKyAgICAweDllLCAweDQ0LCAweDA1LCAweGUzLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDA1LCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGM5LCAweDllLCAweDI0LCAKKyAgICAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDY1LCAweGZiLCAweDdlLCAweDM0LCAweDAxLCAweGUzLCAKKyAgICAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGRmLCAweDAyLCAweDY1LCAweGZiLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAweDM0LCAKKyAgICAweDAxLCAweGUzLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAweDU0LCAKKyAgICAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDA1LCAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAweDMxLCAKKyAgICAweDkzLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDcxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweGJkLCAweDA0LCAweDY4LCAweDI5LCAweDdhLCAweDA3LCAKKyAgICAweDAxLCAweGRmLCAweDdlLCAweDQ3LCAweDAxLCAweGUxLCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGUxLCAweDJlLCAweDM1LCAweDQ2LCAweDdhLCAKKyAgICAweDM1LCAweDQ2LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAweDAxLCAweGUzLCAweDgwLCAKKyAgICAweDJhLCAweDdlLCAweDA0LCAweDAxLCAweGUzLCAweDgwLCAweDJjLCAweDdlLCAweDA0LCAweDAxLCAweGUzLCAweDgwLCAweGQxLCAweGQyLCAweDA0LCAweDdlLCAKKyAgICAweDA3LCAweDAxLCAweGUxLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGRmLCAweDdlLCAKKyAgICAweDQ0LCAweDA1LCAweGUzLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAweGJkLCAKKyAgICAweDA0LCAweDY4LCAweGNlLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAweDA5LCAKKyAgICAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAweDdhLCAKKyAgICAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAweDU4LCAweDliLCAweDc1LCAweDMxLCAweDk5LCAweDEyLCAweDdjLCAKKyAgICAweDE1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNkLCAweDBhLCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE1LCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAKKyAgICAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDU4LCAweDliLCAweGRhLCAweGI4LCAweDAyLCAweDU5LCAweGU4LCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDMxLCAweDkwLCAweDEyLCAweDdjLCAweDE1LCAweGY1LCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAKKyAgICAweGE1LCAweGZjLCAweDVlLCAweGIwLCAweGYwLCAweGE1LCAweGZkLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweDRjLCAweDRiLCAweDVlLCAweGIwLCAweGYwLCAKKyAgICAweGJjLCAweGI1LCAweDc4LCAweGYxLCAweDVlLCAweDQwLCAweDBmLCAweDRjLCAweDU0LCAweDdjLCAweGI1LCAweDVlLCAweDUwLCAweDBiLCAweDY4LCAweDJhLCAKKyAgICAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDEwLCAweDY4LCAweDA0LCAweGQyLCAweDZkLCAweDgwLCAweDAyLCAweGMyLCAweDZkLCAweGE1LCAweGZkLCAweDVlLCAKKyAgICAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDY1LCAweDgwLCAweDAyLCAweGMyLCAweDY1LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAKKyAgICAweDA0LCAweGQyLCAweDVkLCAweDgwLCAweDAyLCAweGMyLCAweDVkLCAweDEyLCAweDQzLCAweDZkLCAweDAyLCAweDYyLCAweDkzLCAweDc1LCAweDMxLCAweDkxLCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAweGIxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDIwLCAweGUwLCAweDA4LCAKKyAgICAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAweDAyLCAweDYyLCAweDkzLCAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAKKyAgICAweDEyLCAweDYyLCAweDkzLCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAKKyAgICAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYyLCAweGI2LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDU4LCAKKyAgICAweGVkLCAweDc1LCAweDMxLCAweDk1LCAweDEyLCAweDdjLCAweDE1LCAweDIyLCAweDc1LCAweDMxLCAweDk2LCAweDEyLCAweDdjLCAweDE1LCAweDIyLCAweDEwLCAKKyAgICAweDBlLCAweDAxLCAweDIyLCAweDIwLCAweDJlLCAweDAzLCAweGQyLCAweDBlLCAweDIyLCAweDc1LCAweDMxLCAweGE2LCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAKKyAgICAweDE0LCAweDg2LCAweDAwLCAweDgwLCAweDA2LCAweDIwLCAweDJlLCAweDAzLCAweGQyLCAweDBlLCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAKKyAgICAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAweDEyLCAweDVkLCAweDQwLCAweDIwLCAweGU2LCAweDAzLCAweGQyLCAweDBlLCAKKyAgICAweDIyLCAweDMwLCAweDM2LCAweDQ5LCAweGQyLCAweDc2LCAweDdlLCAweDM3LCAweDAxLCAweDliLCAweDdlLCAweDI3LCAweDAxLCAweGJiLCAweDlkLCAweDMyLCAKKyAgICAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDU0LCAweDdhLCAweDA1LCAweDU0LCAweDdhLCAweDM3LCAweDAxLCAweDliLCAweDdlLCAweDM3LCAKKyAgICAweDAxLCAweDdiLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI1LCAweGUyLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAweDdiLCAKKyAgICAweDc1LCAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDEyLCAweDY1LCAweDJiLCAweDEwLCAKKyAgICAweDc2LCAweGM0LCAweDIyLCAweGMyLCAweDc2LCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAweDAxLCAKKyAgICAweDliLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweGJiLCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAweDAxLCAKKyAgICAweGJiLCAweDdlLCAweDM3LCAweDAxLCAweDliLCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDU0LCAweDdhLCAweDA1LCAweDU0LCAweDdhLCAKKyAgICAweDM3LCAweDAxLCAweDliLCAweDdlLCAweDM3LCAweDAxLCAweDdiLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI1LCAweGUyLCAweDM4LCAKKyAgICAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDdiLCAweDc1LCAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAKKyAgICAweDE1LCAweDAyLCAweDY1LCAweDJiLCAweDc1LCAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAKKyAgICAweDllLCAweDQ0LCAweDI1LCAweGUzLCAweDlkLCAweDI0LCAweDEyLCAweDY1LCAweDJiLCAweDdlLCAweDM0LCAweDIxLCAweGUzLCAweDdkLCAweDI0LCAweDJkLCAKKyAgICAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDdiLCAweDEyLCAweDY1LCAweDJiLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDVhLCAweDhmLCAKKyAgICAweDIyLCAweGQyLCAweDBlLCAweDdlLCAweDA0LCAweDIxLCAweGUzLCAweDdhLCAweDA3LCAweDAxLCAweDdiLCAweDdhLCAweDA3LCAweDAxLCAweDhiLCAweDc1LCAKKyAgICAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDc1LCAweDMxLCAweDAwLCAweDEyLCAweDdjLCAweDE1LCAweDIyLCAweDc1LCAweDMxLCAweDkyLCAweDEyLCAKKyAgICAweDdjLCAweDE1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAweDcwLCAKKyAgICAweDdlLCAweDM3LCAweDAxLCAweGUxLCAweDdlLCAweDI3LCAweDAxLCAweGNiLCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAweDM0LCAKKyAgICAweDA0LCAweDAwLCAweDM4LCAweDNjLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDQ2LCAweDdhLCAweDA1LCAweDQ2LCAweDdhLCAweDM3LCAweDAxLCAweGUxLCAKKyAgICAweDdlLCAweDM3LCAweDAxLCAweGRmLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDA1LCAweGUyLCAweDM4LCAweDQ0LCAweDdhLCAweDQ3LCAKKyAgICAweDAxLCAweGRmLCAweDdlLCAweDI0LCAweDA2LCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAweGNiLCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAweDdhLCAKKyAgICAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweGJlLCAweDUwLCAweDM4LCAweDc4LCAweDAzLCAweDAyLCAweDY2LCAweDE2LCAweDAyLCAweDY1LCAweGZiLCAKKyAgICAweDc1LCAweDMxLCAweDk5LCAweDEyLCAweDdjLCAweDE1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAKKyAgICAweDMwLCAweDNlLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE2LCAweDIyLCAKKyAgICAweDgwLCAweDdkLCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDllLCAweDQ0LCAweDA1LCAweGUzLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAKKyAgICAweDA2LCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGNiLCAweDllLCAweDI0LCAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAKKyAgICAweDM1LCAweDEyLCAweDY1LCAweGZiLCAweDdlLCAweDM0LCAweDAxLCAweGUzLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGRmLCAKKyAgICAweDAyLCAweDY1LCAweGZiLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAweDM0LCAweDAxLCAweGUzLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAKKyAgICAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAweDU0LCAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDA2LCAweDdhLCAweDY5LCAKKyAgICAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAweDMxLCAweDkzLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDcxLCAweDMxLCAweDEyLCAKKyAgICAweDdjLCAweDE1LCAweGJkLCAweDA0LCAweDY4LCAweDI5LCAweDdhLCAweDA3LCAweDAxLCAweGRmLCAweDdlLCAweDQ3LCAweDAxLCAweGUxLCAweDJkLCAweDQzLCAKKyAgICAweDdhLCAweDQ3LCAweDAxLCAweGUxLCAweDJlLCAweDM1LCAweDQ2LCAweDdhLCAweDM1LCAweDQ2LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAKKyAgICAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAweDAxLCAweGUzLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDAxLCAweGUzLCAweDgwLCAweDJjLCAweDdlLCAKKyAgICAweDA0LCAweDAxLCAweGUzLCAweDgwLCAweGQxLCAweGQyLCAweDA0LCAweDdlLCAweDA3LCAweDAxLCAweGUxLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAKKyAgICAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGRmLCAweDdlLCAweDQ0LCAweDA1LCAweGUzLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAKKyAgICAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGNlLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAKKyAgICAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAKKyAgICAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAweDdhLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAKKyAgICAweDAyLCAweDViLCAweGYzLCAweDc1LCAweDMxLCAweDk5LCAweDEyLCAweDdjLCAweDE1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAKKyAgICAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNlLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAKKyAgICAweGQyLCAweDE2LCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDViLCAKKyAgICAweGYzLCAweGRhLCAweGI4LCAweDAyLCAweDVkLCAweDQwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDMxLCAweDkwLCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweGY1LCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweGE1LCAweGZjLCAweDVlLCAweGIwLCAweGYwLCAweGE1LCAweGZkLCAweDA5LCAKKyAgICAweGIxLCAweDAwLCAweDE4LCAweDRjLCAweDRiLCAweDVlLCAweGIwLCAweGYwLCAweGJjLCAweGI1LCAweDc4LCAweGYxLCAweDVlLCAweDQwLCAweDBmLCAweDRjLCAKKyAgICAweDU0LCAweDdjLCAweGI1LCAweDVlLCAweDUwLCAweDBiLCAweDY4LCAweDJhLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDEwLCAweDY4LCAweDA0LCAweGQyLCAKKyAgICAweDZlLCAweDgwLCAweDAyLCAweGMyLCAweDZlLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDY2LCAweDgwLCAweDAyLCAKKyAgICAweGMyLCAweDY2LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDVlLCAweDgwLCAweDAyLCAweGMyLCAweDVlLCAweDEyLCAKKyAgICAweDQzLCAweDhlLCAweDAyLCAweDYyLCAweDkzLCAweDc1LCAweDMxLCAweDkxLCAweDEyLCAweDdjLCAweDE1LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAKKyAgICAweGIxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAweDAyLCAweDYyLCAweDkzLCAKKyAgICAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYyLCAweDkzLCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAKKyAgICAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYyLCAweGI2LCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDVjLCAweDQ1LCAweDc1LCAweDMxLCAweDk1LCAweDEyLCAweDdjLCAweDE1LCAweDIyLCAKKyAgICAweDc1LCAweDMxLCAweDk2LCAweDEyLCAweDdjLCAweDE1LCAweDIyLCAweDEwLCAweDBmLCAweDAxLCAweDIyLCAweDIwLCAweDJmLCAweDAzLCAweGQyLCAweDBmLCAKKyAgICAweDIyLCAweDc1LCAweDMxLCAweGE3LCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweDE0LCAweDg3LCAweDAwLCAweDgwLCAweDA2LCAweDIwLCAweDJmLCAweDAzLCAKKyAgICAweGQyLCAweDBmLCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAKKyAgICAweDEyLCAweDYwLCAweDk4LCAweDIwLCAweGU2LCAweDAzLCAweGQyLCAweDBmLCAweDIyLCAweDMwLCAweDM3LCAweDQ5LCAweGQyLCAweDc3LCAweDdlLCAweDM3LCAKKyAgICAweDAxLCAweDlkLCAweDdlLCAweDI3LCAweDAxLCAweGJkLCAweDlkLCAweDMyLCAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDU2LCAweDdhLCAKKyAgICAweDA1LCAweDU2LCAweDdhLCAweDM3LCAweDAxLCAweDlkLCAweDdlLCAweDM3LCAweDAxLCAweDdkLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAKKyAgICAweDI5LCAweGUyLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAweDdkLCAweDc1LCAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDUxLCAKKyAgICAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDEyLCAweDY1LCAweDJiLCAweDEwLCAweDc3LCAweGM0LCAweDIyLCAweGMyLCAweDc3LCAweDJkLCAweDIzLCAweDY4LCAKKyAgICAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAweDAxLCAweDlkLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAKKyAgICAweDI3LCAweDAxLCAweGJkLCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAweDAxLCAweGJkLCAweDdlLCAweDM3LCAweDAxLCAweDlkLCAweDlkLCAweDMyLCAweDdkLCAKKyAgICAweDAyLCAweDJlLCAweDA1LCAweDU2LCAweDdhLCAweDA1LCAweDU2LCAweDdhLCAweDM3LCAweDAxLCAweDlkLCAweDdlLCAweDM3LCAweDAxLCAweDdkLCAweDdkLCAKKyAgICAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI5LCAweGUyLCAweDM4LCAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDdkLCAweDc1LCAweDMxLCAweDk0LCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDAyLCAweDY1LCAweDJiLCAweDc1LCAweDMxLCAweDk0LCAweDEyLCAKKyAgICAweDdjLCAweDE1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDllLCAweDQ0LCAweDI5LCAweGUzLCAweDlkLCAweDI0LCAweDEyLCAweDY1LCAKKyAgICAweDJiLCAweDdlLCAweDM0LCAweDI1LCAweGUzLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDdkLCAweDEyLCAweDY1LCAweDJiLCAKKyAgICAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDVkLCAweGU3LCAweDIyLCAweGQyLCAweDBmLCAweDdlLCAweDA0LCAweDI1LCAweGUzLCAweDdhLCAKKyAgICAweDA3LCAweDAxLCAweDdkLCAweDdhLCAweDA3LCAweDAxLCAweDhkLCAweDc1LCAweDMxLCAweDk0LCAweDEyLCAweDdjLCAweDE1LCAweDc1LCAweDMxLCAweDAwLCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweDIyLCAweDc1LCAweDMxLCAweDkyLCAweDEyLCAweDdjLCAweDE1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAKKyAgICAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAweDcwLCAweDdlLCAweDM3LCAweDAxLCAweGUxLCAweDdlLCAweDI3LCAweDAxLCAweGNkLCAKKyAgICAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAweDM4LCAweDNjLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAKKyAgICAweDQ2LCAweDdhLCAweDA1LCAweDQ2LCAweDdhLCAweDM3LCAweDAxLCAweGUxLCAweDdlLCAweDM3LCAweDAxLCAweGRmLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAKKyAgICAweGJlLCAweDQ0LCAweDA1LCAweGUyLCAweDM4LCAweDQ0LCAweDdhLCAweDQ3LCAweDAxLCAweGRmLCAweDdlLCAweDI0LCAweDA3LCAweDAwLCAweDJlLCAweDI3LCAKKyAgICAweDAxLCAweGNkLCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweGJlLCAweDUwLCAweDM4LCAKKyAgICAweDc4LCAweDAzLCAweDAyLCAweDY2LCAweDE2LCAweDAyLCAweDY1LCAweGZiLCAweDc1LCAweDMxLCAweDk5LCAweDEyLCAweDdjLCAweDE1LCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNmLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAKKyAgICAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE3LCAweDIyLCAweDgwLCAweDdkLCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAKKyAgICAweDllLCAweDQ0LCAweDA1LCAweGUzLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDA3LCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGNkLCAweDllLCAweDI0LCAKKyAgICAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDY1LCAweGZiLCAweDdlLCAweDM0LCAweDAxLCAweGUzLCAKKyAgICAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGRmLCAweDAyLCAweDY1LCAweGZiLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAweDM0LCAKKyAgICAweDAxLCAweGUzLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAweDU0LCAKKyAgICAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDA3LCAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAweDMxLCAKKyAgICAweDkzLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDcxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweGJkLCAweDA0LCAweDY4LCAweDI5LCAweDdhLCAweDA3LCAKKyAgICAweDAxLCAweGRmLCAweDdlLCAweDQ3LCAweDAxLCAweGUxLCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGUxLCAweDJlLCAweDM1LCAweDQ2LCAweDdhLCAKKyAgICAweDM1LCAweDQ2LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAweDAxLCAweGUzLCAweDgwLCAKKyAgICAweDJhLCAweDdlLCAweDA0LCAweDAxLCAweGUzLCAweDgwLCAweDJjLCAweDdlLCAweDA0LCAweDAxLCAweGUzLCAweDgwLCAweGQxLCAweGQyLCAweDA0LCAweDdlLCAKKyAgICAweDA3LCAweDAxLCAweGUxLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGRmLCAweDdlLCAKKyAgICAweDQ0LCAweDA1LCAweGUzLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAweGJkLCAKKyAgICAweDA0LCAweDY4LCAweGNlLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAweDA5LCAKKyAgICAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAweDdhLCAKKyAgICAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAweDVmLCAweDRiLCAweDc1LCAweDMxLCAweDk5LCAweDEyLCAweDdjLCAKKyAgICAweDE1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNmLCAweDBhLCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE3LCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAKKyAgICAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDVmLCAweDRiLCAweGRhLCAweGI4LCAweDAyLCAweDYwLCAweDk4LCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDMxLCAweDkwLCAweDEyLCAweDdjLCAweDE1LCAweGY1LCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAKKyAgICAweGE1LCAweGZjLCAweDVlLCAweGIwLCAweGYwLCAweGE1LCAweGZkLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweDRjLCAweDRiLCAweDVlLCAweGIwLCAweGYwLCAKKyAgICAweGJjLCAweGI1LCAweDc4LCAweGYxLCAweDVlLCAweDQwLCAweDBmLCAweDRjLCAweDU0LCAweDdjLCAweGI1LCAweDVlLCAweDUwLCAweDBiLCAweDY4LCAweDJhLCAKKyAgICAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDEwLCAweDY4LCAweDA0LCAweGQyLCAweDZmLCAweDgwLCAweDAyLCAweGMyLCAweDZmLCAweGE1LCAweGZkLCAweDVlLCAKKyAgICAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDY3LCAweDgwLCAweDAyLCAweGMyLCAweDY3LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAKKyAgICAweDA0LCAweGQyLCAweDVmLCAweDgwLCAweDAyLCAweGMyLCAweDVmLCAweDEyLCAweDQzLCAweGFmLCAweDAyLCAweDYyLCAweDkzLCAweDc1LCAweDMxLCAweDkxLCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAweGIxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDIwLCAweGUwLCAweDA4LCAKKyAgICAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAweDAyLCAweDYyLCAweDkzLCAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAKKyAgICAweDEyLCAweDYyLCAweDkzLCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAKKyAgICAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYyLCAweGI2LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDVmLCAKKyAgICAweDlkLCAweDc1LCAweDMxLCAweDk1LCAweDEyLCAweDdjLCAweDE1LCAweDIyLCAweDc1LCAweDMxLCAweDk2LCAweDEyLCAweDdjLCAweDE1LCAweDIyLCAweDdjLCAKKyAgICAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDEwLCAKKyAgICAweDY4LCAweDA0LCAweGQyLCAweDY4LCAweDgwLCAweDAyLCAweGMyLCAweDY4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAKKyAgICAweDYwLCAweDgwLCAweDAyLCAweGMyLCAweDYwLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDU4LCAweDgwLCAweDAyLCAKKyAgICAweGMyLCAweDU4LCAweDAyLCAweDYyLCAweDdmLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAweDAwLCAKKyAgICAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDEwLCAweDY4LCAweDA0LCAweGQyLCAweDY5LCAweDgwLCAweDAyLCAweGMyLCAweDY5LCAweGE1LCAweGZkLCAKKyAgICAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDYxLCAweDgwLCAweDAyLCAweGMyLCAweDYxLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAKKyAgICAweDY4LCAweDA0LCAweGQyLCAweDU5LCAweDgwLCAweDAyLCAweGMyLCAweDU5LCAweDAyLCAweDYyLCAweDdmLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAKKyAgICAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDEwLCAweDY4LCAweDA0LCAweGQyLCAweDZhLCAKKyAgICAweDgwLCAweDAyLCAweGMyLCAweDZhLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDYyLCAweDgwLCAweDAyLCAweGMyLCAKKyAgICAweDYyLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDVhLCAweDgwLCAweDAyLCAweGMyLCAweDVhLCAweDAyLCAweDYyLCAKKyAgICAweDdmLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAKKyAgICAweDUwLCAweDEwLCAweDY4LCAweDA0LCAweGQyLCAweDZiLCAweDgwLCAweDAyLCAweGMyLCAweDZiLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAKKyAgICAweDA0LCAweGQyLCAweDYzLCAweDgwLCAweDAyLCAweGMyLCAweDYzLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDViLCAKKyAgICAweDgwLCAweDAyLCAweGMyLCAweDViLCAweDAyLCAweDYyLCAweDdmLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAKKyAgICAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDEwLCAweDY4LCAweDA0LCAweGQyLCAweDZjLCAweDgwLCAweDAyLCAweGMyLCAweDZjLCAKKyAgICAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDY0LCAweDgwLCAweDAyLCAweGMyLCAweDY0LCAweGE1LCAweGZkLCAweDVlLCAKKyAgICAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDVjLCAweDgwLCAweDAyLCAweGMyLCAweDVjLCAweDAyLCAweDYyLCAweDdmLCAweDdjLCAweDAyLCAweDdlLCAKKyAgICAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDEwLCAweDY4LCAweDA0LCAKKyAgICAweGQyLCAweDZkLCAweDgwLCAweDAyLCAweGMyLCAweDZkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDY1LCAweDgwLCAKKyAgICAweDAyLCAweGMyLCAweDY1LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDVkLCAweDgwLCAweDAyLCAweGMyLCAweDVkLCAKKyAgICAweDAyLCAweDYyLCAweDdmLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweGE1LCAKKyAgICAweGZkLCAweDVlLCAweDUwLCAweDEwLCAweDY4LCAweDA0LCAweGQyLCAweDZlLCAweDgwLCAweDAyLCAweGMyLCAweDZlLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAKKyAgICAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDY2LCAweDgwLCAweDAyLCAweGMyLCAweDY2LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAKKyAgICAweGQyLCAweDVlLCAweDgwLCAweDAyLCAweGMyLCAweDVlLCAweDAyLCAweDYyLCAweDdmLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAKKyAgICAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDEwLCAweDY4LCAweDA0LCAweGQyLCAweDZmLCAweDgwLCAweDAyLCAKKyAgICAweGMyLCAweDZmLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDY3LCAweDgwLCAweDAyLCAweGMyLCAweDY3LCAweGE1LCAKKyAgICAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDVmLCAweDgwLCAweDAyLCAweGMyLCAweDVmLCAweDAyLCAweDYyLCAweDdmLCAweDU0LCAKKyAgICAweGYwLCAweGM0LCAweGE1LCAweGZmLCAweGM0LCAweGE1LCAweDRmLCAweDc1LCAweDMxLCAweDkwLCAweDEyLCAweDdjLCAweDE1LCAweGY1LCAweDMxLCAweDEyLCAKKyAgICAweDdjLCAweDE1LCAweDIyLCAweGNhLCAweDE5LCAweDVlLCAweDIwLCAweDA3LCAweDRjLCAweGEyLCAweDdlLCAweDc0LCAweDI5LCAweGUzLCAweGNhLCAweDc5LCAKKyAgICAweDdhLCAweDc5LCAweGEwLCAweDBiLCAweDc0LCAweDdhLCAweDc5LCAweGIwLCAweDBiLCAweDc0LCAweGRhLCAweDc5LCAweDdlLCAweDMwLCAweDAyLCAweDdlLCAKKyAgICAweDY0LCAweDAwLCAweDAyLCAweDAyLCAweDYyLCAweGRlLCAweGNhLCAweDE5LCAweDVlLCAweDIwLCAweDA3LCAweDRjLCAweGEyLCAweDdlLCAweDc0LCAweDI5LCAKKyAgICAweGUzLCAweGNhLCAweDc5LCAweDdhLCAweDc5LCAweGEwLCAweDBiLCAweDc0LCAweDdhLCAweDc5LCAweGIwLCAweDBiLCAweDc0LCAweDdhLCAweDc5LCAweDYwLCAKKyAgICAweDBiLCAweDc0LCAweGRhLCAweDc5LCAweDdlLCAweDMwLCAweDAzLCAweDdlLCAweDY0LCAweDAwLCAweDAzLCAweDAyLCAweDYyLCAweGRlLCAweGQyLCAweDA0LCAKKyAgICAweDdlLCAweDI3LCAweDAxLCAweGUxLCAweDJkLCAweDI2LCAweGJlLCAweDI0LCAweDA0LCAweDAwLCAweDM4LCAweDJlLCAweDdlLCAweDA3LCAweDAxLCAweGRmLCAKKyAgICAweDdlLCAweDQ0LCAweDA1LCAweGUzLCAweDdlLCAweDc5LCAweGEwLCAweDdhLCAweDA5LCAweGEwLCAweDBiLCAweDA0LCAweDBiLCAweDc0LCAweGJkLCAweDA0LCAKKyAgICAweDY4LCAweDIzLCAweGE1LCAweGRiLCAweGVmLCAweDdhLCAweDI3LCAweDAxLCAweGUxLCAweDdlLCAweDI1LCAweDQ2LCAweDJkLCAweDI2LCAweDdhLCAweDI1LCAKKyAgICAweDQ2LCAweDdhLCAweDA3LCAweDAxLCAweGRmLCAweGRhLCAweDE5LCAweGMyLCAweGQ3LCAweDIyLCAweDc1LCAweDMxLCAweDlhLCAweDEyLCAweDdjLCAweDE1LCAKKyAgICAweGRhLCAweDE5LCAweGQyLCAweGQ3LCAweDIyLCAweDdlLCAweDA0LCAweDAxLCAweGUzLCAweDgwLCAweGQ3LCAweDQ4LCAweGI2LCAweDQ2LCAweDI1LCAweDQ3LCAKKyAgICAweDFjLCAweDQ5LCAweDE1LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ4LCAweDFiLCAweDQ0LCAweGM2LCAweDQ5LCAweDU5LCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ5LCAweDYwLCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDRjLCAweDBlLCAweDQ5LCAweDdkLCAweDRhLCAKKyAgICAweDc0LCAweDRjLCAweDZkLCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDRiLCAweDczLCAweDQ0LCAweGM2LCAweDRjLCAweGIxLCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDRjLCAweGI4LCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDRmLCAweDY2LCAweDRjLCAweGQ1LCAweDRkLCAKKyAgICAweGNjLCAweDRmLCAweGM1LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDRlLCAweGNiLCAweDQ0LCAweGM2LCAweDUwLCAweDA5LCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDUwLCAweDEwLCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDUyLCAweGJlLCAweDUwLCAweDJkLCAweDUxLCAKKyAgICAweDI0LCAweDUzLCAweDFkLCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDUyLCAweDIzLCAweDQ0LCAweGM2LCAweDUzLCAweDYxLCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDUzLCAweDY4LCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDU2LCAweDE2LCAweDUzLCAweDg1LCAweDU0LCAKKyAgICAweDdjLCAweDU2LCAweDc1LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDU1LCAweDdiLCAweDQ0LCAweGM2LCAweDU2LCAweGI5LCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDU2LCAweGMwLCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDU5LCAweDZlLCAweDU2LCAweGRkLCAweDU3LCAKKyAgICAweGQ0LCAweDU5LCAweGNkLCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDU4LCAweGQzLCAweDQ0LCAweGM2LCAweDVhLCAweDExLCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDVhLCAweDE4LCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDVjLCAweGM2LCAweDVhLCAweDM1LCAweDViLCAKKyAgICAweDJjLCAweDVkLCAweDI1LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDVjLCAweDJiLCAweDQ0LCAweGM2LCAweDVkLCAweDY5LCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDVkLCAweDcwLCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDYwLCAweDFlLCAweDVkLCAweDhkLCAweDVlLCAKKyAgICAweDg0LCAweDYwLCAweDdkLCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDVmLCAweDgzLCAweDQ0LCAweGM2LCAweDYwLCAweGMxLCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDYwLCAweGM4LCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAKKyAgICAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweDQ0LCAweGM2LCAweGNhLCAweDI5LCAweDFlLCAweDUwLCAweDQwLCAKKyAgICAweDBkLCAweDdlLCAweDU0LCAweDBiLCAweDEwLCAweDljLCAweGI1LCAweGE0LCAweDJlLCAweDU0LCAweDY1LCAweDQ4LCAweDg5LCAweDU0LCAweDdlLCAweDM5LCAKKyAgICAweDAwLCAweDdhLCAweDE5LCAweDAwLCAweDBiLCAweDM0LCAweDgwLCAweGU5LCAweDBiLCAweDM4LCAweDAwLCAweDdhLCAweDE5LCAweDAwLCAweDdhLCAweDE5LCAKKyAgICAweDEwLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDAwLCAweDdhLCAweDE5LCAweDAwLCAweDdhLCAweDE5LCAweDEwLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAKKyAgICAweDAwLCAweDdhLCAweDE5LCAweDAwLCAweDdhLCAweDE5LCAweDEwLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDAwLCAweDdhLCAweDE5LCAweDAwLCAweDdhLCAKKyAgICAweDE5LCAweDEwLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDAwLCAweDdhLCAweDE5LCAweDAwLCAweDdhLCAweDE5LCAweDEwLCAweDBiLCAweDM1LCAweDBiLCAKKyAgICAweDM4LCAweDAwLCAweDdhLCAweDE5LCAweDAwLCAweDdhLCAweDE5LCAweDEwLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDAwLCAweDdhLCAweDE5LCAweDAwLCAKKyAgICAweDdhLCAweDE5LCAweDEwLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDAwLCAweDdhLCAweDE5LCAweDAwLCAweDdhLCAweDE5LCAweDEwLCAweDBiLCAweDM1LCAKKyAgICAweDBiLCAweDM4LCAweDAwLCAweDdhLCAweDE5LCAweDAwLCAweDdhLCAweDE5LCAweDEwLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDAwLCAweDdhLCAweDE5LCAKKyAgICAweDAwLCAweDdhLCAweDE5LCAweDEwLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDAwLCAweDdhLCAweDE5LCAweDAwLCAweDdhLCAweDE5LCAweDEwLCAweDBiLCAKKyAgICAweDM1LCAweDBiLCAweDM4LCAweDAwLCAweDdhLCAweDE5LCAweDAwLCAweDdhLCAweDE5LCAweDEwLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDAwLCAweDdhLCAKKyAgICAweDE5LCAweDAwLCAweDdhLCAweDE5LCAweDEwLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDAwLCAweDdhLCAweDE5LCAweDAwLCAweDdhLCAweDE5LCAweDEwLCAKKyAgICAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDAwLCAweDdhLCAweDE5LCAweDAwLCAweDdhLCAweDE5LCAweDEwLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDAwLCAKKyAgICAweDdhLCAweDE5LCAweDAwLCAweDdhLCAweDE5LCAweDEwLCAweDBiLCAweDM1LCAweGRhLCAweDI5LCAweDIyLCAweDFlLCAweDUwLCAweDQwLCAweDBkLCAweDdlLCAKKyAgICAweDU0LCAweDBiLCAweDFjLCAweDljLCAweGI1LCAweGE0LCAweDJlLCAweDU0LCAweDY2LCAweDE2LCAweDg5LCAweDU0LCAweDdlLCAweDE5LCAweDAwLCAweDdhLCAKKyAgICAweDM5LCAweDAwLCAweDBiLCAweDM0LCAweDgwLCAweGU5LCAweDdlLCAweDE5LCAweDAwLCAweDdlLCAweDE5LCAweDEwLCAweDFiLCAweDM4LCAweDAwLCAweDBiLCAKKyAgICAweDM1LCAweDdlLCAweDE5LCAweDAwLCAweDdlLCAweDE5LCAweDEwLCAweDFiLCAweDM4LCAweDAwLCAweDBiLCAweDM1LCAweDdlLCAweDE5LCAweDAwLCAweDdlLCAKKyAgICAweDE5LCAweDEwLCAweDFiLCAweDM4LCAweDAwLCAweDBiLCAweDM1LCAweDdlLCAweDE5LCAweDAwLCAweDdlLCAweDE5LCAweDEwLCAweDFiLCAweDM4LCAweDAwLCAKKyAgICAweDBiLCAweDM1LCAweDdlLCAweDE5LCAweDAwLCAweDdlLCAweDE5LCAweDEwLCAweDFiLCAweDM4LCAweDAwLCAweDBiLCAweDM1LCAweDdlLCAweDE5LCAweDAwLCAKKyAgICAweDdlLCAweDE5LCAweDEwLCAweDFiLCAweDM4LCAweDAwLCAweDBiLCAweDM1LCAweDdlLCAweDE5LCAweDAwLCAweDdlLCAweDE5LCAweDEwLCAweDFiLCAweDM4LCAKKyAgICAweDAwLCAweDBiLCAweDM1LCAweDdlLCAweDE5LCAweDAwLCAweDdlLCAweDE5LCAweDEwLCAweDFiLCAweDM4LCAweDAwLCAweDBiLCAweDM1LCAweDdlLCAweDE5LCAKKyAgICAweDAwLCAweDdlLCAweDE5LCAweDEwLCAweDFiLCAweDM4LCAweDAwLCAweDBiLCAweDM1LCAweDdlLCAweDE5LCAweDAwLCAweDdlLCAweDE5LCAweDEwLCAweDFiLCAKKyAgICAweDM4LCAweDAwLCAweDBiLCAweDM1LCAweDdlLCAweDE5LCAweDAwLCAweDdlLCAweDE5LCAweDEwLCAweDFiLCAweDM4LCAweDAwLCAweDBiLCAweDM1LCAweDdlLCAKKyAgICAweDE5LCAweDAwLCAweDdlLCAweDE5LCAweDEwLCAweDFiLCAweDM4LCAweDAwLCAweDBiLCAweDM1LCAweDdlLCAweDE5LCAweDAwLCAweDdlLCAweDE5LCAweDEwLCAKKyAgICAweDFiLCAweDM4LCAweDAwLCAweDBiLCAweDM1LCAweDdlLCAweDE5LCAweDAwLCAweDdlLCAweDE5LCAweDEwLCAweDFiLCAweDM4LCAweDAwLCAweDBiLCAweDM1LCAKKyAgICAweDdlLCAweDE5LCAweDAwLCAweDdlLCAweDE5LCAweDEwLCAweDFiLCAweDM4LCAweDAwLCAweDBiLCAweDM1LCAweDdlLCAweDE5LCAweDAwLCAweDdlLCAweDE5LCAKKyAgICAweDEwLCAweDFiLCAweDM4LCAweDAwLCAweDBiLCAweDM1LCAweDdlLCAweDE5LCAweDAwLCAweDdlLCAweDE5LCAweDEwLCAweDFiLCAweDM4LCAweDAwLCAweDBiLCAKKyAgICAweDM1LCAweDdlLCAweDE5LCAweDAwLCAweDdlLCAweDE5LCAweDEwLCAweDFiLCAweDM4LCAweDAwLCAweDBiLCAweDM1LCAweDdlLCAweDE5LCAweDAwLCAweDdlLCAKKyAgICAweDE5LCAweDEwLCAweDFiLCAweDM4LCAweDAwLCAweDBiLCAweDM1LCAweDdlLCAweDE5LCAweDAwLCAweDdlLCAweDE5LCAweDEwLCAweDFiLCAweDM4LCAweDAwLCAKKyAgICAweDBiLCAweDM1LCAweDdlLCAweDE5LCAweDAwLCAweDdlLCAweDE5LCAweDEwLCAweDFiLCAweDM4LCAweDAwLCAweDBiLCAweDM1LCAweDdlLCAweDE5LCAweDAwLCAKKyAgICAweDdlLCAweDE5LCAweDEwLCAweDFiLCAweDM4LCAweDAwLCAweDBiLCAweDM1LCAweDdlLCAweDE5LCAweDAwLCAweDdlLCAweDE5LCAweDEwLCAweDFiLCAweDM4LCAKKyAgICAweDAwLCAweDBiLCAweDM1LCAweDdlLCAweDE5LCAweDAwLCAweDdlLCAweDE5LCAweDEwLCAweDFiLCAweDM4LCAweDAwLCAweDBiLCAweDM1LCAweDdlLCAweDE5LCAKKyAgICAweDAwLCAweDdlLCAweDE5LCAweDEwLCAweDFiLCAweDM4LCAweDAwLCAweDBiLCAweDM1LCAweDdlLCAweDE5LCAweDAwLCAweDdlLCAweDE5LCAweDEwLCAweDFiLCAKKyAgICAweDM4LCAweDAwLCAweDBiLCAweDM1LCAweDdlLCAweDE5LCAweDAwLCAweDdlLCAweDE5LCAweDEwLCAweDFiLCAweDM4LCAweDAwLCAweDBiLCAweDM1LCAweDdlLCAKKyAgICAweDE5LCAweDAwLCAweDdlLCAweDE5LCAweDEwLCAweDFiLCAweDM4LCAweDAwLCAweDBiLCAweDM1LCAweDIyLCAweDY3LCAweDk2LCAweDY5LCAweDYzLCAweDY5LCAKKyAgICAweDdiLCAweDZhLCAweDQ5LCAweDZhLCAweGU0LCAweDZiLCAweDhlLCAweDZiLCAweGE5LCAweDZjLCAweDNiLCAweDZiLCAweGM0LCAweDZjLCAweDA1LCAweDY5LCAKKyAgICAweDk2LCAweDY5LCAweGFhLCAweDdjLCAweGIzLCAweGJlLCAweGIwLCAweDBiLCAweDI4LCAweDE0LCAweDc1LCAweDMxLCAweDA5LCAweDEyLCAweDdjLCAweDE1LCAKKyAgICAweDc1LCAweDZkLCAweDEwLCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDQzLCAweGUxLCAweGMwLCAweGQwLCAweGYxLCAweDIyLCAweGMwLCAweGE4LCAKKyAgICAweGMyLCAweGFmLCAweDIzLCAweDZjLCAweGFhLCAweDJlLCAweDU0LCAweDY3LCAweDRiLCAweDBiLCAweDU4LCAweDUwLCAweDg5LCAweDU0LCAweDAxLCAweDAyLCAKKyAgICAweDA0LCAweDA4LCAweDEwLCAweDIwLCAweDQwLCAweDgwLCAweDc1LCAweDMxLCAweGIwLCAweDEyLCAweDdjLCAweDE1LCAweDBhLCAweDMyLCAweDA5LCAweGIzLCAKKyAgICAweDY3LCAweDhlLCAweDQyLCAweDMyLCAweDE5LCAweDQzLCAweDAwLCAweDM2LCAweGQwLCAweGE4LCAweDIyLCAweDdjLCAweGIyLCAweDIzLCAweDBhLCAweDNiLCAKKyAgICAweDQ5LCAweDMzLCAweDY3LCAweGNiLCAweDBhLCAweDIyLCAweDA5LCAweDMyLCAweDAwLCAweDM2LCAweDA5LCAweGIyLCAweDY3LCAweDhlLCAweGE1LCAweGJiLCAKKyAgICAweDAwLCAweDA1LCAweGY0LCAweDUyLCAweDMzLCAweDgwLCAweDAyLCAweDQyLCAweDMzLCAweDg5LCAweDM0LCAweDY3LCAweGRiLCAweDY4LCAweDA5LCAweDY4LCAKKyAgICAweDM3LCAweDY4LCAweDY1LCAweDY4LCAweDkzLCAweDY4LCAweGMxLCAweDY4LCAweGVmLCAweDY5LCAweDFkLCAweDEyLCAweDQxLCAweGI1LCAweGQyLCAweDI4LCAKKyAgICAweGQyLCAweDA4LCAweGMyLCAweDQwLCAweGMyLCAweDQ4LCAweGMyLCAweDM4LCAweGMyLCAweDMwLCAweDZkLCAweDAwLCAweDdhLCAweDAzLCAweDAxLCAweGNmLCAKKyAgICAweDdlLCAweDA0LCAweDAwLCAweDIwLCAweDdhLCAweDA3LCAweDAxLCAweGFmLCAweDdlLCAweDA0LCAweDAwLCAweDM4LCAweDdhLCAweDA3LCAweDAxLCAweGJmLCAKKyAgICAweDEyLCAweDQxLCAweDE2LCAweDEyLCAweDYwLCAweGNmLCAweDAyLCAweDY5LCAweDRiLCAweDEyLCAweDQxLCAweGQ0LCAweGQyLCAweDI5LCAweGQyLCAweDA5LCAKKyAgICAweGMyLCAweDQxLCAweGMyLCAweDQ5LCAweGMyLCAweDM5LCAweGMyLCAweDMxLCAweDZkLCAweDAwLCAweDdhLCAweDAzLCAweDAxLCAweGQwLCAweDdlLCAweDA0LCAKKyAgICAweDAwLCAweDIwLCAweDdhLCAweDA3LCAweDAxLCAweGIxLCAweDdlLCAweDA0LCAweDAwLCAweDM4LCAweDdhLCAweDA3LCAweDAxLCAweGMxLCAweDEyLCAweDQxLCAKKyAgICAweDE2LCAweDEyLCAweDYxLCAweDA1LCAweDAyLCAweDY5LCAweDRiLCAweDEyLCAweDQxLCAweGYzLCAweGQyLCAweDJhLCAweGQyLCAweDBhLCAweGMyLCAweDQyLCAKKyAgICAweGMyLCAweDRhLCAweGMyLCAweDNhLCAweGMyLCAweDMyLCAweDZkLCAweDAwLCAweDdhLCAweDAzLCAweDAxLCAweGQxLCAweDdlLCAweDA0LCAweDAwLCAweDIwLCAKKyAgICAweDdhLCAweDA3LCAweDAxLCAweGIzLCAweDdlLCAweDA0LCAweDAwLCAweDM4LCAweDdhLCAweDA3LCAweDAxLCAweGMzLCAweDEyLCAweDQxLCAweDE2LCAweDEyLCAKKyAgICAweDYxLCAweDNiLCAweDAyLCAweDY5LCAweDRiLCAweDEyLCAweDQyLCAweDEyLCAweGQyLCAweDJiLCAweGQyLCAweDBiLCAweGMyLCAweDQzLCAweGMyLCAweDRiLCAKKyAgICAweGMyLCAweDNiLCAweGMyLCAweDMzLCAweDZkLCAweDAwLCAweDdhLCAweDAzLCAweDAxLCAweGQyLCAweDdlLCAweDA0LCAweDAwLCAweDIwLCAweDdhLCAweDA3LCAKKyAgICAweDAxLCAweGI1LCAweDdlLCAweDA0LCAweDAwLCAweDM4LCAweDdhLCAweDA3LCAweDAxLCAweGM1LCAweDEyLCAweDQxLCAweDE2LCAweDEyLCAweDYxLCAweDcxLCAKKyAgICAweDAyLCAweDY5LCAweDRiLCAweDEyLCAweDQyLCAweDMxLCAweGQyLCAweDJjLCAweGQyLCAweDBjLCAweGMyLCAweDQ0LCAweGMyLCAweDRjLCAweGMyLCAweDNjLCAKKyAgICAweGMyLCAweDM0LCAweDZkLCAweDAwLCAweDdhLCAweDAzLCAweDAxLCAweGQzLCAweDdlLCAweDA0LCAweDAwLCAweDIwLCAweDdhLCAweDA3LCAweDAxLCAweGI3LCAKKyAgICAweDdlLCAweDA0LCAweDAwLCAweDM4LCAweDdhLCAweDA3LCAweDAxLCAweGM3LCAweDEyLCAweDQxLCAweDE2LCAweDEyLCAweDYxLCAweGE3LCAweDAyLCAweDY5LCAKKyAgICAweDRiLCAweDEyLCAweDQyLCAweDUwLCAweGQyLCAweDJkLCAweGQyLCAweDBkLCAweGMyLCAweDQ1LCAweGMyLCAweDRkLCAweGMyLCAweDNkLCAweGMyLCAweDM1LCAKKyAgICAweDZkLCAweDAwLCAweDdhLCAweDAzLCAweDAxLCAweGQ0LCAweDdlLCAweDA0LCAweDAwLCAweDIwLCAweDdhLCAweDA3LCAweDAxLCAweGI5LCAweDdlLCAweDA0LCAKKyAgICAweDAwLCAweDM4LCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAweDEyLCAweDQxLCAweDE2LCAweDEyLCAweDYxLCAweGRkLCAweDAyLCAweDY5LCAweDRiLCAweDEyLCAKKyAgICAweDQyLCAweDZmLCAweGQyLCAweDJlLCAweGQyLCAweDBlLCAweGMyLCAweDQ2LCAweGMyLCAweDRlLCAweGMyLCAweDNlLCAweGMyLCAweDM2LCAweDZkLCAweDAwLCAKKyAgICAweDdhLCAweDAzLCAweDAxLCAweGQ1LCAweDdlLCAweDA0LCAweDAwLCAweDIwLCAweDdhLCAweDA3LCAweDAxLCAweGJiLCAweDdlLCAweDA0LCAweDAwLCAweDM4LCAKKyAgICAweDdhLCAweDA3LCAweDAxLCAweGNiLCAweDEyLCAweDQxLCAweDE2LCAweDEyLCAweDYyLCAweDEzLCAweDAyLCAweDY5LCAweDRiLCAweDEyLCAweDQyLCAweDhlLCAKKyAgICAweGQyLCAweDJmLCAweGQyLCAweDBmLCAweGMyLCAweDQ3LCAweGMyLCAweDRmLCAweGMyLCAweDNmLCAweGMyLCAweDM3LCAweDZkLCAweDAwLCAweDdhLCAweDAzLCAKKyAgICAweDAxLCAweGQ2LCAweDdlLCAweDA0LCAweDAwLCAweDIwLCAweDdhLCAweDA3LCAweDAxLCAweGJkLCAweDdlLCAweDA0LCAweDAwLCAweDM4LCAweDdhLCAweDA3LCAKKyAgICAweDAxLCAweGNkLCAweDEyLCAweDQxLCAweDE2LCAweDEyLCAweDYyLCAweDQ5LCAweDAyLCAweDY5LCAweDRiLCAweDdlLCAweGEwLCAweGQwLCAweDdlLCAweDYwLCAKKyAgICAweDBmLCAweDEyLCAweDYyLCAweGI2LCAweDQwLCAweDBjLCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAKKyAgICAweGMyLCAweGQ3LCAweDIyLCAweDc1LCAweDMxLCAweGIxLCAweDEyLCAweDdjLCAweDE1LCAweDBhLCAweDUyLCAweDIzLCAweDZkLCAweDAwLCAweDU5LCAweDA1LCAKKyAgICAweDAwLCAweDQ4LCAweDEyLCAweDQxLCAweDdlLCAweDEyLCAweDQxLCAweDlhLCAweGQwLCAweGE4LCAweDIyLCAweDc1LCAweDMxLCAweGIyLCAweDEyLCAweDdjLCAKKyAgICAweDE1LCAweDBhLCAweDIyLCAweDA5LCAweGIyLCAweDY3LCAweDhlLCAweDQyLCAweDIzLCAweDdlLCAweGIwLCAweDljLCAweDE5LCAweGIyLCAweDAxLCAweGNmLCAKKyAgICAweDEyLCAweDMxLCAweDg1LCAweGQwLCAweGE4LCAweDIyLCAweDc1LCAweDMxLCAweGI3LCAweDEyLCAweDdjLCAweDE1LCAweDBhLCAweDIyLCAweDA5LCAweGIyLCAKKyAgICAweDY3LCAweDhlLCAweDQyLCAweDI0LCAweDEyLCAweDM1LCAweDNkLCAweGQwLCAweGE4LCAweDIyLCAweDc1LCAweDMxLCAweGI5LCAweDEyLCAweDdjLCAweDE1LCAKKyAgICAweDBhLCAweDMyLCAweDA5LCAweGIzLCAweDY3LCAweDhlLCAweDQyLCAweDM0LCAweDE5LCAweDQzLCAweDAwLCAweDNlLCAweDEyLCAweDY5LCAweGMyLCAweGQwLCAKKyAgICAweGE4LCAweDIyLCAweDdjLCAweGIyLCAweDIzLCAweDBhLCAweDBiLCAweDdjLCAweGI0LCAweDIwLCAweGUwLCAweDA0LCAweDZkLCAweDMzLCAweDgwLCAweDA0LCAKKyAgICAweDQ5LCAweDMwLCAweDAxLCAweDhmLCAweDdlLCAweGEwLCAweGQ4LCAweGE1LCAweGVmLCAweGNhLCAweDBiLCAweGNhLCAweDI5LCAweDEyLCAweDYyLCAweGI2LCAKKyAgICAweGRhLCAweDI5LCAweGRhLCAweDBiLCAweDQwLCAweDYyLCAweDc1LCAweDMxLCAweGJhLCAweDEyLCAweDdjLCAweDE1LCAweDdjLCAweGI0LCAweDMwLCAweGUwLCAKKyAgICAweDFlLCAweDZkLCAweDMzLCAweDU5LCAweDMwLCAweDAxLCAweDhmLCAweDdlLCAweDM0LCAweDA5LCAweGUzLCAweDBhLCAweDgyLCAweDdlLCAweDk0LCAweDA0LCAKKyAgICAweDAwLCAweGFkLCAweDg5LCAweDJkLCAweDM5LCAweDU5LCAweDMwLCAweDAxLCAweDZmLCAweDU5LCAweDMwLCAweDAxLCAweDdmLCAweDdjLCAweGI0LCAweDMwLCAKKyAgICAweGUxLCAweDEwLCAweDdlLCAweDA0LCAweDgwLCAweDAwLCAweDRjLCAweDAyLCAweDA5LCAweGIwLCAweDAwLCAweDA4LCAweDQ0LCAweDA0LCAweDE5LCAweGIwLCAKKyAgICAweDAwLCAweDA4LCAweDBhLCAweDAyLCAweDA5LCAweGIwLCAweDY3LCAweDhlLCAweDQyLCAweDIxLCAweGY0LCAweDUyLCAweDM0LCAweDdjLCAweGIyLCAweDIzLCAKKyAgICAweDBhLCAweDBiLCAweGNhLCAweDE5LCAweDQ5LCAweDAwLCAweDMwLCAweGQ1LCAweDk5LCAweDA0LCAweGRhLCAweDE5LCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAKKyAgICAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweGMyLCAweGQ3LCAweDIyLCAweDdlLCAweDA0LCAweDgwLCAweDAwLCAweDRjLCAweDAyLCAweDA5LCAKKyAgICAweDMwLCAweDAwLCAweDBjLCAweDc0LCAweGJmLCAweDE5LCAweGIwLCAweDAwLCAweDBjLCAweDA5LCAweGIwLCAweDAwLCAweDA4LCAweDE5LCAweDMwLCAweDAwLCAKKyAgICAweDBjLCAweDdjLCAweDc0LCAweDVlLCAweDcwLCAweDAxLCAweDY4LCAweDEyLCAweDQ0LCAweDQwLCAweGNhLCAweGI4LCAweDA5LCAweGIwLCAweDAwLCAweDEwLCAKKyAgICAweDQ0LCAweDAyLCAweDE5LCAweGIwLCAweDAwLCAweDEwLCAweGRhLCAweGI4LCAweDgwLCAweDAyLCAweDU0LCAweGJmLCAweDdjLCAweDc0LCAweDVlLCAweDcwLCAKKyAgICAweDA4LCAweDY4LCAweDA0LCAweDQ0LCAweDA4LCAweDgwLCAweDAyLCAweDU0LCAweGY3LCAweDA5LCAweDMwLCAweDAwLCAweDBjLCAweGNhLCAweGI4LCAweDc0LCAKKyAgICAweGJmLCAweDE5LCAweGIwLCAweDAwLCAweDBjLCAweGRhLCAweGI4LCAweDE5LCAweGIwLCAweDAwLCAweDA4LCAweDE5LCAweDMwLCAweDAwLCAweDBjLCAweDBhLCAKKyAgICAweDYyLCAweDA5LCAweGI2LCAweDY3LCAweDhlLCAweDNlLCAweDIwLCAweDBhLCAweDYyLCAweDdjLCAweDc0LCAweDVlLCAweDcwLCAweDAyLCAweDY4LCAweDIwLCAKKyAgICAweDQyLCAweDI3LCAweGNhLCAweGI4LCAweDc0LCAweDYxLCAweDE5LCAweGIwLCAweDAwLCAweDA4LCAweDdlLCAweDQ0LCAweDAwLCAweDEwLCAweDU5LCAweDQ2LCAKKyAgICAweDAxLCAweGJmLCAweDA5LCAweGIwLCAweDAwLCAweDEwLCAweDQ0LCAweDAxLCAweDE5LCAweGIwLCAweDAwLCAweDEwLCAweGRhLCAweGI4LCAweDgwLCAweDExLCAKKyAgICAweGY0LCAweDUyLCAweDI3LCAweDc0LCAweGExLCAweDE5LCAweGIwLCAweDAwLCAweDA4LCAweDdlLCAweDQ0LCAweDAwLCAweDM4LCAweDU5LCAweDQ2LCAweDAxLCAKKyAgICAweGJmLCAweGQwLCAweGE4LCAweDIyLCAweDdjLCAweDc0LCAweDdlLCAweDA0LCAweDgwLCAweDAwLCAweDRjLCAweDAyLCAweDBhLCAweDYyLCAweDA5LCAweGI2LCAKKyAgICAweDY3LCAweDhlLCAweGE1LCAweGZkLCAweGY0LCAweGE1LCAweGZlLCAweGNhLCAweDI4LCAweDNlLCAweDIwLCAweDBhLCAweDYyLCAweGE1LCAweGVlLCAweDUyLCAKKyAgICAweDI2LCAweDdlLCAweDQ0LCAweDAwLCAweDIwLCAweDU5LCAweDQ2LCAweDAxLCAweGFmLCAweGRhLCAweDI4LCAweDA5LCAweDMwLCAweDAwLCAweDBjLCAweDc0LCAKKyAgICAweGJmLCAweDE5LCAweGIwLCAweDAwLCAweDBjLCAweDA5LCAweGIwLCAweDAwLCAweDA4LCAweDdjLCAweDc0LCAweDVlLCAweDcwLCAweDAxLCAweDY4LCAweDBjLCAKKyAgICAweDQ0LCAweDgwLCAweGNhLCAweGI4LCAweGE1LCAweGVkLCAweDQyLCAweDJhLCAweGRhLCAweGI4LCAweDgwLCAweDBhLCAweDU0LCAweDdmLCAweGNhLCAweGI4LCAKKyAgICAweGE1LCAweGVlLCAweDUyLCAweDJhLCAweGRhLCAweGI4LCAweDdjLCAweDc0LCAweDVlLCAweDcwLCAweDA4LCAweDY4LCAweDA0LCAweDQ0LCAweDAyLCAweDgwLCAKKyAgICAweDAyLCAweDU0LCAweGZkLCAweDE5LCAweGIwLCAweDAwLCAweDA4LCAweDE5LCAweDMwLCAweDAwLCAweDBjLCAweDdjLCAweDc0LCAweDVlLCAweDcwLCAweDAyLCAKKyAgICAweDY4LCAweDEwLCAweGE1LCAweGVkLCAweDQyLCAweDI4LCAweDQyLCAweDI2LCAweDdlLCAweDQ0LCAweDAwLCAweDA4LCAweDU5LCAweDQ2LCAweDAxLCAweGFmLCAKKyAgICAweDgwLCAweDA0LCAweGE1LCAweGVlLCAweDUyLCAweDI4LCAweDdjLCAweDc0LCAweDVlLCAweDcwLCAweDA0LCAweDY4LCAweDEwLCAweGE1LCAweGVkLCAweDQyLCAKKyAgICAweDI5LCAweDQyLCAweDI2LCAweDdlLCAweDQ0LCAweDAwLCAweDA4LCAweDU5LCAweDQ2LCAweDAxLCAweGFmLCAweDgwLCAweDBiLCAweGE1LCAweGVlLCAweDUyLCAKKyAgICAweDI5LCAweDdjLCAweDc0LCAweDVlLCAweDcwLCAweDAyLCAweDc4LCAweDAwLCAweDEyLCAweDQyLCAweGFkLCAweGQwLCAweGE4LCAweDIyLCAweDdlLCAweDA0LCAKKyAgICAweDgwLCAweDAwLCAweDRjLCAweDAyLCAweDA5LCAweDMwLCAweDAwLCAweDBjLCAweDc0LCAweGJmLCAweDE5LCAweGIwLCAweDAwLCAweDBjLCAweDE5LCAweDQwLCAKKyAgICAweDAwLCAweDEwLCAweDE5LCAweDMwLCAweDAwLCAweDBjLCAweGQwLCAweGE4LCAweDIyLCAweDdlLCAweDA0LCAweDgwLCAweDAwLCAweDRjLCAweDAyLCAweDA5LCAKKyAgICAweDMwLCAweDAwLCAweDBjLCAweDc0LCAweGJmLCAweDE5LCAweGIwLCAweDAwLCAweDBjLCAweDE5LCAweDQwLCAweDAwLCAweDE4LCAweDE5LCAweDMwLCAweDAwLCAKKyAgICAweDBjLCAweGQwLCAweGE4LCAweDIyLCAweDc1LCAweDMxLCAweGI1LCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweDA0LCAweDgwLCAweDAwLCAweDRjLCAweDAyLCAKKyAgICAweDA5LCAweGIwLCAweDAwLCAweDBjLCAweDQ0LCAweDQwLCAweDE5LCAweGIwLCAweDAwLCAweDBjLCAweGU1LCAweDZlLCAweGI0LCAweDA3LCAweDIzLCAweDA5LCAKKyAgICAweGIwLCAweDAwLCAweDEwLCAweDRlLCAweGIwLCAweDAyLCAweDE5LCAweGIwLCAweDAwLCAweDEwLCAweDA5LCAweDMwLCAweDAwLCAweDBjLCAweDc0LCAweGJmLCAKKyAgICAweDE5LCAweGIwLCAweDAwLCAweDBjLCAweDA5LCAweGIwLCAweDAwLCAweDA0LCAweDU0LCAweGY3LCAweDE5LCAweGIwLCAweDAwLCAweDA0LCAweDE5LCAweDMwLCAKKyAgICAweDAwLCAweDBjLCAweGQwLCAweGE4LCAweDIyLCAweDc1LCAweDMxLCAweGI2LCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweDA0LCAweDgwLCAweDAwLCAweDRjLCAKKyAgICAweDAyLCAweGU1LCAweDZlLCAweGI0LCAweDA3LCAweDE4LCAweDA5LCAweDMwLCAweDAwLCAweDBjLCAweDc0LCAweGJmLCAweDE5LCAweGIwLCAweDAwLCAweDBjLCAKKyAgICAweDA5LCAweGIwLCAweDAwLCAweDA0LCAweDQ0LCAweDA4LCAweDE5LCAweGIwLCAweDAwLCAweDA0LCAweDE5LCAweDMwLCAweDAwLCAweDBjLCAweDA5LCAweGIwLCAKKyAgICAweDAwLCAweDBjLCAweDU0LCAweGJmLCAweDE5LCAweGIwLCAweDAwLCAweDBjLCAweGQwLCAweGE4LCAweDIyLCAweDc1LCAweDMxLCAweGI0LCAweDEyLCAweDdjLCAKKyAgICAweDE1LCAweDdhLCAweDIxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDQxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDBhLCAweDMyLCAweDA5LCAKKyAgICAweGIzLCAweDY3LCAweDhlLCAweDQyLCAweDM1LCAweDEyLCAweDZjLCAweDViLCAweGQwLCAweGE4LCAweDIyLCAweDdlLCAweGIwLCAweDAxLCAweDdlLCAweGEwLCAKKyAgICAweGM4LCAweDdjLCAweDY0LCAweDEyLCAweDYyLCAweGI2LCAweDQwLCAweDEzLCAweDBhLCAweDMyLCAweDA5LCAweGIzLCAweDY3LCAweDhlLCAweGY0LCAweDUyLCAKKyAgICAweDM1LCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAweDZjLCAweDhjLCAweDZjLCAweGQzLCAKKyAgICAweDZkLCAweDFhLCAweDZkLCAweDYxLCAweDZkLCAweGE4LCAweDZkLCAweGVmLCAweDZlLCAweDM2LCAweDZlLCAweDdkLCAweDc1LCAweDMxLCAweDU1LCAweDEyLCAKKyAgICAweDdjLCAweDE1LCAweDc1LCAweDMxLCAweDAwLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDYxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDcxLCAKKyAgICAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweDE3LCAweDAxLCAweDdmLCAweDdlLCAweDI3LCAweDAxLCAweDhmLCAweDJkLCAweDIzLCAweDdlLCAweDA5LCAKKyAgICAweGIwLCAweDBiLCAweDA0LCAweDdhLCAweDE5LCAweGIwLCAweDBiLCAweDE0LCAweGJlLCAweDE0LCAweDBkLCAweGUyLCAweDM4LCAweDBmLCAweDFiLCAweDM0LCAKKyAgICAweDc4LCAweGVjLCAweDdhLCAweDE3LCAweDAxLCAweDdmLCAweDdhLCAweDI3LCAweDAxLCAweDhmLCAweDAyLCAweDQ2LCAweDBmLCAweDdlLCAweDE0LCAweDA5LCAKKyAgICAweGUzLCAweDgwLCAweGViLCAweDc1LCAweDMxLCAweDU1LCAweDEyLCAweDdjLCAweDE1LCAweDc1LCAweDMxLCAweDAxLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAKKyAgICAweDYxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDcxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweDE3LCAweDAxLCAweDgxLCAweDdlLCAKKyAgICAweDI3LCAweDAxLCAweDkxLCAweDJkLCAweDIzLCAweDdlLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDdhLCAweDE5LCAweGIwLCAweDBiLCAweDE0LCAweGJlLCAKKyAgICAweDE0LCAweDExLCAweGUyLCAweDM4LCAweDBmLCAweDFiLCAweDM0LCAweDc4LCAweGVjLCAweDdhLCAweDE3LCAweDAxLCAweDgxLCAweDdhLCAweDI3LCAweDAxLCAKKyAgICAweDkxLCAweDAyLCAweDQ5LCAweDY3LCAweDdlLCAweDE0LCAweDBkLCAweGUzLCAweDgwLCAweGViLCAweDc1LCAweDMxLCAweDU1LCAweDEyLCAweDdjLCAweDE1LCAKKyAgICAweDc1LCAweDMxLCAweDAyLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDYxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDcxLCAweDMxLCAweDEyLCAKKyAgICAweDdjLCAweDE1LCAweDdlLCAweDE3LCAweDAxLCAweDgzLCAweDdlLCAweDI3LCAweDAxLCAweDkzLCAweDJkLCAweDIzLCAweDdlLCAweDA5LCAweGIwLCAweDBiLCAKKyAgICAweDA0LCAweDdhLCAweDE5LCAweGIwLCAweDBiLCAweDE0LCAweGJlLCAweDE0LCAweDE1LCAweGUyLCAweDM4LCAweDBmLCAweDFiLCAweDM0LCAweDc4LCAweGVjLCAKKyAgICAweDdhLCAweDE3LCAweDAxLCAweDgzLCAweDdhLCAweDI3LCAweDAxLCAweDkzLCAweDAyLCAweDRjLCAweGJmLCAweDdlLCAweDE0LCAweDExLCAweGUzLCAweDgwLCAKKyAgICAweGViLCAweDc1LCAweDMxLCAweDU1LCAweDEyLCAweDdjLCAweDE1LCAweDc1LCAweDMxLCAweDAzLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDYxLCAweDMxLCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDcxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweDE3LCAweDAxLCAweDg1LCAweDdlLCAweDI3LCAweDAxLCAKKyAgICAweDk1LCAweDJkLCAweDIzLCAweDdlLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDdhLCAweDE5LCAweGIwLCAweDBiLCAweDE0LCAweGJlLCAweDE0LCAweDE5LCAKKyAgICAweGUyLCAweDM4LCAweDBmLCAweDFiLCAweDM0LCAweDc4LCAweGVjLCAweDdhLCAweDE3LCAweDAxLCAweDg1LCAweDdhLCAweDI3LCAweDAxLCAweDk1LCAweDAyLCAKKyAgICAweDUwLCAweDE3LCAweDdlLCAweDE0LCAweDE1LCAweGUzLCAweDgwLCAweGViLCAweDc1LCAweDMxLCAweDU1LCAweDEyLCAweDdjLCAweDE1LCAweDc1LCAweDMxLCAKKyAgICAweDA0LCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDYxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDcxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAKKyAgICAweDdlLCAweDE3LCAweDAxLCAweDg3LCAweDdlLCAweDI3LCAweDAxLCAweDk3LCAweDJkLCAweDIzLCAweDdlLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDdhLCAKKyAgICAweDE5LCAweGIwLCAweDBiLCAweDE0LCAweGJlLCAweDE0LCAweDFkLCAweGUyLCAweDM4LCAweDBmLCAweDFiLCAweDM0LCAweDc4LCAweGVjLCAweDdhLCAweDE3LCAKKyAgICAweDAxLCAweDg3LCAweDdhLCAweDI3LCAweDAxLCAweDk3LCAweDAyLCAweDUzLCAweDZmLCAweDdlLCAweDE0LCAweDE5LCAweGUzLCAweDgwLCAweGViLCAweDc1LCAKKyAgICAweDMxLCAweDU1LCAweDEyLCAweDdjLCAweDE1LCAweDc1LCAweDMxLCAweDA1LCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDYxLCAweDMxLCAweDEyLCAweDdjLCAKKyAgICAweDE1LCAweDdhLCAweDcxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweDE3LCAweDAxLCAweDg5LCAweDdlLCAweDI3LCAweDAxLCAweDk5LCAweDJkLCAKKyAgICAweDIzLCAweDdlLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDdhLCAweDE5LCAweGIwLCAweDBiLCAweDE0LCAweGJlLCAweDE0LCAweDIxLCAweGUyLCAweDM4LCAKKyAgICAweDBmLCAweDFiLCAweDM0LCAweDc4LCAweGVjLCAweDdhLCAweDE3LCAweDAxLCAweDg5LCAweDdhLCAweDI3LCAweDAxLCAweDk5LCAweDAyLCAweDU2LCAweGM3LCAKKyAgICAweDdlLCAweDE0LCAweDFkLCAweGUzLCAweDgwLCAweGViLCAweDc1LCAweDMxLCAweDU1LCAweDEyLCAweDdjLCAweDE1LCAweDc1LCAweDMxLCAweDA2LCAweDEyLCAKKyAgICAweDdjLCAweDE1LCAweDdhLCAweDYxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDcxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweDE3LCAKKyAgICAweDAxLCAweDhiLCAweDdlLCAweDI3LCAweDAxLCAweDliLCAweDJkLCAweDIzLCAweDdlLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDdhLCAweDE5LCAweGIwLCAKKyAgICAweDBiLCAweDE0LCAweGJlLCAweDE0LCAweDI1LCAweGUyLCAweDM4LCAweDBmLCAweDFiLCAweDM0LCAweDc4LCAweGVjLCAweDdhLCAweDE3LCAweDAxLCAweDhiLCAKKyAgICAweDdhLCAweDI3LCAweDAxLCAweDliLCAweDAyLCAweDVhLCAweDFmLCAweDdlLCAweDE0LCAweDIxLCAweGUzLCAweDgwLCAweGViLCAweDc1LCAweDMxLCAweDU1LCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweDc1LCAweDMxLCAweDA3LCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDYxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAKKyAgICAweDcxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweDE3LCAweDAxLCAweDhkLCAweDdlLCAweDI3LCAweDAxLCAweDlkLCAweDJkLCAweDIzLCAweDdlLCAKKyAgICAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDdhLCAweDE5LCAweGIwLCAweDBiLCAweDE0LCAweGJlLCAweDE0LCAweDI5LCAweGUyLCAweDM4LCAweDBmLCAweDFiLCAKKyAgICAweDM0LCAweDc4LCAweGVjLCAweDdhLCAweDE3LCAweDAxLCAweDhkLCAweDdhLCAweDI3LCAweDAxLCAweDlkLCAweDAyLCAweDVkLCAweDc3LCAweDdlLCAweDE0LCAKKyAgICAweDI1LCAweGUzLCAweDgwLCAweGViLCAweGNhLCAweGI4LCAweGMwLCAweGYxLCAweDc1LCAweDMxLCAweDAyLCAweDEyLCAweDdjLCAweDE1LCAweGU1LCAweGMwLCAKKyAgICAweDU0LCAweDAzLCAweDY4LCAweDA1LCAweDEyLCAweDc1LCAweGNkLCAweDgwLCAweGY1LCAweDMwLCAweGMyLCAweDA4LCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAKKyAgICAweDZmLCAweGQ5LCAweDgwLCAweDE0LCAweDMwLCAweGMzLCAweDA4LCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZlLCAweGZkLCAweDgwLCAweDA5LCAweDMwLCAKKyAgICAweGM0LCAweDA2LCAweDc1LCAweGYxLCAweDAyLCAweDEyLCAweDcwLCAweGU5LCAweGQwLCAweGYxLCAweGRhLCAweGI4LCAweDMyLCAweDc1LCAweDMxLCAweDEwLCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweGNhLCAweDBiLCAweGNhLCAweDM5LCAweGNhLCAweDU5LCAweGMyLCAweGMzLCAweGE5LCAweDIxLCAweGUyLCAweDVjLCAweGU1LCAKKyAgICAweGU1LCAweDU0LCAweGMwLCAweDY4LCAweDRmLCAweGU1LCAweGU2LCAweDZjLCAweGFhLCAweDdlLCAweDM3LCAweDAxLCAweGRiLCAweDJkLCAweDM1LCAweGJlLCAKKyAgICAweDM0LCAweDA0LCAweDAwLCAweDM4LCAweDRhLCAweDdhLCAweDM3LCAweDAxLCAweGRiLCAweDdlLCAweDM3LCAweDAxLCAweGQ5LCAweDdkLCAweDQzLCAweDJkLCAKKyAgICAweDQ1LCAweGJlLCAweDQ0LCAweDA5LCAweGUyLCAweDM4LCAweDQwLCAweDdhLCAweDQ3LCAweDAxLCAweGQ5LCAweDc1LCAweDMxLCAweDExLCAweDEyLCAweDdjLCAKKyAgICAweDE1LCAweDdhLCAweGIxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDEyLCAweDcxLCAweGI4LCAweGE5LCAweDIxLCAweGU1LCAweDFmLCAweGE5LCAweGQ0LCAKKyAgICAweGU0LCAweGE5LCAweDI0LCAweGU0LCAweGZjLCAweGMyLCAweGMzLCAweGE5LCAweDIxLCAweGUyLCAweDNiLCAweGU1LCAweGU1LCAweDU0LCAweGMwLCAweDc4LCAKKyAgICAweGI0LCAweDEyLCAweDc0LCAweDVhLCAweGRhLCAweDU5LCAweGRhLCAweDM5LCAweGRhLCAweDBiLCAweDIyLCAweDgwLCAweDI5LCAweDgwLCAweDU4LCAweDc1LCAKKyAgICAweDMxLCAweDE2LCAweDEyLCAweDdjLCAweDE1LCAweDgwLCAweGVkLCAweDc1LCAweDMxLCAweDEyLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweGIxLCAweDMxLCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweDllLCAweDQ0LCAweDA5LCAweGUzLCAweDlkLCAweDU0LCAweDEyLCAweDcxLCAweGI4LCAweDdlLCAweDM0LCAweDA1LCAweGUzLCAKKyAgICAweDdkLCAweDU0LCAweDJkLCAweDQzLCAweDgwLCAweGExLCAweGU1LCAweGU1LCAweDU0LCAweDAzLCAweDc4LCAweDEyLCAweDc1LCAweDMxLCAweDEzLCAweDEyLCAKKyAgICAweDdjLCAweDE1LCAweDdlLCAweDBmLCAweDI5LCAweGZmLCAweDBiLCAweDBjLCAweDdhLCAweDBmLCAweDI5LCAweGZmLCAweDgwLCAweGE3LCAweDc1LCAweDMxLCAKKyAgICAweDE0LCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweDBmLCAweDJhLCAweDAzLCAweDBiLCAweDBjLCAweDdhLCAweDBmLCAweDJhLCAweDAzLCAweGE5LCAweGQ3LCAKKyAgICAweGU0LCAweGE5LCAweDI3LCAweGU0LCAweGZjLCAweDgwLCAweDlkLCAweDc1LCAweDMxLCAweDE1LCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweDBmLCAweDJhLCAKKyAgICAweDA3LCAweDBiLCAweDBjLCAweDdhLCAweDBmLCAweDJhLCAweDA3LCAweDgwLCAweGU1LCAweDc1LCAweDMxLCAweDE4LCAweDEyLCAweDdjLCAweDE1LCAweGNhLCAKKyAgICAweDA5LCAweGNhLCAweDM5LCAweGNhLCAweDJiLCAweGMyLCAweGMyLCAweGE5LCAweDIxLCAweGYyLCAweDUyLCAweGU1LCAweGY1LCAweDMzLCAweDgyLCAweGU3LCAKKyAgICAweDQwLCAweDQ0LCAweDdlLCAweDM3LCAweDAxLCAweGUxLCAweDdlLCAweDU0LCAweDAwLCAweDQwLCAweDlkLCAweDM1LCAweDQwLCAweDQzLCAweDdhLCAweDM3LCAKKyAgICAweDAxLCAweGUxLCAweDdlLCAweDM3LCAweDAxLCAweGRkLCAweDdkLCAweDQzLCAweDJkLCAweDQ1LCAweGJlLCAweDQ0LCAweDA1LCAweGUyLCAweDM4LCAweDUyLCAKKyAgICAweDdhLCAweDQ3LCAweDAxLCAweGRkLCAweDdkLCAweDQ1LCAweDEyLCAweDczLCAweDE2LCAweGE5LCAweDIwLCAweGY1LCAweDIyLCAweDc1LCAweDMxLCAweDE5LCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDkxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDgxLCAweGY3LCAweDdhLCAweDkxLCAweGY2LCAweGU1LCAKKyAgICAweGY1LCAweDMzLCAweDgyLCAweGU3LCAweDUwLCAweGJjLCAweGRhLCAweDJiLCAweGRhLCAweDM5LCAweGRhLCAweDA5LCAweDIyLCAweDgwLCAweDQxLCAweDgwLCAKKyAgICAweDY0LCAweDJkLCAweDUzLCAweDZkLCAweDMzLCAweDcwLCAweGI3LCAweDdlLCAweDA0LCAweDAxLCAweGUzLCAweDdhLCAweDA3LCAweDAxLCAweGRmLCAweDdhLCAKKyAgICAweDA3LCAweDAxLCAweGRkLCAweGE5LCAweDMyLCAweGYyLCAweGRmLCAweDg1LCAweDMwLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDc1LCAweGY2LCAweDAwLCAKKyAgICAweDgwLCAweGQ0LCAweGNhLCAweDU5LCAweDllLCAweDQ0LCAweDA1LCAweGUzLCAweDlkLCAweDU0LCAweDEyLCAweDczLCAweDE2LCAweDdlLCAweDM0LCAweDAxLCAKKyAgICAweGUzLCAweDdkLCAweDU0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGRkLCAweDEyLCAweDczLCAweDE2LCAweGRhLCAweDQ5LCAweDgwLCAweDk5LCAKKyAgICAweGU1LCAweGY1LCAweDU0LCAweDAzLCAweDc4LCAweDFmLCAweDdlLCAweDBmLCAweDI5LCAweGVmLCAweDBiLCAweDBjLCAweDdhLCAweDBmLCAweDI5LCAweGVmLCAKKyAgICAweDgwLCAweDlkLCAweDdlLCAweDBmLCAweDI5LCAweGY3LCAweDBiLCAweDBjLCAweDdhLCAweDBmLCAweDI5LCAweGY3LCAweGE5LCAweGQ3LCAweGY0LCAweGE5LCAKKyAgICAweDI3LCAweGY0LCAweGZjLCAweDgwLCAweDhhLCAweDdlLCAweDBmLCAweDI5LCAweGYzLCAweDBiLCAweDBjLCAweDdhLCAweDBmLCAweDI5LCAweGYzLCAweDgwLCAKKyAgICAweGViLCAweGU1LCAweGY1LCAweDU0LCAweDAzLCAweDc4LCAweDFmLCAweDdlLCAweDJmLCAweDJhLCAweDBmLCAweDBiLCAweDJjLCAweDdhLCAweDJmLCAweDJhLCAKKyAgICAweDBmLCAweDgwLCAweDM0LCAweDdlLCAweDJmLCAweDJhLCAweDE3LCAweDBiLCAweDJjLCAweDdhLCAweDJmLCAweDJhLCAweDE3LCAweGE5LCAweGQ3LCAweGY0LCAKKyAgICAweGE5LCAweDI3LCAweGY0LCAweGZjLCAweDgwLCAweDIxLCAweDdlLCAweDJmLCAweDJhLCAweDEzLCAweDBiLCAweDJjLCAweDdhLCAweDJmLCAweDJhLCAweDEzLCAKKyAgICAweDgwLCAweGViLCAweGRhLCAweDJiLCAweGRhLCAweDFiLCAweGRhLCAweDBiLCAweDIyLCAweDc1LCAweDMxLCAweDI4LCAweDEyLCAweDdjLCAweDE1LCAweGNhLCAKKyAgICAweDBiLCAweGNhLCAweDFiLCAweGNhLCAweDJiLCAweGMyLCAweGM0LCAweGE5LCAweDIxLCAweGYyLCAweGI2LCAweGU1LCAweGY1LCAweDMzLCAweDcyLCAweGU3LCAKKyAgICAweDQwLCAweGUwLCAweDdlLCAweDBkLCAweDQ2LCAweDdlLCAweDFkLCAweDRhLCAweDdlLCAweDJkLCAweDRlLCAweDdlLCAweDNkLCAweDUyLCAweDdlLCAweDg1LCAKKyAgICAweDU2LCAweDdkLCAweDkwLCAweDRkLCAweDkxLCAweDRkLCAweDkyLCAweDRkLCAweDkzLCAweDRkLCAweDk0LCAweDRkLCAweDk1LCAweDRkLCAweDk2LCAweDRkLCAKKyAgICAweDk3LCAweDRkLCAweDk4LCAweDY4LCAweDcyLCAweDdhLCAweDExLCAweGYzLCAweDdhLCAweDAxLCAweGYzLCAweDdhLCAweDMxLCAweGYzLCAweDdhLCAweDIxLCAKKyAgICAweGYzLCAweDdhLCAweDUxLCAweGYzLCAweDdhLCAweDQxLCAweGYzLCAweDdhLCAweDcxLCAweGYzLCAweDdhLCAweDYxLCAweGYzLCAweDdhLCAweDkxLCAweGYzLCAKKyAgICAweDdhLCAweDgxLCAweGYzLCAweDMwLCAweDdiLCAweDFhLCAweDdhLCAweGIxLCAweGYzLCAweDdhLCAweGExLCAweGYzLCAweDdhLCAweGQxLCAweGYzLCAweDdhLCAKKyAgICAweGMxLCAweGYzLCAweDdhLCAweGYxLCAweGYzLCAweDdhLCAweGUxLCAweGYzLCAweDdkLCAweDc4LCAweDdhLCAweGYxLCAweGYzLCAweDdhLCAweGUxLCAweGYzLCAKKyAgICAweGE5LCAweDMwLCAweGY1LCAweDAzLCAweDAyLCAweDcwLCAweGQ2LCAweDc1LCAweDMxLCAweDI5LCAweDEyLCAweDdjLCAweDE1LCAweDIwLCAweDdiLCAweDBiLCAKKyAgICAweDc1LCAweDMxLCAweDBhLCAweDEyLCAweDdjLCAweDE1LCAweDc1LCAweGY2LCAweDBhLCAweDgwLCAweDA5LCAweDc1LCAweDMxLCAweDEyLCAweDEyLCAweDdjLCAKKyAgICAweDE1LCAweDc1LCAweGY2LCAweDEyLCAweDZkLCAweDAwLCAweDdkLCAweDEwLCAweDdhLCAweDBkLCAweDQ2LCAweDdhLCAweDBkLCAweDRhLCAweDdhLCAweDBkLCAKKyAgICAweDRlLCAweDdhLCAweDBkLCAweDUyLCAweDdhLCAweDA1LCAweDU2LCAweGRhLCAweDJiLCAweGRhLCAweDFiLCAweGRhLCAweDBiLCAweDIyLCAweDFlLCAweGIwLCAKKyAgICAweDQwLCAweDBjLCAweDdlLCAweGEwLCAweDBhLCAweGE0LCAweDdlLCAweDA0LCAweDcyLCAweGZiLCAweDlkLCAweDA1LCAweDg5LCAweDA0LCAweDdlLCAweGExLCAKKyAgICAweGUzLCAweDdhLCAweDM5LCAweGEwLCAweDBiLCAweDM0LCAweDgwLCAweGVhLCAweGI0LCAweDQwLCAweGUzLCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAKKyAgICAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDdlLCAKKyAgICAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAKKyAgICAweDUwLCAweDBiLCAweDM1LCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDdlLCAweGExLCAweGUzLCAKKyAgICAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAKKyAgICAweDM1LCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAKKyAgICAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDdlLCAKKyAgICAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAKKyAgICAweDUwLCAweDBiLCAweDM1LCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDdlLCAweGExLCAweGUzLCAKKyAgICAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAKKyAgICAweDM1LCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAKKyAgICAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDdlLCAKKyAgICAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAKKyAgICAweDUwLCAweDBiLCAweDM1LCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDdlLCAweGExLCAweGUzLCAKKyAgICAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAKKyAgICAweDM1LCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAKKyAgICAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDdlLCAKKyAgICAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAKKyAgICAweDUwLCAweDBiLCAweDM1LCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDdlLCAweGExLCAweGUzLCAKKyAgICAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAKKyAgICAweDM1LCAweDdlLCAweGExLCAweGUzLCAweGU1LCAweGUzLCAweDFiLCAweDM4LCAweDUwLCAweDBiLCAweDM1LCAweDIyLCAweDFlLCAweGIwLCAweDQwLCAweDBjLCAKKyAgICAweDdlLCAweGEwLCAweDBhLCAweGE0LCAweDdlLCAweDA0LCAweDc0LCAweDU5LCAweDlkLCAweDA1LCAweDg5LCAweDA0LCAweDdlLCAweDM5LCAweGEwLCAweDdhLCAKKyAgICAweGExLCAweGYzLCAweDBiLCAweDM0LCAweDgwLCAweGVhLCAweGI0LCAweDQwLCAweGUzLCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAKKyAgICAweGYzLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDUwLCAKKyAgICAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAKKyAgICAweDM1LCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAKKyAgICAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDBiLCAKKyAgICAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAKKyAgICAweGYzLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDUwLCAKKyAgICAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAKKyAgICAweDM1LCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAKKyAgICAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDBiLCAKKyAgICAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAKKyAgICAweGYzLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDUwLCAKKyAgICAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAKKyAgICAweDM1LCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAKKyAgICAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDBiLCAKKyAgICAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAKKyAgICAweGYzLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDUwLCAKKyAgICAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAKKyAgICAweDM1LCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAKKyAgICAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDBiLCAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDBiLCAKKyAgICAweDM4LCAweDUwLCAweDdhLCAweGExLCAweGYzLCAweGY1LCAweGYzLCAweDBiLCAweDM1LCAweDIyLCAweGMyLCAweGFmLCAweDdlLCAweDM3LCAweDAxLCAweGRiLCAKKyAgICAweDRkLCAweDMzLCAweDY4LCAweDNiLCAweDdlLCAweDA3LCAweDAxLCAweGQ3LCAweDdlLCAweDU0LCAweDA5LCAweGUzLCAweDlkLCAweDUwLCAweGJkLCAweDM1LCAKKyAgICAweDQwLCAweDAyLCAweDdkLCAweDM1LCAweGNhLCAweDM5LCAweDdlLCAweDY1LCAweDYxLCAweDk5LCAweDY0LCAweGRhLCAweDM5LCAweDdlLCAweDA3LCAweDAxLCAKKyAgICAweGRiLCAweDlkLCAweDAzLCAweDdhLCAweDA3LCAweDAxLCAweGRiLCAweDJlLCAweDM3LCAweDAxLCAweGQ3LCAweDdhLCAweDM3LCAweDAxLCAweGQ3LCAweGJlLCAKKyAgICAweDM0LCAweDA5LCAweGUyLCAweDI4LCAweGM3LCAweDdlLCAweDM0LCAweDA1LCAweGUzLCAweDdhLCAweDM3LCAweDAxLCAweGQ3LCAweDgwLCAweGJkLCAweGQyLCAKKyAgICAweGFmLCAweDIyLCAweDc1LCAweDMxLCAweDUzLCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweDE1LCAweDYzLCAweDgwLCAweDExLCAweDc1LCAweDMxLCAweDUxLCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweDBiLCAweDA4LCAweDEwLCAweDBiLCAweDA1LCAweDllLCAweDM0LCAweDAwLCAweDAyLCAweDI4LCAweDRkLCAweDdjLCAweGIyLCAKKyAgICAweDIwLCAweGU3LCAweDI3LCAweDU0LCAweDA3LCAweDIzLCAweDBhLCAweDJiLCAweDQ5LCAweDIyLCAweDZjLCAweDdjLCAweDdjLCAweGIyLCAweDU0LCAweDc4LCAKKyAgICAweDAzLCAweDAzLCAweDAzLCAweDdjLCAweDJiLCAweDlkLCAweDEzLCAweDQwLCAweDFhLCAweDY4LCAweDEyLCAweDdhLCAweDE1LCAweDYzLCAweDdhLCAweDI1LCAKKyAgICAweDY1LCAweDdlLCAweDY0LCAweDc1LCAweDM3LCAweDdhLCAweDY1LCAweDYxLCAweDg5LCAweDI0LCAweDAyLCAweDc1LCAweDQ1LCAweDdlLCAweDY0LCAweDc0LCAKKyAgICAweGFkLCAweDgwLCAweGYyLCAweDJkLCAweDEzLCAweDlkLCAweDMxLCAweGNhLCAweDM5LCAweDdkLCAweDMxLCAweDJkLCAweDEwLCAweGNhLCAweDE5LCAweGNhLCAKKyAgICAweDI5LCAweDk5LCAweDI0LCAweGRhLCAweDI5LCAweGRhLCAweDA5LCAweGRhLCAweDM5LCAweDgwLCAweGEyLCAweDdhLCAweDE1LCAweDYzLCAweDdlLCAweDY0LCAKKyAgICAweDc1LCAweDIzLCAweDRkLCAweDMzLCAweDc4LCAweDA5LCAweDdjLCAweGIyLCAweDIwLCAweGU3LCAweDJhLCAweDdlLCAweDY0LCAweDc0LCAweGEyLCAweDdhLCAKKyAgICAweDY1LCAweDYxLCAweDIyLCAweDc1LCAweDMxLCAweDUyLCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweDIxLCAweDYzLCAweDdlLCAweDA5LCAweDMwLCAweDBiLCAKKyAgICAweDA0LCAweDFiLCAweDM0LCAweDc4LCAweDg5LCAweDgwLCAweGQ0LCAweDc1LCAweDMxLCAweDU0LCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweDE1LCAweDYzLCAKKyAgICAweDdlLCAweDI1LCAweDY1LCAweDgwLCAweDkwLCAweDVlLCAweDIwLCAweDA3LCAweDU0LCAweDc4LCAweDdlLCAweDQ0LCAweDc1LCAweGMxLCAweDMwLCAweGU2LCAKKyAgICAweDE2LCAweDRkLCAweDMzLCAweDY4LCAweDI2LCAweDFiLCAweDM0LCAweDdlLCAweDA5LCAweDQwLCAweDBiLCAweDA0LCAweDdlLCAweDQ0LCAweDY3LCAweDYzLCAKKyAgICAweDIwLCAweGUzLCAweDA0LCAweDdlLCAweDQ0LCAweDc1LCAweGM5LCAweGNhLCAweDA5LCAweGNhLCAweDM5LCAweDk5LCAweDQ0LCAweGRhLCAweDM5LCAweGRhLCAKKyAgICAweDA5LCAweDdlLCAweDY0LCAweDc0LCAweGFkLCAweDRkLCAweDMzLCAweDY4LCAweGE2LCAweDg5LCAweDY0LCAweDdhLCAweDE1LCAweDYzLCAweGY1LCAweDY1LCAKKyAgICAweDdlLCAweDY0LCAweDc1LCAweDg2LCAweDgwLCAweDk5LCAweDdlLCAweDE1LCAweDYzLCAweGU1LCAweDY1LCAweDgwLCAweGM0LCAweGMwLCAweGQwLCAweGMwLCAKKyAgICAweGQxLCAweGMwLCAweGUwLCAweGNhLCAweDE5LCAweGE5LCAweDIwLCAweGRmLCAweDEyLCAweGE5LCAweDIxLCAweGRmLCAweDFiLCAweDc1LCAweDMxLCAweDAxLCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweDUzLCAweGRmLCAweGY3LCAweDEyLCAweDQwLCAweGRjLCAweDgwLCAweDBkLCAweDc1LCAweDMxLCAweGZlLCAweDEyLCAweDdjLCAKKyAgICAweDE1LCAweDdlLCAweDE0LCAweDAwLCAweDUzLCAweDAyLCAweDQwLCAweDUxLCAweGRhLCAweDE5LCAweGQwLCAweGUwLCAweGQwLCAweGQxLCAweGQwLCAweGQwLCAKKyAgICAweDMyLCAweDAzLCAweGE1LCAweGNiLCAweDE5LCAweGIxLCAweDgwLCAweDAwLCAweDIyLCAweDIyLCAweDAyLCAweDc2LCAweDQyLCAweGNhLCAweDBiLCAweGNhLCAKKyAgICAweDFiLCAweGNhLCAweDJiLCAweGNhLCAweDNiLCAweGNhLCAweDRiLCAweGNhLCAweDViLCAweGNhLCAweDZiLCAweGNhLCAweDdiLCAweGNhLCAweGViLCAweGMwLCAKKyAgICAweGYxLCAweDdlLCAweGIzLCAweDJhLCAweDMzLCAweGI0LCAweDAwLCAweDAyLCAweDgwLCAweDE5LCAweGI0LCAweDAxLCAweDE2LCAweDMwLCAweGMwLCAweDA4LCAKKyAgICAweDc1LCAweGYxLCAweDAwLCAweDEyLCAweDc2LCAweDJjLCAweDgwLCAweDFmLCAweDMwLCAweGMxLCAweDFjLCAweDc1LCAweGYxLCAweDAwLCAweDEyLCAweDc2LCAKKyAgICAweGJkLCAweDgwLCAweDE0LCAweDMwLCAweGMxLCAweDA4LCAweDc1LCAweGYxLCAweDAwLCAweDEyLCAweDc2LCAweGJkLCAweDgwLCAweDA5LCAweDMwLCAweGMwLCAKKyAgICAweDA2LCAweDc1LCAweGYxLCAweDAwLCAweDEyLCAweDc2LCAweDJjLCAweGQwLCAweGYxLCAweGRhLCAweGViLCAweGRhLCAweDdiLCAweGRhLCAweDZiLCAweGRhLCAKKyAgICAweDViLCAweGRhLCAweDRiLCAweGRhLCAweDNiLCAweGRhLCAweDJiLCAweGRhLCAweDFiLCAweGRhLCAweDBiLCAweDIyLCAweGMyLCAweGMwLCAweDdlLCAweGIzLCAKKyAgICAweDJhLCAweDMzLCAweGI0LCAweDAyLCAweDA3LCAweDEyLCAweDc2LCAweDRlLCAweDAyLCAweDc2LCAweDQyLCAweDIyLCAweGI0LCAweDAxLCAweGZjLCAweDAyLCAKKyAgICAweDc2LCAweDg4LCAweDdlLCAweDAwLCAweDAwLCAweDdhLCAweDAzLCAweDJhLCAweDMzLCAweDdhLCAweDAzLCAweDJhLCAweDM0LCAweDIyLCAweDdlLCAweGIzLCAKKyAgICAweDJhLCAweDJiLCAweDU0LCAweDYwLCAweDYwLCAweDA1LCAweGI0LCAweDQwLCAweDE1LCAweDgwLCAweDEzLCAweDdlLCAweGIzLCAweDJhLCAweDJjLCAweGI0LCAKKyAgICAweDA1LCAweDBjLCAweDc1LCAweDMxLCAweDcxLCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweGIzLCAweDJhLCAweDJlLCAweGY1LCAweDhmLCAweDIyLCAweDc1LCAKKyAgICAweGY2LCAweDAwLCAweDIyLCAweGJlLCAweDU3LCAweDJhLCAweDMxLCAweDI4LCAweDA0LCAweDdlLCAweDU3LCAweDJhLCAweDMxLCAweDdhLCAweDBmLCAweDJhLCAKKyAgICAweDM2LCAweDdhLCAweDU3LCAweDJhLCAweDNhLCAweDAyLCAweDc2LCAweDg4LCAweDdlLCAweGVmLCAweDJhLCAweDM2LCAweDdlLCAweGY3LCAweDJhLCAweDNhLCAKKyAgICAweDdlLCAweDA3LCAweDJhLCAweDNhLCAweDRkLCAweDAwLCAweDY4LCAweDIxLCAweDdlLCAweDAwLCAweDAwLCAweDdlLCAweGViLCAweGIwLCAweGY1LCAweGYzLCAKKyAgICAweGEzLCAweGE1LCAweDA4LCAweDFiLCAweGY0LCAweDY4LCAweDA0LCAweGE1LCAweGI4LCAweDA4LCAweGYwLCAweDdhLCAweGVmLCAweDJhLCAweDM2LCAweDdhLCAKKyAgICAweGY3LCAweDJhLCAweDNhLCAweDc1LCAweDMxLCAweDA2LCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDAxLCAweGY2LCAweDIyLCAweGMyLCAweGMxLCAweDc1LCAKKyAgICAweDMxLCAweDAzLCAweDEyLCAweDdjLCAweDE1LCAweGE5LCAweDM2LCAweGUyLCAweDE2LCAweGU1LCAweGY1LCAweDU0LCAweGMwLCAweDY4LCAweDA3LCAweGE5LCAKKyAgICAweGQ3LCAweGY0LCAweGE5LCAweDI3LCAweGY0LCAweGZjLCAweDUzLCAweGUxLCAweDNmLCAweDQzLCAweGYyLCAweDg4LCAweDAyLCAweDc3LCAweDI5LCAweDdlLCAKKyAgICAweGIzLCAweDJhLCAweDM0LCAweGI0LCAweDAyLCAweDA0LCAweGE5LCAweGQ0LCAweGU0LCAweDIyLCAweGI0LCAweDAxLCAweDM5LCAweDdlLCAweDIxLCAweGU2LCAKKyAgICAweDdjLCAweDMyLCAweDdlLCAweDEzLCAweDJhLCAweDM1LCAweDJjLCAweDIxLCAweDdhLCAweDIzLCAweDJhLCAweDM1LCAweDdlLCAweDAwLCAweDAwLCAweDJlLCAKKyAgICAweDA0LCAweDJhLCAweDNjLCAweGU1LCAweGUzLCAweDdhLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweGE1LCAweGRiLCAweGY2LCAweGE5LCAweGQ0LCAweGU0LCAKKyAgICAweDc1LCAweDMxLCAweDcwLCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweGIzLCAweDJhLCAweDM1LCAweDdlLCAweGEzLCAweDJhLCAweDMyLCAweGJjLCAweGFiLCAKKyAgICAweDc4LCAweDAzLCAweDEyLCAweDc3LCAweGMwLCAweDIyLCAweDAyLCAweDdiLCAweDI5LCAweGU1LCAweGU2LCAweGI0LCAweDA4LCAweDY1LCAweGE5LCAweGM0LCAKKyAgICAweGUyLCAweDdlLCAweDAxLCAweGUzLCAweDdlLCAweDExLCAweGUzLCAweDdlLCAweDMxLCAweGUzLCAweDdlLCAweDIxLCAweGUzLCAweDdlLCAweDUxLCAweGUzLCAKKyAgICAweDdlLCAweDQxLCAweGUzLCAweDdlLCAweDcxLCAweGUzLCAweDdlLCAweDYxLCAweGUzLCAweDdhLCAweDBmLCAweDJhLCAweDJiLCAweDdhLCAweDFmLCAweDJhLCAKKyAgICAweDJmLCAweDc1LCAweDMxLCAweDA0LCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDAxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDExLCAweDMxLCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDIxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDMxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAKKyAgICAweDQxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDUxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDYxLCAweDMxLCAweDEyLCAweDdjLCAKKyAgICAweDE1LCAweDdhLCAweDcxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweGE5LCAweGQ0LCAweGU0LCAweGE5LCAweGQ3LCAweGY0LCAweGE5LCAweGM2LCAweGUyLCAKKyAgICAweDEyLCAweDc3LCAweDk0LCAweDIyLCAweDZkLCAweDAwLCAweDdlLCAweDE0LCAweDAxLCAweDAyLCAweDdhLCAweDA3LCAweDJhLCAweDNhLCAweDdhLCAweDAzLCAKKyAgICAweDJhLCAweDM1LCAweDdlLCAweGIzLCAweDJhLCAweDJiLCAweDIwLCAweGU3LCAweDBmLCAweDdhLCAweDIzLCAweDJhLCAweDM0LCAweDdhLCAweDMzLCAweDJhLCAKKyAgICAweDMzLCAweGJlLCAweDA3LCAweDJhLCAweDMxLCAweDY4LCAweDA5LCAweDIyLCAweDdhLCAweDMzLCAweDJhLCAweDM0LCAweDdhLCAweDIzLCAweDJhLCAweDMzLCAKKyAgICAweDdlLCAweGIzLCAweDJhLCAweDJiLCAweDU0LCAweGUzLCAweDIzLCAweDIzLCAweDMwLCAweGUwLCAweDAyLCAweGQyLCAweGU1LCAweDMwLCAweGU3LCAweDAyLCAKKyAgICAweGQyLCAweGU0LCAweDMwLCAweGU1LCAweDA2LCAweDMwLCAweGU0LCAweDAzLCAweDAyLCAweDdiLCAweDI5LCAweDU0LCAweDNlLCAweGY1LCAweGYwLCAweDAzLCAKKyAgICAweDU0LCAweDFmLCAweGMzLCAweDI1LCAweGYwLCAweDkwLCAweDc3LCAweGVjLCAweDc1LCAweDg0LCAweGZmLCAweDczLCAweDAyLCAweDc5LCAweDQwLCAweDAyLCAKKyAgICAweDc4LCAweDM0LCAweDAyLCAweDc5LCAweGRkLCAweDAyLCAweDc5LCAweGY4LCAweDAyLCAweDc4LCAweGQ5LCAweDAyLCAweDc4LCAweDlhLCAweDAyLCAweDdhLCAKKyAgICAweDExLCAweDAyLCAweDdhLCAweDExLCAweDAyLCAweDdhLCAweDE0LCAweDAyLCAweDdhLCAweDE0LCAweDAyLCAweDdhLCAweDE0LCAweDAyLCAweDdhLCAweDE0LCAKKyAgICAweDAyLCAweDdhLCAweDE0LCAweDAyLCAweDdhLCAweDE0LCAweDAyLCAweDdhLCAweDE0LCAweDAyLCAweDdhLCAweDE0LCAweDAyLCAweDdhLCAweDFhLCAweDAyLCAKKyAgICAweDdhLCAweGNlLCAweDAyLCAweDdhLCAweDE3LCAweDAyLCAweDdhLCAweDE3LCAweDAyLCAweDdhLCAweDE3LCAweDAyLCAweDdhLCAweDE3LCAweDAyLCAweDdhLCAKKyAgICAweDE3LCAweDAyLCAweDdhLCAweDE3LCAweDdlLCAweGIzLCAweDJhLCAweDJjLCAweGI0LCAweDA2LCAweDJhLCAweDdlLCAweGIzLCAweDJhLCAweDJkLCAweDYwLCAKKyAgICAweDU2LCAweDdjLCAweDBiLCAweDdlLCAweDEzLCAweDJhLCAweDJlLCAweDdlLCAweDE3LCAweDJhLCAweDJmLCAweDc1LCAweDMxLCAweDcyLCAweDEyLCAweDdjLCAKKyAgICAweDE1LCAweDdhLCAweDAxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDExLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDEyLCAweDdiLCAweDMzLCAKKyAgICAweDQwLCAweDM1LCAweDAyLCAweDc2LCAweDczLCAweGI0LCAweDA4LCAweDEwLCAweDc1LCAweDMxLCAweDc0LCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweGIzLCAKKyAgICAweDNmLCAweGYxLCAweGY1LCAweGYzLCAweDc1LCAweGY2LCAweDAxLCAweDIyLCAweGI0LCAweDAwLCAweDFjLCAweDc1LCAweDMxLCAweDc1LCAweDEyLCAweDdjLCAKKyAgICAweDE1LCAweDdlLCAweGIzLCAweDNmLCAweGYyLCAweDMwLCAweGUwLCAweDA1LCAweDc1LCAweGYzLCAweDAyLCAweDgwLCAweDAzLCAweDc1LCAweGYzLCAweDAwLCAKKyAgICAweDc1LCAweGYzLCAweDAwLCAweDc1LCAweGY2LCAweDAyLCAweDIyLCAweDAyLCAweDdiLCAweDI5LCAweDdlLCAweGIzLCAweDJhLCAweDJjLCAweGI0LCAweDAwLCAKKyAgICAweDM1LCAweDc1LCAweDMxLCAweDc2LCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweGIzLCAweDJhLCAweDMwLCAweDU0LCAweDBmLCAweGY1LCAweGYxLCAweDdlLCAKKyAgICAweGIzLCAweDJhLCAweDMwLCAweDIwLCAweGU3LCAweDA5LCAweGU1LCAweGUxLCAweDMwLCAweGU3LCAweDBkLCAweDc0LCAweDAxLCAweDgwLCAweDBiLCAweGU1LCAKKyAgICAweGUxLCAweDMwLCAweGU2LCAweDA0LCAweDc0LCAweDAxLCAweDgwLCAweDAyLCAweDc0LCAweDAwLCAweDUzLCAweGYxLCAweDgwLCAweGY1LCAweGYzLCAweDc1LCAKKyAgICAweGYzLCAweDAwLCAweDc1LCAweGY2LCAweDAyLCAweDIyLCAweDAyLCAweDdiLCAweDI5LCAweGMwLCAweGYxLCAweDdlLCAweGIzLCAweDJhLCAweDMwLCAweDU0LCAKKyAgICAweDBmLCAweDQyLCAweGYxLCAweDdlLCAweGIzLCAweDJhLCAweDJlLCAweGI0LCAweDAwLCAweDQ1LCAweDdlLCAweGIzLCAweDJhLCAweDJjLCAweGI0LCAweDAxLCAKKyAgICAweDI0LCAweDc1LCAweDMxLCAweDc3LCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweGIzLCAweDJhLCAweDMwLCAweDU0LCAweDBmLCAweDc4LCAweDA1LCAweDUzLCAKKyAgICAweGUxLCAweDNmLCAweDgwLCAweDM3LCAweDdlLCAweGIzLCAweDJhLCAweDMwLCAweDIwLCAweGU3LCAweDA1LCAweDUzLCAweGUxLCAweDdmLCAweDgwLCAweDJiLCAKKyAgICAweDUzLCAweGUxLCAweGJmLCAweDgwLCAweDI2LCAweGI0LCAweDAzLCAweDE3LCAweDc1LCAweDMxLCAweDc4LCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweGIzLCAKKyAgICAweDJhLCAweDMwLCAweDIwLCAweGU3LCAweDA1LCAweDQzLCAweGUxLCAweDgwLCAweDgwLCAweDExLCAweDQzLCAweGUxLCAweDQwLCAweDgwLCAweDBjLCAweDQzLCAKKyAgICAweGUxLCAweGMwLCAweGQwLCAweGYxLCAweDc1LCAweDMxLCAweDA3LCAweDEyLCAweDdjLCAweDE1LCAweDIyLCAweGQwLCAweGYxLCAweDAyLCAweDc2LCAweDZmLCAKKyAgICAweDdlLCAweGIzLCAweDJhLCAweDJjLCAweGI0LCAweDA5LCAweDIzLCAweDc1LCAweDMxLCAweDc5LCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweGIzLCAweDJhLCAKKyAgICAweDJlLCAweGJlLCAweGIzLCAweDNmLCAweGYxLCAweDY4LCAweDExLCAweGNhLCAweGI4LCAweGMwLCAweGYxLCAweDEyLCAweDQzLCAweGQ0LCAweGQwLCAweGYxLCAKKyAgICAweGRhLCAweGI4LCAweDUwLCAweDc2LCAweDdhLCAweGIzLCAweDNmLCAweGYxLCAweDgwLCAweDZkLCAweGI0LCAweDA1LCAweDA4LCAweDc1LCAweDMxLCAweDdhLCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweDgwLCAweDYyLCAweGI0LCAweDAzLCAweDE5LCAweDc1LCAweDMxLCAweDdiLCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweGIzLCAKKyAgICAweDJhLCAweDJlLCAweGI0LCAweDAxLCAweDU1LCAweDdlLCAweGIzLCAweDNmLCAweGYyLCAweDQ0LCAweDAxLCAweDdhLCAweGIzLCAweDNmLCAweGYyLCAweDgwLCAKKyAgICAweDQ2LCAweGI0LCAweDAxLCAweDE5LCAweDc1LCAweDMxLCAweDdjLCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweGIzLCAweDJhLCAweDJlLCAweGI0LCAweDAxLCAKKyAgICAweDM5LCAweDdlLCAweGIzLCAweDNmLCAweGYyLCAweDU0LCAweGZlLCAweDdhLCAweGIzLCAweDNmLCAweGYyLCAweDgwLCAweDJhLCAweGI0LCAweDA3LCAweDJhLCAKKyAgICAweDdlLCAweGIzLCAweDJhLCAweDJkLCAweDYwLCAweDI0LCAweDdjLCAweDBiLCAweDdlLCAweDEzLCAweDJhLCAweDJlLCAweDdlLCAweDE3LCAweDJhLCAweDJmLCAKKyAgICAweDc1LCAweDMxLCAweDczLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDAxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDdhLCAweDExLCAweDMxLCAweDEyLCAKKyAgICAweDdjLCAweDE1LCAweDEyLCAweDdiLCAweDVmLCAweDQwLCAweDAzLCAweDAyLCAweDc2LCAweDZmLCAweDAyLCAweDdiLCAweDI5LCAweDdlLCAweGIzLCAweDJhLCAKKyAgICAweDJjLCAweGI0LCAweDBiLCAweGY2LCAweDc1LCAweDMxLCAweDdkLCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweGIzLCAweDJhLCAweDJlLCAweDdlLCAweGEzLCAKKyAgICAweDJhLCAweDMwLCAweDRjLCAweGFiLCAweDc4LCAweGU0LCAweDgwLCAweGRmLCAweDdlLCAweGIzLCAweDJhLCAweDJjLCAweGI0LCAweDBhLCAweGRiLCAweDc1LCAKKyAgICAweDMxLCAweDdlLCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweGIzLCAweDJhLCAweDJlLCAweDcwLCAweGNmLCAweGY1LCAweGYzLCAweDc1LCAweGY2LCAweDAxLCAKKyAgICAweDIyLCAweDAyLCAweDdiLCAweDI5LCAweDAyLCAweDdiLCAweDI5LCAweDAyLCAweDdiLCAweDI5LCAweDdlLCAweGIzLCAweDJhLCAweDJjLCAweGI0LCAweDA0LCAKKyAgICAweDIwLCAweDc1LCAweDMxLCAweGMzLCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweDA0LCAweDAwLCAweDAxLCAweDdlLCAweDE3LCAweDJhLCAweDJkLCAweDdlLCAKKyAgICAweDE4LCAweDJhLCAweDNjLCAweDdhLCAweDFjLCAweDAwLCAweDAwLCAweDdlLCAweDQ3LCAweDJhLCAweDMxLCAweDEyLCAweDdjLCAweDIxLCAweDAyLCAweDdhLCAKKyAgICAweGM4LCAweGI0LCAweDA2LCAweDNhLCAweDc1LCAweDMxLCAweGMxLCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweDU4LCAweDAwLCAweDAwLCAweDdhLCAweDVjLCAKKyAgICAweDAwLCAweGZlLCAweDdkLCAweGNhLCAweDdlLCAweGQ3LCAweDJhLCAweDJkLCAweDdlLCAweDc4LCAweDJhLCAweDNjLCAweDdhLCAweDdjLCAweDAwLCAweDAwLCAKKyAgICAweDdlLCAweDc3LCAweDJhLCAweDMxLCAweDc1LCAweDMxLCAweGMxLCAweDEyLCAweDdjLCAweDE1LCAweGMwLCAweGE4LCAweGMwLCAweDg3LCAweGMyLCAweGFmLCAKKyAgICAweGE5LCAweGQ1LCAweDg3LCAweDEyLCAweDdjLCAweDVhLCAweGQwLCAweDg3LCAweGQwLCAweGE4LCAweDQwLCAweDRmLCAweDgwLCAweDRhLCAweGI0LCAweDAwLCAKKyAgICAweDFjLCAweGMyLCAweGFmLCAweGE5LCAweGQ1LCAweDg3LCAweDEyLCAweDc2LCAweDZmLCAweGU0LCAweDhkLCAweGVmLCAweDhkLCAweGVmLCAweDhkLCAweGVmLCAKKyAgICAweGQ1LCAweGUwLCAweGY3LCAweGMwLCAweGQxLCAweGNhLCAweDAyLCAweGZmLCAweGNhLCAweDA2LCAweDAwLCAweDAwLCAweDMyLCAweGI0LCAweDA5LCAweDEyLCAKKyAgICAweDdlLCAweDU3LCAweDJhLCAweDJkLCAweDRkLCAweDU1LCAweDY4LCAweDA1LCAweGE5LCAweGQyLCAweGIxLCAweDgwLCAweDAzLCAweGE5LCAweGMyLCAweGIxLCAKKyAgICAweDgwLCAweDE2LCAweGI0LCAweDA3LCAweDE2LCAweGMyLCAweGFmLCAweDdlLCAweDA3LCAweDJhLCAweDJmLCAweDdlLCAweDE3LCAweDJhLCAweDJkLCAweGMwLCAKKyAgICAweGQxLCAweGNhLCAweDE4LCAweGNhLCAweDM4LCAweGNhLCAweDI4LCAweDMyLCAweDAyLCAweDc2LCAweDZmLCAweDAyLCAweDdiLCAweDI5LCAweDdlLCAweGIzLCAKKyAgICAweDJhLCAweDJjLCAweGI0LCAweDAzLCAweDE1LCAweDc1LCAweDMxLCAweGMyLCAweDEyLCAweDdjLCAweDE1LCAweDdlLCAweDA0LCAweDAwLCAweDAxLCAweDdlLCAKKyAgICAweDE3LCAweDJhLCAweDJkLCAweDdlLCAweDU3LCAweDJhLCAweDMxLCAweDAyLCAweDc2LCAweDczLCAweGI0LCAweDA1LCAweDM5LCAweDc1LCAweDMxLCAweGMwLCAKKyAgICAweDEyLCAweDdjLCAweDE1LCAweGMwLCAweGE4LCAweGMwLCAweDg3LCAweGMyLCAweGFmLCAweGE5LCAweGQ1LCAweDg3LCAweDdlLCAweDA4LCAweDJhLCAweDNjLCAKKyAgICAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweDdlLCAweDI0LCAweDAwLCAweGZlLCAweDdlLCAweDM3LCAweDJhLCAweDJkLCAweDdlLCAweDQ3LCAweDJhLCAweDMxLCAKKyAgICAweDEyLCAweDdjLCAweDIxLCAweGQwLCAweDg3LCAweGQwLCAweGE4LCAweDdlLCAweDA4LCAweDJhLCAweDNjLCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweDdlLCAKKyAgICAweDU3LCAweDJhLCAweDMxLCAweDAyLCAweDc2LCAweDczLCAweDAyLCAweDdiLCAweDI5LCAweDc1LCAweDMxLCAweDA3LCAweDEyLCAweDdjLCAweDE1LCAweDQzLCAKKyAgICAweGUxLCAweGMwLCAweDIyLCAweGMwLCAweGE4LCAweGMwLCAweDg3LCAweGMyLCAweGFmLCAweGE5LCAweGQ1LCAweDg3LCAweDEyLCAweDdiLCAweDllLCAweDQwLCAKKyAgICAweDE5LCAweDdlLCAweDA4LCAweDJhLCAweDNjLCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweGNhLCAweDBiLCAweGNhLCAweDQ5LCAweDEyLCAweDdjLCAweDIxLCAKKyAgICAweGRhLCAweDU5LCAweGRhLCAweDBiLCAweGQwLCAweDg3LCAweGQwLCAweGE4LCAweGMzLCAweDIyLCAweGQwLCAweDg3LCAweGQwLCAweGE4LCAweDIyLCAweGMwLCAKKyAgICAweGE4LCAweGMwLCAweDg3LCAweGMyLCAweGFmLCAweGE5LCAweGQ1LCAweDg3LCAweDEyLCAweDdiLCAweDllLCAweDQwLCAweDJiLCAweDdlLCAweDU4LCAweDAwLCAKKyAgICAweDAwLCAweDdhLCAweDVjLCAweDAwLCAweGZlLCAweDdmLCAweDYxLCAweDdlLCAweDc4LCAweDJhLCAweDNjLCAweDdhLCAweDdjLCAweDAwLCAweDAwLCAweDdlLCAKKyAgICAweDc3LCAweDJhLCAweDMxLCAweGJkLCAweDc0LCAweDc4LCAweDExLCAweDc1LCAweDMxLCAweGMxLCAweDEyLCAweDdjLCAweDE1LCAweDEyLCAweDdjLCAweDVhLCAKKyAgICAweDQwLCAweDA2LCAweGQwLCAweDg3LCAweGQwLCAweGE4LCAweGMzLCAweDIyLCAweGQwLCAweDg3LCAweGQwLCAweGE4LCAweGQzLCAweDIyLCAweDdlLCAweDI0LCAKKyAgICAweDAwLCAweGZlLCAweDdlLCAweDM0LCAweDdmLCAweGNhLCAweDBiLCAweDFhLCAweDUwLCAweGM1LCAweGYwLCAweDdkLCAweDYyLCAweDdkLCAweDc1LCAweDdkLCAKKyAgICAweDg3LCAweDdlLCAweDM0LCAweDdmLCAweGMyLCAweDdlLCAweDFiLCAweGIwLCAweDdlLCAweDM0LCAweDdmLCAweDAzLCAweGI0LCAweDAxLCAweDA0LCAweDdlLCAKKyAgICAweDM0LCAweDdmLCAweGNjLCAweDdlLCAweDFiLCAweGIwLCAweGJjLCAweDBiLCAweDUwLCAweDQ5LCAweDNlLCAweDAwLCAweDNlLCAweDAwLCAweDBhLCAweDUwLCAKKyAgICAweDJkLCAweDc1LCAweDBiLCAweDNhLCAweDMwLCAweDY5LCAweDUzLCAweDAwLCAweDAyLCAweGJkLCAweDM4LCAweDUwLCAweDAyLCAweDJkLCAweDM4LCAweGJjLCAKKyAgICAweDFiLCAweDUwLCAweDMwLCAweDNlLCAweDEwLCAweDNlLCAweDEwLCAweDBhLCAweDUxLCAweDJkLCAweDM1LCAweDY5LCAweDQxLCAweDAwLCAweDAyLCAweDBiLCAKKyAgICAweDFhLCAweDMwLCAweGJkLCAweDM4LCAweDUwLCAweDAyLCAweDJkLCAweDM4LCAweGJlLCAweDQ0LCAweGZmLCAweGZmLCAweDc4LCAweDA1LCAweDdlLCAweDFiLCAKKyAgICAweDkwLCAweDBhLCAweDQ5LCAweDRkLCAweDQ0LCAweDY4LCAweDBjLCAweGJlLCAweDQ0LCAweDAwLCAweGZmLCAweDI4LCAweDA0LCAweDdlLCAweDQ0LCAweDAwLCAKKyAgICAweGZmLCAweGMzLCAweDIyLCAweGQzLCAweDIyLCAKKworLy8gU2VnbWVudCAjMTYsIFN0YXJ0IEFkZHJlc3MgMDBmZjdmYzYsIExlbmd0aCA0CisweGZmLDB4MDAsMHhjNiwweDdmLDB4MDQsMHgwMCwKKyAgICAweDAxLCAweDEwLCAweDA0LCAweDAwLCAKKworLy8gU2VnbWVudCAjMTcsIFN0YXJ0IEFkZHJlc3MgMDBmZjdjMTUsIExlbmd0aCAzMzAKKzB4ZmYsMHgwMCwweDE1LDB4N2MsMHg0YSwweDAxLAorICAgIDB4Y2EsIDB4MDgsIDB4N2UsIDB4MDEsIDB4MzEsIDB4N2EsIDB4MDMsIDB4M2YsIDB4ZjAsIDB4ZGEsIDB4MDgsIDB4MjIsIDB4N2UsIDB4MWIsIDB4YzAsIDB4N2EsIAorICAgIDB4MGIsIDB4YzAsIDB4MGIsIDB4MTQsIDB4MGIsIDB4MzQsIDB4MWIsIDB4NDQsIDB4NzgsIDB4ZjIsIDB4MjIsIDB4N2YsIDB4NmYsIDB4N2YsIDB4ZjAsIDB4MWIsIAorICAgIDB4ZmMsIDB4N2MsIDB4NTQsIDB4N2QsIDB4MzIsIDB4ODAsIDB4MDgsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MWIsIDB4OWUsIAorICAgIDB4NDQsIDB4MDAsIDB4MTAsIDB4NTAsIDB4ZjIsIDB4MmUsIDB4NDQsIDB4MDAsIDB4MTAsIDB4NjgsIDB4MDYsIDB4Y2EsIDB4NDgsIDB4MWIsIDB4NDQsIDB4NzgsIAorICAgIDB4ZmEsIDB4N2YsIDB4ZjYsIDB4ODksIDB4ZTQsIDB4Y2EsIDB4NmIsIDB4NWUsIDB4ZDQsIDB4MDAsIDB4M2YsIDB4NjgsIDB4MjAsIDB4N2UsIDB4ODQsIDB4MDAsIAorICAgIDB4NDAsIDB4OWQsIDB4OGQsIDB4ZGEsIDB4NmIsIDB4YmQsIDB4ODcsIDB4MzgsIDB4MTYsIDB4Y2EsIDB4NzksIDB4N2QsIDB4NzgsIDB4MTIsIDB4N2MsIDB4ODQsIAorICAgIDB4ZGEsIDB4NzksIDB4NDAsIDB4MDgsIDB4OWQsIDB4NzgsIDB4NjgsIDB4MDIsIDB4ODAsIDB4MDUsIDB4YzIsIDB4ZDcsIDB4MjIsIDB4ZGEsIDB4NmIsIDB4NDMsIAorICAgIDB4OTAsIDB4MzAsIDB4NzQsIDB4YWEsIDB4MzksIDB4YjUsIDB4NTUsIDB4NTUsIDB4NzQsIDB4NTUsIDB4MzksIDB4YjUsIDB4MmEsIDB4YWEsIDB4NzQsIDB4YTAsIAorICAgIDB4MzksIDB4YjUsIDB4NTUsIDB4NTUsIDB4N2UsIDB4MDQsIDB4MDAsIDB4NDAsIDB4OWQsIDB4NzAsIDB4NTAsIDB4MDYsIDB4MmQsIDB4NzAsIDB4N2QsIDB4MDcsIAorICAgIDB4NmQsIDB4NzcsIDB4N2MsIDB4MzEsIDB4N2UsIDB4N2IsIDB4MDAsIDB4N2EsIDB4NmIsIDB4MDAsIDB4MGIsIDB4N2MsIDB4MGIsIDB4NmMsIDB4YTUsIDB4ZDksIAorICAgIDB4ZjMsIDB4N2YsIDB4MTYsIDB4MWIsIDB4MWMsIDB4N2UsIDB4NTQsIDB4MjcsIDB4MTAsIDB4N2UsIDB4MWIsIDB4MTAsIDB4YmMsIDB4MTAsIDB4NjgsIDB4MDYsIAorICAgIDB4MWIsIDB4NTQsIDB4NzgsIDB4ZjUsIDB4ODAsIDB4MmMsIDB4NmQsIDB4MDAsIDB4N2MsIDB4MjAsIDB4N2YsIDB4MTYsIDB4OWYsIDB4MTAsIDB4N2YsIDB4MjcsIAorICAgIDB4OWYsIDB4MjAsIDB4N2UsIDB4MmIsIDB4MDAsIDB4N2UsIDB4MWIsIDB4MTAsIDB4YmMsIDB4MDEsIDB4NzgsIDB4MTYsIDB4MGIsIDB4MmMsIDB4MGIsIDB4MWMsIAorICAgIDB4YTUsIDB4ZGIsIDB4ZWYsIDB4N2MsIDB4YjYsIDB4MjAsIDB4ZTAsIDB4MDMsIDB4NjMsIDB4OTAsIDB4MzAsIDB4NGQsIDB4NzcsIDB4NzgsIDB4OTMsIDB4YzIsIAorICAgIDB4ZDcsIDB4MjIsIDB4ZDIsIDB4ZDcsIDB4MjIsIDB4MDAsIDB4MDQsIDB4MDAsIDB4MDQsIDB4NDIsIDB4MDgsIDB4MDYsIDB4MDQsIDB4MDIsIDB4MDQsIDB4MDAsIAorICAgIDB4MDIsIDB4MDEsIDB4MDQsIDB4MDEsIDB4MDIsIDB4ODIsIDB4MDgsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDIsIDB4MDIsIAorICAgIDB4MDIsIDB4MDIsIDB4MDQsIDB4MDIsIDB4MDgsIDB4MTAsIDB4MDIsIDB4MTAsIDB4MDQsIDB4MDIsIDB4MDgsIDB4MDAsIDB4MDEsIDB4MDEsIDB4MDgsIDB4MDAsIAorICAgIDB4MDEsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDIsIDB4MDIsIDB4MDgsIDB4MDIsIDB4MDQsIDB4MjAsIDB4MDQsIDB4N2UsIDB4MTgsIDB4N2YsIDB4YmQsIDB4N2EsIAorICAgIDB4MWMsIDB4MDAsIDB4ZmUsIDB4MGIsIDB4MWEsIDB4MDAsIDB4NWUsIDB4MTAsIDB4MWYsIDB4YmUsIDB4MTAsIDB4MWEsIDB4MzgsIDB4MWEsIDB4MGEsIDB4NTEsIAorICAgIDB4MjMsIDB4N2UsIDB4MTgsIDB4N2MsIDB4ZmEsIDB4N2EsIDB4MWMsIDB4MDAsIDB4ZmYsIDB4MmQsIDB4MzUsIDB4MGIsIDB4MWEsIDB4NTAsIDB4NjAsIDB4MDgsIAorICAgIDB4YTUsIDB4YjgsIDB4MDIsIDB4MDMsIDB4NGUsIDB4YTAsIDB4MDgsIDB4MjIsIDB4ODAsIDB4ZmUsIAorfTsKKworc3RhdGljIHN0cnVjdCBlZGdlX2Zpcm13YXJlX3ZlcnNpb25faW5mbyBJTUFHRV9WRVJTSU9OX05BTUUgPSB7CisJMSwgMTYsIDQgfTsJCS8vIE1ham9yLCBNaW5vciwgQnVpbGQKKworI3VuZGVmIElNQUdFX1ZFUlNJT05fTkFNRQorCisjdW5kZWYgSU1BR0VfQVJSQVlfTkFNRQorCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZndfZG93bjIuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19md19kb3duMi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2NzI3N2UKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZndfZG93bjIuaApAQCAtMCwwICsxLDExMzMgQEAKKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKy8vKiBFZGdlcG9ydC80IEJpbmFyeSBJbWFnZQorLy8qIEdlbmVyYXRlZCBieSBIRVgyQyB2MS4wNgorLy8qIENvcHlyaWdodCAoQykgMTk5OCBJbnNpZGUgT3V0IE5ldHdvcmtzLCBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8qCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisvLyoJaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKy8vKgl0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorLy8qCShhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKworLy9JbWFnZSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbgorI2lmICFkZWZpbmVkKERFRklORURfRURHRV9GSVJNV0FSRV9JTUFHRV9SRUNPUkQpCisJI2RlZmluZSBERUZJTkVEX0VER0VfRklSTVdBUkVfSU1BR0VfUkVDT1JECisJc3RydWN0IGVkZ2VfZmlybXdhcmVfaW1hZ2VfcmVjb3JkIHsKKwkJX19sZTE2IEV4dEFkZHI7CisJCV9fbGUxNiBBZGRyOworCQlfX2xlMTYgTGVuOworCQl1bnNpZ25lZCBjaGFyICBEYXRhWzBdOworCX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCisJc3RydWN0IGVkZ2VfZmlybXdhcmVfdmVyc2lvbl9pbmZvIHsKKwkJdW5zaWduZWQgY2hhciAgTWFqb3JWZXJzaW9uOworCQl1bnNpZ25lZCBjaGFyICBNaW5vclZlcnNpb247CisJCXVuc2lnbmVkIHNob3J0IEJ1aWxkTnVtYmVyOworCX07CisKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoSU1BR0VfQVJSQVlfTkFNRSkKKwkjZGVmaW5lIElNQUdFX0FSUkFZX05BTUUJRmlybXdhcmVJbWFnZQorCSNkZWZpbmUgSU1BR0VfVkVSU0lPTl9OQU1FCUZpcm13YXJlSW1hZ2VWZXJzaW9uCisjZW5kaWYKKworc3RhdGljIHVuc2lnbmVkIGNoYXIgSU1BR0VfQVJSQVlfTkFNRVtdID0geworCisvLyBTZWdtZW50ICMxLCBTdGFydCBBZGRyZXNzIDAwZmYwMDAwLCBMZW5ndGggNgorMHhmZiwweDAwLDB4MDAsMHgwMCwweDA2LDB4MDAsCisgICAgMHgwMiwgMHgwMCwgMHg4MCwgMHgwMiwgMHg0NSwgMHgxNCwgCisKKy8vIFNlZ21lbnQgIzIsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMGIsIExlbmd0aCAzCisweGZmLDB4MDAsMHgwYiwweDAwLDB4MDMsMHgwMCwKKyAgICAweDAyLCAweDQ0LCAweGE1LCAKKworLy8gU2VnbWVudCAjMywgU3RhcnQgQWRkcmVzcyAwMGZmMDAxMywgTGVuZ3RoIDMKKzB4ZmYsMHgwMCwweDEzLDB4MDAsMHgwMywweDAwLAorICAgIDB4MDIsIDB4NjMsIDB4YWIsIAorCisvLyBTZWdtZW50ICM0LCBTdGFydCBBZGRyZXNzIDAwZmYwMDFiLCBMZW5ndGggMworMHhmZiwweDAwLDB4MWIsMHgwMCwweDAzLDB4MDAsCisgICAgMHgwMiwgMHgwMCwgMHgxYiwgCisKKy8vIFNlZ21lbnQgIzUsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMjMsIExlbmd0aCAzCisweGZmLDB4MDAsMHgyMywweDAwLDB4MDMsMHgwMCwKKyAgICAweDAyLCAweDAwLCAweDIzLCAKKworLy8gU2VnbWVudCAjNiwgU3RhcnQgQWRkcmVzcyAwMGZmMDAyYiwgTGVuZ3RoIDMKKzB4ZmYsMHgwMCwweDJiLDB4MDAsMHgwMywweDAwLAorICAgIDB4MDIsIDB4MDAsIDB4MmIsIAorCisvLyBTZWdtZW50ICM3LCBTdGFydCBBZGRyZXNzIDAwZmYwMDMzLCBMZW5ndGggMworMHhmZiwweDAwLDB4MzMsMHgwMCwweDAzLDB4MDAsCisgICAgMHgwMiwgMHgwMCwgMHgzMywgCisKKy8vIFNlZ21lbnQgIzgsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwM2IsIExlbmd0aCAzCisweGZmLDB4MDAsMHgzYiwweDAwLDB4MDMsMHgwMCwKKyAgICAweDAyLCAweDAwLCAweDNiLCAKKworLy8gU2VnbWVudCAjOSwgU3RhcnQgQWRkcmVzcyAwMGZmMDA0MywgTGVuZ3RoIDMKKzB4ZmYsMHgwMCwweDQzLDB4MDAsMHgwMywweDAwLAorICAgIDB4MDIsIDB4MDAsIDB4NDMsIAorCisvLyBTZWdtZW50ICMxMCwgU3RhcnQgQWRkcmVzcyAwMGZmMDA0YiwgTGVuZ3RoIDMKKzB4ZmYsMHgwMCwweDRiLDB4MDAsMHgwMywweDAwLAorICAgIDB4MDIsIDB4MDAsIDB4NGIsIAorCisvLyBTZWdtZW50ICMxMSwgU3RhcnQgQWRkcmVzcyAwMGZmMDA1MywgTGVuZ3RoIDMKKzB4ZmYsMHgwMCwweDUzLDB4MDAsMHgwMywweDAwLAorICAgIDB4MDIsIDB4NjcsIDB4NWYsIAorCisvLyBTZWdtZW50ICMxMiwgU3RhcnQgQWRkcmVzcyAwMGZmMDA3YiwgTGVuZ3RoIDMKKzB4ZmYsMHgwMCwweDdiLDB4MDAsMHgwMywweDAwLAorICAgIDB4MDIsIDB4MDAsIDB4N2IsIAorCisvLyBTZWdtZW50ICMxMywgU3RhcnQgQWRkcmVzcyAwMGZmMDA4MCwgTGVuZ3RoIDcKKzB4ZmYsMHgwMCwweDgwLDB4MDAsMHgwNywweDAwLAorICAgIDB4N2UsIDB4MTQsIDB4MDAsIDB4MDAsIDB4MDIsIDB4NDAsIDB4NTIsIAorCisvLyBTZWdtZW50ICMxNCwgU3RhcnQgQWRkcmVzcyAwMGZmMzAwMCwgTGVuZ3RoIDI5MTgKKzB4ZmYsMHgwMCwweDAwLDB4MzAsMHg2NiwweDBiLAorICAgIDB4MTIsIDB4MzAsIDB4NjQsIDB4MTIsIDB4MzAsIDB4ZmYsIDB4MTIsIDB4MzEsIDB4MmYsIDB4MTIsIDB4MzAsIDB4YjAsIDB4ODAsIDB4ZjIsIDB4ZTUsIDB4MjMsIAorICAgIDB4NjAsIDB4MTksIDB4N2UsIDB4MTQsIDB4MDAsIDB4MDAsIDB4MDksIDB4YjEsIDB4MDEsIDB4YjksIDB4YjQsIDB4MDAsIDB4MDIsIDB4ODAsIDB4MDUsIDB4MTQsIAorICAgIDB4MTksIDB4YjEsIDB4MDEsIDB4YjksIDB4YTUsIDB4MGEsIDB4YmUsIDB4MjEsIDB4MmUsIDB4NzgsIDB4ZWIsIDB4MjIsIDB4YzIsIDB4YWYsIDB4N2UsIDB4YjMsIAorICAgIDB4M2YsIDB4ZjEsIDB4YjQsIDB4MDEsIDB4MDMsIDB4MTIsIDB4NjUsIDB4NjcsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4YzIsIDB4YWYsIDB4N2UsIDB4YjMsIDB4M2YsIAorICAgIDB4ZjEsIDB4YjQsIDB4MDEsIDB4MWQsIDB4NzQsIDB4NDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MWEsIDB4NmMsIDB4YWEsIAorICAgIDB4NjAsIDB4MGYsIDB4Y2EsIDB4MGIsIDB4Y2EsIDB4MzksIDB4Y2EsIDB4NTksIDB4MTIsIDB4NjQsIDB4MjQsIDB4ZGEsIDB4NTksIDB4ZGEsIDB4MzksIDB4ZGEsIAorICAgIDB4MGIsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4YzIsIDB4YWYsIDB4ZTUsIDB4MjIsIDB4NjAsIDB4NDMsIDB4N2UsIDB4MDcsIDB4MDEsIDB4Y2IsIDB4YmUsIDB4MDQsIAorICAgIDB4MDMsIDB4ODAsIDB4MzgsIDB4MzksIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MjAsIDB4MDAsIDB4MTMsIDB4NTAsIDB4MjEsIDB4MDksIDB4YTAsIAorICAgIDB4MDAsIDB4MDQsIDB4NGUsIDB4YTAsIDB4MDUsIDB4MTksIDB4YTAsIDB4MDAsIDB4MDQsIDB4MGEsIDB4MzIsIDB4MDksIDB4NTMsIDB4MzUsIDB4MzMsIDB4NWUsIAorICAgIDB4NTEsIDB4MjcsIDB4NjgsIDB4MGIsIDB4MDksIDB4YTAsIDB4MDAsIDB4MTAsIDB4NGUsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTAsIDB4MDAsIDB4MTAsIDB4MmUsIAorICAgIDB4MDQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4MGEsIDB4YmUsIDB4MjEsIDB4MmUsIDB4NzgsIDB4ZDEsIDB4NzUsIDB4MjIsIDB4MDAsIDB4ZDIsIDB4YWYsIDB4MjIsIAorICAgIDB4YzIsIDB4YWYsIDB4ZTUsIDB4MjYsIDB4NjAsIDB4MzYsIDB4N2UsIDB4MjAsIDB4MDAsIDB4N2UsIDB4MzAsIDB4MDEsIDB4ZTUsIDB4MjYsIDB4YTUsIDB4NWIsIAorICAgIDB4NjgsIDB4MjEsIDB4N2MsIDB4YjIsIDB4MjMsIDB4MGEsIDB4MmIsIDB4NDksIDB4MzIsIDB4MDEsIDB4NzksIDB4YmUsIDB4MzQsIDB4MDAsIDB4MDAsIDB4NjgsIAorICAgIDB4MTIsIDB4N2UsIDB4YjEsIDB4MjEsIDB4YTUsIDB4NGIsIDB4N2EsIDB4YjEsIDB4MjEsIDB4Y2EsIDB4MTksIDB4NDksIDB4MjIsIDB4MzAsIDB4ZWYsIDB4OTksIAorICAgIDB4MjQsIDB4ZGEsIDB4MTksIDB4M2UsIDB4MzAsIDB4YTUsIDB4MGEsIDB4YmUsIDB4MjEsIDB4MmUsIDB4NzgsIDB4ZDAsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4NDYsIAorICAgIDB4NGYsIDB4NDksIDB4N2MsIDB4NGMsIDB4YTksIDB4NGYsIDB4ZDYsIDB4NTMsIDB4MDMsIDB4NTYsIDB4MzAsIDB4NTksIDB4NWQsIDB4NWMsIDB4OGEsIDB4YzIsIAorICAgIDB4YWYsIDB4ZTUsIDB4MjQsIDB4NjAsIDB4MTQsIDB4N2UsIDB4MjAsIDB4MDAsIDB4MTMsIDB4NTAsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4MzEsIDB4MWMsIAorICAgIDB4ZGEsIDB4YjgsIDB4YTUsIDB4MGEsIDB4YmUsIDB4MjEsIDB4MmUsIDB4NzgsIDB4ZWYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4Y2EsIDB4MjgsIDB4MTIsIDB4MzUsIAorICAgIDB4NGMsIDB4ZGEsIDB4MjgsIDB4NDAsIDB4MDksIDB4MGEsIDB4MjIsIDB4MDksIDB4YjIsIDB4MzUsIDB4MzMsIDB4ZjQsIDB4NTIsIDB4MjQsIDB4MjIsIDB4YzIsIAorICAgIDB4YWYsIDB4ZTUsIDB4MjMsIDB4NjAsIDB4MTQsIDB4N2UsIDB4MjAsIDB4MDAsIDB4MTMsIDB4NTAsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4MzEsIDB4NGMsIAorICAgIDB4ZGEsIDB4YjgsIDB4YTUsIDB4MGEsIDB4YmUsIDB4MjEsIDB4MmUsIDB4NzgsIDB4ZWYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4N2MsIDB4YjIsIDB4MjMsIDB4MGEsIAorICAgIDB4MmIsIDB4NDksIDB4MjIsIDB4MzEsIDB4NTcsIDB4ODksIDB4MjQsIDB4MzEsIDB4NjcsIDB4MzEsIDB4ZDAsIDB4MzIsIDB4MzksIDB4MzIsIDB4YTIsIDB4MzMsIAorICAgIDB4MGIsIDB4MzMsIDB4NzQsIDB4MzMsIDB4ZGQsIDB4MzQsIDB4NDYsIDB4N2UsIDB4MjcsIDB4MDEsIDB4NzksIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIAorICAgIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIAorICAgIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NDksIDB4NDUsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIAorICAgIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIDB4MDEsIDB4ODksIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4ODksIDB4N2UsIAorICAgIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4YjksIDB4ODAsIDB4MjcsIDB4N2UsIDB4NjMsIDB4MDEsIDB4YjksIDB4YTUsIDB4YmUsIDB4MDAsIDB4MWYsIAorICAgIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjEsIDB4MzYsIDB4NDAsIDB4MTEsIDB4NzUsIDB4MmYsIAorICAgIDB4YjMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YzIsIDB4MTgsIDB4NmMsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YjksIDB4MTIsIDB4NjQsIDB4ODYsIDB4MjIsIAorICAgIDB4N2UsIDB4MjcsIDB4MDEsIDB4N2IsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODEsIDB4MDAsIDB4MDksIDB4YjIsIAorICAgIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIAorICAgIDB4NGMsIDB4NzIsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIAorICAgIDB4MDEsIDB4OGIsIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OGIsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4YmEsIDB4ODAsIAorICAgIDB4MjcsIDB4N2UsIDB4NjMsIDB4MDEsIDB4YmEsIDB4YTUsIDB4YmUsIDB4MDAsIDB4MWYsIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIAorICAgIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjEsIDB4MzYsIDB4NDAsIDB4MTEsIDB4NzUsIDB4MmYsIDB4YjMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YzIsIDB4MTksIDB4NmMsIAorICAgIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmEsIDB4MTIsIDB4NjQsIDB4ODYsIDB4MjIsIDB4N2UsIDB4MjcsIDB4MDEsIDB4N2QsIDB4YmUsIDB4MjQsIDB4MDAsIAorICAgIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODIsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIAorICAgIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NGYsIDB4OWYsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIAorICAgIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIDB4MDEsIDB4OGQsIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIAorICAgIDB4OGQsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4YmIsIDB4ODAsIDB4MjcsIDB4N2UsIDB4NjMsIDB4MDEsIDB4YmIsIDB4YTUsIDB4YmUsIAorICAgIDB4MDAsIDB4MWYsIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjEsIDB4MzYsIDB4NDAsIDB4MTEsIAorICAgIDB4NzUsIDB4MmYsIDB4YjMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YzIsIDB4MWEsIDB4NmMsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmIsIDB4MTIsIDB4NjQsIAorICAgIDB4ODYsIDB4MjIsIDB4N2UsIDB4MjcsIDB4MDEsIDB4N2YsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODMsIDB4MDAsIAorICAgIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIAorICAgIDB4MTIsIDB4MTIsIDB4NTIsIDB4Y2MsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIAorICAgIDB4YmUsIDB4MjcsIDB4MDEsIDB4OGYsIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OGYsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIAorICAgIDB4YmMsIDB4ODAsIDB4MjcsIDB4N2UsIDB4NjMsIDB4MDEsIDB4YmMsIDB4YTUsIDB4YmUsIDB4MDAsIDB4MWYsIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIAorICAgIDB4MDAsIDB4N2UsIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjEsIDB4MzYsIDB4NDAsIDB4MTEsIDB4NzUsIDB4MmYsIDB4YjMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YzIsIAorICAgIDB4MWIsIDB4NmMsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmMsIDB4MTIsIDB4NjQsIDB4ODYsIDB4MjIsIDB4N2UsIDB4MjcsIDB4MDEsIDB4ODEsIDB4YmUsIAorICAgIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODQsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIAorICAgIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NTUsIDB4ZjksIDB4N2QsIDB4MjEsIDB4ZGEsIAorICAgIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIDB4MDEsIDB4OTEsIDB4NjgsIDB4MGQsIDB4N2EsIAorICAgIDB4MjcsIDB4MDEsIDB4OTEsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4YmQsIDB4ODAsIDB4MjcsIDB4N2UsIDB4NjMsIDB4MDEsIDB4YmQsIAorICAgIDB4YTUsIDB4YmUsIDB4MDAsIDB4MWYsIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjEsIDB4MzYsIAorICAgIDB4NDAsIDB4MTEsIDB4NzUsIDB4MmYsIDB4YjMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YzIsIDB4MWMsIDB4NmMsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmQsIAorICAgIDB4MTIsIDB4NjQsIDB4ODYsIDB4MjIsIDB4N2UsIDB4MjcsIDB4MDEsIDB4ODMsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIAorICAgIDB4ODUsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIAorICAgIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NTksIDB4MjYsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIAorICAgIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIDB4MDEsIDB4OTMsIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OTMsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIAorICAgIDB4NjMsIDB4MDEsIDB4YmUsIDB4ODAsIDB4MjcsIDB4N2UsIDB4NjMsIDB4MDEsIDB4YmUsIDB4YTUsIDB4YmUsIDB4MDAsIDB4MWYsIDB4N2UsIDB4NjAsIDB4MDEsIAorICAgIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjEsIDB4MzYsIDB4NDAsIDB4MTEsIDB4NzUsIDB4MmYsIDB4YjMsIDB4MTIsIDB4NzMsIAorICAgIDB4MzUsIDB4YzIsIDB4MWQsIDB4NmMsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmUsIDB4MTIsIDB4NjQsIDB4ODYsIDB4MjIsIDB4N2UsIDB4MjcsIDB4MDEsIAorICAgIDB4ODUsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODYsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIAorICAgIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NWMsIDB4NTMsIDB4N2QsIAorICAgIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIDB4MDEsIDB4OTUsIDB4NjgsIAorICAgIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OTUsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4YmYsIDB4ODAsIDB4MjcsIDB4N2UsIDB4NjMsIAorICAgIDB4MDEsIDB4YmYsIDB4YTUsIDB4YmUsIDB4MDAsIDB4MWYsIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIDB4YTAsIDB4YzgsIDB4MTIsIAorICAgIDB4NjEsIDB4MzYsIDB4NDAsIDB4MTEsIDB4NzUsIDB4MmYsIDB4YjMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YzIsIDB4MWUsIDB4NmMsIDB4MDAsIDB4N2EsIDB4MDMsIAorICAgIDB4MDEsIDB4YmYsIDB4MTIsIDB4NjQsIDB4ODYsIDB4MjIsIDB4N2UsIDB4MjcsIDB4MDEsIDB4ODcsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIAorICAgIDB4N2UsIDB4MjQsIDB4ODcsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIAorICAgIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NWYsIDB4ODAsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIAorICAgIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIDB4MDEsIDB4OTcsIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OTcsIDB4N2UsIDB4NjAsIAorICAgIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4YzAsIDB4ODAsIDB4MjcsIDB4N2UsIDB4NjMsIDB4MDEsIDB4YzAsIDB4YTUsIDB4YmUsIDB4MDAsIDB4MWYsIDB4N2UsIAorICAgIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjEsIDB4MzYsIDB4NDAsIDB4MTEsIDB4NzUsIDB4MmYsIDB4YjMsIAorICAgIDB4MTIsIDB4NzMsIDB4MzUsIDB4YzIsIDB4MWYsIDB4NmMsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YzAsIDB4MTIsIDB4NjQsIDB4ODYsIDB4MjIsIDB4YzIsIAorICAgIDB4YWYsIDB4N2UsIDB4MDcsIDB4MDEsIDB4Y2IsIDB4YmUsIDB4MDQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjgsIDB4NzQsIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIAorICAgIDB4MDAsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTUsIDB4MzAsIDB4ZTUsIDB4MWIsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MWEsIDB4YmUsIDB4YjAsIDB4M2YsIDB4MzgsIAorICAgIDB4MGMsIDB4ODUsIDB4MzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzQsIDB4ODAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MWUsIDB4NzQsIDB4MjAsIDB4N2EsIAorICAgIDB4YjMsIDB4OTEsIDB4MTUsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4MzUsIDB4M2IsIDB4MzYsIDB4ZTgsIDB4MzcsIDB4MDAsIDB4MzcsIDB4MWIsIDB4MzcsIDB4YjYsIAorICAgIDB4MzgsIDB4NGUsIDB4MzgsIDB4NjksIDB4MzgsIDB4ZmIsIDB4MzgsIDB4ODQsIDB4MzgsIDB4YzUsIDB4N2MsIDB4YjMsIDB4YmUsIDB4YjAsIDB4MDksIDB4MjgsIAorICAgIDB4MjIsIDB4NzUsIDB4MmYsIDB4MDksIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4NTcsIDB4MDIsIDB4NzQsIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIAorICAgIDB4NzQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTEsIDB4NzQsIDB4NDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4MDEsIDB4N2EsIDB4YjMsIAorICAgIDB4OTEsIDB4MTEsIDB4MjIsIDB4YzAsIDB4YTgsIDB4YzIsIDB4YWYsIDB4MjMsIDB4NmMsIDB4YWEsIDB4MmUsIDB4NTQsIDB4MzQsIDB4ZTYsIDB4MGIsIDB4NTgsIAorICAgIDB4NTAsIDB4ODksIDB4NTQsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4NzUsIDB4MmYsIDB4YjAsIDB4MTIsIDB4NzMsIAorICAgIDB4MzUsIDB4MGEsIDB4MjIsIDB4MDksIDB4YjIsIDB4MzUsIDB4MzMsIDB4NDIsIDB4MjQsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2MsIDB4YjIsIDB4MjMsIDB4MGEsIAorICAgIDB4M2IsIDB4NDksIDB4MzMsIDB4MzUsIDB4NTcsIDB4ODksIDB4MzQsIDB4MzUsIDB4NjcsIDB4MzUsIDB4OTUsIDB4MzUsIDB4YzMsIDB4MzUsIDB4ZjEsIDB4MzYsIAorICAgIDB4MWYsIDB4MzYsIDB4NGQsIDB4MzYsIDB4N2IsIDB4MzYsIDB4YTksIDB4MTIsIDB4NDEsIDB4YmEsIDB4ZDIsIDB4MjgsIDB4ZDIsIDB4MDgsIDB4YzIsIDB4NDAsIAorICAgIDB4YzIsIDB4NDgsIDB4YzIsIDB4MzgsIDB4YzIsIDB4MzAsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YjksIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIAorICAgIDB4N2EsIDB4MDcsIDB4MDEsIDB4OTksIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YTksIDB4MTIsIDB4NDEsIDB4MjcsIDB4MTIsIAorICAgIDB4NWYsIDB4YjcsIDB4MDIsIDB4MzYsIDB4ZDcsIDB4MTIsIDB4NDEsIDB4ZDcsIDB4ZDIsIDB4MjksIDB4ZDIsIDB4MDksIDB4YzIsIDB4NDEsIDB4YzIsIDB4NDksIAorICAgIDB4YzIsIDB4MzksIDB4YzIsIDB4MzEsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmEsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIAorICAgIDB4MDEsIDB4OWIsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YWIsIDB4MTIsIDB4NDEsIDB4MjcsIDB4MTIsIDB4NWYsIDB4ZTAsIAorICAgIDB4MDIsIDB4MzYsIDB4ZDcsIDB4MTIsIDB4NDEsIDB4ZjQsIDB4ZDIsIDB4MmEsIDB4ZDIsIDB4MGEsIDB4YzIsIDB4NDIsIDB4YzIsIDB4NGEsIDB4YzIsIDB4M2EsIAorICAgIDB4YzIsIDB4MzIsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmIsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OWQsIAorICAgIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YWQsIDB4MTIsIDB4NDEsIDB4MjcsIDB4MTIsIDB4NjAsIDB4MDksIDB4MDIsIDB4MzYsIAorICAgIDB4ZDcsIDB4MTIsIDB4NDIsIDB4MTEsIDB4ZDIsIDB4MmIsIDB4ZDIsIDB4MGIsIDB4YzIsIDB4NDMsIDB4YzIsIDB4NGIsIDB4YzIsIDB4M2IsIDB4YzIsIDB4MzMsIAorICAgIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmMsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OWYsIDB4N2UsIDB4MDQsIAorICAgIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YWYsIDB4MTIsIDB4NDEsIDB4MjcsIDB4MTIsIDB4NjAsIDB4MzIsIDB4MDIsIDB4MzYsIDB4ZDcsIDB4MTIsIAorICAgIDB4NDIsIDB4MmUsIDB4ZDIsIDB4MmMsIDB4ZDIsIDB4MGMsIDB4YzIsIDB4NDQsIDB4YzIsIDB4NGMsIDB4YzIsIDB4M2MsIDB4YzIsIDB4MzQsIDB4NmQsIDB4MDAsIAorICAgIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmQsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YTEsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIAorICAgIDB4N2EsIDB4MDcsIDB4MDEsIDB4YjEsIDB4MTIsIDB4NDEsIDB4MjcsIDB4MTIsIDB4NjAsIDB4NWIsIDB4MDIsIDB4MzYsIDB4ZDcsIDB4MTIsIDB4NDIsIDB4NGIsIAorICAgIDB4ZDIsIDB4MmQsIDB4ZDIsIDB4MGQsIDB4YzIsIDB4NDUsIDB4YzIsIDB4NGQsIDB4YzIsIDB4M2QsIDB4YzIsIDB4MzUsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIAorICAgIDB4MDEsIDB4YmUsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YTMsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIAorICAgIDB4MDEsIDB4YjMsIDB4MTIsIDB4NDEsIDB4MjcsIDB4MTIsIDB4NjAsIDB4ODQsIDB4MDIsIDB4MzYsIDB4ZDcsIDB4MTIsIDB4NDIsIDB4NjgsIDB4ZDIsIDB4MmUsIAorICAgIDB4ZDIsIDB4MGUsIDB4YzIsIDB4NDYsIDB4YzIsIDB4NGUsIDB4YzIsIDB4M2UsIDB4YzIsIDB4MzYsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmYsIAorICAgIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YTUsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YjUsIAorICAgIDB4MTIsIDB4NDEsIDB4MjcsIDB4MTIsIDB4NjAsIDB4YWQsIDB4MDIsIDB4MzYsIDB4ZDcsIDB4MTIsIDB4NDIsIDB4ODUsIDB4ZDIsIDB4MmYsIDB4ZDIsIDB4MGYsIAorICAgIDB4YzIsIDB4NDcsIDB4YzIsIDB4NGYsIDB4YzIsIDB4M2YsIDB4YzIsIDB4MzcsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YzAsIDB4N2UsIDB4MDQsIAorICAgIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YTcsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YjcsIDB4MTIsIDB4NDEsIAorICAgIDB4MjcsIDB4MTIsIDB4NjAsIDB4ZDYsIDB4MDIsIDB4MzYsIDB4ZDcsIDB4N2UsIDB4YTAsIDB4ZDAsIDB4N2UsIDB4NjAsIDB4MGYsIDB4MTIsIDB4NjEsIDB4MzYsIAorICAgIDB4NDAsIDB4MDUsIDB4MTIsIDB4NjQsIDB4ODYsIDB4YzIsIDB4ZDcsIDB4MjIsIDB4NzUsIDB4MmYsIDB4YjEsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MGEsIDB4NTIsIAorICAgIDB4MjMsIDB4NmQsIDB4MDAsIDB4NTksIDB4MDUsIDB4MDAsIDB4MzIsIDB4MTIsIDB4NDEsIDB4ODMsIDB4MTIsIDB4NDEsIDB4OWYsIDB4ZDAsIDB4YTgsIDB4MjIsIAorICAgIDB4NzUsIDB4MmYsIDB4YjIsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MGEsIDB4MjIsIDB4MDksIDB4YjIsIDB4MzUsIDB4MzMsIDB4NDIsIDB4MjMsIDB4N2UsIDB4YjAsIAorICAgIDB4OWMsIDB4MTksIDB4YjIsIDB4MDEsIDB4YjksIDB4MTIsIDB4MzEsIDB4NGMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIAorICAgIDB4MDIsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MDksIDB4YjAsIDB4MDAsIDB4MDgsIDB4MTksIAorICAgIDB4MzAsIDB4MDAsIDB4MGMsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDEsIDB4NjgsIDB4MTIsIDB4NDQsIDB4NDAsIDB4Y2EsIDB4YjgsIDB4MDksIDB4YjAsIAorICAgIDB4MDAsIDB4MTAsIDB4NDQsIDB4MDIsIDB4MTksIDB4YjAsIDB4MDAsIDB4MTAsIDB4ZGEsIDB4YjgsIDB4ODAsIDB4MDIsIDB4NTQsIDB4YmYsIDB4N2MsIDB4NzQsIAorICAgIDB4NWUsIDB4NzAsIDB4MDgsIDB4NjgsIDB4MDQsIDB4NDQsIDB4MDgsIDB4ODAsIDB4MDIsIDB4NTQsIDB4ZjcsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4Y2EsIAorICAgIDB4YjgsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4ZGEsIDB4YjgsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4MTksIDB4MzAsIDB4MDAsIAorICAgIDB4MGMsIDB4MGEsIDB4NjIsIDB4MDksIDB4YjYsIDB4MzUsIDB4MzMsIDB4M2UsIDB4MjAsIDB4MGEsIDB4NjIsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDIsIAorICAgIDB4NjgsIDB4MjAsIDB4NDIsIDB4MjcsIDB4Y2EsIDB4YjgsIDB4NzQsIDB4NjEsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4N2UsIDB4NDQsIDB4MDAsIDB4MTAsIAorICAgIDB4NTksIDB4NDYsIDB4MDEsIDB4YTksIDB4MDksIDB4YjAsIDB4MDAsIDB4MTAsIDB4NDQsIDB4MDEsIDB4MTksIDB4YjAsIDB4MDAsIDB4MTAsIDB4ZGEsIDB4YjgsIAorICAgIDB4ODAsIDB4MTEsIDB4ZjQsIDB4NTIsIDB4MjcsIDB4NzQsIDB4YTEsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4N2UsIDB4NDQsIDB4MDAsIDB4MzgsIDB4NTksIAorICAgIDB4NDYsIDB4MDEsIDB4YTksIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2MsIDB4NzQsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4MDksIDB4MzAsIAorICAgIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MDksIDB4YjAsIDB4MDAsIDB4MDgsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIAorICAgIDB4MDEsIDB4NjgsIDB4MDQsIDB4NDQsIDB4ODAsIDB4ODAsIDB4MDIsIDB4NTQsIDB4N2YsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDgsIDB4NjgsIDB4MDQsIAorICAgIDB4NDQsIDB4MDIsIDB4ODAsIDB4MDIsIDB4NTQsIDB4ZmQsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4MTksIDB4MzAsIDB4MDAsIDB4MGMsIDB4MGEsIDB4NjIsIAorICAgIDB4MDksIDB4YjYsIDB4MzUsIDB4MzMsIDB4YTUsIDB4ZmQsIDB4ZjQsIDB4YTUsIDB4ZmUsIDB4Y2EsIDB4MjgsIDB4M2UsIDB4MjAsIDB4MGEsIDB4NjIsIDB4ZGEsIAorICAgIDB4MjgsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDIsIDB4NjgsIDB4MTAsIDB4YTUsIDB4ZWQsIDB4NDIsIDB4MjgsIDB4NDIsIDB4MjYsIDB4N2UsIDB4NDQsIAorICAgIDB4MDAsIDB4MDgsIDB4NTksIDB4NDYsIDB4MDEsIDB4OTksIDB4ODAsIDB4MDQsIDB4YTUsIDB4ZWUsIDB4NTIsIDB4MjgsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIAorICAgIDB4MDQsIDB4NjgsIDB4MTAsIDB4YTUsIDB4ZWQsIDB4NDIsIDB4MjksIDB4NDIsIDB4MjYsIDB4N2UsIDB4NDQsIDB4MDAsIDB4MDgsIDB4NTksIDB4NDYsIDB4MDEsIAorICAgIDB4OTksIDB4ODAsIDB4MTUsIDB4YTUsIDB4ZWUsIDB4NTIsIDB4MjksIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDIsIDB4NzgsIDB4MGEsIDB4NTIsIDB4MjYsIAorICAgIDB4N2UsIDB4NDQsIDB4MDAsIDB4MjAsIDB4NTksIDB4NDYsIDB4MDEsIDB4OTksIDB4MTIsIDB4NDIsIDB4YTIsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2UsIDB4MDQsIAorICAgIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MTksIDB4NDAsIAorICAgIDB4MDAsIDB4MTAsIDB4MTksIDB4MzAsIDB4MDAsIDB4MGMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4MDksIAorICAgIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MTksIDB4NDAsIDB4MDAsIDB4MTgsIDB4MTksIDB4MzAsIDB4MDAsIAorICAgIDB4MGMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4NzUsIDB4MmYsIDB4YjUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIAorICAgIDB4MDksIDB4YjAsIDB4MDAsIDB4MGMsIDB4NDQsIDB4NDAsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4ZTUsIDB4NTgsIDB4YjQsIDB4MDcsIDB4MjMsIDB4MDksIAorICAgIDB4YjAsIDB4MDAsIDB4MTAsIDB4NGUsIDB4YjAsIDB4MDIsIDB4MTksIDB4YjAsIDB4MDAsIDB4MTAsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIAorICAgIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MDksIDB4YjAsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZjcsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDQsIDB4MTksIDB4MzAsIAorICAgIDB4MDAsIDB4MGMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4NzUsIDB4MmYsIDB4YjYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIAorICAgIDB4MDIsIDB4ZTUsIDB4NTgsIDB4YjQsIDB4MDcsIDB4MTgsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIAorICAgIDB4MDksIDB4YjAsIDB4MDAsIDB4MDQsIDB4NDQsIDB4MDgsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDQsIDB4MTksIDB4MzAsIDB4MDAsIDB4MGMsIDB4MDksIDB4YjAsIAorICAgIDB4MDAsIDB4MGMsIDB4NTQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4NzUsIDB4MmYsIDB4YjQsIDB4MTIsIDB4NzMsIAorICAgIDB4MzUsIDB4N2EsIDB4MjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NDEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4YjAsIDB4MDEsIAorICAgIDB4N2UsIDB4YTAsIDB4YzgsIDB4N2MsIDB4NjQsIDB4MTIsIDB4NjEsIDB4MzYsIDB4MTIsIDB4NjQsIDB4ODYsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4MzksIDB4MmUsIAorICAgIDB4MzksIDB4NzUsIDB4MzksIDB4YmMsIDB4M2EsIDB4MDMsIDB4M2EsIDB4NGEsIDB4M2EsIDB4OTEsIDB4M2EsIDB4ZDgsIDB4M2IsIDB4MWYsIDB4NzUsIDB4MmYsIAorICAgIDB4NTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDAsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIAorICAgIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4NjksIDB4N2UsIDB4MjcsIDB4MDEsIDB4NzksIDB4MmQsIDB4MjMsIAorICAgIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MDgsIDB4MmMsIDB4MzgsIDB4MGYsIAorICAgIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4NjksIDB4N2EsIDB4MjcsIDB4MDEsIDB4NzksIDB4MDIsIDB4NDYsIDB4NGYsIDB4N2UsIAorICAgIDB4MTQsIDB4MDQsIDB4MmQsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MmYsIDB4NTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDEsIDB4MTIsIDB4NzMsIAorICAgIDB4MzUsIDB4N2EsIDB4NjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTcsIDB4MDEsIAorICAgIDB4NmIsIDB4N2UsIDB4MjcsIDB4MDEsIDB4N2IsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIAorICAgIDB4MTQsIDB4YmUsIDB4MTQsIDB4MGMsIDB4MmMsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4NmIsIDB4N2EsIAorICAgIDB4MjcsIDB4MDEsIDB4N2IsIDB4MDIsIDB4NDksIDB4N2MsIDB4N2UsIDB4MTQsIDB4MDgsIDB4MmQsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MmYsIDB4NTUsIDB4MTIsIAorICAgIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDIsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIAorICAgIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4NmQsIDB4N2UsIDB4MjcsIDB4MDEsIDB4N2QsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIAorICAgIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MTAsIDB4MmMsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIAorICAgIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4NmQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4N2QsIDB4MDIsIDB4NGMsIDB4YTksIDB4N2UsIDB4MTQsIDB4MGMsIAorICAgIDB4MmQsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MmYsIDB4NTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIAorICAgIDB4NjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4NmYsIDB4N2UsIAorICAgIDB4MjcsIDB4MDEsIDB4N2YsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIAorICAgIDB4MTQsIDB4MTQsIDB4MmMsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4NmYsIDB4N2EsIDB4MjcsIDB4MDEsIAorICAgIDB4N2YsIDB4MDIsIDB4NGYsIDB4ZDYsIDB4N2UsIDB4MTQsIDB4MTAsIDB4MmQsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MmYsIDB4NTUsIDB4MTIsIDB4NzMsIDB4MzUsIAorICAgIDB4NzUsIDB4MmYsIDB4MDQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIAorICAgIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4NzEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4ODEsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIAorICAgIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MTgsIDB4MmMsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIAorICAgIDB4N2EsIDB4MTcsIDB4MDEsIDB4NzEsIDB4N2EsIDB4MjcsIDB4MDEsIDB4ODEsIDB4MDIsIDB4NTMsIDB4MDMsIDB4N2UsIDB4MTQsIDB4MTQsIDB4MmQsIDB4ODAsIAorICAgIDB4ZWIsIDB4NzUsIDB4MmYsIDB4NTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NjEsIDB4MmYsIAorICAgIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4NzMsIDB4N2UsIDB4MjcsIDB4MDEsIAorICAgIDB4ODMsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MWMsIAorICAgIDB4MmMsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4NzMsIDB4N2EsIDB4MjcsIDB4MDEsIDB4ODMsIDB4MDIsIAorICAgIDB4NTYsIDB4MzAsIDB4N2UsIDB4MTQsIDB4MTgsIDB4MmQsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MmYsIDB4NTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIAorICAgIDB4MDYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIAorICAgIDB4N2UsIDB4MTcsIDB4MDEsIDB4NzUsIDB4N2UsIDB4MjcsIDB4MDEsIDB4ODUsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIAorICAgIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MjAsIDB4MmMsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIAorICAgIDB4MDEsIDB4NzUsIDB4N2EsIDB4MjcsIDB4MDEsIDB4ODUsIDB4MDIsIDB4NTksIDB4NWQsIDB4N2UsIDB4MTQsIDB4MWMsIDB4MmQsIDB4ODAsIDB4ZWIsIDB4NzUsIAorICAgIDB4MmYsIDB4NTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDcsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NjEsIDB4MmYsIDB4MTIsIDB4NzMsIAorICAgIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4NzcsIDB4N2UsIDB4MjcsIDB4MDEsIDB4ODcsIDB4MmQsIAorICAgIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MjQsIDB4MmMsIDB4MzgsIAorICAgIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4NzcsIDB4N2EsIDB4MjcsIDB4MDEsIDB4ODcsIDB4MDIsIDB4NWMsIDB4OGEsIAorICAgIDB4N2UsIDB4MTQsIDB4MjAsIDB4MmQsIDB4ODAsIDB4ZWIsIAorCisvLyBTZWdtZW50ICMxNSwgU3RhcnQgQWRkcmVzcyAwMGZmNDAwMCwgTGVuZ3RoIDEzMTA5CisweGZmLDB4MDAsMHgwMCwweDQwLDB4MzUsMHgzMywKKyAgICAweDdlLCAweDA0LCAweDAwLCAweDAxLCAweDdlLCAweDE0LCAweDdmLCAweGY4LCAweDdlLCAweDI0LCAweDAwLCAweGZlLCAweDdkLCAweDMxLCAweDBiLCAweDFhLCAKKyAgICAweDUwLCAweDFiLCAweDBhLCAweDUwLCAweDdlLCAweDE0LCAweDQwLCAweDFiLCAweDAyLCAweDQwLCAweDc0LCAweDdlLCAweGY4LCAweDAwLCAweDU5LCAweDc1LCAKKyAgICAweGIwLCAweGRmLCAweDdlLCAweGIwLCAweDAxLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDdlLCAweGY0LCAweDQwLCAweDMwLCAweDAyLCAweDQwLCAweDhiLCAKKyAgICAweDEyLCAweDc0LCAweDRlLCAweGY1LCAweDJlLCAweDdhLCAweGExLCAweDJkLCAweDdhLCAweDExLCAweDU4LCAweDEyLCAweDZiLCAweDAyLCAweDEyLCAweDQwLCAKKyAgICAweGViLCAweDdlLCAweGIzLCAweDNmLCAweGYxLCAweDYwLCAweDAzLCAweDEyLCAweDQzLCAweDc5LCAweDEyLCAweDZiLCAweGRlLCAweGQyLCAweGFmLCAweDAyLCAKKyAgICAweDMwLCAweDAwLCAweDdlLCAweDA0LCAweDAwLCAweGZmLCAweDdlLCAweDE4LCAweDQwLCAweDYwLCAweDdhLCAweDFjLCAweDAwLCAweDAxLCAweDg5LCAweDE4LCAKKyAgICAweDdlLCAweGIwLCAweDAxLCAweDdhLCAweGIzLCAweDk0LCAweDAwLCAweDdhLCAweGIzLCAweDJjLCAweDM1LCAweDdlLCAweGIwLCAweDAxLCAweDdhLCAweGIzLCAKKyAgICAweDkzLCAweDAwLCAweDg5LCAweDA4LCAweDdlLCAweDA0LCAweDAwLCAweGZmLCAweDdlLCAweDE4LCAweDQwLCAweDgyLCAweDdhLCAweDFjLCAweDAwLCAweDAxLCAKKyAgICAweDg5LCAweDE4LCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDkzLCAweDAwLCAweDg5LCAweDA4LCAweDdlLCAweDA4LCAweDAwLCAweDIwLCAweDdlLCAKKyAgICAweDQ0LCAweDA0LCAweDAwLCAweDdlLCAweDQwLCAweDAwLCAweDdlLCAweGU0LCAweDQwLCAweDlkLCAweDAyLCAweDczLCAweDUwLCAweDdlLCAweDA4LCAweDAxLCAKKyAgICAweDU5LCAweDdlLCAweDQ0LCAweDJhLCAweGRkLCAweDdlLCAweDQwLCAweDAwLCAweDdlLCAweGU0LCAweDQwLCAweGFmLCAweDAyLCAweDczLCAweDUwLCAweDdlLCAKKyAgICAweDA4LCAweDAwLCAweDU5LCAweDdlLCAweDQ0LCAweDAxLCAweDAwLCAweDdlLCAweDQwLCAweDUzLCAweDdlLCAweGU0LCAweDQwLCAweGMxLCAweDAyLCAweDczLCAKKyAgICAweDUwLCAweDc1LCAweDU3LCAweDAxLCAweDc1LCAweDU2LCAweDAwLCAweDdlLCAweDA0LCAweDAwLCAweDA4LCAweDc1LCAweDU0LCAweDU4LCAweDc1LCAweDU1LCAKKyAgICAweDA4LCAweDc1LCAweDUxLCAweDA4LCAweDc1LCAweDUzLCAweDAxLCAweDc1LCAweDg5LCAweDAxLCAweDc1LCAweDhhLCAweDAxLCAweDc1LCAweDhjLCAweDAwLCAKKyAgICAweGQyLCAweDhjLCAweDdlLCAweDA0LCAweDAwLCAweDAyLCAweDdhLCAweDA1LCAweDQyLCAweDg5LCAweGY0LCAweDc1LCAweGI3LCAweDdmLCAweDc1LCAweGI4LCAKKyAgICAweDdmLCAweDc1LCAweGIzLCAweDAxLCAweDc1LCAweGIyLCAweDAxLCAweGQyLCAweGE5LCAweDIyLCAweDc1LCAweGIwLCAweGRmLCAweGU0LCAweGQ1LCAweGUwLCAKKyAgICAweGZkLCAweDc1LCAweGIwLCAweGVmLCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDJlLCAweDdlLCAweGEwLCAweDA4LCAweDE5LCAweGEyLCAKKyAgICAweDAwLCAweDEwLCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweGYyLCAweDdlLCAweDIwLCAweDAwLCAweDEyLCAweDQxLCAweDgzLCAweDBiLCAKKyAgICAweDIwLCAweGJlLCAweDIxLCAweDJlLCAweDc4LCAweGY2LCAweDIyLCAweDdlLCAweDA0LCAweDgwLCAweDAwLCAweDRjLCAweDAyLCAweDc0LCAweGJmLCAweDE5LCAKKyAgICAweGIwLCAweDAwLCAweDBjLCAweDc0LCAweDEwLCAweDE5LCAweGIwLCAweDAwLCAweDA4LCAweDc0LCAweDgwLCAweDE5LCAweGIwLCAweDAwLCAweDBjLCAweDdlLCAKKyAgICAweDU0LCAweDAwLCAweDAyLCAweDE5LCAweGEwLCAweDAwLCAweDA0LCAweDE5LCAweGIwLCAweDAwLCAweDAwLCAweDc0LCAweDAzLCAweDE5LCAweGIwLCAweDAwLCAKKyAgICAweDBjLCAweDc0LCAweDA3LCAweDIwLCAweDY4LCAweDAyLCAweDc0LCAweDBmLCAweDE5LCAweGIwLCAweDAwLCAweDA0LCAweDMwLCAweDZiLCAweDE3LCAweDc0LCAKKyAgICAweGJmLCAweDE5LCAweGIwLCAweDAwLCAweDBjLCAweDc0LCAweDI4LCAweDIwLCAweDY4LCAweDAyLCAweDc0LCAweDIwLCAweDE5LCAweGIwLCAweDAwLCAweDA0LCAKKyAgICAweDc0LCAweDAzLCAweDE5LCAweGIwLCAweDAwLCAweDBjLCAweDc0LCAweGE3LCAweDE5LCAweGIwLCAweDAwLCAweDA4LCAweDc0LCAweDBjLCAweDE5LCAweGIwLCAKKyAgICAweDAwLCAweDEwLCAweDIyLCAweDdlLCAweDA0LCAweDgwLCAweDAwLCAweDRjLCAweDAyLCAweGU0LCAweDE5LCAweGIwLCAweDAwLCAweDA0LCAweDA5LCAweGIwLCAKKyAgICAweDAwLCAweDEwLCAweDU0LCAweDA4LCAweDE5LCAweGIwLCAweDAwLCAweDEwLCAweDc0LCAweGE3LCAweDE5LCAweGIwLCAweDAwLCAweDA4LCAweDIyLCAweDdjLCAKKyAgICAweGIyLCAweDIzLCAweDBhLCAweDJiLCAweDQ5LCAweDIyLCAweDQxLCAweGFhLCAweDg5LCAweDI0LCAweDQxLCAweGJhLCAweDQxLCAweGQ3LCAweDQxLCAweGY0LCAKKyAgICAweDQyLCAweDExLCAweDQyLCAweDJlLCAweDQyLCAweDRiLCAweDQyLCAweDY4LCAweDQyLCAweDg1LCAweGMyLCAweDEwLCAweGMyLCAweDE4LCAweGMyLCAweDA4LCAKKyAgICAweDdlLCAweDA0LCAweDA0LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDU5LCAweDdhLCAweDA3LCAweDAxLCAweDY5LCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAKKyAgICAweDAxLCAweDc5LCAweDdhLCAweDA3LCAweDAxLCAweDg5LCAweDIyLCAweGMyLCAweDExLCAweGMyLCAweDE5LCAweGMyLCAweDA5LCAweDdlLCAweDA0LCAweDA4LCAKKyAgICAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDViLCAweDdhLCAweDA3LCAweDAxLCAweDZiLCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDdiLCAweDdhLCAKKyAgICAweDA3LCAweDAxLCAweDhiLCAweDIyLCAweGMyLCAweDEyLCAweGMyLCAweDFhLCAweGMyLCAweDBhLCAweDdlLCAweDA0LCAweDBjLCAweDJkLCAweDdhLCAweDA3LCAKKyAgICAweDAxLCAweDVkLCAweDdhLCAweDA3LCAweDAxLCAweDZkLCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDdkLCAweDdhLCAweDA3LCAweDAxLCAweDhkLCAKKyAgICAweDIyLCAweGMyLCAweDEzLCAweGMyLCAweDFiLCAweGMyLCAweDBiLCAweDdlLCAweDA0LCAweDEwLCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDVmLCAweDdhLCAKKyAgICAweDA3LCAweDAxLCAweDZmLCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDdmLCAweDdhLCAweDA3LCAweDAxLCAweDhmLCAweDIyLCAweGMyLCAweDE0LCAKKyAgICAweGMyLCAweDFjLCAweGMyLCAweDBjLCAweDdlLCAweDA0LCAweDE0LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDYxLCAweDdhLCAweDA3LCAweDAxLCAweDcxLCAKKyAgICAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDgxLCAweDdhLCAweDA3LCAweDAxLCAweDkxLCAweDIyLCAweGMyLCAweDE1LCAweGMyLCAweDFkLCAweGMyLCAKKyAgICAweDBkLCAweDdlLCAweDA0LCAweDE4LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDYzLCAweDdhLCAweDA3LCAweDAxLCAweDczLCAweDZkLCAweDAwLCAweDdhLCAKKyAgICAweDA3LCAweDAxLCAweDgzLCAweDdhLCAweDA3LCAweDAxLCAweDkzLCAweDIyLCAweGMyLCAweDE2LCAweGMyLCAweDFlLCAweGMyLCAweDBlLCAweDdlLCAweDA0LCAKKyAgICAweDFjLCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDY1LCAweDdhLCAweDA3LCAweDAxLCAweDc1LCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDg1LCAKKyAgICAweDdhLCAweDA3LCAweDAxLCAweDk1LCAweDIyLCAweGMyLCAweDE3LCAweGMyLCAweDFmLCAweGMyLCAweDBmLCAweDdlLCAweDA0LCAweDIwLCAweDJkLCAweDdhLCAKKyAgICAweDA3LCAweDAxLCAweDY3LCAweDdhLCAweDA3LCAweDAxLCAweDc3LCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDg3LCAweDdhLCAweDA3LCAweDAxLCAKKyAgICAweDk3LCAweDIyLCAweDdjLCAweGIyLCAweDIzLCAweDBhLCAweDJiLCAweDQ5LCAweDIyLCAweDQyLCAweGFkLCAweDg5LCAweDI0LCAweDQyLCAweGJkLCAweDQyLCAKKyAgICAweGQ0LCAweDQyLCAweGViLCAweDQzLCAweDAyLCAweDQzLCAweDE5LCAweDQzLCAweDMwLCAweDQzLCAweDQ3LCAweDQzLCAweDVlLCAweDMwLCAweDQwLCAweDA3LCAKKyAgICAweDIwLCAweDU4LCAweDA0LCAweGMyLCAweDI4LCAweDgwLCAweDBjLCAweDMwLCAweDQ4LCAweDA3LCAweDIwLCAweDUwLCAweDA0LCAweGMyLCAweDI4LCAweDgwLCAKKyAgICAweDAyLCAweGQyLCAweDI4LCAweDIyLCAweDMwLCAweDQxLCAweDA3LCAweDIwLCAweDU5LCAweDA0LCAweGMyLCAweDI5LCAweDgwLCAweDBjLCAweDMwLCAweDQ5LCAKKyAgICAweDA3LCAweDIwLCAweDUxLCAweDA0LCAweGMyLCAweDI5LCAweDgwLCAweDAyLCAweGQyLCAweDI5LCAweDIyLCAweDMwLCAweDQyLCAweDA3LCAweDIwLCAweDVhLCAKKyAgICAweDA0LCAweGMyLCAweDJhLCAweDgwLCAweDBjLCAweDMwLCAweDRhLCAweDA3LCAweDIwLCAweDUyLCAweDA0LCAweGMyLCAweDJhLCAweDgwLCAweDAyLCAweGQyLCAKKyAgICAweDJhLCAweDIyLCAweDMwLCAweDQzLCAweDA3LCAweDIwLCAweDViLCAweDA0LCAweGMyLCAweDJiLCAweDgwLCAweDBjLCAweDMwLCAweDRiLCAweDA3LCAweDIwLCAKKyAgICAweDUzLCAweDA0LCAweGMyLCAweDJiLCAweDgwLCAweDAyLCAweGQyLCAweDJiLCAweDIyLCAweDMwLCAweDQ0LCAweDA3LCAweDIwLCAweDVjLCAweDA0LCAweGMyLCAKKyAgICAweDJjLCAweDgwLCAweDBjLCAweDMwLCAweDRjLCAweDA3LCAweDIwLCAweDU0LCAweDA0LCAweGMyLCAweDJjLCAweDgwLCAweDAyLCAweGQyLCAweDJjLCAweDIyLCAKKyAgICAweDMwLCAweDQ1LCAweDA3LCAweDIwLCAweDVkLCAweDA0LCAweGMyLCAweDJkLCAweDgwLCAweDBjLCAweDMwLCAweDRkLCAweDA3LCAweDIwLCAweDU1LCAweDA0LCAKKyAgICAweGMyLCAweDJkLCAweDgwLCAweDAyLCAweGQyLCAweDJkLCAweDIyLCAweDMwLCAweDQ2LCAweDA3LCAweDIwLCAweDVlLCAweDA0LCAweGMyLCAweDJlLCAweDgwLCAKKyAgICAweDBjLCAweDMwLCAweDRlLCAweDA3LCAweDIwLCAweDU2LCAweDA0LCAweGMyLCAweDJlLCAweDgwLCAweDAyLCAweGQyLCAweDJlLCAweDIyLCAweDMwLCAweDQ3LCAKKyAgICAweDA3LCAweDIwLCAweDVmLCAweDA0LCAweGMyLCAweDJmLCAweDgwLCAweDBjLCAweDMwLCAweDRmLCAweDA3LCAweDIwLCAweDU3LCAweDA0LCAweGMyLCAweDJmLCAKKyAgICAweDgwLCAweDAyLCAweGQyLCAweDJmLCAweDIyLCAweDQ0LCAweDY2LCAweDQzLCAweDhhLCAweGJlLCAweGIwLCAweDAyLCAweDQwLCAweDAxLCAweDIyLCAweDIzLCAKKyAgICAweDBhLCAweDViLCAweDQ5LCAweDU1LCAweDQzLCAweDc1LCAweDk5LCAweDU0LCAweGQzLCAweDIyLCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDk0LCAKKyAgICAweDAwLCAweDdhLCAweGIzLCAweDJjLCAweDM1LCAweDEyLCAweDQ0LCAweDdhLCAweDdlLCAweDA0LCAweDI4LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweGMxLCAKKyAgICAweDdhLCAweDA3LCAweDAxLCAweGMzLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweGM3LCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAKKyAgICAweDdlLCAweDA0LCAweDY2LCAweDdmLCAweDdhLCAweDA1LCAweDRiLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAKKyAgICAweGIzLCAweDkxLCAweDFjLCAweDc0LCAweDEyLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDc0LCAweDQwLCAweDdhLCAweGIzLCAweDkxLCAweDA3LCAweDc0LCAKKyAgICAweDFlLCAweDdhLCAweGIzLCAweDkxLCAweDEwLCAweDc0LCAweDQ4LCAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDc0LCAweDEwLCAweDdhLCAweGIzLCAweDkxLCAKKyAgICAweDEzLCAweDc0LCAweDNmLCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDc0LCAweDQwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAKKyAgICAweGIzLCAweDkxLCAweDFjLCAweDc0LCAweDE0LCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDc0LCAweDQwLCAweDdhLCAweGIzLCAweDkxLCAweDA3LCAweDc0LCAKKyAgICAweDE2LCAweDdhLCAweGIzLCAweDkxLCAweDEwLCAweDc0LCAweDA4LCAweDdhLCAweGIzLCAweDkxLCAweDExLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAKKyAgICAweDEzLCAweDc0LCAweDNmLCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDc0LCAweDYwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAKKyAgICAweGIzLCAweDkxLCAweDFjLCAweDc0LCAweDE2LCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDA3LCAweDc0LCAKKyAgICAweDJmLCAweDdhLCAweGIzLCAweDkxLCAweDEwLCAweDc0LCAweDQ4LCAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDc0LCAweDEwLCAweDdhLCAweGIzLCAweDkxLCAKKyAgICAweDEzLCAweDc0LCAweDNmLCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDc0LCAweDBmLCAweDdhLCAKKyAgICAweGIzLCAweDkxLCAweDA3LCAweDEyLCAweDQwLCAweGZhLCAweDdlLCAweDIwLCAweDAwLCAweDEyLCAweDQxLCAweDlmLCAweDBiLCAweDIwLCAweGJlLCAweDIxLCAKKyAgICAweDJlLCAweDc4LCAweGY2LCAweGQyLCAweGE4LCAweDIyLCAweDdlLCAweGIwLCAweDAxLCAweDdhLCAweGIzLCAweDk0LCAweDAwLCAweDdhLCAweGIzLCAweDJjLCAKKyAgICAweDM1LCAweDEyLCAweDQ0LCAweDdhLCAweDc1LCAweGIwLCAweGRmLCAweGMyLCAweGE4LCAweDIyLCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAKKyAgICAweDc0LCAweDAxLCAweDdhLCAweGIzLCAweDkxLCAweDA3LCAweDdlLCAweDIwLCAweDA0LCAweDdjLCAweGIyLCAweGMyLCAweGQ3LCAweDEzLCAweDEzLCAweDEzLCAKKyAgICAweDEzLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAweGIzLCAweDkxLCAweDFjLCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAKKyAgICAweDEyLCAweGE1LCAweGRhLCAweGU1LCAweDIyLCAweGNhLCAweDA5LCAweDEyLCAweDMwLCAweDBlLCAweDEwLCAweDAxLCAweDM0LCAweGQ1LCAweDUxLCAweDQwLCAKKyAgICAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDdlLCAweGIzLCAweDkxLCAweDA3LCAKKyAgICAweDc0LCAweDAzLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDdlLCAweGIzLCAweDkxLCAweDA3LCAweDdlLCAweGIzLCAweDkxLCAweDE0LCAweDdlLCAweGIzLCAKKyAgICAweDkxLCAweDA0LCAweDYzLCAweDUzLCAweDAxLCAweDdlLCAweDAwLCAweDU0LCAweDJlLCAweDAxLCAweDUzLCAweGE1LCAweGU2LCAweGY1LCAweDUxLCAweDgwLCAKKyAgICAweDEyLCAweDIwLCAweDAyLCAweDFkLCAweDc1LCAweDUzLCAweDAwLCAweDg1LCAweDU0LCAweDUxLCAweGQyLCAweDAyLCAweDc0LCAweDAzLCAweDgwLCAweDBkLCAKKyAgICAweDMwLCAweDAyLCAweDBlLCAweGMyLCAweDAyLCAweDdlLCAweDAwLCAweDU2LCAweDJlLCAweDAxLCAweDUzLCAweGE1LCAweGU2LCAweDdhLCAweGIzLCAweDkwLCAKKyAgICAweDAwLCAweGRhLCAweDA5LCAweDMyLCAweDQ1LCAweDZmLCAweDQ1LCAweDhiLCAweDQ1LCAweGE3LCAweDQ1LCAweGMzLCAweDQ1LCAweGRmLCAweDQ1LCAweGZiLCAKKyAgICAweDQ2LCAweDE3LCAweDQ2LCAweDMzLCAweGMwLCAweGQwLCAweGMwLCAweGQxLCAweGMwLCAweGUwLCAweGMwLCAweGYwLCAweGNhLCAweDBiLCAweGNhLCAweDFiLCAKKyAgICAweGNhLCAweDJiLCAweGQyLCAweDAxLCAweDc1LCAweDJmLCAweDg5LCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDkwLCAweDAwLCAweDYwLCAweDI4LCAKKyAgICAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDdlLCAweDAwLCAweDAwLCAweDEzLCAweDUwLCAweDEzLCAweGNhLCAweDBiLCAweGNhLCAweDU5LCAweDdjLCAweGIwLCAKKyAgICAweDIzLCAweDBhLCAweDJiLCAweDQ5LCAweDIyLCAweDQ1LCAweDA0LCAweDk5LCAweDI0LCAweGRhLCAweDU5LCAweGRhLCAweDBiLCAweGE1LCAweDBhLCAweGE1LCAKKyAgICAweDA4LCAweGJlLCAweDAxLCAweDJlLCAweDc4LCAweGUxLCAweDgwLCAweGQyLCAweDMwLCAweDA0LCAweDA1LCAweGMyLCAweDA0LCAweDEyLCAweDY0LCAweDg2LCAKKyAgICAweGRhLCAweDJiLCAweGRhLCAweDFiLCAweGRhLCAweDBiLCAweGQwLCAweGYwLCAweGQwLCAweGUwLCAweGQwLCAweGQxLCAweGQwLCAweGQwLCAweDMyLCAweDA5LCAKKyAgICAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDE0LCAweDc1LCAweDJmLCAweDgwLCAweDEyLCAweDczLCAweDM1LCAweDU0LCAweDNlLCAweDBhLCAweDViLCAKKyAgICAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDYxLCAweGFiLCAweDg5LCAweDU0LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAKKyAgICAweGUwLCAweDE0LCAweDc1LCAweDJmLCAweDgxLCAweDEyLCAweDczLCAweDM1LCAweDU0LCAweDNlLCAweDBhLCAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAKKyAgICAweDY5LCAweDUyLCAweDYxLCAweGViLCAweDg5LCAweDU0LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDE0LCAweDc1LCAweDJmLCAKKyAgICAweDgyLCAweDEyLCAweDczLCAweDM1LCAweDU0LCAweDNlLCAweDBhLCAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDYyLCAweDJiLCAKKyAgICAweDg5LCAweDU0LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDE0LCAweDc1LCAweDJmLCAweDgzLCAweDEyLCAweDczLCAweDM1LCAKKyAgICAweDU0LCAweDNlLCAweDBhLCAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDYyLCAweDZiLCAweDg5LCAweDU0LCAweDIyLCAweDA5LCAKKyAgICAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDE0LCAweDc1LCAweDJmLCAweDg0LCAweDEyLCAweDczLCAweDM1LCAweDU0LCAweDNlLCAweDBhLCAweDViLCAKKyAgICAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDYyLCAweGFiLCAweDg5LCAweDU0LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAKKyAgICAweGUwLCAweDE0LCAweDc1LCAweDJmLCAweDg1LCAweDEyLCAweDczLCAweDM1LCAweDU0LCAweDNlLCAweDBhLCAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAKKyAgICAweDY5LCAweDUyLCAweDYyLCAweGViLCAweDg5LCAweDU0LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDE0LCAweDc1LCAweDJmLCAKKyAgICAweDg2LCAweDEyLCAweDczLCAweDM1LCAweDU0LCAweDNlLCAweDBhLCAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDYzLCAweDJiLCAKKyAgICAweDg5LCAweDU0LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDE0LCAweDc1LCAweDJmLCAweDg3LCAweDEyLCAweDczLCAweDM1LCAKKyAgICAweDU0LCAweDNlLCAweDBhLCAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDYzLCAweDZiLCAweDg5LCAweDU0LCAweDIyLCAweDEwLCAKKyAgICAweDA4LCAweDAxLCAweDIyLCAweDIwLCAweDI4LCAweDAzLCAweGQyLCAweDA4LCAweDIyLCAweDc1LCAweDJmLCAweGEwLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAKKyAgICAweDE0LCAweDgwLCAweDAwLCAweDgwLCAweDA2LCAweDIwLCAweDI4LCAweDAzLCAweGQyLCAweDA4LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAKKyAgICAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAweDEyLCAweDQ5LCAweDQ1LCAweDMwLCAweDMwLCAweDA2LCAweDIwLCAweGU2LCAKKyAgICAweDRmLCAweGQyLCAweDA4LCAweDIyLCAweDMwLCAweGU2LCAweDAyLCAweGQyLCAweDYwLCAweDdlLCAweDM3LCAweDAxLCAweDc5LCAweDdlLCAweDI3LCAweDAxLCAKKyAgICAweDk5LCAweDlkLCAweDMyLCAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMyLCAweDdhLCAweDA1LCAweDMyLCAweDdhLCAweDM3LCAweDAxLCAKKyAgICAweDc5LCAweDdlLCAweDM3LCAweDAxLCAweDU5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDA4LCAweDJjLCAweDM4LCAweDY4LCAweDdhLCAKKyAgICAweDQ3LCAweDAxLCAweDU5LCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAKKyAgICAweDY5LCAweGYwLCAweDEwLCAweDYwLCAweGM0LCAweDIyLCAweGMyLCAweDYwLCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAKKyAgICAweDdlLCAweDI3LCAweDAxLCAweDc5LCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweDk5LCAweDI4LCAweDA0LCAKKyAgICAweDdlLCAweDI3LCAweDAxLCAweDk5LCAweDdlLCAweDM3LCAweDAxLCAweDc5LCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMyLCAweDdhLCAKKyAgICAweDA1LCAweDMyLCAweDdhLCAweDM3LCAweDAxLCAweDc5LCAweDdlLCAweDM3LCAweDAxLCAweDU5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAKKyAgICAweDA4LCAweDJjLCAweDM4LCAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDU5LCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAKKyAgICAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDY5LCAweGYwLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAKKyAgICAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDA4LCAweDJkLCAweDlkLCAweDI0LCAweDEyLCAweDY5LCAweGYwLCAweDdlLCAweDM0LCAweDA0LCAweDJkLCAKKyAgICAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDU5LCAweDEyLCAweDY5LCAweGYwLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAKKyAgICAweDAyLCAweDQ2LCAweGMyLCAweDIyLCAweGQyLCAweDA4LCAweDdlLCAweDA0LCAweDA0LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDU5LCAweDdhLCAweDA3LCAKKyAgICAweDAxLCAweDY5LCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDc1LCAweDJmLCAweDAwLCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAKKyAgICAweDJmLCAweDkyLCAweDEyLCAweDczLCAweDM1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAKKyAgICAweGI4LCAweDc4LCAweDY4LCAweDdlLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDI3LCAweDAxLCAweGE5LCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAKKyAgICAweDMyLCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAweDM4LCAweDM0LCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMwLCAweDdhLCAweDA1LCAweDMwLCAweDdhLCAKKyAgICAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDM3LCAweDAxLCAweGM5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAKKyAgICAweDNjLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDdlLCAweDI0LCAweDAwLCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAweGE5LCAweDFiLCAweDM4LCAweDIwLCAKKyAgICAweDBiLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDZhLCAweDYzLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAKKyAgICAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDM4LCAweDBhLCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDEwLCAweDIyLCAweDgwLCAweDdmLCAweDdhLCAweDUxLCAweDJmLCAKKyAgICAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDI4LCAweDJkLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDAwLCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAKKyAgICAweGE5LCAweDllLCAweDI0LCAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDZhLCAweDYzLCAweDdlLCAKKyAgICAweDM0LCAweDI0LCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDAyLCAweDZhLCAweDYzLCAweDdhLCAweDM5LCAKKyAgICAweGMwLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAKKyAgICAweDdjLCAweGI2LCAweDU0LCAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDAwLCAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAKKyAgICAweDM1LCAweDc1LCAweDJmLCAweDkzLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGJkLCAweDA0LCAweDY4LCAKKyAgICAweDJiLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ3LCAweDAxLCAweGNiLCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGNiLCAweDJlLCAKKyAgICAweDM1LCAweDMwLCAweDdhLCAweDM1LCAweDMwLCAweDIyLCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAweDIyLCAKKyAgICAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDI4LCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAKKyAgICAweDgwLCAweGNmLCAweDdlLCAweDA3LCAweDAxLCAweGNiLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAKKyAgICAweDAxLCAweGM5LCAweDdlLCAweDQ0LCAweDI4LCAweDJkLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQyLCAweDdkLCAweDcwLCAKKyAgICAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAKKyAgICAweDdkLCAweDMyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAKKyAgICAweDE5LCAweGIwLCAweDdhLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAweDQ4LCAweDFlLCAweDc1LCAweDJmLCAKKyAgICAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDM4LCAKKyAgICAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDEwLCAweDIyLCAweGRhLCAweGI4LCAKKyAgICAweDMwLCAweGUwLCAweGQ4LCAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDQ4LCAweDFlLCAweGRhLCAweGI4LCAweDAyLCAweDQ5LCAKKyAgICAweDQ1LCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAweDJmLCAKKyAgICAweDEyLCAweDczLCAweDM1LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDBhLCAweDY4LCAweDFkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAKKyAgICAweDA0LCAweGQyLCAweDU4LCAweDgwLCAweDAyLCAweGMyLCAweDU4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDUwLCAKKyAgICAweDgwLCAweDAyLCAweGMyLCAweDUwLCAweDEyLCAweDQyLCAweGJkLCAweDAyLCAweDYxLCAweDEzLCAweDc1LCAweDJmLCAweDkxLCAweDEyLCAweDczLCAweDM1LCAKKyAgICAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAweGIxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAweDdlLCAKKyAgICAweGEwLCAweDgwLCAweDAyLCAweDYxLCAweDEzLCAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYxLCAweDEzLCAKKyAgICAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAweDAwLCAKKyAgICAweDEyLCAweDYxLCAweDM2LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDQ4LCAweDcyLCAweDc1LCAweDJmLCAKKyAgICAweDk1LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDk2LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDEwLCAweDA5LCAweDAxLCAweDIyLCAKKyAgICAweDIwLCAweDI5LCAweDAzLCAweGQyLCAweDA5LCAweDIyLCAweDc1LCAweDJmLCAweGExLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE0LCAweDgxLCAweDAwLCAKKyAgICAweDgwLCAweDA2LCAweDIwLCAweDI5LCAweDAzLCAweGQyLCAweDA5LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAKKyAgICAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAweDEyLCAweDRjLCAweDcyLCAweDMwLCAweDMxLCAweDA2LCAweDIwLCAweGU2LCAweDRmLCAweGQyLCAweDA5LCAKKyAgICAweDIyLCAweDMwLCAweGU2LCAweDAyLCAweGQyLCAweDYxLCAweDdlLCAweDM3LCAweDAxLCAweDdiLCAweDdlLCAweDI3LCAweDAxLCAweDliLCAweDlkLCAweDMyLCAKKyAgICAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDM0LCAweDdhLCAweDA1LCAweDM0LCAweDdhLCAweDM3LCAweDAxLCAweDdiLCAweDdlLCAweDM3LCAKKyAgICAweDAxLCAweDViLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDBjLCAweDJjLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAweDViLCAKKyAgICAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDY5LCAweGYwLCAweDEwLCAKKyAgICAweDYxLCAweGM0LCAweDIyLCAweGMyLCAweDYxLCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAweDAxLCAKKyAgICAweDdiLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweDliLCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAweDAxLCAKKyAgICAweDliLCAweDdlLCAweDM3LCAweDAxLCAweDdiLCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDM0LCAweDdhLCAweDA1LCAweDM0LCAweDdhLCAKKyAgICAweDM3LCAweDAxLCAweDdiLCAweDdlLCAweDM3LCAweDAxLCAweDViLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDBjLCAweDJjLCAweDM4LCAKKyAgICAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDViLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAKKyAgICAweDM1LCAweDAyLCAweDY5LCAweGYwLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAKKyAgICAweDllLCAweDQ0LCAweDBjLCAweDJkLCAweDlkLCAweDI0LCAweDEyLCAweDY5LCAweGYwLCAweDdlLCAweDM0LCAweDA4LCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAKKyAgICAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDViLCAweDEyLCAweDY5LCAweGYwLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDQ5LCAweGVmLCAKKyAgICAweDIyLCAweGQyLCAweDA5LCAweDdlLCAweDA0LCAweDA4LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDViLCAweDdhLCAweDA3LCAweDAxLCAweDZiLCAweDc1LCAKKyAgICAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDc1LCAweDJmLCAweDAwLCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDkyLCAweDEyLCAKKyAgICAweDczLCAweDM1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAweDY4LCAKKyAgICAweDdlLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDI3LCAweDAxLCAweGFiLCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAweDM0LCAKKyAgICAweDA0LCAweDAwLCAweDM4LCAweDM0LCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMwLCAweDdhLCAweDA1LCAweDMwLCAweDdhLCAweDM3LCAweDAxLCAweGNiLCAKKyAgICAweDdlLCAweDM3LCAweDAxLCAweGM5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAweDNjLCAweDdhLCAweDQ3LCAKKyAgICAweDAxLCAweGM5LCAweDdlLCAweDI0LCAweDAxLCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAweGFiLCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAweDdhLCAKKyAgICAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDZhLCAweDYzLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDM5LCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAKKyAgICAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDExLCAweDIyLCAweDgwLCAweDdmLCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAKKyAgICAweDllLCAweDQ0LCAweDI4LCAweDJkLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDAxLCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGFiLCAweDllLCAweDI0LCAKKyAgICAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDZhLCAweDYzLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAKKyAgICAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDAyLCAweDZhLCAweDYzLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAweDM0LCAKKyAgICAweDI0LCAweDJkLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAweDU0LCAKKyAgICAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDAxLCAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAweDJmLCAKKyAgICAweDkzLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGJkLCAweDA0LCAweDY4LCAweDJiLCAweDdhLCAweDA3LCAKKyAgICAweDAxLCAweGM5LCAweDdlLCAweDQ3LCAweDAxLCAweGNiLCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGNiLCAweDJlLCAweDM1LCAweDMwLCAweDdhLCAKKyAgICAweDM1LCAweDMwLCAweDIyLCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAweDI0LCAKKyAgICAweDJkLCAweDgwLCAweDI4LCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweGNmLCAweDdlLCAKKyAgICAweDA3LCAweDAxLCAweGNiLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAKKyAgICAweDQ0LCAweDI4LCAweDJkLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQyLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAweGJkLCAKKyAgICAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAweDA5LCAKKyAgICAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAweDdhLCAKKyAgICAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAweDRiLCAweDRiLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAKKyAgICAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDM5LCAweDBhLCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDExLCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAKKyAgICAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDRiLCAweDRiLCAweGRhLCAweGI4LCAweDAyLCAweDRjLCAweDcyLCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAweDJmLCAweDEyLCAweDczLCAweDM1LCAKKyAgICAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDBhLCAweDY4LCAweDFkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDU5LCAKKyAgICAweDgwLCAweDAyLCAweGMyLCAweDU5LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDUxLCAweDgwLCAweDAyLCAweGMyLCAKKyAgICAweDUxLCAweDEyLCAweDQyLCAweGQ0LCAweDAyLCAweDYxLCAweDEzLCAweDc1LCAweDJmLCAweDkxLCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAKKyAgICAweDE0LCAweDdhLCAweGIxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAweDAyLCAKKyAgICAweDYxLCAweDEzLCAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYxLCAweDEzLCAweGNhLCAweGI4LCAweDVlLCAKKyAgICAweGIwLCAweDFjLCAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYxLCAweDM2LCAKKyAgICAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDRiLCAweDlmLCAweDc1LCAweDJmLCAweDk1LCAweDEyLCAweDczLCAKKyAgICAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDk2LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDEwLCAweDBhLCAweDAxLCAweDIyLCAweDIwLCAweDJhLCAweDAzLCAKKyAgICAweGQyLCAweDBhLCAweDIyLCAweDc1LCAweDJmLCAweGEyLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE0LCAweDgyLCAweDAwLCAweDgwLCAweDA2LCAweDIwLCAKKyAgICAweDJhLCAweDAzLCAweGQyLCAweDBhLCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAKKyAgICAweDY4LCAweDAzLCAweDEyLCAweDRmLCAweDlmLCAweDMwLCAweDMyLCAweDA2LCAweDIwLCAweGU2LCAweDRmLCAweGQyLCAweDBhLCAweDIyLCAweDMwLCAweGU2LCAKKyAgICAweDAyLCAweGQyLCAweDYyLCAweDdlLCAweDM3LCAweDAxLCAweDdkLCAweDdlLCAweDI3LCAweDAxLCAweDlkLCAweDlkLCAweDMyLCAweDQwLCAweDMxLCAweDdkLCAKKyAgICAweDAyLCAweDJlLCAweDA1LCAweDM2LCAweDdhLCAweDA1LCAweDM2LCAweDdhLCAweDM3LCAweDAxLCAweDdkLCAweDdlLCAweDM3LCAweDAxLCAweDVkLCAweDdkLCAKKyAgICAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDEwLCAweDJjLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAweDVkLCAweDc1LCAweDJmLCAweDk0LCAKKyAgICAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDY5LCAweGYwLCAweDEwLCAweDYyLCAweGM0LCAweDIyLCAKKyAgICAweGMyLCAweDYyLCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAweDAxLCAweDdkLCAweGJlLCAweDI0LCAKKyAgICAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweDlkLCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAweDAxLCAweDlkLCAweDdlLCAweDM3LCAKKyAgICAweDAxLCAweDdkLCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDM2LCAweDdhLCAweDA1LCAweDM2LCAweDdhLCAweDM3LCAweDAxLCAweDdkLCAKKyAgICAweDdlLCAweDM3LCAweDAxLCAweDVkLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDEwLCAweDJjLCAweDM4LCAweDEzLCAweDdhLCAweDQ3LCAKKyAgICAweDAxLCAweDVkLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDY5LCAKKyAgICAweGYwLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDEwLCAKKyAgICAweDJkLCAweDlkLCAweDI0LCAweDEyLCAweDY5LCAweGYwLCAweDdlLCAweDM0LCAweDBjLCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAKKyAgICAweDAxLCAweDVkLCAweDEyLCAweDY5LCAweGYwLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDRkLCAweDFjLCAweDIyLCAweGQyLCAweDBhLCAKKyAgICAweDdlLCAweDA0LCAweDBjLCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDVkLCAweDdhLCAweDA3LCAweDAxLCAweDZkLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAKKyAgICAweDczLCAweDM1LCAweDc1LCAweDJmLCAweDAwLCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDkyLCAweDEyLCAweDczLCAweDM1LCAweGQyLCAKKyAgICAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAweDY4LCAweDdlLCAweDM3LCAweDAxLCAKKyAgICAweGNiLCAweDdlLCAweDI3LCAweDAxLCAweGFkLCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAweDM4LCAKKyAgICAweDM0LCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMwLCAweDdhLCAweDA1LCAweDMwLCAweDdhLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDM3LCAweDAxLCAKKyAgICAweGM5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAweDNjLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDdlLCAKKyAgICAweDI0LCAweDAyLCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAweGFkLCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAKKyAgICAweDczLCAweDM1LCAweDAyLCAweDZhLCAweDYzLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAKKyAgICAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNhLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAKKyAgICAweDAwLCAweDEwLCAweGQyLCAweDEyLCAweDIyLCAweDgwLCAweDdmLCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDI4LCAKKyAgICAweDJkLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDAyLCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGFkLCAweDllLCAweDI0LCAweDAwLCAweDAyLCAweDQwLCAKKyAgICAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDZhLCAweDYzLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAKKyAgICAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDAyLCAweDZhLCAweDYzLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdhLCAKKyAgICAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAweDU0LCAweDBmLCAweDIzLCAweDIzLCAKKyAgICAweDIzLCAweDQ0LCAweDAyLCAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAweDJmLCAweDkzLCAweDEyLCAweDczLCAKKyAgICAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGJkLCAweDA0LCAweDY4LCAweDJiLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAKKyAgICAweDQ3LCAweDAxLCAweGNiLCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGNiLCAweDJlLCAweDM1LCAweDMwLCAweDdhLCAweDM1LCAweDMwLCAweDIyLCAKKyAgICAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDI4LCAKKyAgICAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweGNmLCAweDdlLCAweDA3LCAweDAxLCAweGNiLCAKKyAgICAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ0LCAweDI4LCAweDJkLCAKKyAgICAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQyLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQwLCAKKyAgICAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAKKyAgICAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAweDdhLCAweDA5LCAweGIwLCAweDBiLCAKKyAgICAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAweDRlLCAweDc4LCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNhLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAKKyAgICAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDEyLCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAweGJkLCAweDMyLCAweDY4LCAKKyAgICAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDRlLCAweDc4LCAweGRhLCAweGI4LCAweDAyLCAweDRmLCAweDlmLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweDdlLCAKKyAgICAweGEwLCAweDg4LCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGE1LCAweGZkLCAweDVlLCAKKyAgICAweDUwLCAweDBhLCAweDY4LCAweDFkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDVhLCAweDgwLCAweDAyLCAweGMyLCAKKyAgICAweDVhLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDUyLCAweDgwLCAweDAyLCAweGMyLCAweDUyLCAweDEyLCAweDQyLCAKKyAgICAweGViLCAweDAyLCAweDYxLCAweDEzLCAweDc1LCAweDJmLCAweDkxLCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAweGIxLCAKKyAgICAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAweDAyLCAweDYxLCAweDEzLCAweGQyLCAKKyAgICAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYxLCAweDEzLCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAweGRhLCAKKyAgICAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYxLCAweDM2LCAweDA5LCAweGIxLCAweDAwLCAKKyAgICAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDRlLCAweGNjLCAweDc1LCAweDJmLCAweDk1LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAKKyAgICAweDJmLCAweDk2LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDEwLCAweDBiLCAweDAxLCAweDIyLCAweDIwLCAweDJiLCAweDAzLCAweGQyLCAweDBiLCAweDIyLCAKKyAgICAweDc1LCAweDJmLCAweGEzLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE0LCAweDgzLCAweDAwLCAweDgwLCAweDA2LCAweDIwLCAweDJiLCAweDAzLCAweGQyLCAKKyAgICAweDBiLCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAweDEyLCAKKyAgICAweDUyLCAweGNjLCAweDMwLCAweDMzLCAweDA2LCAweDIwLCAweGU2LCAweDRmLCAweGQyLCAweDBiLCAweDIyLCAweDMwLCAweGU2LCAweDAyLCAweGQyLCAweDYzLCAKKyAgICAweDdlLCAweDM3LCAweDAxLCAweDdmLCAweDdlLCAweDI3LCAweDAxLCAweDlmLCAweDlkLCAweDMyLCAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAKKyAgICAweDM4LCAweDdhLCAweDA1LCAweDM4LCAweDdhLCAweDM3LCAweDAxLCAweDdmLCAweDdlLCAweDM3LCAweDAxLCAweDVmLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAKKyAgICAweGJlLCAweDQ0LCAweDE0LCAweDJjLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAweDVmLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAKKyAgICAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDY5LCAweGYwLCAweDEwLCAweDYzLCAweGM0LCAweDIyLCAweGMyLCAweDYzLCAweDJkLCAKKyAgICAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAweDAxLCAweDdmLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAKKyAgICAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweDlmLCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAweDAxLCAweDlmLCAweDdlLCAweDM3LCAweDAxLCAweDdmLCAweDlkLCAKKyAgICAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDM4LCAweDdhLCAweDA1LCAweDM4LCAweDdhLCAweDM3LCAweDAxLCAweDdmLCAweDdlLCAweDM3LCAweDAxLCAKKyAgICAweDVmLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDE0LCAweDJjLCAweDM4LCAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDVmLCAweDc1LCAKKyAgICAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDY5LCAweGYwLCAweDc1LCAweDJmLCAKKyAgICAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDE0LCAweDJkLCAweDlkLCAweDI0LCAKKyAgICAweDEyLCAweDY5LCAweGYwLCAweDdlLCAweDM0LCAweDEwLCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDVmLCAweDEyLCAKKyAgICAweDY5LCAweGYwLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDUwLCAweDQ5LCAweDIyLCAweGQyLCAweDBiLCAweDdlLCAweDA0LCAweDEwLCAKKyAgICAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDVmLCAweDdhLCAweDA3LCAweDAxLCAweDZmLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDc1LCAKKyAgICAweDJmLCAweDAwLCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDkyLCAweDEyLCAweDczLCAweDM1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAweDY4LCAweDdlLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDI3LCAKKyAgICAweDAxLCAweGFmLCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAweDM4LCAweDM0LCAweDdkLCAweDAyLCAKKyAgICAweDJlLCAweDA1LCAweDMwLCAweDdhLCAweDA1LCAweDMwLCAweDdhLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDM3LCAweDAxLCAweGM5LCAweDdkLCAweDQzLCAKKyAgICAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAweDNjLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDdlLCAweDI0LCAweDAzLCAweDAwLCAKKyAgICAweDJlLCAweDI3LCAweDAxLCAweGFmLCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAKKyAgICAweDZhLCAweDYzLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAKKyAgICAweDAwLCAweDA0LCAweDMwLCAweDNiLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAKKyAgICAweDEzLCAweDIyLCAweDgwLCAweDdmLCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDI4LCAweDJkLCAweDlkLCAweDI0LCAKKyAgICAweDdlLCAweDY0LCAweDAzLCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGFmLCAweDllLCAweDI0LCAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAKKyAgICAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDZhLCAweDYzLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAKKyAgICAweDAxLCAweGM5LCAweDAyLCAweDZhLCAweDYzLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAKKyAgICAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAweDU0LCAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDAzLCAKKyAgICAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAweDJmLCAweDkzLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDcxLCAKKyAgICAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGJkLCAweDA0LCAweDY4LCAweDJiLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ3LCAweDAxLCAweGNiLCAKKyAgICAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGNiLCAweDJlLCAweDM1LCAweDMwLCAweDdhLCAweDM1LCAweDMwLCAweDIyLCAweGQyLCAweDA0LCAweDA5LCAKKyAgICAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDI4LCAweDdlLCAweDA0LCAweDI0LCAKKyAgICAweDJkLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweGNmLCAweDdlLCAweDA3LCAweDAxLCAweGNiLCAweDdlLCAweDI0LCAweDAzLCAKKyAgICAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ0LCAweDI4LCAweDJkLCAweDdkLCAweDYwLCAweDBiLCAKKyAgICAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQyLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDU0LCAweDlkLCAKKyAgICAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAKKyAgICAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAweDdhLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAKKyAgICAweDc4LCAweGU3LCAweDAyLCAweDUxLCAweGE1LCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAKKyAgICAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNiLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAKKyAgICAweDAwLCAweDEwLCAweGQyLCAweDEzLCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAKKyAgICAweDEyLCAweDUxLCAweGE1LCAweGRhLCAweGI4LCAweDAyLCAweDUyLCAweGNjLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAKKyAgICAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDBhLCAweDY4LCAKKyAgICAweDFkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDViLCAweDgwLCAweDAyLCAweGMyLCAweDViLCAweGE1LCAweGZkLCAKKyAgICAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDUzLCAweDgwLCAweDAyLCAweGMyLCAweDUzLCAweDEyLCAweDQzLCAweDAyLCAweDAyLCAweDYxLCAKKyAgICAweDEzLCAweDc1LCAweDJmLCAweDkxLCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAweGIxLCAweDJmLCAweDEyLCAweDczLCAKKyAgICAweDM1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAweDAyLCAweDYxLCAweDEzLCAweGQyLCAweDA0LCAweDMwLCAweGUxLCAKKyAgICAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYxLCAweDEzLCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAweGRhLCAweGI4LCAweDY4LCAweDEyLCAKKyAgICAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYxLCAweDM2LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAKKyAgICAweGRiLCAweDIyLCAweDAyLCAweDUxLCAweGY5LCAweDc1LCAweDJmLCAweDk1LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDk2LCAweDEyLCAKKyAgICAweDczLCAweDM1LCAweDIyLCAweDEwLCAweDBjLCAweDAxLCAweDIyLCAweDIwLCAweDJjLCAweDAzLCAweGQyLCAweDBjLCAweDIyLCAweDc1LCAweDJmLCAweGE0LCAKKyAgICAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE0LCAweDg0LCAweDAwLCAweDgwLCAweDA2LCAweDIwLCAweDJjLCAweDAzLCAweGQyLCAweDBjLCAweDIyLCAweDA5LCAKKyAgICAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAweDEyLCAweDU1LCAweGY5LCAweDMwLCAKKyAgICAweDM0LCAweDA2LCAweDIwLCAweGU2LCAweDRmLCAweGQyLCAweDBjLCAweDIyLCAweDMwLCAweGU2LCAweDAyLCAweGQyLCAweDY0LCAweDdlLCAweDM3LCAweDAxLCAKKyAgICAweDgxLCAweDdlLCAweDI3LCAweDAxLCAweGExLCAweDlkLCAweDMyLCAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDNhLCAweDdhLCAweDA1LCAKKyAgICAweDNhLCAweDdhLCAweDM3LCAweDAxLCAweDgxLCAweDdlLCAweDM3LCAweDAxLCAweDYxLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDE4LCAKKyAgICAweDJjLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAweDYxLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAKKyAgICAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDY5LCAweGYwLCAweDEwLCAweDY0LCAweGM0LCAweDIyLCAweGMyLCAweDY0LCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAKKyAgICAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAweDAxLCAweDgxLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAKKyAgICAweDAxLCAweGExLCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAweDAxLCAweGExLCAweDdlLCAweDM3LCAweDAxLCAweDgxLCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAKKyAgICAweDJlLCAweDA1LCAweDNhLCAweDdhLCAweDA1LCAweDNhLCAweDdhLCAweDM3LCAweDAxLCAweDgxLCAweDdlLCAweDM3LCAweDAxLCAweDYxLCAweDdkLCAweDQzLCAKKyAgICAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDE4LCAweDJjLCAweDM4LCAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDYxLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAKKyAgICAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDY5LCAweGYwLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAKKyAgICAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDE4LCAweDJkLCAweDlkLCAweDI0LCAweDEyLCAweDY5LCAweGYwLCAKKyAgICAweDdlLCAweDM0LCAweDE0LCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDYxLCAweDEyLCAweDY5LCAweGYwLCAweGJlLCAKKyAgICAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDUzLCAweDc2LCAweDIyLCAweGQyLCAweDBjLCAweDdlLCAweDA0LCAweDE0LCAweDJkLCAweDdhLCAweDA3LCAKKyAgICAweDAxLCAweDYxLCAweDdhLCAweDA3LCAweDAxLCAweDcxLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDc1LCAweDJmLCAweDAwLCAweDEyLCAKKyAgICAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDkyLCAweDEyLCAweDczLCAweDM1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAKKyAgICAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAweDY4LCAweDdlLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDI3LCAweDAxLCAweGIxLCAweDJlLCAKKyAgICAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAweDM4LCAweDM0LCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMwLCAKKyAgICAweDdhLCAweDA1LCAweDMwLCAweDdhLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDM3LCAweDAxLCAweGM5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAKKyAgICAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAweDNjLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDdlLCAweDI0LCAweDA0LCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAKKyAgICAweGIxLCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDZhLCAweDYzLCAweDc1LCAKKyAgICAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAKKyAgICAweDNjLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE0LCAweDIyLCAweDgwLCAKKyAgICAweDdmLCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDI4LCAweDJkLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDA0LCAKKyAgICAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGIxLCAweDllLCAweDI0LCAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAKKyAgICAweDEyLCAweDZhLCAweDYzLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDAyLCAKKyAgICAweDZhLCAweDYzLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAKKyAgICAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAweDU0LCAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDA0LCAweDdhLCAweDY5LCAweGIwLCAKKyAgICAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAweDJmLCAweDkzLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAKKyAgICAweDM1LCAweGJkLCAweDA0LCAweDY4LCAweDJiLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ3LCAweDAxLCAweGNiLCAweDJkLCAweDQzLCAweDdhLCAKKyAgICAweDQ3LCAweDAxLCAweGNiLCAweDJlLCAweDM1LCAweDMwLCAweDdhLCAweDM1LCAweDMwLCAweDIyLCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAKKyAgICAweDIwLCAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDI4LCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDJhLCAKKyAgICAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweGNmLCAweDdlLCAweDA3LCAweDAxLCAweGNiLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAKKyAgICAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ0LCAweDI4LCAweDJkLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAKKyAgICAweDY4LCAweGQyLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAKKyAgICAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAKKyAgICAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAweDdhLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAKKyAgICAweDU0LCAweGQyLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAKKyAgICAweDAwLCAweDA0LCAweDMwLCAweDNjLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAKKyAgICAweDE0LCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDU0LCAweGQyLCAKKyAgICAweGRhLCAweGI4LCAweDAyLCAweDU1LCAweGY5LCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAKKyAgICAweDczLCAweDM1LCAweGY1LCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDBhLCAweDY4LCAweDFkLCAweGE1LCAweGZkLCAKKyAgICAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDVjLCAweDgwLCAweDAyLCAweGMyLCAweDVjLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAKKyAgICAweDY4LCAweDA0LCAweGQyLCAweDU0LCAweDgwLCAweDAyLCAweGMyLCAweDU0LCAweDEyLCAweDQzLCAweDE5LCAweDAyLCAweDYxLCAweDEzLCAweDc1LCAweDJmLCAKKyAgICAweDkxLCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAweGIxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDIwLCAweGUwLCAKKyAgICAweDA4LCAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAweDAyLCAweDYxLCAweDEzLCAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAKKyAgICAweDgwLCAweDEyLCAweDYxLCAweDEzLCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAKKyAgICAweDA5LCAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYxLCAweDM2LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAKKyAgICAweDU1LCAweDI2LCAweDc1LCAweDJmLCAweDk1LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDk2LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAKKyAgICAweDEwLCAweDBkLCAweDAxLCAweDIyLCAweDIwLCAweDJkLCAweDAzLCAweGQyLCAweDBkLCAweDIyLCAweDc1LCAweDJmLCAweGE1LCAweDEyLCAweDczLCAweDM1LCAKKyAgICAweDdlLCAweDE0LCAweDg1LCAweDAwLCAweDgwLCAweDA2LCAweDIwLCAweDJkLCAweDAzLCAweGQyLCAweDBkLCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAKKyAgICAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAweDEyLCAweDU5LCAweDI2LCAweDMwLCAweDM1LCAweDA2LCAweDIwLCAKKyAgICAweGU2LCAweDRmLCAweGQyLCAweDBkLCAweDIyLCAweDMwLCAweGU2LCAweDAyLCAweGQyLCAweDY1LCAweDdlLCAweDM3LCAweDAxLCAweDgzLCAweDdlLCAweDI3LCAKKyAgICAweDAxLCAweGEzLCAweDlkLCAweDMyLCAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDNjLCAweDdhLCAweDA1LCAweDNjLCAweDdhLCAweDM3LCAKKyAgICAweDAxLCAweDgzLCAweDdlLCAweDM3LCAweDAxLCAweDYzLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDFjLCAweDJjLCAweDM4LCAweDY4LCAKKyAgICAweDdhLCAweDQ3LCAweDAxLCAweDYzLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAKKyAgICAweDEyLCAweDY5LCAweGYwLCAweDEwLCAweDY1LCAweGM0LCAweDIyLCAweGMyLCAweDY1LCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAKKyAgICAweDFhLCAweDdlLCAweDI3LCAweDAxLCAweDgzLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweGEzLCAweDI4LCAKKyAgICAweDA0LCAweDdlLCAweDI3LCAweDAxLCAweGEzLCAweDdlLCAweDM3LCAweDAxLCAweDgzLCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDNjLCAKKyAgICAweDdhLCAweDA1LCAweDNjLCAweDdhLCAweDM3LCAweDAxLCAweDgzLCAweDdlLCAweDM3LCAweDAxLCAweDYzLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAKKyAgICAweDQ0LCAweDFjLCAweDJjLCAweDM4LCAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDYzLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAKKyAgICAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDY5LCAweGYwLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAKKyAgICAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDFjLCAweDJkLCAweDlkLCAweDI0LCAweDEyLCAweDY5LCAweGYwLCAweDdlLCAweDM0LCAweDE4LCAKKyAgICAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDYzLCAweDEyLCAweDY5LCAweGYwLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAKKyAgICAweDAzLCAweDAyLCAweDU2LCAweGEzLCAweDIyLCAweGQyLCAweDBkLCAweDdlLCAweDA0LCAweDE4LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDYzLCAweDdhLCAKKyAgICAweDA3LCAweDAxLCAweDczLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDc1LCAweDJmLCAweDAwLCAweDEyLCAweDczLCAweDM1LCAweDIyLCAKKyAgICAweDc1LCAweDJmLCAweDkyLCAweDEyLCAweDczLCAweDM1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAKKyAgICAweGRhLCAweGI4LCAweDc4LCAweDY4LCAweDdlLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDI3LCAweDAxLCAweGIzLCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAKKyAgICAweDJkLCAweDMyLCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAweDM4LCAweDM0LCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMwLCAweDdhLCAweDA1LCAweDMwLCAKKyAgICAweDdhLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDM3LCAweDAxLCAweGM5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI4LCAweDJjLCAKKyAgICAweDM4LCAweDNjLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDdlLCAweDI0LCAweDA1LCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAweGIzLCAweDFiLCAweDM4LCAKKyAgICAweDIwLCAweDBiLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDZhLCAweDYzLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAKKyAgICAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNkLCAweDBhLCAweDA5LCAKKyAgICAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE1LCAweDIyLCAweDgwLCAweDdmLCAweDdhLCAweDUxLCAKKyAgICAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDI4LCAweDJkLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDA1LCAweDAwLCAweDJlLCAweDY3LCAKKyAgICAweDAxLCAweGIzLCAweDllLCAweDI0LCAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDZhLCAweDYzLCAKKyAgICAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDAyLCAweDZhLCAweDYzLCAweDdhLCAKKyAgICAweDM5LCAweGMwLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAKKyAgICAweDMyLCAweDdjLCAweGI2LCAweDU0LCAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDA1LCAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAKKyAgICAweDBiLCAweDM1LCAweDc1LCAweDJmLCAweDkzLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGJkLCAweDA0LCAKKyAgICAweDY4LCAweDJiLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ3LCAweDAxLCAweGNiLCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGNiLCAKKyAgICAweDJlLCAweDM1LCAweDMwLCAweDdhLCAweDM1LCAweDMwLCAweDIyLCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAKKyAgICAweDIyLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDI4LCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDI0LCAKKyAgICAweDJkLCAweDgwLCAweGNmLCAweDdlLCAweDA3LCAweDAxLCAweGNiLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAKKyAgICAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ0LCAweDI4LCAweDJkLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQyLCAweDdkLCAKKyAgICAweDcwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAKKyAgICAweDI1LCAweDdkLCAweDMyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAKKyAgICAweDdlLCAweDE5LCAweGIwLCAweDdhLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAweDU3LCAweGZmLCAweDc1LCAKKyAgICAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAKKyAgICAweDNkLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE1LCAweDIyLCAweGRhLCAKKyAgICAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDU3LCAweGZmLCAweGRhLCAweGI4LCAweDAyLCAKKyAgICAweDU5LCAweDI2LCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAKKyAgICAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDBhLCAweDY4LCAweDFkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAKKyAgICAweDY4LCAweDA0LCAweGQyLCAweDVkLCAweDgwLCAweDAyLCAweGMyLCAweDVkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAKKyAgICAweDU1LCAweDgwLCAweDAyLCAweGMyLCAweDU1LCAweDEyLCAweDQzLCAweDMwLCAweDAyLCAweDYxLCAweDEzLCAweDc1LCAweDJmLCAweDkxLCAweDEyLCAweDczLCAKKyAgICAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAweGIxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAKKyAgICAweDdlLCAweGEwLCAweDgwLCAweDAyLCAweDYxLCAweDEzLCAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYxLCAKKyAgICAweDEzLCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAKKyAgICAweDAwLCAweDEyLCAweDYxLCAweDM2LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDU4LCAweDUzLCAweDc1LCAKKyAgICAweDJmLCAweDk1LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDk2LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDEwLCAweDBlLCAweDAxLCAKKyAgICAweDIyLCAweDIwLCAweDJlLCAweDAzLCAweGQyLCAweDBlLCAweDIyLCAweDc1LCAweDJmLCAweGE2LCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE0LCAweDg2LCAKKyAgICAweDAwLCAweDgwLCAweDA2LCAweDIwLCAweDJlLCAweDAzLCAweGQyLCAweDBlLCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAKKyAgICAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAweDEyLCAweDVjLCAweDUzLCAweDMwLCAweDM2LCAweDA2LCAweDIwLCAweGU2LCAweDRmLCAweGQyLCAKKyAgICAweDBlLCAweDIyLCAweDMwLCAweGU2LCAweDAyLCAweGQyLCAweDY2LCAweDdlLCAweDM3LCAweDAxLCAweDg1LCAweDdlLCAweDI3LCAweDAxLCAweGE1LCAweDlkLCAKKyAgICAweDMyLCAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDNlLCAweDdhLCAweDA1LCAweDNlLCAweDdhLCAweDM3LCAweDAxLCAweDg1LCAweDdlLCAKKyAgICAweDM3LCAweDAxLCAweDY1LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDIwLCAweDJjLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAKKyAgICAweDY1LCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDY5LCAweGYwLCAKKyAgICAweDEwLCAweDY2LCAweGM0LCAweDIyLCAweGMyLCAweDY2LCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAKKyAgICAweDAxLCAweDg1LCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweGE1LCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAKKyAgICAweDAxLCAweGE1LCAweDdlLCAweDM3LCAweDAxLCAweDg1LCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDNlLCAweDdhLCAweDA1LCAweDNlLCAKKyAgICAweDdhLCAweDM3LCAweDAxLCAweDg1LCAweDdlLCAweDM3LCAweDAxLCAweDY1LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDIwLCAweDJjLCAKKyAgICAweDM4LCAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDY1LCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAKKyAgICAweDczLCAweDM1LCAweDAyLCAweDY5LCAweGYwLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAKKyAgICAweDM1LCAweDllLCAweDQ0LCAweDIwLCAweDJkLCAweDlkLCAweDI0LCAweDEyLCAweDY5LCAweGYwLCAweDdlLCAweDM0LCAweDFjLCAweDJkLCAweDdkLCAweDI0LCAKKyAgICAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDY1LCAweDEyLCAweDY5LCAweGYwLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDU5LCAKKyAgICAweGQwLCAweDIyLCAweGQyLCAweDBlLCAweDdlLCAweDA0LCAweDFjLCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDY1LCAweDdhLCAweDA3LCAweDAxLCAweDc1LCAKKyAgICAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDc1LCAweDJmLCAweDAwLCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDkyLCAKKyAgICAweDEyLCAweDczLCAweDM1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAKKyAgICAweDY4LCAweDdlLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDI3LCAweDAxLCAweGI1LCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAKKyAgICAweDM0LCAweDA0LCAweDAwLCAweDM4LCAweDM0LCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMwLCAweDdhLCAweDA1LCAweDMwLCAweDdhLCAweDM3LCAweDAxLCAKKyAgICAweGNiLCAweDdlLCAweDM3LCAweDAxLCAweGM5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAweDNjLCAweDdhLCAKKyAgICAweDQ3LCAweDAxLCAweGM5LCAweDdlLCAweDI0LCAweDA2LCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAweGI1LCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAKKyAgICAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDZhLCAweDYzLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAKKyAgICAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNlLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAKKyAgICAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE2LCAweDIyLCAweDgwLCAweDdmLCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAKKyAgICAweDM1LCAweDllLCAweDQ0LCAweDI4LCAweDJkLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDA2LCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGI1LCAweDllLCAKKyAgICAweDI0LCAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDZhLCAweDYzLCAweDdlLCAweDM0LCAweDI0LCAKKyAgICAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDAyLCAweDZhLCAweDYzLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAKKyAgICAweDM0LCAweDI0LCAweDJkLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAKKyAgICAweDU0LCAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDA2LCAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAKKyAgICAweDJmLCAweDkzLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGJkLCAweDA0LCAweDY4LCAweDJiLCAweDdhLCAKKyAgICAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ3LCAweDAxLCAweGNiLCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGNiLCAweDJlLCAweDM1LCAweDMwLCAKKyAgICAweDdhLCAweDM1LCAweDMwLCAweDIyLCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAKKyAgICAweDI0LCAweDJkLCAweDgwLCAweDI4LCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweGNmLCAKKyAgICAweDdlLCAweDA3LCAweDAxLCAweGNiLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGM5LCAKKyAgICAweDdlLCAweDQ0LCAweDI4LCAweDJkLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQyLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAKKyAgICAweGJkLCAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAKKyAgICAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAKKyAgICAweDdhLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAweDViLCAweDJjLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAKKyAgICAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNlLCAweDBhLCAweDA5LCAKKyAgICAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE2LCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAKKyAgICAweGQ4LCAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDViLCAweDJjLCAweGRhLCAweGI4LCAweDAyLCAweDVjLCAweDUzLCAweDA5LCAKKyAgICAweGIxLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAweDJmLCAweDEyLCAweDczLCAKKyAgICAweDM1LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDBhLCAweDY4LCAweDFkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAKKyAgICAweDVlLCAweDgwLCAweDAyLCAweGMyLCAweDVlLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDU2LCAweDgwLCAweDAyLCAKKyAgICAweGMyLCAweDU2LCAweDEyLCAweDQzLCAweDQ3LCAweDAyLCAweDYxLCAweDEzLCAweDc1LCAweDJmLCAweDkxLCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDE0LCAweDdhLCAweGIxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAKKyAgICAweDAyLCAweDYxLCAweDEzLCAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYxLCAweDEzLCAweGNhLCAweGI4LCAKKyAgICAweDVlLCAweGIwLCAweDFjLCAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYxLCAKKyAgICAweDM2LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDViLCAweDgwLCAweDc1LCAweDJmLCAweDk1LCAweDEyLCAKKyAgICAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDk2LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDEwLCAweDBmLCAweDAxLCAweDIyLCAweDIwLCAweDJmLCAKKyAgICAweDAzLCAweGQyLCAweDBmLCAweDIyLCAweDc1LCAweDJmLCAweGE3LCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE0LCAweDg3LCAweDAwLCAweDgwLCAweDA2LCAKKyAgICAweDIwLCAweDJmLCAweDAzLCAweGQyLCAweDBmLCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAKKyAgICAweGI4LCAweDY4LCAweDAzLCAweDEyLCAweDVmLCAweDgwLCAweDMwLCAweDM3LCAweDA2LCAweDIwLCAweGU2LCAweDRmLCAweGQyLCAweDBmLCAweDIyLCAweDMwLCAKKyAgICAweGU2LCAweDAyLCAweGQyLCAweDY3LCAweDdlLCAweDM3LCAweDAxLCAweDg3LCAweDdlLCAweDI3LCAweDAxLCAweGE3LCAweDlkLCAweDMyLCAweDQwLCAweDMxLCAKKyAgICAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDQwLCAweDdhLCAweDA1LCAweDQwLCAweDdhLCAweDM3LCAweDAxLCAweDg3LCAweDdlLCAweDM3LCAweDAxLCAweDY3LCAKKyAgICAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI0LCAweDJjLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAweDY3LCAweDc1LCAweDJmLCAKKyAgICAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDY5LCAweGYwLCAweDEwLCAweDY3LCAweGM0LCAKKyAgICAweDIyLCAweGMyLCAweDY3LCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAweDAxLCAweDg3LCAweGJlLCAKKyAgICAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweGE3LCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAweDAxLCAweGE3LCAweDdlLCAKKyAgICAweDM3LCAweDAxLCAweDg3LCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDQwLCAweDdhLCAweDA1LCAweDQwLCAweDdhLCAweDM3LCAweDAxLCAKKyAgICAweDg3LCAweDdlLCAweDM3LCAweDAxLCAweDY3LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI0LCAweDJjLCAweDM4LCAweDEzLCAweDdhLCAKKyAgICAweDQ3LCAweDAxLCAweDY3LCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAKKyAgICAweDY5LCAweGYwLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAKKyAgICAweDI0LCAweDJkLCAweDlkLCAweDI0LCAweDEyLCAweDY5LCAweGYwLCAweDdlLCAweDM0LCAweDIwLCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAKKyAgICAweDQ3LCAweDAxLCAweDY3LCAweDEyLCAweDY5LCAweGYwLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDVjLCAweGZkLCAweDIyLCAweGQyLCAKKyAgICAweDBmLCAweDdlLCAweDA0LCAweDIwLCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDY3LCAweDdhLCAweDA3LCAweDAxLCAweDc3LCAweDc1LCAweDJmLCAweDk0LCAKKyAgICAweDEyLCAweDczLCAweDM1LCAweDc1LCAweDJmLCAweDAwLCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDkyLCAweDEyLCAweDczLCAweDM1LCAKKyAgICAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAweDY4LCAweDdlLCAweDM3LCAKKyAgICAweDAxLCAweGNiLCAweDdlLCAweDI3LCAweDAxLCAweGI3LCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAKKyAgICAweDM4LCAweDM0LCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMwLCAweDdhLCAweDA1LCAweDMwLCAweDdhLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDM3LCAKKyAgICAweDAxLCAweGM5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAweDNjLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAKKyAgICAweDdlLCAweDI0LCAweDA3LCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAweGI3LCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAKKyAgICAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDZhLCAweDYzLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAKKyAgICAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNmLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAKKyAgICAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE3LCAweDIyLCAweDgwLCAweDdmLCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAKKyAgICAweDI4LCAweDJkLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDA3LCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGI3LCAweDllLCAweDI0LCAweDAwLCAweDAyLCAKKyAgICAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDZhLCAweDYzLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdkLCAweDI0LCAKKyAgICAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDAyLCAweDZhLCAweDYzLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAKKyAgICAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAweDU0LCAweDBmLCAweDIzLCAKKyAgICAweDIzLCAweDIzLCAweDQ0LCAweDA3LCAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAweDJmLCAweDkzLCAweDEyLCAKKyAgICAweDczLCAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGJkLCAweDA0LCAweDY4LCAweDJiLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAKKyAgICAweDdlLCAweDQ3LCAweDAxLCAweGNiLCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGNiLCAweDJlLCAweDM1LCAweDMwLCAweDdhLCAweDM1LCAweDMwLCAKKyAgICAweDIyLCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAKKyAgICAweDI4LCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweGNmLCAweDdlLCAweDA3LCAweDAxLCAKKyAgICAweGNiLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ0LCAweDI4LCAKKyAgICAweDJkLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQyLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAKKyAgICAweGQwLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAweDA5LCAweGIxLCAweDAwLCAKKyAgICAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAweDdhLCAweDA5LCAweGIwLCAKKyAgICAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAweDVlLCAweDU5LCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAKKyAgICAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNmLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAKKyAgICAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE3LCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAweGJkLCAweDMyLCAKKyAgICAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDVlLCAweDU5LCAweGRhLCAweGI4LCAweDAyLCAweDVmLCAweDgwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAKKyAgICAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGE1LCAweGZkLCAKKyAgICAweDVlLCAweDUwLCAweDBhLCAweDY4LCAweDFkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDVmLCAweDgwLCAweDAyLCAKKyAgICAweGMyLCAweDVmLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDU3LCAweDgwLCAweDAyLCAweGMyLCAweDU3LCAweDEyLCAKKyAgICAweDQzLCAweDVlLCAweDAyLCAweDYxLCAweDEzLCAweDc1LCAweDJmLCAweDkxLCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAKKyAgICAweGIxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAweDAyLCAweDYxLCAweDEzLCAKKyAgICAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYxLCAweDEzLCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAKKyAgICAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYxLCAweDM2LCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDVlLCAweGFkLCAweDc1LCAweDJmLCAweDk1LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAKKyAgICAweDc1LCAweDJmLCAweDk2LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAKKyAgICAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDU4LCAweDgwLCAweDAyLCAweGMyLCAweDU4LCAKKyAgICAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDUwLCAweDgwLCAweDAyLCAweGMyLCAweDUwLCAweDAyLCAweDYwLCAweGZmLCAKKyAgICAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAKKyAgICAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDU5LCAweDgwLCAweDAyLCAweGMyLCAweDU5LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAKKyAgICAweGQyLCAweDUxLCAweDgwLCAweDAyLCAweGMyLCAweDUxLCAweDAyLCAweDYwLCAweGZmLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAKKyAgICAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDVhLCAweDgwLCAweDAyLCAKKyAgICAweGMyLCAweDVhLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDUyLCAweDgwLCAweDAyLCAweGMyLCAweDUyLCAweDAyLCAKKyAgICAweDYwLCAweGZmLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAKKyAgICAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDViLCAweDgwLCAweDAyLCAweGMyLCAweDViLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAKKyAgICAweDY4LCAweDA0LCAweGQyLCAweDUzLCAweDgwLCAweDAyLCAweGMyLCAweDUzLCAweDAyLCAweDYwLCAweGZmLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAKKyAgICAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDVjLCAKKyAgICAweDgwLCAweDAyLCAweGMyLCAweDVjLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDU0LCAweDgwLCAweDAyLCAweGMyLCAKKyAgICAweDU0LCAweDAyLCAweDYwLCAweGZmLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAKKyAgICAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDVkLCAweDgwLCAweDAyLCAweGMyLCAweDVkLCAweGE1LCAweGZkLCAweDVlLCAKKyAgICAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDU1LCAweDgwLCAweDAyLCAweGMyLCAweDU1LCAweDAyLCAweDYwLCAweGZmLCAweDdjLCAweDAyLCAweDdlLCAKKyAgICAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAKKyAgICAweGQyLCAweDVlLCAweDgwLCAweDAyLCAweGMyLCAweDVlLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDU2LCAweDgwLCAKKyAgICAweDAyLCAweGMyLCAweDU2LCAweDAyLCAweDYwLCAweGZmLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAKKyAgICAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDVmLCAweDgwLCAweDAyLCAweGMyLCAweDVmLCAweGE1LCAKKyAgICAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDU3LCAweDgwLCAweDAyLCAweGMyLCAweDU3LCAweDAyLCAweDYwLCAweGZmLCAweDU0LCAKKyAgICAweGYwLCAweGM0LCAweGE1LCAweGZmLCAweGM0LCAweGE1LCAweDRmLCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAweDJmLCAweDEyLCAKKyAgICAweDczLCAweDM1LCAweDIyLCAweGNhLCAweDE5LCAweDVlLCAweDIwLCAweDA3LCAweDRjLCAweGEyLCAweDdlLCAweDc0LCAweDJjLCAweDJkLCAweGNhLCAweDc5LCAKKyAgICAweDdhLCAweDc5LCAweGEwLCAweDBiLCAweDc0LCAweDdhLCAweDc5LCAweGIwLCAweDBiLCAweDc0LCAweGRhLCAweDc5LCAweDdlLCAweDMwLCAweDAyLCAweDdlLCAKKyAgICAweDY0LCAweDAwLCAweDAyLCAweDAyLCAweDYxLCAweDVlLCAweGNhLCAweDE5LCAweDVlLCAweDIwLCAweDA3LCAweDRjLCAweGEyLCAweDdlLCAweDc0LCAweDJjLCAKKyAgICAweDJkLCAweGNhLCAweDc5LCAweDdhLCAweDc5LCAweGEwLCAweDBiLCAweDc0LCAweDdhLCAweDc5LCAweGIwLCAweDBiLCAweDc0LCAweDdhLCAweDc5LCAweDYwLCAKKyAgICAweDBiLCAweDc0LCAweGRhLCAweDc5LCAweDdlLCAweDMwLCAweDAzLCAweDdlLCAweDY0LCAweDAwLCAweDAzLCAweDAyLCAweDYxLCAweDVlLCAweGQyLCAweDA0LCAKKyAgICAweDdlLCAweDI3LCAweDAxLCAweGNiLCAweDJkLCAweDI2LCAweGJlLCAweDI0LCAweDA0LCAweDAwLCAweDM4LCAweDJlLCAweDdlLCAweDA3LCAweDAxLCAweGM5LCAKKyAgICAweDdlLCAweDQ0LCAweDI4LCAweDJkLCAweDdlLCAweDc5LCAweGEwLCAweDdhLCAweDA5LCAweGEwLCAweDBiLCAweDA0LCAweDBiLCAweDc0LCAweGJkLCAweDA0LCAKKyAgICAweDY4LCAweDIzLCAweGE1LCAweGRiLCAweGVmLCAweDdhLCAweDI3LCAweDAxLCAweGNiLCAweDdlLCAweDI1LCAweDMwLCAweDJkLCAweDI2LCAweDdhLCAweDI1LCAKKyAgICAweDMwLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAweGRhLCAweDE5LCAweGMyLCAweGQ3LCAweDIyLCAweDc1LCAweDJmLCAweDlhLCAweDEyLCAweDczLCAweDM1LCAKKyAgICAweGRhLCAweDE5LCAweGQyLCAweGQ3LCAweDIyLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweGQ3LCAweDQ4LCAweGYxLCAweDQ2LCAweDY1LCAweDQ3LCAKKyAgICAweDVmLCAweDQ5LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ4LCAweDU2LCAweDQ1LCAweDJhLCAweDQ5LCAweDZlLCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ5LCAweDc1LCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDRjLCAweDFlLCAweDQ5LCAweDkyLCAweDRhLCAKKyAgICAweDhjLCAweDRjLCAweDU3LCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDRiLCAweDgzLCAweDQ1LCAweDJhLCAweDRjLCAweDliLCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDRjLCAweGEyLCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDRmLCAweDRiLCAweDRjLCAweGJmLCAweDRkLCAKKyAgICAweGI5LCAweDRmLCAweDg0LCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDRlLCAweGIwLCAweDQ1LCAweDJhLCAweDRmLCAweGM4LCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDRmLCAweGNmLCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDUyLCAweDc4LCAweDRmLCAweGVjLCAweDUwLCAKKyAgICAweGU2LCAweDUyLCAweGIxLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDUxLCAweGRkLCAweDQ1LCAweDJhLCAweDUyLCAweGY1LCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDUyLCAweGZjLCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDU1LCAweGE1LCAweDUzLCAweDE5LCAweDU0LCAKKyAgICAweDEzLCAweDU1LCAweGRlLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDU1LCAweDBhLCAweDQ1LCAweDJhLCAweDU2LCAweDIyLCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDU2LCAweDI5LCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDU4LCAweGQyLCAweDU2LCAweDQ2LCAweDU3LCAKKyAgICAweDQwLCAweDU5LCAweDBiLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDU4LCAweDM3LCAweDQ1LCAweDJhLCAweDU5LCAweDRmLCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDU5LCAweDU2LCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDViLCAweGZmLCAweDU5LCAweDczLCAweDVhLCAKKyAgICAweDZkLCAweDVjLCAweDM4LCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDViLCAweDY0LCAweDQ1LCAweDJhLCAweDVjLCAweDdjLCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDVjLCAweDgzLCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDVmLCAweDJjLCAweDVjLCAweGEwLCAweDVkLCAKKyAgICAweDlhLCAweDVmLCAweDY1LCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDVlLCAweDkxLCAweDQ1LCAweDJhLCAweDVmLCAweGE5LCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDVmLCAweGIwLCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKKyAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweGNhLCAweGI4LCAweDc1LCAweDJmLCAweDAyLCAKKyAgICAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDkxLCAweDAzLCAweDIwLCAweGU1LCAweDIwLCAweDMwLCAweGUwLCAweDA1LCAweDEyLCAweDZiLCAweDA1LCAKKyAgICAweDgwLCAweDMwLCAweDMwLCAweGUxLCAweDA1LCAweDEyLCAweDY0LCAweDg2LCAweDgwLCAweDI4LCAweDMwLCAweGUyLCAweDA1LCAweDEyLCAweDYzLCAweGY1LCAKKyAgICAweDgwLCAweDIwLCAweDMwLCAweGUzLCAweDFkLCAweDEyLCAweDY1LCAweDYxLCAweDgwLCAweDE4LCAweDdlLCAweGIzLCAweDkxLCAweDA0LCAweDMwLCAweGUxLCAKKyAgICAweDAzLCAweDAyLCAweDY3LCAweDVmLCAweDMwLCAweGU2LCAweDA1LCAweDEyLCAweDZjLCAweDZhLCAweDgwLCAweDA2LCAweDIwLCAweGUyLCAweDAzLCAweDAyLCAKKyAgICAweDAwLCAweDgwLCAweGRhLCAweGI4LCAweDMyLCAweDc1LCAweDJmLCAweDEwLCAweDEyLCAweDczLCAweDM1LCAweGNhLCAweDBiLCAweGNhLCAweDM5LCAweGNhLCAKKyAgICAweDU5LCAweDc0LCAweDQwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDdlLCAweGIzLCAweDkxLCAweDFhLCAweDZjLCAweGFhLCAweGJlLCAweGIwLCAweDQwLCAKKyAgICAweDI4LCAweDBhLCAweDEyLCAweDY0LCAweDI0LCAweGRhLCAweDU5LCAweGRhLCAweDM5LCAweGRhLCAweDBiLCAweDIyLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAKKyAgICAweDkxLCAweDE0LCAweDgwLCAweGYxLCAweDdlLCAweDM3LCAweDAxLCAweGM1LCAweDJkLCAweDM1LCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAweDM4LCAweDJmLCAKKyAgICAweDdhLCAweDM3LCAweDAxLCAweGM1LCAweDdlLCAweDM3LCAweDAxLCAweGMzLCAweDdkLCAweDQzLCAweDJkLCAweDQ1LCAweGJlLCAweDQ0LCAweDJjLCAweDJjLCAKKyAgICAweDM4LCAweDI1LCAweDdhLCAweDQ3LCAweDAxLCAweGMzLCAweDc1LCAweDJmLCAweDExLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweGIxLCAweDJmLCAweDEyLCAKKyAgICAweDczLCAweDM1LCAweDEyLCAweDY3LCAweDlmLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDEyLCAweDY2LCAweDMwLCAweDIyLCAweDc1LCAKKyAgICAweDJmLCAweDE2LCAweDEyLCAweDczLCAweDM1LCAweDgwLCAweGY0LCAweDc1LCAweDJmLCAweDEyLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweGIxLCAweDJmLCAKKyAgICAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDJjLCAweDJkLCAweDlkLCAweDU0LCAweDEyLCAweDY3LCAweDlmLCAweDdlLCAweDM0LCAweDI4LCAweDJkLCAKKyAgICAweDdkLCAweDU0LCAweDJkLCAweDQzLCAweDgwLCAweGJjLCAweDc1LCAweDJmLCAweDE4LCAweDEyLCAweDczLCAweDM1LCAweGNhLCAweDA5LCAweGNhLCAweDM5LCAKKyAgICAweGNhLCAweDJiLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDdlLCAweDYzLCAweDkxLCAweDFhLCAweDc0LCAweDEwLCAweDdhLCAweGIzLCAKKyAgICAweDkxLCAweDE0LCAweDdlLCAweGIwLCAweDgwLCAweDljLCAweGI2LCAweDYwLCAweDM4LCAweDZjLCAweGFhLCAweDdlLCAweDM3LCAweDAxLCAweGNiLCAweDlkLCAKKyAgICAweDM1LCAweDQwLCAweDM3LCAweDdhLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDM3LCAweDAxLCAweGM3LCAweDdkLCAweDQzLCAweDJkLCAweDQ1LCAweGJlLCAKKyAgICAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAweDNiLCAweDdhLCAweDQ3LCAweDAxLCAweGM3LCAweDdkLCAweDQ1LCAweDEyLCAweDY4LCAweGQ0LCAweDdlLCAweGIzLCAKKyAgICAweDkxLCAweDFlLCAweDIwLCAweGU1LCAweDEzLCAweDc1LCAweDJmLCAweDE5LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDkxLCAweDJmLCAweDEyLCAweDczLCAKKyAgICAweDM1LCAweGRhLCAweDJiLCAweGRhLCAweDM5LCAweGRhLCAweDA5LCAweDIyLCAweDgwLCAweDM0LCAweDJkLCAweDUzLCAweDZkLCAweDMzLCAweDYwLCAweDAyLCAKKyAgICAweDgwLCAweGMxLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAweDdhLCAweDA3LCAweDAxLCAweGM3LCAweDgwLCAweGUxLCAKKyAgICAweGNhLCAweDU5LCAweDllLCAweDQ0LCAweDI4LCAweDJkLCAweDlkLCAweDU0LCAweDEyLCAweDY4LCAweGQ0LCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdkLCAKKyAgICAweDU0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM3LCAweDEyLCAweDY4LCAweGQ0LCAweGRhLCAweDQ5LCAweDgwLCAweGIwLCAweDdlLCAweDBmLCAKKyAgICAweDJjLCAweDNlLCAweDBiLCAweDBjLCAweDdhLCAweDBmLCAweDJjLCAweDNlLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDFlLCAweDc0LCAweDYwLCAKKyAgICAweDdhLCAweGIzLCAweDkxLCAweDFjLCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDgwLCAweGE1LCAweDdlLCAweDJmLCAweDJjLCAweDVlLCAKKyAgICAweDBiLCAweDJjLCAweDdhLCAweDJmLCAweDJjLCAweDVlLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDFlLCAweDc0LCAweDYwLCAweDdhLCAweGIzLCAKKyAgICAweDkxLCAweDFjLCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDgwLCAweDFmLCAweGRhLCAweDJiLCAweGRhLCAweDFiLCAweGRhLCAweDBiLCAKKyAgICAweDIyLCAweDc1LCAweDJmLCAweDI4LCAweDEyLCAweDczLCAweDM1LCAweGNhLCAweDBiLCAweGNhLCAweDFiLCAweGNhLCAweDJiLCAweDc0LCAweDYwLCAweDdhLCAKKyAgICAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDEwLCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDdlLCAweGIzLCAweDkxLCAweDFhLCAweDcwLCAweGRiLCAweDdlLCAKKyAgICAweDBkLCAweDMwLCAweDdlLCAweDFkLCAweDM0LCAweDdlLCAweDJkLCAweDM4LCAweDdlLCAweDNkLCAweDNjLCAweDdlLCAweDg1LCAweDQwLCAweDdkLCAweDkwLCAKKyAgICAweDRkLCAweDkxLCAweDRkLCAweDkyLCAweDRkLCAweDkzLCAweDRkLCAweDk0LCAweDRkLCAweDk1LCAweDRkLCAweDk2LCAweDRkLCAweDk3LCAweDRkLCAweDk4LCAKKyAgICAweDY4LCAweGI4LCAweDdhLCAweDEzLCAweDkxLCAweDE3LCAweDdhLCAweDAzLCAweDkxLCAweDE3LCAweDdhLCAweDMzLCAweDkxLCAweDE3LCAweDdhLCAweDIzLCAKKyAgICAweDkxLCAweDE3LCAweDdhLCAweDUzLCAweDkxLCAweDE3LCAweDdhLCAweDQzLCAweDkxLCAweDE3LCAweDdhLCAweDczLCAweDkxLCAweDE3LCAweDdhLCAweDYzLCAKKyAgICAweDkxLCAweDE3LCAweDdhLCAweDkzLCAweDkxLCAweDE3LCAweDdhLCAweDgzLCAweDkxLCAweDE3LCAweDMwLCAweDczLCAweDIyLCAweDdhLCAweGIzLCAweDkxLCAKKyAgICAweDE3LCAweDdhLCAweGEzLCAweDkxLCAweDE3LCAweDdhLCAweGQzLCAweDkxLCAweDE3LCAweDdhLCAweGMzLCAweDkxLCAweDE3LCAweDdhLCAweGYzLCAweDkxLCAKKyAgICAweDE3LCAweDdhLCAweGUzLCAweDkxLCAweDE3LCAweDdkLCAweDc4LCAweDdhLCAweGYzLCAweDkxLCAweDE3LCAweDdhLCAweGUzLCAweDkxLCAweDE3LCAweDdlLCAKKyAgICAweGIzLCAweDkxLCAweDFlLCAweDMwLCAweGU1LCAweDAzLCAweDAyLCAweDY1LCAweDNjLCAweDc1LCAweDJmLCAweDI5LCAweDEyLCAweDczLCAweDM1LCAweDIwLCAKKyAgICAweDczLCAweDA4LCAweDc1LCAweDJmLCAweDBhLCAweDEyLCAweDczLCAweDM1LCAweDgwLCAweDA2LCAweDc1LCAweDJmLCAweDEyLCAweDEyLCAweDczLCAweDM1LCAKKyAgICAweDc0LCAweDgwLCAweDdhLCAweGIzLCAweDkxLCAweDFlLCAweDZkLCAweDAwLCAweDdkLCAweDEwLCAweDdhLCAweDBkLCAweDMwLCAweDdhLCAweDBkLCAweDM0LCAKKyAgICAweDdhLCAweDBkLCAweDM4LCAweDdhLCAweDBkLCAweDNjLCAweDdhLCAweDA1LCAweDQwLCAweGRhLCAweDJiLCAweGRhLCAweDFiLCAweGRhLCAweDBiLCAweDIyLCAKKyAgICAweDdlLCAweDM3LCAweDAxLCAweGM1LCAweDRkLCAweDMzLCAweDY4LCAweDNiLCAweDdlLCAweDA3LCAweDAxLCAweGMxLCAweDdlLCAweDU0LCAweDJjLCAweDJkLCAKKyAgICAweDlkLCAweDUwLCAweGJkLCAweDM1LCAweDQwLCAweDAyLCAweDdkLCAweDM1LCAweGNhLCAweDM5LCAweDdlLCAweDY1LCAweDRiLCAweDk5LCAweDY0LCAweGRhLCAKKyAgICAweDM5LCAweDdlLCAweDA3LCAweDAxLCAweGM1LCAweDlkLCAweDAzLCAweDdhLCAweDA3LCAweDAxLCAweGM1LCAweDJlLCAweDM3LCAweDAxLCAweGMxLCAweDdhLCAKKyAgICAweDM3LCAweDAxLCAweGMxLCAweGJlLCAweDM0LCAweDJjLCAweDJjLCAweDI4LCAweGM3LCAweDdlLCAweDM0LCAweDI4LCAweDJkLCAweDdhLCAweDM3LCAweDAxLCAKKyAgICAweGMxLCAweDgwLCAweGJkLCAweDIyLCAweDc1LCAweDJmLCAweDUzLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE1LCAweDRkLCAweDgwLCAweDExLCAweDc1LCAKKyAgICAweDJmLCAweDUxLCAweDEyLCAweDczLCAweDM1LCAweDBiLCAweDA4LCAweDEwLCAweDBiLCAweDA1LCAweDllLCAweDM0LCAweDAwLCAweDAyLCAweDI4LCAweDRkLCAKKyAgICAweDdjLCAweGIyLCAweDIwLCAweGU3LCAweDI3LCAweDU0LCAweDA3LCAweDIzLCAweDBhLCAweDJiLCAweDQ5LCAweDIyLCAweDM5LCAweDFlLCAweDdjLCAweGIyLCAKKyAgICAweDU0LCAweDc4LCAweDAzLCAweDAzLCAweDAzLCAweDdjLCAweDJiLCAweDlkLCAweDEzLCAweDQwLCAweDFhLCAweDY4LCAweDEyLCAweDdhLCAweDE1LCAweDRkLCAKKyAgICAweDdhLCAweDI1LCAweDRmLCAweDdlLCAweDY0LCAweDY3LCAweDA5LCAweDdhLCAweDY1LCAweDRiLCAweDg5LCAweDI0LCAweDAyLCAweDY3LCAweDE3LCAweDdlLCAKKyAgICAweDY0LCAweDY2LCAweDdmLCAweDgwLCAweGYyLCAweDJkLCAweDEzLCAweDlkLCAweDMxLCAweGNhLCAweDM5LCAweDdkLCAweDMxLCAweDJkLCAweDEwLCAweGNhLCAKKyAgICAweDE5LCAweGNhLCAweDI5LCAweDk5LCAweDI0LCAweGRhLCAweDI5LCAweGRhLCAweDA5LCAweGRhLCAweDM5LCAweDgwLCAweGEyLCAweDdhLCAweDE1LCAweDRkLCAKKyAgICAweDdlLCAweDY0LCAweDY2LCAweGY1LCAweDRkLCAweDMzLCAweDc4LCAweDA5LCAweDdjLCAweGIyLCAweDIwLCAweGU3LCAweDJhLCAweDdlLCAweDY0LCAweDY2LCAKKyAgICAweDc0LCAweDdhLCAweDY1LCAweDRiLCAweDIyLCAweDc1LCAweDJmLCAweDUyLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDIxLCAweDRkLCAweDdlLCAweDA5LCAKKyAgICAweDMwLCAweDBiLCAweDA0LCAweDFiLCAweDM0LCAweDc4LCAweDg5LCAweDgwLCAweGQ0LCAweDc1LCAweDJmLCAweDU0LCAweDEyLCAweDczLCAweDM1LCAweDdlLCAKKyAgICAweDE1LCAweDRkLCAweDdlLCAweDI1LCAweDRmLCAweDgwLCAweDkwLCAweDVlLCAweDIwLCAweDA3LCAweDU0LCAweDc4LCAweDdlLCAweDQ0LCAweDY3LCAweDdkLCAKKyAgICAweDMwLCAweGU2LCAweDE2LCAweDRkLCAweDMzLCAweDY4LCAweDI2LCAweDFiLCAweDM0LCAweDdlLCAweDA5LCAweDQwLCAweDBiLCAweDA0LCAweDdlLCAweDQ0LCAKKyAgICAweDM0LCAweGZhLCAweDIwLCAweGUzLCAweDA0LCAweDdlLCAweDQ0LCAweDY3LCAweDg1LCAweGNhLCAweDA5LCAweGNhLCAweDM5LCAweDk5LCAweDQ0LCAweGRhLCAKKyAgICAweDM5LCAweGRhLCAweDA5LCAweDdlLCAweDY0LCAweDY2LCAweDdmLCAweDRkLCAweDMzLCAweDY4LCAweGE2LCAweDg5LCAweDY0LCAweDdhLCAweDE1LCAweDRkLCAKKyAgICAweGY1LCAweDRmLCAweDdlLCAweDY0LCAweDY3LCAweDU4LCAweDgwLCAweDk5LCAweDdlLCAweDE1LCAweDRkLCAweGU1LCAweDRmLCAweDgwLCAweGM0LCAweGMwLCAKKyAgICAweGQwLCAweGMwLCAweGQxLCAweGMwLCAweGUwLCAweGNhLCAweDE5LCAweDc1LCAweDJmLCAweGZlLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE0LCAweDAwLCAKKyAgICAweDUzLCAweDAyLCAweDQwLCAweDUyLCAweGRhLCAweDE5LCAweGQwLCAweGUwLCAweGQwLCAweGQxLCAweGQwLCAweGQwLCAweDMyLCAweDAzLCAweGE1LCAweGNiLCAKKyAgICAweDE5LCAweGIxLCAweDgwLCAweDAwLCAweDIyLCAweDIyLCAweDdlLCAweDI0LCAweDAwLCAweDAwLCAweDdmLCAweGUxLCAweDdlLCAweGEwLCAweDAyLCAweGE0LCAKKyAgICAweDdlLCAweDA0LCAweDY4LCAweGIxLCAweDlkLCAweDA1LCAweDdlLCAweGIwLCAweDI4LCAweDdhLCAweGIzLCAweDk1LCAweDAwLCAweDg5LCAweDA0LCAweGNhLCAKKyAgICAweDI5LCAweGI0LCAweDgwLCAweGUyLCAweDdlLCAweDI0LCAweDAwLCAweDAwLCAweDdmLCAweGUxLCAweDdlLCAweDAwLCAweDI4LCAweDdhLCAweDAzLCAweDk1LCAKKyAgICAweDAwLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKKyAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKKyAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKKyAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKKyAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKKyAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKKyAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKKyAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKKyAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKKyAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKKyAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKKyAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKKyAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKKyAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKKyAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKKyAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKKyAgICAweGEzLCAweDdlLCAweDAwLCAweDAwLCAweDdhLCAweDAzLCAweDk1LCAweDAwLCAweGRhLCAweDI5LCAweDIyLCAweDdlLCAweDI0LCAweDAwLCAweDAwLCAweDdmLCAKKyAgICAweGUxLCAweDdlLCAweGEwLCAweDAyLCAweGE0LCAweDdlLCAweDA0LCAweDY5LCAweGU2LCAweDlkLCAweDA1LCAweDdlLCAweGIwLCAweDM4LCAweDdhLCAweGIzLCAKKyAgICAweDk1LCAweDAwLCAweDg5LCAweDA0LCAweGNhLCAweDI5LCAweGI0LCAweDgwLCAweGUyLCAweDdlLCAweDI0LCAweDAwLCAweDAwLCAweDdmLCAweGUxLCAweDdlLCAKKyAgICAweDAwLCAweDM4LCAweDdhLCAweDAzLCAweDk1LCAweDAwLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKKyAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKKyAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKKyAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKKyAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKKyAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKKyAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKKyAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKKyAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKKyAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKKyAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKKyAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKKyAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKKyAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKKyAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKKyAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKKyAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweDdlLCAweDAwLCAweDAwLCAweDdhLCAweDAzLCAweDk1LCAweDAwLCAweGRhLCAweDI5LCAweDIyLCAKKyAgICAweGNhLCAweDI5LCAweGNhLCAweDE5LCAweGNhLCAweDU4LCAweDdlLCAweDI0LCAweDAwLCAweDAwLCAweDdmLCAweGUxLCAweGRhLCAweDU4LCAweDdlLCAweDU0LCAKKyAgICAweDAyLCAweDIwLCAweDljLCAweGI1LCAweGE0LCAweDdlLCAweDUwLCAweDMwLCAweDVlLCAweDIwLCAweDA3LCAweDJjLCAweDUyLCAweDdhLCAweDUzLCAweDk1LCAKKyAgICAweDAwLCAweDJlLCAweDU0LCAweDZhLCAweDE3LCAweDg5LCAweDU0LCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKKyAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKKyAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKKyAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKKyAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweDdlLCAweDAwLCAweDAwLCAweDdhLCAweDAzLCAweDk1LCAweDAwLCAweGRhLCAweDE5LCAKKyAgICAweGRhLCAweDI5LCAweDIyLCAweGNhLCAweDE5LCAweGNhLCAweDU4LCAweDdlLCAweDI0LCAweDAwLCAweDAwLCAweDdmLCAweGUxLCAweGRhLCAweDU4LCAweDdlLCAKKyAgICAweDU0LCAweDAyLCAweDM4LCAweDljLCAweGI1LCAweGE0LCAweDdlLCAweDUwLCAweDIwLCAweDVlLCAweDIwLCAweDA3LCAweDJjLCAweDUyLCAweDdhLCAweDUzLCAKKyAgICAweDk1LCAweDAwLCAweDJlLCAweDU0LCAweDZhLCAweDg4LCAweDg5LCAweDU0LCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKKyAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKKyAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKKyAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKKyAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKKyAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKKyAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKKyAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweDdlLCAweDAwLCAweDAwLCAweDdhLCAweDAzLCAweDk1LCAweDAwLCAweGRhLCAKKyAgICAweDE5LCAweDIyLCAweDAyLCAweDZiLCAweGE4LCAweGNhLCAweDBiLCAweGNhLCAweDFiLCAweGNhLCAweDJiLCAweGNhLCAweDNiLCAweGNhLCAweDRiLCAweGNhLCAKKyAgICAweDViLCAweGNhLCAweDZiLCAweGNhLCAweDdiLCAweGNhLCAweGViLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDdlLCAweGIzLCAweDJjLCAKKyAgICAweDdmLCAweGI0LCAweDAwLCAweDAyLCAweDgwLCAweDFjLCAweGI0LCAweDAxLCAweDE5LCAweDdlLCAweGIzLCAweDkxLCAweDE0LCAweDU0LCAweDE0LCAweDY4LCAKKyAgICAweDA1LCAweDEyLCAweDZiLCAweDZjLCAweDgwLCAweDIzLCAweDdlLCAweGIzLCAweDkxLCAweDE0LCAweDMwLCAweGU1LCAweDFjLCAweDEyLCAweDZjLCAweGFhLCAKKyAgICAweDgwLCAweDE3LCAweDdlLCAweGIzLCAweDkxLCAweDE0LCAweDMwLCAweGU1LCAweDA1LCAweDEyLCAweDZjLCAweGFhLCAweDgwLCAweDBiLCAweDdlLCAweGIzLCAKKyAgICAweDkxLCAweDE0LCAweDU0LCAweDE0LCAweDY4LCAweDAzLCAweDEyLCAweDZiLCAweDZjLCAweGRhLCAweGViLCAweGRhLCAweDdiLCAweGRhLCAweDZiLCAweGRhLCAKKyAgICAweDViLCAweGRhLCAweDRiLCAweGRhLCAweDNiLCAweGRhLCAweDJiLCAweGRhLCAweDFiLCAweGRhLCAweDBiLCAweDIyLCAweDIwLCAweGU0LCAweDE5LCAweDc1LCAKKyAgICAweDJmLCAweDBhLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDJjLCAweDdlLCAweDcwLCAweDBhLCAweDdlLCAweGIzLCAweDJjLCAweDdmLCAweGI0LCAKKyAgICAweDAxLCAweDFmLCAweDAyLCAweDZjLCAweDA0LCAweDAyLCAweDcxLCAweGYyLCAweDc1LCAweDJmLCAweDBiLCAweDEyLCAweDczLCAweDM1LCAweDc0LCAweDE0LCAKKyAgICAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDdlLCAweGIzLCAweDJjLCAweDdmLCAweGI0LCAweDAyLCAweDBjLCAweDEyLCAweDZiLCAweGI0LCAweDAyLCAweDZiLCAKKyAgICAweGE4LCAweDc0LCAweDA0LCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDIyLCAweDdlLCAweDAwLCAweDAwLCAweDdhLCAweDAzLCAweDJjLCAweDdmLCAweDdhLCAKKyAgICAweDAzLCAweDJjLCAweDgwLCAweDIyLCAweDdlLCAweGIzLCAweDJjLCAweDc2LCAweDU0LCAweDYwLCAweDYwLCAweDA1LCAweGI0LCAweDQwLCAweDFlLCAweDgwLCAKKyAgICAweDFjLCAweDdlLCAweGIzLCAweDJjLCAweDc3LCAweGI0LCAweDA1LCAweDE1LCAweDc1LCAweDJmLCAweDcxLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAKKyAgICAweDJjLCAweDc5LCAweDdlLCAweGEwLCAweDAxLCAweDdhLCAweGEzLCAweDkxLCAweDA2LCAweDdhLCAweGIzLCAweDkxLCAweDA3LCAweDIyLCAweDc0LCAweDAwLCAKKyAgICAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDEwLCAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDIyLCAweGJlLCAweDU3LCAweDJjLCAweDdjLCAweDI4LCAKKyAgICAweDA0LCAweDdlLCAweDU3LCAweDJjLCAweDdjLCAweDdhLCAweDBmLCAweDJjLCAweDgyLCAweDdhLCAweDU3LCAweDJjLCAweDg2LCAweDc0LCAweDEwLCAweDdhLCAKKyAgICAweGIzLCAweDkxLCAweDEyLCAweDIyLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDdlLCAweGIzLCAweDkxLCAweDFhLCAweDcwLCAweDUzLCAKKyAgICAweDdlLCAweGIzLCAweDkxLCAweDE0LCAweDIwLCAweGU0LCAweDRjLCAweDdlLCAweGVmLCAweDJjLCAweDgyLCAweDdlLCAweGY3LCAweDJjLCAweDg2LCAweDdlLCAKKyAgICAweDA3LCAweDJjLCAweDg2LCAweDRkLCAweDAwLCAweDY4LCAweDIxLCAweDdlLCAweDAwLCAweDAwLCAweGUwLCAweDdhLCAweGIzLCAweDkxLCAweDE3LCAweGEzLCAKKyAgICAweGE1LCAweDA4LCAweDFiLCAweGY0LCAweDY4LCAweDA2LCAweGE1LCAweGI4LCAweDEwLCAweGYwLCAweDgwLCAweDE5LCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAKKyAgICAweGIzLCAweDJjLCAweDdmLCAweGJlLCAweDAwLCAweDEwLCAweDY4LCAweDBkLCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDJjLCAweDdmLCAweDc0LCAKKyAgICAweDgwLCAweDdhLCAweGIzLCAweDkxLCAweDFlLCAweDdhLCAweGVmLCAweDJjLCAweDgyLCAweDdhLCAweGY3LCAweDJjLCAweDg2LCAweDc1LCAweDJmLCAweDA2LCAKKyAgICAweDEyLCAweDczLCAweDM1LCAweDc0LCAweDA0LCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDIyLCAweGNhLCAweDBiLCAweGNhLCAweDFiLCAweGNhLCAweDJiLCAKKyAgICAweGNhLCAweDNiLCAweGNhLCAweDRiLCAweGNhLCAweDViLCAweGNhLCAweDZiLCAweGNhLCAweDdiLCAweGNhLCAweGViLCAweDc1LCAweDJmLCAweDAzLCAweDEyLCAKKyAgICAweDczLCAweDM1LCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDJjLCAweDdlLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDAxLCAKKyAgICAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDEyLCAweDZkLCAweDE5LCAweGRhLCAweGViLCAweGRhLCAweDdiLCAweGRhLCAweDZiLCAweGRhLCAweDViLCAweGRhLCAKKyAgICAweDRiLCAweGRhLCAweDNiLCAweGRhLCAweDJiLCAweGRhLCAweDFiLCAweGRhLCAweDBiLCAweDIyLCAweDc1LCAweDJmLCAweDAzLCAweDEyLCAweDczLCAweDM1LCAKKyAgICAweDdlLCAweGIzLCAweDJjLCAweDgwLCAweGI0LCAweDAyLCAweDExLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDJjLCAweDgwLCAweDdhLCAweGIzLCAweDJjLCAKKyAgICAweDdmLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDIyLCAweGI0LCAweDAxLCAweDQ2LCAweDdlLCAweGIzLCAweDkxLCAweDA0LCAweDIwLCAKKyAgICAweGU2LCAweDQyLCAweDdlLCAweDIzLCAweDkxLCAweDFhLCAweDdjLCAweDMyLCAweDdlLCAweDEzLCAweDJjLCAweDgxLCAweDJjLCAweDIxLCAweDdhLCAweDIzLCAKKyAgICAweDJjLCAweDgxLCAweDdlLCAweDAwLCAweDAwLCAweDJlLCAweDA0LCAweDJjLCAweDg4LCAweDdlLCAweGIzLCAweDkxLCAweDE2LCAweDdhLCAweDA5LCAweGIwLCAKKyAgICAweDBiLCAweDA0LCAweGE1LCAweGRiLCAweGY0LCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDc1LCAweDJmLCAweDcwLCAweDEyLCAweDczLCAKKyAgICAweDM1LCAweDdlLCAweGIzLCAweDJjLCAweDgxLCAweDdlLCAweGEzLCAweDJjLCAweDdkLCAweGJjLCAweGFiLCAweDc4LCAweDAzLCAweDEyLCAweDZkLCAweGI5LCAKKyAgICAweDIyLCAweDAyLCAweDcxLCAweGYyLCAweGRhLCAweDU5LCAweDAyLCAweDZjLCAweDdjLCAweDc0LCAweGUwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDdlLCAKKyAgICAweDAzLCAweDkxLCAweDEwLCAweDdlLCAweDEzLCAweDkxLCAweDExLCAweDdlLCAweDMzLCAweDkxLCAweDEyLCAweDdlLCAweDIzLCAweDkxLCAweDEzLCAweDdlLCAKKyAgICAweDUzLCAweDkxLCAweDE0LCAweDdlLCAweDQzLCAweDkxLCAweDE1LCAweDdlLCAweDczLCAweDkxLCAweDE2LCAweDdlLCAweDYzLCAweDkxLCAweDE3LCAweDdhLCAKKyAgICAweDBmLCAweDJjLCAweDc2LCAweDdhLCAweDFmLCAweDJjLCAweDdhLCAweDc1LCAweDJmLCAweDA0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDAxLCAweDJmLCAKKyAgICAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDExLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDIxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAKKyAgICAweDMxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDQxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAKKyAgICAweDM1LCAweDdhLCAweDYxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDc0LCAweDAwLCAweDdhLCAKKyAgICAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDQwLCAweDdhLCAweGIzLCAweDkxLCAweDA0LCAweDEyLCAweDZkLCAweDhkLCAweDIyLCAweDZkLCAweDAwLCAweDdlLCAKKyAgICAweDE0LCAweDAxLCAweDAyLCAweDdhLCAweDA3LCAweDJjLCAweDg2LCAweDdhLCAweDAzLCAweDJjLCAweDgxLCAweDdlLCAweGIzLCAweDJjLCAweDc2LCAweDIwLCAKKyAgICAweGU3LCAweDBmLCAweDdhLCAweDIzLCAweDJjLCAweDgwLCAweDdhLCAweDMzLCAweDJjLCAweDdmLCAweGJlLCAweDA3LCAweDJjLCAweDdjLCAweDY4LCAweDA5LCAKKyAgICAweDIyLCAweDdhLCAweDMzLCAweDJjLCAweDgwLCAweDdhLCAweDIzLCAweDJjLCAweDdmLCAweDdlLCAweGIzLCAweDJjLCAweDc2LCAweDU0LCAweGUzLCAweDIzLCAKKyAgICAweDIzLCAweDMwLCAweGUwLCAweDAyLCAweGQyLCAweGU1LCAweDMwLCAweGU3LCAweDAyLCAweGQyLCAweGU0LCAweDMwLCAweGU1LCAweDA2LCAweDMwLCAweGU0LCAKKyAgICAweDAzLCAweDAyLCAweDcxLCAweGYyLCAweDU0LCAweDNlLCAweGY1LCAweGYwLCAweDAzLCAweDU0LCAweDFmLCAweGMzLCAweDI1LCAweGYwLCAweDkwLCAweDZkLCAKKyAgICAweGU1LCAweDc1LCAweDg0LCAweGZmLCAweDczLCAweDAyLCAweDZmLCAweGEwLCAweDAyLCAweDZlLCAweDJkLCAweDAyLCAweDcwLCAweDM5LCAweDAyLCAweDcwLCAKKyAgICAweDU0LCAweDAyLCAweDZmLCAweDM3LCAweDAyLCAweDZlLCAweGMyLCAweDAyLCAweDcwLCAweDg1LCAweDAyLCAweDcwLCAweDg1LCAweDAyLCAweDcwLCAweDg4LCAKKyAgICAweDAyLCAweDcwLCAweDg4LCAweDAyLCAweDcwLCAweDg4LCAweDAyLCAweDcwLCAweDg4LCAweDAyLCAweDcwLCAweDg4LCAweDAyLCAweDcwLCAweDg4LCAweDAyLCAKKyAgICAweDcwLCAweDg4LCAweDAyLCAweDcwLCAweDg4LCAweDAyLCAweDcwLCAweDhlLCAweDAyLCAweDcxLCAweDYwLCAweDAyLCAweDcwLCAweDhiLCAweDAyLCAweDcwLCAKKyAgICAweDhiLCAweDAyLCAweDcwLCAweDhiLCAweDAyLCAweDcwLCAweDhiLCAweDAyLCAweDcwLCAweDhiLCAweDAyLCAweDcwLCAweDhiLCAweDc0LCAweDAwLCAweDdhLCAKKyAgICAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAweGIzLCAweDkxLCAweDFjLCAweDdlLCAweGIzLCAweDJjLCAweDc3LCAweGI0LCAweDA2LCAweDJhLCAKKyAgICAweDdlLCAweGIzLCAweDJjLCAweDc4LCAweDYwLCAweDc5LCAweDdjLCAweDBiLCAweDdlLCAweDEzLCAweDJjLCAweDc5LCAweDdlLCAweDE3LCAweDJjLCAweDdhLCAKKyAgICAweDc1LCAweDJmLCAweDcyLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDAxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDExLCAweDJmLCAweDEyLCAKKyAgICAweDczLCAweDM1LCAweDEyLCAweDcyLCAweDM3LCAweDQwLCAweDU4LCAweDAyLCAweDZiLCAweGViLCAweGI0LCAweDA4LCAweDFjLCAweDc1LCAweDJmLCAweDc0LCAKKyAgICAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDNmLCAweGYxLCAweDdlLCAweDA4LCAweDJjLCAweDg4LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweDdhLCAKKyAgICAweDBiLCAweGIwLCAweDdlLCAweDU0LCAweDAwLCAweDAxLCAweDAyLCAweDZiLCAweGViLCAweGI0LCAweDAwLCAweDMzLCAweDc1LCAweDJmLCAweDc1LCAweDEyLCAKKyAgICAweDczLCAweDM1LCAweDdlLCAweDA4LCAweDJjLCAweDg4LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweGNhLCAweDBiLCAweDdlLCAweGIzLCAweDNmLCAweGYyLCAKKyAgICAweDMwLCAweGUwLCAweDA3LCAweDc0LCAweDAyLCAweDdhLCAweDBiLCAweGIwLCAweDgwLCAweDA1LCAweDc0LCAweDAwLCAweDdhLCAweDBiLCAweGIwLCAweDBiLCAKKyAgICAweDE0LCAweDc0LCAweDAwLCAweDdhLCAweDBiLCAweGIwLCAweDdlLCAweDU0LCAweDAwLCAweDAyLCAweGRhLCAweDBiLCAweDAyLCAweDZiLCAweGViLCAweDAyLCAKKyAgICAweDcxLCAweGYyLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAweGIzLCAweDkxLCAweDFjLCAweDdlLCAweGIzLCAKKyAgICAweDJjLCAweDc3LCAweGI0LCAweDAwLCAweDVmLCAweDc1LCAweDJmLCAweDc2LCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDJjLCAweDdiLCAweDU0LCAKKyAgICAweDBmLCAweGI0LCAweDAyLCAweDA1LCAweDdlLCAweGIwLCAweDYwLCAweDgwLCAweDE3LCAweGI0LCAweDAwLCAweDA1LCAweDdlLCAweGIwLCAweDAwLCAweDgwLCAKKyAgICAweDBmLCAweDdlLCAweGIzLCAweDJjLCAweDdiLCAweDIwLCAweGU3LCAweDA1LCAweDdlLCAweGIwLCAweDQwLCAweDgwLCAweDAzLCAweDdlLCAweGIwLCAweDIwLCAKKyAgICAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDdlLCAweGIzLCAweDkxLCAweDExLCAweDMwLCAweGUwLCAweDA0LCAweDc0LCAweDAxLCAweDgwLCAweDAyLCAweDc0LCAKKyAgICAweDAwLCAweDdlLCAweDA4LCAweDJjLCAweDg4LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweGNhLCAweDBiLCAweDdhLCAweDBiLCAweGIwLCAweDBiLCAweDE0LCAKKyAgICAweDc0LCAweDAwLCAweDdhLCAweDBiLCAweGIwLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDdlLCAweDU0LCAweDAwLCAweDAyLCAweGRhLCAKKyAgICAweDBiLCAweDAyLCAweDZiLCAweGViLCAweDAyLCAweDcxLCAweGYyLCAweDdlLCAweGIzLCAweDJjLCAweDdiLCAweDU0LCAweDBmLCAweGI0LCAweDAyLCAweDA1LCAKKyAgICAweDdlLCAweGIwLCAweDYwLCAweDgwLCAweDE3LCAweGI0LCAweDAwLCAweDA1LCAweDdlLCAweGIwLCAweDAwLCAweDgwLCAweDBmLCAweDdlLCAweGIzLCAweDJjLCAKKyAgICAweDdiLCAweDIwLCAweGU3LCAweDA1LCAweDdlLCAweGIwLCAweDQwLCAweDgwLCAweDAzLCAweDdlLCAweGIwLCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAKKyAgICAweDdlLCAweGIzLCAweDJjLCAweDc5LCAweGI0LCAweDAwLCAweDI2LCAweDdlLCAweGIzLCAweDJjLCAweDc3LCAweGI0LCAweDAxLCAweDBlLCAweDc1LCAweDJmLCAKKyAgICAweDc3LCAweDEyLCAweDczLCAweDM1LCAweDc0LCAweDAxLCAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDgwLCAweDFiLCAweGI0LCAweDAzLCAweDBlLCAweDc1LCAKKyAgICAweDJmLCAweDc4LCAweDEyLCAweDczLCAweDM1LCAweDc0LCAweDAxLCAweDdhLCAweGIzLCAweDkxLCAweDExLCAweDgwLCAweDBhLCAweDc0LCAweDAwLCAweDdhLCAKKyAgICAweGIzLCAweDkxLCAweDAwLCAweDEyLCAweDcxLCAweGYyLCAweDIyLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDAyLCAweDZiLCAweGRlLCAKKyAgICAweDdlLCAweGIzLCAweDJjLCAweDc3LCAweGI0LCAweDA5LCAweDFmLCAweDc1LCAweDJmLCAweDc5LCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDJjLCAKKyAgICAweDc5LCAweGJlLCAweGIzLCAweDNmLCAweGYxLCAweDY4LCAweDBkLCAweGNhLCAweGI4LCAweDEyLCAweDQzLCAweDc5LCAweGRhLCAweGI4LCAweDUwLCAweDc2LCAKKyAgICAweDdhLCAweGIzLCAweDNmLCAweGYxLCAweDgwLCAweDZkLCAweGI0LCAweDA1LCAweDA4LCAweDc1LCAweDJmLCAweDdhLCAweDEyLCAweDczLCAweDM1LCAweDgwLCAKKyAgICAweDYyLCAweGI0LCAweDAzLCAweDE5LCAweDc1LCAweDJmLCAweDdiLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDJjLCAweDc5LCAweGI0LCAweDAxLCAKKyAgICAweDU1LCAweDdlLCAweGIzLCAweDNmLCAweGYyLCAweDQ0LCAweDAxLCAweDdhLCAweGIzLCAweDNmLCAweGYyLCAweDgwLCAweDQ2LCAweGI0LCAweDAxLCAweDE5LCAKKyAgICAweDc1LCAweDJmLCAweDdjLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDJjLCAweDc5LCAweGI0LCAweDAxLCAweDM5LCAweDdlLCAweGIzLCAweDNmLCAKKyAgICAweGYyLCAweDU0LCAweGZlLCAweDdhLCAweGIzLCAweDNmLCAweGYyLCAweDgwLCAweDJhLCAweGI0LCAweDA3LCAweDJhLCAweDdlLCAweGIzLCAweDJjLCAweDc4LCAKKyAgICAweDYwLCAweDI0LCAweDdjLCAweDBiLCAweDdlLCAweDEzLCAweDJjLCAweDc5LCAweDdlLCAweDE3LCAweDJjLCAweDdhLCAweDc1LCAweDJmLCAweDczLCAweDEyLCAKKyAgICAweDczLCAweDM1LCAweDdhLCAweDAxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDExLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDcyLCAKKyAgICAweDcxLCAweDQwLCAweDAzLCAweDAyLCAweDZiLCAweGRlLCAweDAyLCAweDcxLCAweGYyLCAweDdlLCAweGIzLCAweDJjLCAweDc3LCAweGI0LCAweDBiLCAweGY2LCAKKyAgICAweDc1LCAweDJmLCAweDdkLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDJjLCAweDc5LCAweDdlLCAweGEzLCAweDJjLCAweDdiLCAweDRjLCAweGFiLCAKKyAgICAweDc4LCAweGU0LCAweDgwLCAweGRmLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAweGIzLCAweDkxLCAweDFjLCAKKyAgICAweDdlLCAweGIzLCAweDJjLCAweDc3LCAweGI0LCAweDBhLCAweGNmLCAweDc1LCAweDJmLCAweDdlLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDJjLCAKKyAgICAweDc5LCAweDcwLCAweGMzLCAweDdlLCAweDA4LCAweDJjLCAweDg4LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweDdhLCAweDBiLCAweGIwLCAweDdlLCAweDU0LCAKKyAgICAweDAwLCAweDAxLCAweDAyLCAweDZiLCAweGViLCAweDAyLCAweDcxLCAweGYyLCAweDAyLCAweDcxLCAweGYyLCAweDAyLCAweDcxLCAweGYyLCAweDdlLCAweGIzLCAKKyAgICAweDJjLCAweDc3LCAweGI0LCAweDA0LCAweDIwLCAweDc1LCAweDJmLCAweGMzLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDA0LCAweDAwLCAweDAxLCAweDdlLCAKKyAgICAweDE3LCAweDJjLCAweDc4LCAweDdlLCAweDE4LCAweDJjLCAweDg4LCAweDdhLCAweDFjLCAweDAwLCAweDAwLCAweDdlLCAweDQ3LCAweDJjLCAweDdjLCAweDEyLCAKKyAgICAweDczLCAweDQxLCAweDAyLCAweDcxLCAweDVhLCAweGI0LCAweDA2LCAweDQyLCAweDc1LCAweDJmLCAweGMxLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDU4LCAKKyAgICAweDAwLCAweDAwLCAweDdhLCAweDVjLCAweDAwLCAweGZlLCAweDdkLCAweGNhLCAweDdlLCAweGQ3LCAweDJjLCAweDc4LCAweDdlLCAweDc4LCAweDJjLCAweDg4LCAKKyAgICAweDdhLCAweDdjLCAweDAwLCAweDAwLCAweDdlLCAweDc3LCAweDJjLCAweDdjLCAweDc1LCAweDJmLCAweGMxLCAweDEyLCAweDczLCAweDM1LCAweGMwLCAweGE4LCAKKyAgICAweGMyLCAweGFmLCAweDdlLCAweDQwLCAweDAxLCAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweDEyLCAweDczLCAweDdhLCAweDdlLCAweDQzLCAweDJjLCAweDM1LCAKKyAgICAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweGQwLCAweGE4LCAweDQwLCAweDY1LCAweDgwLCAweDYwLCAweGI0LCAweDAwLCAweDI0LCAweGMyLCAweGFmLCAweDdlLCAKKyAgICAweGIwLCAweDAxLCAweDdhLCAweGIzLCAweDk0LCAweDAwLCAweDdhLCAweGIzLCAweDJjLCAweDM1LCAweDEyLCAweDZiLCAweGRlLCAweGU0LCAweDhkLCAweGVmLCAKKyAgICAweDhkLCAweGVmLCAweDhkLCAweGVmLCAweGQ1LCAweGUwLCAweGY3LCAweGMwLCAweGQxLCAweGNhLCAweDAyLCAweGZmLCAweGNhLCAweDA2LCAweDAwLCAweDAwLCAKKyAgICAweDMyLCAweGI0LCAweDA5LCAweDIwLCAweDc0LCAweDAzLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDdlLCAweDIzLCAweDkxLCAweDA3LCAweDdlLCAweDU3LCAKKyAgICAweDJjLCAweDc4LCAweDRkLCAweDU1LCAweDY4LCAweDA1LCAweDRlLCAweDIwLCAweDAyLCAweDgwLCAweDAzLCAweDVlLCAweDIwLCAweGZkLCAweDdhLCAweDIzLCAKKyAgICAweDkxLCAweDA3LCAweDgwLCAweDE2LCAweGI0LCAweDA3LCAweDE2LCAweGMyLCAweGFmLCAweDdlLCAweDA3LCAweDJjLCAweDdhLCAweDdlLCAweDE3LCAweDJjLCAKKyAgICAweDc4LCAweGMwLCAweGQxLCAweGNhLCAweDE4LCAweGNhLCAweDM4LCAweGNhLCAweDI4LCAweDMyLCAweDAyLCAweDZiLCAweGRlLCAweDAyLCAweDcxLCAweGYyLCAKKyAgICAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAweGIzLCAweDkxLCAweDFjLCAweDdlLCAweGIzLCAweDJjLCAweDc3LCAKKyAgICAweGI0LCAweDAzLCAweDE1LCAweDc1LCAweDJmLCAweGMyLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDA0LCAweDAwLCAweDAxLCAweDdlLCAweDE3LCAweDJjLCAKKyAgICAweDc4LCAweDdlLCAweDU3LCAweDJjLCAweDdjLCAweDAyLCAweDZiLCAweGViLCAweGI0LCAweDA1LCAweDQxLCAweDc1LCAweDJmLCAweGMwLCAweDEyLCAweDczLCAKKyAgICAweDM1LCAweGMwLCAweGE4LCAweGMyLCAweGFmLCAweDdlLCAweDQwLCAweDAxLCAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweDdlLCAweDA4LCAweDJjLCAweDg4LCAKKyAgICAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweDdlLCAweDI0LCAweDAwLCAweGZlLCAweDdlLCAweDM3LCAweDJjLCAweDc4LCAweDdlLCAweDQ3LCAweDJjLCAweDdjLCAKKyAgICAweDEyLCAweDczLCAweDQxLCAweDdlLCAweDQzLCAweDJjLCAweDM1LCAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweGQwLCAweGE4LCAweDdlLCAweDA4LCAweDJjLCAKKyAgICAweDg4LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweDdlLCAweDU3LCAweDJjLCAweDdjLCAweDAyLCAweDZiLCAweGViLCAweGI0LCAweDAxLCAweDIwLCAweDdlLCAKKyAgICAweDAwLCAweDAwLCAweDdlLCAweDEwLCAweDAxLCAweDc1LCAweDJmLCAweDcyLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDAxLCAweDJmLCAweDEyLCAweDczLCAKKyAgICAweDM1LCAweDdhLCAweDExLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDcyLCAweDM3LCAweDQwLCAweDAzLCAweDAyLCAweDZiLCAweGViLCAweDAyLCAKKyAgICAweDcxLCAweGYyLCAweDc1LCAweDJmLCAweDA3LCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIwLCAweDAyLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDc0LCAKKyAgICAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDQwLCAweDdhLCAweGIzLCAweDkxLCAweDE1LCAweDc0LCAweDAxLCAweDdhLCAweGIzLCAweDkxLCAKKyAgICAweDExLCAweDdlLCAweGIzLCAweDkxLCAweDE1LCAweDU0LCAweDYwLCAweGJlLCAweGIwLCAweDQwLCAweDY4LCAweDA4LCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAKKyAgICAweDkxLCAweDE1LCAweDgwLCAweGVkLCAweDc0LCAweDAxLCAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDc0LCAweDA0LCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAKKyAgICAweDc0LCAweGZmLCAweDdhLCAweGIzLCAweDJjLCAweDdlLCAweDIyLCAweGMwLCAweGE4LCAweGMyLCAweGFmLCAweDdlLCAweDQwLCAweDAxLCAweDdhLCAweDQzLCAKKyAgICAweDk0LCAweDAwLCAweDEyLCAweDcyLCAweGJlLCAweDQwLCAweDFmLCAweDdlLCAweDA4LCAweDJjLCAweDg4LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweGNhLCAKKyAgICAweDBiLCAweGNhLCAweDQ5LCAweDEyLCAweDczLCAweDQxLCAweGRhLCAweDU5LCAweGRhLCAweDBiLCAweDdlLCAweDQzLCAweDJjLCAweDM1LCAweDdhLCAweDQzLCAKKyAgICAweDk0LCAweDAwLCAweGQwLCAweGE4LCAweGMzLCAweDIyLCAweDdlLCAweDQzLCAweDJjLCAweDM1LCAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweGQwLCAweGE4LCAKKyAgICAweDIyLCAweGMwLCAweGE4LCAweGMyLCAweGFmLCAweDdlLCAweDQwLCAweDAxLCAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweDEyLCAweDcyLCAweGJlLCAweDQwLCAKKyAgICAweDMxLCAweDdlLCAweDU4LCAweDAwLCAweDAwLCAweDdhLCAweDVjLCAweDAwLCAweGZlLCAweDdmLCAweDYxLCAweDdlLCAweDc4LCAweDJjLCAweDg4LCAweDdhLCAKKyAgICAweDdjLCAweDAwLCAweDAwLCAweDdlLCAweDc3LCAweDJjLCAweDdjLCAweGJkLCAweDc0LCAweDc4LCAweDE3LCAweDc1LCAweDJmLCAweGMxLCAweDEyLCAweDczLCAKKyAgICAweDM1LCAweDEyLCAweDczLCAweDdhLCAweDQwLCAweDBjLCAweDdlLCAweDQzLCAweDJjLCAweDM1LCAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweGQwLCAweGE4LCAKKyAgICAweGMzLCAweDIyLCAweDdlLCAweDQzLCAweDJjLCAweDM1LCAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweGQwLCAweGE4LCAweGQzLCAweDIyLCAweDdlLCAweDI0LCAKKyAgICAweDAwLCAweGZlLCAweDdlLCAweDM0LCAweDdmLCAweGNhLCAweDBiLCAweDFhLCAweDUwLCAweGM1LCAweGYwLCAweDdkLCAweDYyLCAweDdkLCAweDc1LCAweDdkLCAKKyAgICAweDg3LCAweDdlLCAweDM0LCAweDdmLCAweGMyLCAweDdlLCAweDFiLCAweGIwLCAweDdlLCAweDM0LCAweDdmLCAweDAzLCAweGI0LCAweDAxLCAweDA0LCAweDdlLCAKKyAgICAweDM0LCAweDdmLCAweGNjLCAweDdlLCAweDFiLCAweGIwLCAweGJjLCAweDBiLCAweDUwLCAweDQ5LCAweDNlLCAweDAwLCAweDNlLCAweDAwLCAweDBhLCAweDUwLCAKKyAgICAweDJkLCAweDc1LCAweDBiLCAweDNhLCAweDMwLCAweDY5LCAweDUzLCAweDAwLCAweDAyLCAweGJkLCAweDM4LCAweDUwLCAweDAyLCAweDJkLCAweDM4LCAweGJjLCAKKyAgICAweDFiLCAweDUwLCAweDMwLCAweDNlLCAweDEwLCAweDNlLCAweDEwLCAweDBhLCAweDUxLCAweDJkLCAweDM1LCAweDY5LCAweDQxLCAweDAwLCAweDAyLCAweDBiLCAKKyAgICAweDFhLCAweDMwLCAweGJkLCAweDM4LCAweDUwLCAweDAyLCAweDJkLCAweDM4LCAweGJlLCAweDQ0LCAweGZmLCAweGZmLCAweDc4LCAweDA1LCAweDdlLCAweDFiLCAKKyAgICAweDkwLCAweDBhLCAweDQ5LCAweDRkLCAweDQ0LCAweDY4LCAweDBjLCAweGJlLCAweDQ0LCAweDAwLCAweGZmLCAweDI4LCAweDA0LCAweDdlLCAweDQ0LCAweDAwLCAKKyAgICAweGZmLCAweGMzLCAweDIyLCAweGQzLCAweDIyLCAKKworLy8gU2VnbWVudCAjMTYsIFN0YXJ0IEFkZHJlc3MgMDBmZjdmYzYsIExlbmd0aCA0CisweGZmLDB4MDAsMHhjNiwweDdmLDB4MDQsMHgwMCwKKyAgICAweDAyLCAweDAwLCAweDAzLCAweDAwLCAKKworLy8gU2VnbWVudCAjMTcsIFN0YXJ0IEFkZHJlc3MgMDBmZjczMzUsIExlbmd0aCAzMjgKKzB4ZmYsMHgwMCwweDM1LDB4NzMsMHg0OCwweDAxLAorICAgIDB4Y2EsIDB4MDgsIDB4N2UsIDB4MDEsIDB4MmYsIDB4N2EsIDB4MDMsIDB4M2YsIDB4ZjAsIDB4ZGEsIDB4MDgsIDB4MjIsIDB4N2UsIDB4MWIsIDB4YzAsIDB4N2EsIAorICAgIDB4MGIsIDB4YzAsIDB4MGIsIDB4MTQsIDB4MGIsIDB4MzQsIDB4MWIsIDB4NDQsIDB4NzgsIDB4ZjIsIDB4MjIsIDB4N2YsIDB4NmYsIDB4N2YsIDB4ZjAsIDB4MWIsIAorICAgIDB4ZmMsIDB4N2MsIDB4NTQsIDB4N2QsIDB4MzIsIDB4ODAsIDB4MDgsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MWIsIDB4OWUsIAorICAgIDB4NDQsIDB4MDAsIDB4MTAsIDB4NTAsIDB4ZjIsIDB4MmUsIDB4NDQsIDB4MDAsIDB4MTAsIDB4NjgsIDB4MDYsIDB4Y2EsIDB4NDgsIDB4MWIsIDB4NDQsIDB4NzgsIAorICAgIDB4ZmEsIDB4N2YsIDB4ZjYsIDB4ODksIDB4ZTQsIDB4Y2EsIDB4NmIsIDB4NWUsIDB4ZDQsIDB4MDAsIDB4M2YsIDB4NjgsIDB4MjAsIDB4N2UsIDB4ODQsIDB4MDAsIAorICAgIDB4NDAsIDB4OWQsIDB4OGQsIDB4ZGEsIDB4NmIsIDB4YmQsIDB4ODcsIDB4MzgsIDB4MTYsIDB4Y2EsIDB4NzksIDB4N2QsIDB4NzgsIDB4MTIsIDB4NzMsIDB4YTQsIAorICAgIDB4ZGEsIDB4NzksIDB4NDAsIDB4MDgsIDB4OWQsIDB4NzgsIDB4NjgsIDB4MDIsIDB4ODAsIDB4MDUsIDB4YzIsIDB4ZDcsIDB4MjIsIDB4ZGEsIDB4NmIsIDB4N2UsIAorICAgIDB4YzAsIDB4MDMsIDB4N2UsIDB4ZDAsIDB4MDAsIDB4N2EsIDB4ZDMsIDB4OTAsIDB4MDAsIDB4NzQsIDB4YWEsIDB4MzksIDB4YjUsIDB4NTUsIDB4NTUsIDB4NzQsIAorICAgIDB4NTUsIDB4MzksIDB4YjUsIDB4MmEsIDB4YWEsIDB4NzQsIDB4YTAsIDB4MzksIDB4YjUsIDB4NTUsIDB4NTUsIDB4N2UsIDB4MDQsIDB4MDAsIDB4NDAsIDB4OWQsIAorICAgIDB4NzAsIDB4NTAsIDB4MDYsIDB4MmQsIDB4NzAsIDB4N2QsIDB4MDcsIDB4NmQsIDB4NzcsIDB4N2MsIDB4MzEsIDB4N2UsIDB4N2IsIDB4MDAsIDB4N2EsIDB4NmIsIAorICAgIDB4MDAsIDB4MGIsIDB4N2MsIDB4MGIsIDB4NmMsIDB4YTUsIDB4ZDksIDB4ZjMsIDB4N2YsIDB4MTYsIDB4MWIsIDB4MWMsIDB4N2UsIDB4NTQsIDB4MjcsIDB4MTAsIAorICAgIDB4N2UsIDB4MWIsIDB4MTAsIDB4YmMsIDB4MTAsIDB4NjgsIDB4MDYsIDB4MWIsIDB4NTQsIDB4NzgsIDB4ZjUsIDB4ODAsIDB4MmYsIDB4NmQsIDB4MDAsIDB4N2MsIAorICAgIDB4MjAsIDB4N2YsIDB4MTYsIDB4OWYsIDB4MTAsIDB4N2YsIDB4MjcsIDB4OWYsIDB4MjAsIDB4N2UsIDB4MmIsIDB4MDAsIDB4N2UsIDB4MWIsIDB4MTAsIDB4YmMsIAorICAgIDB4MDEsIDB4NzgsIDB4MTksIDB4MGIsIDB4MmMsIDB4MGIsIDB4MWMsIDB4YTUsIDB4ZGIsIDB4ZWYsIDB4N2MsIDB4YjYsIDB4MjAsIDB4ZTAsIDB4MDYsIDB4NmMsIAorICAgIDB4ZGMsIDB4N2EsIDB4ZDMsIDB4OTAsIDB4MDAsIDB4NGQsIDB4NzcsIDB4NzgsIDB4OTAsIDB4YzIsIDB4ZDcsIDB4MjIsIDB4ZDIsIDB4ZDcsIDB4MjIsIDB4MDAsIAorICAgIDB4MDQsIDB4MDAsIDB4MDQsIDB4MDAsIDB4MDAsIDB4MDYsIDB4MDQsIDB4MDIsIDB4MDQsIDB4MDAsIDB4MDIsIDB4MDEsIDB4MDQsIDB4MDEsIDB4MDIsIDB4MDAsIAorICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDIsIDB4MDIsIDB4MDIsIDB4MDIsIDB4MDQsIDB4MDAsIDB4MDgsIDB4MTAsIAorICAgIDB4MDIsIDB4MTAsIDB4MDQsIDB4MDIsIDB4MDgsIDB4MDAsIDB4MDEsIDB4MDEsIDB4MDgsIDB4N2UsIDB4MTgsIDB4N2YsIDB4YmQsIDB4N2EsIDB4MWMsIDB4MDAsIAorICAgIDB4ZmUsIDB4MGIsIDB4MWEsIDB4MDAsIDB4NWUsIDB4MTAsIDB4MWYsIDB4YmUsIDB4MTAsIDB4MTQsIDB4MzgsIDB4MWEsIDB4MGEsIDB4NTEsIDB4MjMsIDB4N2UsIAorICAgIDB4MTgsIDB4NzQsIDB4MjQsIDB4N2EsIDB4MWMsIDB4MDAsIDB4ZmYsIDB4MmQsIDB4MzUsIDB4MGIsIDB4MWEsIDB4NTAsIDB4NjAsIDB4MDgsIDB4YTUsIDB4YjgsIAorICAgIDB4MDIsIDB4MDMsIDB4NGUsIDB4YTAsIDB4MDgsIDB4MjIsIDB4ODAsIDB4ZmUsIAorfTsKKworc3RhdGljIHN0cnVjdCBlZGdlX2Zpcm13YXJlX3ZlcnNpb25faW5mbyBJTUFHRV9WRVJTSU9OX05BTUUgPSB7CisJMiwgMCwgMyB9OwkJLy8gTWFqb3IsIE1pbm9yLCBCdWlsZAorCisjdW5kZWYgSU1BR0VfVkVSU0lPTl9OQU1FCisKKyN1bmRlZiBJTUFHRV9BUlJBWV9OQU1FCisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19md19kb3duMy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Rvd24zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTNiNTZkNgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19md19kb3duMy5oCkBAIC0wLDAgKzEsODM1IEBACisvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisvLyogRWRnZXBvcnQgQmluYXJ5IEltYWdlIChmb3IgVEkgYmFzZWQgcHJvZHVjdHMpCisvLyogR2VuZXJhdGVkIGJ5IFRJQmluMkMgdjIuMDAgKHdhdGNocG9ydCkKKy8vKiBDb3B5cmlnaHQgKEMpIDIwMDEgSW5zaWRlIE91dCBOZXR3b3JrcywgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworCitzdGF0aWMgaW50IElNQUdFX1NJWkUgPSAxMjc0OTsKKworc3RydWN0IEVER0VfRklSTVdBUkVfVkVSU0lPTl9JTkZPCit7CisJdW5zaWduZWQgY2hhciAgIE1ham9yVmVyc2lvbjsKKwl1bnNpZ25lZCBjaGFyICAgTWlub3JWZXJzaW9uOworCXVuc2lnbmVkIHNob3J0ICBCdWlsZE51bWJlcjsKK307CisKK3N0YXRpYyBzdHJ1Y3QgRURHRV9GSVJNV0FSRV9WRVJTSU9OX0lORk8gSU1BR0VfVkVSU0lPTl9OQU1FID0KK3sKKwk0LCAxMCwgMAkJLy8gTWFqb3IsIE1pbm9yLCBCdWlsZAorCit9OworCitzdGF0aWMgdW5zaWduZWQgY2hhciBJTUFHRV9BUlJBWV9OQU1FW10gPSAKK3sKKy8vICBzdHJ1Y3QgSW1hZ2VIZHIKKy8vICB7CisvLyAgICAgIFdPUkQgICAgTGVuZ3RoOworLy8gICAgICBCWVRFICAgIENoZWNrU3VtOworLy8gIH07CisweGNhLCAweDMxLCAKKzB4YTgsIAorCisweDAyLCAweDI2LCAweGZlLCAweDAyLCAweDIxLCAweDA0LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAwLCAweDFlLCAweDAwLCAweDAwLCAKKzB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDEsIDB4MWEsIDB4ODUsIDB4M2YsIAorMHg4YywgMHg4NSwgMHg0MCwgMHg4YSwgMHhjMCwgMHhlMCwgMHhjMCwgMHhkMCwgMHhjMCwgMHhmMCwgMHhjMCwgMHg4MiwgMHhjMCwgMHg4MywgMHhjMCwgMHgwMCwgCisweGMwLCAweDAxLCAweGMwLCAweDAyLCAweGMwLCAweDAzLCAweGMwLCAweDA0LCAweGMwLCAweDA1LCAweGMwLCAweDA2LCAweGMwLCAweDA3LCAweGU1LCAweDNlLCAKKzB4MjQsIDB4MDgsIDB4ZjgsIDB4ZTYsIDB4NjAsIDB4MmIsIDB4ZTUsIDB4M2UsIDB4MjQsIDB4MTAsIDB4ZjgsIDB4YTYsIDB4ODEsIDB4ZTUsIDB4M2UsIDB4NzUsIAorMHhmMCwgMHgyMSwgMHhhNCwgMHgyNCwgMHgwNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHhmOCwgMHhmNSwgMHg4MywgMHg3OCwgMHg4YywgMHhlNSwgMHg4MSwgCisweDA0LCAweGMzLCAweDk4LCAweGY5LCAweDk0LCAweDIyLCAweDQwLCAweDAzLCAweDAyLCAweDExLCAweDk0LCAweGU2LCAweGYwLCAweDA4LCAweGEzLCAweGQ5LCAKKzB4ZmEsIDB4NzQsIDB4MDgsIDB4MjUsIDB4M2UsIDB4ZjgsIDB4MDUsIDB4M2UsIDB4MDgsIDB4ZTYsIDB4NTQsIDB4ODAsIDB4NzAsIDB4MGMsIDB4ZTUsIDB4M2UsIAorMHhiNCwgMHgwNywgMHhmMywgMHg3OCwgMHgwOCwgMHg3NSwgMHgzZSwgMHgwMCwgMHg4MCwgMHhlZiwgMHhlNSwgMHgzZSwgMHgyNCwgMHgxMCwgMHhmOCwgMHg4NiwgCisweDgxLCAweGU1LCAweDNlLCAweDc1LCAweGYwLCAweDIxLCAweGE0LCAweDI0LCAweDA1LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweGY4LCAweGY1LCAweDgzLCAKKzB4NzgsIDB4OGMsIDB4ZTUsIDB4ODEsIDB4MDQsIDB4YzMsIDB4OTgsIDB4ZjksIDB4ZTAsIDB4ZjYsIDB4MDgsIDB4YTMsIDB4ZDksIDB4ZmEsIDB4ZDAsIDB4MDcsIAorMHhkMCwgMHgwNiwgMHhkMCwgMHgwNSwgMHhkMCwgMHgwNCwgMHhkMCwgMHgwMywgMHhkMCwgMHgwMiwgMHhkMCwgMHgwMSwgMHhkMCwgMHgwMCwgMHhkMCwgMHg4MywgCisweGQwLCAweDgyLCAweGQwLCAweGYwLCAweGQwLCAweGQwLCAweGQwLCAweGUwLCAweDMyLCAweDMwLCAweDAxLCAweDRkLCAweDMwLCAweGI0LCAweDQ4LCAweDEwLCAKKzB4MDAsIDB4NDUsIDB4OTAsIDB4ZmYsIDB4MDgsIDB4ZTAsIDB4NTQsIDB4MjAsIDB4ZjgsIDB4OTAsIDB4ZmYsIDB4NDgsIDB4ZTAsIDB4NTQsIDB4MjAsIDB4ZjksIAorMHg5MCwgMHhmZiwgMHgxMCwgMHhlMCwgMHg1NCwgMHgyMCwgMHhmYSwgMHg5MCwgMHhmZiwgMHg1MCwgMHhlMCwgMHg1NCwgMHgyMCwgMHhmYiwgMHg3NCwgMHgwMCwgCisweGY1LCAweDgyLCAweDc0LCAweGY4LCAweGY1LCAweDgzLCAweGUwLCAweGM4LCAweGYwLCAweDY4LCAweDYwLCAweDAyLCAweDdlLCAweDA0LCAweGEzLCAweGUwLCAKKzB4YzksIDB4ZjAsIDB4NjksIDB4NjAsIDB4MDIsIDB4N2UsIDB4MDQsIDB4YTMsIDB4ZTAsIDB4Y2EsIDB4ZjAsIDB4NmEsIDB4NjAsIDB4MDIsIDB4N2UsIDB4MDQsIAorMHhhMywgMHhlMCwgMHhjYiwgMHhmMCwgMHg2YiwgMHg2MCwgMHgwMiwgMHg3ZSwgMHgwNCwgMHgyMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHhkMCwgMHhjMCwgMHhmMCwgCisweGMwLCAweDgyLCAweGMwLCAweDgzLCAweGMwLCAweDAwLCAweGMwLCAweDAxLCAweGMwLCAweDAyLCAweGMwLCAweDAzLCAweGMwLCAweDA0LCAweGMwLCAweDA1LCAKKzB4YzAsIDB4MDYsIDB4YzAsIDB4MDcsIDB4OTAsIDB4ZmYsIDB4OTMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZTUsIDB4ODEsIDB4OTQsIDB4ZmQsIDB4NDAsIDB4MDMsIAorMHgwMiwgMHgxMSwgMHg5NCwgMHg4NSwgMHg0MSwgMHg4ZCwgMHg4NSwgMHg0MiwgMHg4YiwgMHg3NCwgMHhhZiwgMHhmNSwgMHg4MiwgMHg3NCwgMHhmYSwgMHhmNSwgCisweDgzLCAweGUwLCAweGI0LCAweDAxLCAweDFiLCAweGMwLCAweDgyLCAweGMwLCAweDgzLCAweDkwLCAweGZmLCAweDRhLCAweGUwLCAweDMwLCAweGU3LCAweDJjLCAKKzB4OTAsIDB4ZmYsIDB4NGUsIDB4ZTAsIDB4MzAsIDB4ZTcsIDB4MjUsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4ODAsIDB4MjAsIAorMHhiNCwgMHgwMiwgMHgxZCwgMHhjMCwgMHg4MiwgMHhjMCwgMHg4MywgMHg5MCwgMHhmZiwgMHg3YSwgMHhlMCwgMHgzMCwgMHhlNywgMHgwNSwgMHgxMiwgMHgyNywgCisweDhkLCAweDgwLCAweDA5LCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweDc0LCAweDAzLCAweGYwLCAweDgwLCAweDA0LCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAKKzB4YTMsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MWIsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODMsIDB4OTAsIDB4ZmYsIDB4NTIsIDB4ZTAsIDB4MzAsIDB4ZTcsIDB4MmMsIAorMHg5MCwgMHhmZiwgMHg1NiwgMHhlMCwgMHgzMCwgMHhlNywgMHgyNSwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHg3NCwgMHgwMiwgMHhmMCwgMHg4MCwgMHgyNSwgCisweGI0LCAweDAyLCAweDIyLCAweGMwLCAweDgyLCAweGMwLCAweDgzLCAweDkwLCAweGZmLCAweDdhLCAweGUwLCAweDMwLCAweGU3LCAweDA1LCAweDEyLCAweDI3LCAKKzB4OGQsIDB4ODAsIDB4MDksIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ODAsIDB4MDksIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIAorMHg4MCwgMHgwMywgMHgwMiwgMHgwMiwgMHg2MiwgMHg3NCwgMHgxNSwgMHhmNSwgMHg4MiwgMHg3NCwgMHhmOSwgMHhmNSwgMHg4MywgMHhlMCwgMHgyMCwgMHgwNCwgCisweGYxLCAweDIwLCAweDAyLCAweDAzLCAweDMwLCAweDAxLCAweGViLCAweDc0LCAweDE4LCAweGY1LCAweDgyLCAweDc0LCAweGY5LCAweGY1LCAweDgzLCAweGUwLCAKKzB4MTQsIDB4ZmMsIDB4ZjAsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4NjQsIDB4MDQsIDB4NzAsIDB4MGYsIDB4ZWMsIDB4NzAsIDB4NjIsIAorMHg3ZSwgMHgwMSwgMHgxMiwgMHgwMCwgMHhjOSwgMHg3YywgMHgwYSwgMHg3ZCwgMHhmYSwgMHgwMiwgMHgwMiwgMHgzMywgMHgxMiwgMHgwMCwgMHhjOSwgMHhlZSwgCisweDY0LCAweDA0LCAweDYwLCAweDFkLCAweGVjLCAweDcwLCAweDRiLCAweDdjLCAweDBhLCAweGVkLCAweDE0LCAweGZkLCAweDcwLCAweDE1LCAweGVlLCAweDY0LCAKKzB4MDIsIDB4NjAsIDB4MDcsIDB4N2UsIDB4MDIsIDB4N2QsIDB4MzIsIDB4MDIsIDB4MDIsIDB4MzMsIDB4N2UsIDB4MDEsIDB4N2QsIDB4ZmEsIDB4MDIsIDB4MDIsIAorMHgzMywgMHg3YywgMHgwYSwgMHg3NCwgMHgxOCwgMHhmNSwgMHg4MiwgMHg3NCwgMHhmOSwgMHhmNSwgMHg4MywgMHhlYywgMHhmMCwgMHhhMywgMHhlZCwgMHhmMCwgCisweGEzLCAweGVlLCAweGYwLCAweDE0LCAweDYwLCAweDE4LCAweDIwLCAweGUxLCAweDBmLCAweDIwLCAweDAxLCAweDA2LCAweGQyLCAweGIxLCAweGMyLCAweGIwLCAKKzB4ODAsIDB4MTAsIDB4YzIsIDB4YjEsIDB4ZDIsIDB4YjAsIDB4ODAsIDB4MGEsIDB4YzIsIDB4YjEsIDB4YzIsIDB4YjAsIDB4ODAsIDB4MDQsIDB4ZDIsIDB4YjAsIAorMHhkMiwgMHhiMSwgMHg3OCwgMHgxOSwgMHg3OSwgMHgwOSwgMHg3YSwgMHgwNywgMHhlNywgMHg3MCwgMHgwNCwgMHhhNiwgMHgwMCwgMHg4MCwgMHgwYiwgMHhlNiwgCisweDYwLCAweDA4LCAweDE2LCAweGU2LCAweDcwLCAweDA0LCAweGU3LCAweDQ0LCAweDgwLCAweGY3LCAweDA4LCAweDA5LCAweGRhLCAweGVhLCAweGU1LCAweDNkLCAKKzB4NjAsIDB4MTMsIDB4MTQsIDB4ZjUsIDB4M2QsIDB4NzAsIDB4MGUsIDB4ZTUsIDB4M2UsIDB4MjQsIDB4MDgsIDB4ZjgsIDB4NzYsIDB4MDAsIDB4MTIsIDB4MTEsIAorMHgwZiwgMHhkMiwgMHg4YywgMHhkMiwgMHg4ZCwgMHhkMCwgMHgwNywgMHhkMCwgMHgwNiwgMHhkMCwgMHgwNSwgMHhkMCwgMHgwNCwgMHhkMCwgMHgwMywgMHhkMCwgCisweDAyLCAweGQwLCAweDAxLCAweGQwLCAweDAwLCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweGQwLCAweGYwLCAweGQwLCAweGQwLCAweGQwLCAweGUwLCAweDMyLCAKKzB4OTAsIDB4ZmYsIDB4MDQsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4YjYsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4MDYsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmEsIAorMHhlYywgMHhmZiwgMHhlYSwgMHhmZSwgMHhlZiwgMHhjMywgMHg5NCwgMHgwOCwgMHhlZSwgMHg5NCwgMHgwMSwgMHg1MCwgMHgwMiwgMHg4MCwgMHgwNCwgMHg3ZSwgCisweDAxLCAweDdmLCAweDA4LCAweDhlLCAweDNiLCAweDhmLCAweDNjLCAweDkwLCAweGZmLCAweDAyLCAweGUwLCAweGZjLCAweGEzLCAweGUwLCAweGZhLCAweGVjLCAKKzB4ZmYsIDB4ZWEsIDB4OTAsIDB4ZmEsIDB4YmEsIDB4ZjAsIDB4ZWYsIDB4YTMsIDB4ZjAsIDB4MTIsIDB4MWMsIDB4MzAsIDB4ZTQsIDB4ZjUsIDB4NGQsIDB4ZTUsIAorMHg0ZCwgMHhjMywgMHg5NCwgMHgwMiwgMHg1MCwgMHgwZiwgMHgxMiwgMHgxYywgMHgxMSwgMHhlNCwgMHgxMiwgMHgxYSwgMHgzOCwgMHgwNSwgMHg0ZCwgMHgwNCwgCisweDEyLCAweDFjLCAweDAyLCAweDgwLCAweGVhLCAweDEyLCAweDFjLCAweDMwLCAweDkwLCAweGZmLCAweDAwLCAweGUwLCAweGZmLCAweDU0LCAweDYwLCAweDI0LCAKKzB4YzAsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDgsIDB4YzUsIDB4MjQsIDB4NDAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIDB4OTAsIDB4ZmEsIDB4YjYsIAorMHhlMCwgMHhmZSwgMHg1NCwgMHgwZiwgMHhmNSwgMHg0ZCwgMHhlZSwgMHgzMCwgMHhlNywgMHgwMywgMHhkMywgMHg4MCwgMHgwMSwgMHhjMywgMHg5MiwgMHgwYSwgCisweDkwLCAweGZmLCAweDAxLCAweGUwLCAweDEyLCAweDFiLCAweDRjLCAweDAzLCAweDU2LCAweDAwLCAweDA0LCAweDI5LCAweDAxLCAweDA1LCAweDNjLCAweDAzLCAKKzB4MDYsIDB4MDMsIDB4MDUsIDB4MDYsIDB4NDUsIDB4MDYsIDB4MDcsIDB4YTcsIDB4MDgsIDB4MDcsIDB4ZWYsIDB4MDksIDB4MDgsIDB4NGIsIDB4MGEsIDB4MDgsIAorMHg4YiwgMHgwYiwgMHgwMCwgMHgwMCwgMHgwZiwgMHgyNiwgMHhlNSwgMHgzNSwgMHgyMCwgMHhlNywgMHgwMywgMHgwMiwgMHgwZiwgMHgyNiwgMHg5MCwgMHhmYSwgCisweGJhLCAweGUwLCAweDcwLCAweDAyLCAweGEzLCAweGUwLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDI2LCAweGU1LCAweDNjLCAweDY0LCAweDAyLCAweDQ1LCAKKzB4M2IsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIDB4ZWYsIDB4NTQsIDB4MWYsIDB4MTQsIDB4NjAsIDB4MmIsIDB4MTQsIDB4NjAsIDB4NDcsIDB4MjQsIAorMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHgyNiwgMHhlZSwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHgyNiwgMHgxMiwgMHgxYywgMHgxMSwgMHg3NCwgCisweDAxLCAweDEyLCAweDFhLCAweDM4LCAweDc4LCAweDY3LCAweGU2LCAweDMwLCAweGUwLCAweDA4LCAweDEyLCAweDFjLCAweDExLCAweDc0LCAweDAyLCAweDEyLCAKKzB4MWEsIDB4MzgsIDB4N2YsIDB4MDIsIDB4MDIsIDB4MzEsIDB4YjEsIDB4ZTUsIDB4MzUsIDB4MjAsIDB4ZTEsIDB4MDksIDB4OTAsIDB4ZmEsIDB4YjYsIDB4ZTAsIAorMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHgyNiwgMHg5MCwgMHhmYSwgMHhiNiwgMHhlMCwgMHhkMywgMHg5NCwgMHgwMSwgMHg0MCwgMHgwMywgMHgwMiwgMHgwZiwgCisweDI2LCAweDdmLCAweDAyLCAweDAyLCAweDMxLCAweGIxLCAweGU1LCAweDM1LCAweDIwLCAweGUxLCAweDBlLCAweDkwLCAweGZhLCAweGI2LCAweGUwLCAweGZmLCAKKzB4NjAsIDB4MDcsIDB4NjQsIDB4ODAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIDB4MTIsIDB4MGYsIDB4YjIsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MGYsIAorMHgyNiwgMHhlNSwgMHg0ZCwgMHg3MCwgMHgxOSwgMHgzMCwgMHgwYSwgMHgwYiwgMHg5MCwgMHhmZiwgMHg4MCwgMHgxMiwgMHgxYywgMHgwZSwgMHgxMiwgMHgxYSwgCisweDM4LCAweDgwLCAweDI0LCAweDkwLCAweGZmLCAweDgyLCAweDEyLCAweDFjLCAweDBlLCAweDEyLCAweDFhLCAweDM4LCAweDgwLCAweDE5LCAweDE1LCAweDRkLCAKKzB4MzAsIDB4MGEsIDB4MGIsIDB4MTIsIDB4MWMsIDB4YTUsIDB4MTIsIDB4MWMsIDB4MGMsIDB4MTIsIDB4MWEsIDB4MzgsIDB4ODAsIDB4MDksIDB4MTIsIDB4MWMsIAorMHhiMywgMHgxMiwgMHgxYywgMHgwYywgMHgxMiwgMHgxYSwgMHgzOCwgMHgxMiwgMHgxYywgMHgxMSwgMHgxMiwgMHgxOSwgMHhmMiwgMHg2MCwgMHgwNSwgMHg3NCwgCisweDAxLCAweDEyLCAweDFhLCAweDM4LCAweDdmLCAweDAyLCAweDAyLCAweDMxLCAweGIxLCAweGU1LCAweDM1LCAweDMwLCAweGU3LCAweDAzLCAweDAyLCAweDBmLCAKKzB4MjYsIDB4ZTUsIDB4M2MsIDB4NDUsIDB4M2IsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIDB4MTIsIDB4MWMsIDB4YzksIDB4MTQsIDB4NjAsIDB4MmQsIAorMHgxNCwgMHg2MCwgMHg1OSwgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHgyNiwgMHg5MCwgMHhmYSwgMHhiYSwgMHhlMCwgMHg3MCwgMHgwNCwgCisweGEzLCAweGUwLCAweDY0LCAweDAxLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDI2LCAweDkwLCAweGZhLCAweGI2LCAweGUwLCAweDYwLCAweDAzLCAweDAyLCAKKzB4MGYsIDB4MjYsIDB4NzgsIDB4NjcsIDB4ZTYsIDB4NTQsIDB4ZmUsIDB4ZjYsIDB4ZTQsIDB4ZmYsIDB4MDIsIDB4MzEsIDB4YjEsIDB4ZTUsIDB4MzUsIDB4MjAsIAorMHhlMSwgMHgwNiwgMHgyMCwgMHhlMCwgMHgwMywgMHgwMiwgMHgwZiwgMHgyNiwgMHhlNSwgMHgzNSwgMHgzMCwgMHhlMCwgMHgwOSwgMHg5MCwgMHhmYSwgMHhiNiwgCisweGUwLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDI2LCAweGU1LCAweDM1LCAweDMwLCAweGUxLCAweDBjLCAweDkwLCAweGZhLCAweGI2LCAweGUwLCAweGQzLCAKKzB4OTQsIDB4MDEsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIDB4ZTQsIDB4ZmYsIDB4MDIsIDB4MzEsIDB4YjEsIDB4OTAsIDB4ZmEsIDB4YmEsIDB4ZTAsIAorMHg3MCwgMHgwMiwgMHhhMywgMHhlMCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHgyNiwgMHgxMiwgMHgwZiwgMHhiMiwgMHg0MCwgMHgwMywgMHgwMiwgMHgwZiwgCisweDI2LCAweGU1LCAweDM1LCAweDIwLCAweGUxLCAweDA2LCAweDIwLCAweGUwLCAweDAzLCAweDAyLCAweDBmLCAweDI2LCAweGU1LCAweDM1LCAweDMwLCAweGUwLCAKKzB4MDcsIDB4ZTUsIDB4NGQsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIDB4ZTUsIDB4NGQsIDB4NzAsIDB4MGYsIDB4OTAsIDB4ZmYsIDB4ODIsIDB4ZTAsIAorMHg1NCwgMHhmNywgMHhmMCwgMHg5MCwgMHhmZiwgMHg4MCwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHgyMiwgMHhlNSwgMHg0ZCwgMHgyNCwgMHhmZSwgMHg2MCwgCisweDIwLCAweDI0LCAweGZiLCAweDYwLCAweDM0LCAweDI0LCAweDA2LCAweDcwLCAweDM1LCAweDMwLCAweDBhLCAweDBjLCAweGEyLCAweDBhLCAweGU0LCAweDMzLCAKKzB4ZmQsIDB4N2YsIDB4MDMsIDB4MTIsIDB4MmQsIDB4YTgsIDB4ODAsIDB4MjYsIDB4ZTQsIDB4ZmQsIDB4N2YsIDB4MDMsIDB4MTIsIDB4MmQsIDB4YTgsIDB4ODAsIAorMHgxZCwgMHgzMCwgMHgwYSwgMHgwYywgMHhhMiwgMHgwYSwgMHhlNCwgMHgzMywgMHhmZCwgMHg3ZiwgMHgwNCwgMHgxMiwgMHgyZCwgMHhhOCwgMHg4MCwgMHgwZSwgCisweGU0LCAweGZkLCAweDdmLCAweDA0LCAweDEyLCAweDJkLCAweGE4LCAweDgwLCAweDA1LCAweDdmLCAweDg3LCAweDEyLCAweDMxLCAweDMyLCAweDE1LCAweDRkLCAKKzB4MzAsIDB4MGEsIDB4MGIsIDB4MTIsIDB4MWMsIDB4YTUsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4ODAsIDB4MDksIDB4MTIsIDB4MWMsIAorMHhiMywgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHhlNCwgMHhmZiwgMHgwMiwgMHgzMSwgMHhiMSwgMHhlNSwgMHgzNSwgMHgzMCwgMHhlNywgCisweDAzLCAweDAyLCAweDBmLCAweDI2LCAweGU1LCAweDNjLCAweDQ1LCAweDNiLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDI2LCAweDEyLCAweDFjLCAweGM5LCAKKzB4MTQsIDB4NjAsIDB4MmQsIDB4MTQsIDB4NjAsIDB4NTUsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIDB4OTAsIDB4ZmEsIDB4YmEsIAorMHhlMCwgMHg3MCwgMHgwNCwgMHhhMywgMHhlMCwgMHg2NCwgMHgwMSwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHgyNiwgMHg5MCwgMHhmYSwgMHhiNiwgMHhlMCwgCisweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDI2LCAweDc4LCAweDY3LCAweGU2LCAweDQ0LCAweDAxLCAweGY2LCAweGU0LCAweGZmLCAweDAyLCAweDMxLCAweGIxLCAKKzB4ZTUsIDB4MzUsIDB4MjAsIDB4ZTEsIDB4MDYsIDB4MjAsIDB4ZTAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIDB4ZTUsIDB4MzUsIDB4MzAsIDB4ZTAsIDB4MDcsIAorMHhlNSwgMHg0ZCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHgyNiwgMHhlNSwgMHgzNSwgMHgzMCwgMHhlMSwgMHgwYSwgMHhlNSwgMHg0ZCwgMHhkMywgMHg5NCwgCisweDAxLCAweDQwLCAweDAzLCAweDAyLCAweDBmLCAweDI2LCAweGU0LCAweGZmLCAweDAyLCAweDMxLCAweGIxLCAweDkwLCAweGZhLCAweGJhLCAweGUwLCAweDcwLCAKKzB4MDIsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIDB4OTAsIDB4ZmEsIDB4YjYsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MzEsIDB4ODIsIAorMHg0MCwgMHgwMywgMHgwMiwgMHgwZiwgMHgyNiwgMHhlNSwgMHgzNSwgMHgyMCwgMHhlMSwgMHgwNiwgMHgyMCwgMHhlMCwgMHgwMywgMHgwMiwgMHgwZiwgMHgyNiwgCisweGU1LCAweDRkLCAweDcwLCAweDA5LCAweDMwLCAweDBhLCAweDAzLCAweDAyLCAweDFkLCAweDY0LCAweDAyLCAweDFkLCAweDJmLCAweGU1LCAweDM1LCAweDIwLCAKKzB4ZTEsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIDB4MTUsIDB4NGQsIDB4MzAsIDB4MGEsIDB4MGIsIDB4MTIsIDB4MWMsIDB4YTUsIDB4ZjUsIDB4ODMsIDB4ZTAsIAorMHg0NCwgMHgwOCwgMHhmMCwgMHg4MCwgMHgwOSwgMHgxMiwgMHgxYywgMHhiMywgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwOCwgMHhmMCwgMHhlNCwgMHhmZiwgCisweDAyLCAweDMxLCAweGIxLCAweGU1LCAweDM1LCAweDMwLCAweGU3LCAweDAzLCAweDAyLCAweDBmLCAweDI2LCAweGU1LCAweDNjLCAweDQ1LCAweDNiLCAweDYwLCAKKzB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIDB4OTAsIDB4ZmEsIDB4YjYsIDB4ZTAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIDB4MTIsIDB4MWMsIDB4YzksIAorMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHgyNiwgMHhlNSwgMHgzNSwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwZiwgMHgyNiwgMHg5MCwgMHhmYSwgMHhiYiwgCisweGUwLCAweDkwLCAweGZmLCAweGZmLCAweGYwLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDM1LCAweDAxLCAweDgwLCAweDAzLCAweDUzLCAweDM1LCAweGZlLCAKKzB4ZTQsIDB4ZmYsIDB4MDIsIDB4MzEsIDB4YjEsIDB4ZTUsIDB4MzUsIDB4MjAsIDB4ZTcsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIDB4ZTUsIDB4M2MsIDB4NDUsIAorMHgzYiwgMHg3MCwgMHgwMywgMHgwMiwgMHgwZiwgMHgyNiwgMHgxMiwgMHgxYywgMHhjOSwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHgyNiwgMHg5MCwgMHhmYSwgCisweGJhLCAweGUwLCAweGZjLCAweGEzLCAweGUwLCAweGZkLCAweGVjLCAweDI0LCAweGZlLCAweDYwLCAweDNhLCAweDE0LCAweDYwLCAweDc1LCAweDI0LCAweDAyLCAKKzB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIDB4ZWQsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIDB4MTIsIDB4MWMsIDB4MzAsIDB4MTIsIDB4MWQsIAorMHg1ZCwgMHg3ZCwgMHgwMywgMHgxMiwgMHgwZiwgMHg2ZCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHgyNiwgMHgxMiwgMHgwZiwgMHgyYSwgMHg5MCwgMHhmYSwgCisweGIzLCAweGUwLCAweGZkLCAweGEzLCAweDEyLCAweDFjLCAweDdiLCAweDEyLCAweDBmLCAweDg5LCAweDUwLCAweDAyLCAweDgwLCAweDA0LCAweGFlLCAweDNiLCAKKzB4YWYsIDB4M2MsIDB4MDIsIDB4MGYsIDB4YmEsIDB4MTIsIDB4MWMsIDB4MzAsIDB4OTAsIDB4ZjksIDB4MTUsIDB4ZTAsIDB4MzAsIDB4ZTQsIDB4MGQsIDB4MTIsIAorMHgxZCwgMHg1ZCwgMHg3ZCwgMHgxNCwgMHgxMiwgMHgwZiwgMHg2ZCwgMHg2MCwgMHgxMCwgMHgwMiwgMHgwZiwgMHgyNiwgMHgxMiwgMHgxZCwgMHg1ZCwgMHg3ZCwgCisweDA0LCAweDEyLCAweDBmLCAweGMxLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDI2LCAweDEyLCAweDBmLCAweDJhLCAweDkwLCAweGZhLCAweGIzLCAweGUwLCAKKzB4ZmQsIDB4YTMsIDB4MTIsIDB4MWMsIDB4N2IsIDB4MTIsIDB4MGYsIDB4ODksIDB4NTAsIDB4MDIsIDB4ODAsIDB4MDQsIDB4YWUsIDB4M2IsIDB4YWYsIDB4M2MsIAorMHgwMiwgMHgwZiwgMHhiYSwgMHgxMiwgMHgxZCwgMHg1ZCwgMHg3ZCwgMHgwNSwgMHgxMiwgMHgwZiwgMHhjMSwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHgyNiwgCisweDdiLCAweDAxLCAweDdhLCAweGZhLCAweDc5LCAweGIzLCAweDEyLCAweDFjLCAweDc4LCAweDdkLCAweDAxLCAweDEyLCAweDI1LCAweGQ3LCAweDkwLCAweGZhLCAKKzB4YjQsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDMsIDB4MTIsIDB4MWEsIDB4NmMsIDB4OTAsIDB4ZmEsIDB4YmIsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4YjIsIDB4ZjAsIAorMHhlNCwgMHhmNSwgMHg0YywgMHg5MCwgMHhmYSwgMHhiMiwgMHhlMCwgMHhmZiwgMHhlNSwgMHg0YywgMHhjMywgMHg5ZiwgMHg1MCwgMHgyNCwgMHgxMiwgMHgxYywgCisweDcyLCAweDEyLCAweDBmLCAweGNjLCAweGZmLCAweGZkLCAweDkwLCAweGZhLCAweGI0LCAweGU0LCAweDhkLCAweGYwLCAweDEyLCAweDFhLCAweDZjLCAweDkwLCAKKzB4ZmEsIDB4YjMsIDB4ZTAsIDB4YzMsIDB4OWYsIDB4ZjAsIDB4ZDMsIDB4OTQsIDB4MDAsIDB4NTAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIDB4MDUsIDB4NGMsIAorMHg4MCwgMHhkMSwgMHgxMiwgMHgxYywgMHg3MiwgMHgxMiwgMHgwZiwgMHhjYywgMHgyNCwgMHhmZSwgMHhmZiwgMHg5MCwgMHhmYSwgMHhiMywgMHhmMCwgMHhmZCwgCisweGEzLCAweGU0LCAweDc1LCAweGYwLCAweDAyLCAweDEyLCAweDFhLCAweDZjLCAweDdhLCAweGY5LCAweDc5LCAweDZmLCAweDdiLCAweDAxLCAweDhiLCAweDM2LCAKKzB4OGEsIDB4MzcsIDB4ODksIDB4MzgsIDB4ZTksIDB4MjQsIDB4MDIsIDB4ZjksIDB4ZTQsIDB4M2EsIDB4ZmEsIDB4MTIsIDB4MWMsIDB4NzgsIDB4MTIsIDB4MjUsIAorMHhkNywgMHg4ZiwgMHg0YywgMHgwNSwgMHg0YywgMHgwNSwgMHg0YywgMHgxMiwgMHgxYywgMHgxMSwgMHhlNSwgMHg0YywgMHgxMiwgMHgxYSwgMHgzOCwgMHgxMiwgCisweDFjLCAweDExLCAweDkwLCAweDAwLCAweDAxLCAweDc0LCAweDAzLCAweDEyLCAweDFhLCAweDRhLCAweGFmLCAweDRjLCAweDdlLCAweDAwLCAweGMzLCAweGVmLCAKKzB4OTUsIDB4M2MsIDB4ZWUsIDB4OTUsIDB4M2IsIDB4NTAsIDB4MDIsIDB4ODAsIDB4MDQsIDB4YWUsIDB4M2IsIDB4YWYsIDB4M2MsIDB4OGUsIDB4MzksIDB4OGYsIAorMHgzYSwgMHgwMiwgMHgyYywgMHgwNywgMHgwMiwgMHgwZiwgMHgyNiwgMHhlNSwgMHgzNSwgMHgyMCwgMHhlNywgMHgwMywgMHgwMiwgMHgwZiwgMHgyNiwgMHhlNSwgCisweDNjLCAweDY0LCAweDAxLCAweDQ1LCAweDNiLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDI2LCAweDkwLCAweGZhLCAweGI2LCAweGUwLCAweDYwLCAweDAzLCAKKzB4MDIsIDB4MGYsIDB4MjYsIDB4OTAsIDB4ZmEsIDB4YmEsIDB4ZTAsIDB4NzAsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIAorMHgxMiwgMHgxYywgMHhjOSwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHgyNiwgMHhlNSwgMHgzNSwgMHgyMCwgMHhlMCwgMHgwNiwgMHgyMCwgMHhlMSwgMHgwMywgCisweDAyLCAweDBmLCAweDI2LCAweDc1LCAweDM2LCAweDAwLCAweDc1LCAweDM3LCAweDAwLCAweDc1LCAweDM4LCAweDMyLCAweDAyLCAweDBmLCAweGE5LCAweGU1LCAKKzB4MzUsIDB4MzAsIDB4ZTcsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIDB4ZTUsIDB4M2MsIDB4NDUsIDB4M2IsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIAorMHg5MCwgMHhmYSwgMHhiNiwgMHhlMCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHgyNiwgMHhkMywgMHg5MCwgMHhmYSwgMHhiYiwgMHhlMCwgMHg5NCwgMHgwMSwgCisweDkwLCAweGZhLCAweGJhLCAweGUwLCAweDk0LCAweDAwLCAweDQwLCAweDAzLCAweDAyLCAweDBmLCAweDI2LCAweDEyLCAweDFjLCAweGM5LCAweDYwLCAweDAzLCAKKzB4MDIsIDB4MGYsIDB4MjYsIDB4ZTUsIDB4MzUsIDB4MjAsIDB4ZTAsIDB4MDYsIDB4MjAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIDB4OTAsIDB4ZmEsIAorMHhiYiwgMHhlMCwgMHhmNSwgMHgzMiwgMHhlNSwgMHgzMiwgMHg3MCwgMHgwOCwgMHg0MywgMHgzNSwgMHgwMSwgMHg1MywgMHgzNSwgMHhmZCwgMHg4MCwgMHgwNiwgCisweDUzLCAweDM1LCAweGZlLCAweDQzLCAweDM1LCAweDAyLCAweGU0LCAweGZmLCAweDAyLCAweDMxLCAweGIxLCAweGU1LCAweDM1LCAweDIwLCAweGU3LCAweDAzLCAKKzB4MDIsIDB4MGYsIDB4MjYsIDB4ZTUsIDB4M2MsIDB4NjQsIDB4MDEsIDB4NDUsIDB4M2IsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIDB4OTAsIDB4ZmEsIAorMHhiNiwgMHhlMCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHgyNiwgMHg5MCwgMHhmYSwgMHhiYSwgMHhlMCwgMHg3MCwgMHgwMiwgMHhhMywgMHhlMCwgMHg2MCwgCisweDAzLCAweDAyLCAweDBmLCAweDI2LCAweDEyLCAweDFjLCAweGM5LCAweDY0LCAweDAxLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDI2LCAweGU1LCAweDM1LCAKKzB4MjAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIDB4N2YsIDB4MDEsIDB4MDIsIDB4MzEsIDB4YjEsIDB4ZTUsIDB4MzUsIDB4MzAsIDB4ZTcsIDB4MDMsIAorMHgwMiwgMHgwZiwgMHgyNiwgMHhlNSwgMHgzYywgMHg0NSwgMHgzYiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHgyNiwgMHhkMywgMHg5MCwgMHhmYSwgMHhiYiwgCisweGUwLCAweDk0LCAweDAwLCAweDkwLCAweGZhLCAweGJhLCAweGUwLCAweDk0LCAweDAwLCAweDQwLCAweDAzLCAweDAyLCAweDBmLCAweDI2LCAweDEyLCAweDFjLCAKKzB4YzksIDB4NjQsIDB4MDEsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIDB4ZTUsIDB4MzUsIDB4MjAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjYsIAorMHhlNCwgMHhmZiwgMHgwMiwgMHgzMSwgMHhiMSwgMHg5MCwgMHhmZiwgMHgwMSwgMHgxMiwgMHgxZCwgMHg3NCwgMHhlZiwgMHgxMiwgMHgxYSwgMHgzOCwgMHg5MCwgCisweGZhLCAweGI2LCAweDEyLCAweDFkLCAweDc0LCAweDkwLCAweDAwLCAweDAxLCAweGVmLCAweDEyLCAweDFhLCAweDRhLCAweDkwLCAweDAwLCAweDAyLCAweGU0LCAKKzB4MTIsIDB4MWEsIDB4NGEsIDB4NzQsIDB4MDMsIDB4MTIsIDB4MWMsIDB4MDIsIDB4OTAsIDB4ZmEsIDB4YmEsIDB4ZTAsIDB4ZmYsIDB4YTMsIDB4ZTAsIDB4ODUsIAorMHgzOCwgMHg4MiwgMHg4NSwgMHgzNywgMHg4MywgMHhjZiwgMHhmMCwgMHhhMywgMHhlZiwgMHhmMCwgMHg5MCwgMHhmZiwgMHgwMSwgMHhlMCwgMHgxMiwgMHgxYiwgCisweDRjLCAweDA5LCAweDRhLCAweDAyLCAweDA5LCAweDZjLCAweDA0LCAweDA5LCAweDhlLCAweDA1LCAweDA5LCAweGJhLCAweDA2LCAweDA5LCAweGQ4LCAweDA3LCAKKzB4MDksIDB4ZjYsIDB4MDgsIDB4MGEsIDB4MTQsIDB4MDksIDB4MGEsIDB4MzIsIDB4MGIsIDB4MGEsIDB4ZTcsIDB4ODAsIDB4MGQsIDB4NmYsIDB4ODEsIDB4MGQsIAorMHhhMCwgMHg4MiwgMHgwYiwgMHgyZSwgMHg4MywgMHgwYiwgMHg3NywgMHg4NCwgMHgwYiwgMHg5NiwgMHg4NSwgMHgwYiwgMHhkYiwgMHg4NiwgMHgwYywgMHgyNiwgCisweDg3LCAweDBjLCAweGI3LCAweDg4LCAweDBkLCAweDQyLCAweDg5LCAweDBhLCAweDUwLCAweDkyLCAweDBhLCAweDUwLCAweDkzLCAweDBlLCAweDUzLCAweGMwLCAKKzB4MGUsIDB4N2YsIDB4YzEsIDB4MGUsIDB4OTAsIDB4YzIsIDB4MDAsIDB4MDAsIDB4MGYsIDB4MTUsIDB4ZTUsIDB4MzUsIDB4MjAsIDB4ZTcsIDB4MDUsIDB4N2YsIAorMHgwNSwgMHgwMiwgMHgzMCwgMHhlYywgMHgxMiwgMHgxYywgMHhjMSwgMHg2MCwgMHgwMywgMHgwNCwgMHg3MCwgMHgwOSwgMHhlZiwgMHhmZCwgMHg3YywgMHgwMCwgCisweDdmLCAweDA3LCAweDAyLCAweDExLCAweDE2LCAweGU0LCAweGZkLCAweDdmLCAweDA3LCAweDAyLCAweDJmLCAweDE4LCAweGU1LCAweDM1LCAweDIwLCAweGU3LCAKKzB4MDUsIDB4N2YsIDB4MDUsIDB4MDIsIDB4MzAsIDB4ZWMsIDB4MTIsIDB4MWMsIDB4YzEsIDB4NjAsIDB4MDMsIDB4MDQsIDB4NzAsIDB4MDksIDB4ZWYsIDB4ZmQsIAorMHg3YywgMHgwMCwgMHg3ZiwgMHgwYywgMHgwMiwgMHgxMSwgMHgxNiwgMHhlNCwgMHhmZCwgMHg3ZiwgMHgwNywgMHgwMiwgMHgyZiwgMHgxOCwgMHhlNSwgMHgzNSwgCisweDMwLCAweGU3LCAweDAzLCAweDAyLCAweDBmLCAweDI5LCAweDEyLCAweDFkLCAweDkyLCAweDUwLCAweDA2LCAweGU1LCAweDNjLCAweDQ1LCAweDNiLCAweDcwLCAKKzB4MDUsIDB4N2YsIDB4MDIsIDB4MDIsIDB4MzAsIDB4ZWMsIDB4OTAsIDB4ZmEsIDB4YjYsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4MjQsIDB4ZmQsIDB4NTAsIDB4MDIsIAorMHg4MCwgMHgwMywgMHgwMiwgMHgzMSwgMHg2ZiwgMHg3ZiwgMHgwNywgMHgwMiwgMHgzMCwgMHhlYywgMHhlNSwgMHgzNSwgMHgzMCwgMHhlNywgMHgwMywgMHgwMiwgCisweDBmLCAweDI5LCAweDEyLCAweDFjLCAweGMxLCAweDYwLCAweDAzLCAweDA0LCAweDcwLCAweDA5LCAweGVmLCAweGZkLCAweDdjLCAweDAwLCAweDdmLCAweDA4LCAKKzB4MDIsIDB4MTEsIDB4MTYsIDB4N2YsIDB4MDcsIDB4MDIsIDB4MzAsIDB4ZWMsIDB4ZTUsIDB4MzUsIDB4MzAsIDB4ZTcsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjksIAorMHgxMiwgMHgxYywgMHhjMSwgMHg2MCwgMHgwMywgMHgwNCwgMHg3MCwgMHgwOSwgMHhlZiwgMHhmZCwgMHg3YywgMHgwMCwgMHg3ZiwgMHgwOSwgMHgwMiwgMHgxMSwgCisweDE2LCAweDdmLCAweDA3LCAweDAyLCAweDMwLCAweGVjLCAweGU1LCAweDM1LCAweDMwLCAweGU3LCAweDAzLCAweDAyLCAweDBmLCAweDI5LCAweDEyLCAweDFjLCAKKzB4YzEsIDB4NjAsIDB4MDMsIDB4MDQsIDB4NzAsIDB4MDksIDB4ZWYsIDB4ZmQsIDB4N2MsIDB4MDAsIDB4N2YsIDB4MGEsIDB4MDIsIDB4MTEsIDB4MTYsIDB4N2YsIAorMHgwNywgMHgwMiwgMHgzMCwgMHhlYywgMHhlNSwgMHgzNSwgMHgzMCwgMHhlNywgMHgwMywgMHgwMiwgMHgwZiwgMHgyOSwgMHgxMiwgMHgxYywgMHhjMSwgMHg2MCwgCisweDAzLCAweDA0LCAweDcwLCAweDA5LCAweGVmLCAweGZkLCAweDdjLCAweDAwLCAweDdmLCAweDBiLCAweDAyLCAweDExLCAweDE2LCAweDdmLCAweDA3LCAweDAyLCAKKzB4MzAsIDB4ZWMsIDB4ZTUsIDB4MzUsIDB4MzAsIDB4ZTcsIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjksIDB4MTIsIDB4MWMsIDB4YzEsIDB4NjAsIDB4MDMsIDB4MDQsIAorMHg3MCwgMHgwOSwgMHhlZiwgMHhmZCwgMHg3YywgMHgwMCwgMHg3ZiwgMHgwZSwgMHgwMiwgMHgxMSwgMHgxNiwgMHg3ZiwgMHgwNywgMHgwMiwgMHgzMCwgMHhlYywgCisweGU1LCAweDM1LCAweDMwLCAweGU3LCAweDU2LCAweDEyLCAweDFjLCAweGM5LCAweDcwLCAweDRhLCAweDkwLCAweGZmLCAweDAyLCAweGUwLCAweGY1LCAweDRjLCAKKzB4ZTUsIDB4NGMsIDB4YjQsIDB4ODIsIDB4MDUsIDB4NzUsIDB4NGMsIDB4NjEsIDB4ODAsIDB4MTIsIDB4ZTUsIDB4NGMsIDB4YjQsIDB4ODMsIDB4MDUsIDB4NzUsIAorMHg0YywgMHg2MiwgMHg4MCwgMHgwOCwgMHhlNSwgMHg0YywgMHhjNCwgMHg1NCwgMHhmMCwgMHgwNCwgMHhmNSwgMHg0YywgMHgxMiwgMHgxYiwgMHg3MiwgMHgxMiwgCisweDFkLCAweDhiLCAweDEyLCAweDI1LCAweDM5LCAweDEyLCAweDFjLCAweGQ5LCAweDEyLCAweDFhLCAweDBiLCAweDYwLCAweDA1LCAweDEyLCAweDMxLCAweGJkLCAKKzB4ODAsIDB4MDYsIDB4ODUsIDB4MzMsIDB4MzksIDB4ODUsIDB4MzQsIDB4M2EsIDB4NzUsIDB4MzYsIDB4MDEsIDB4NzUsIDB4MzcsIDB4ZjksIDB4NzUsIDB4MzgsIAorMHg3MiwgMHgwMiwgMHgyYywgMHgwNywgMHhlNCwgMHhmZCwgMHg3ZiwgMHgwNSwgMHgwMiwgMHgyZiwgMHgxOCwgMHgxMiwgMHgxYywgMHhjOSwgMHg2MCwgMHgwNSwgCisweDdmLCAweDA1LCAweDAyLCAweDMwLCAweGVjLCAweDEyLCAweDFkLCAweDkyLCAweDQwLCAweDA1LCAweDdmLCAweDAzLCAweDAyLCAweDMwLCAweGVjLCAweDkwLCAKKzB4ZmYsIDB4MDIsIDB4ZTAsIDB4ZjUsIDB4NGMsIDB4ZTUsIDB4NGMsIDB4YjQsIDB4ODIsIDB4MDUsIDB4NzUsIDB4NGMsIDB4NjEsIDB4ODAsIDB4MTIsIDB4ZTUsIAorMHg0YywgMHhiNCwgMHg4MywgMHgwNSwgMHg3NSwgMHg0YywgMHg2MiwgMHg4MCwgMHgwOCwgMHhlNSwgMHg0YywgMHhjNCwgMHg1NCwgMHhmMCwgMHgwNCwgMHhmNSwgCisweDRjLCAweDEyLCAweDFiLCAweDcyLCAweDAyLCAweDMxLCAweDZmLCAweDEyLCAweDFkLCAweDljLCAweDEyLCAweDJhLCAweDA2LCAweDEyLCAweDFjLCAweDgzLCAKKzB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4YjcsIDB4ZjAsIDB4NzgsIDB4NjgsIDB4MTIsIDB4MWIsIAorMHgyOCwgMHg5MCwgMHgwMCwgMHgwMiwgMHgxMiwgMHgxYSwgMHgwYiwgMHgzMCwgMHhlNywgMHhmMiwgMHg5MCwgMHgwMCwgMHgwMiwgMHhlNCwgMHgxMiwgMHgxYSwgCisweDRhLCAweDkwLCAweGZhLCAweGI3LCAweGUwLCAweDQ0LCAweDgwLCAweGZmLCAweGYwLCAweDc4LCAweDdjLCAweGU2LCAweGZjLCAweDA4LCAweGU2LCAweDhjLCAKKzB4ODMsIDB4MTIsIDB4MWMsIDB4OGIsIDB4ZWYsIDB4ZjAsIDB4MTIsIDB4MzEsIDB4YzcsIDB4ZTQsIDB4ZmYsIDB4MDIsIDB4MzAsIDB4ZWMsIDB4OTAsIDB4ZmEsIAorMHhiNiwgMHhlMCwgMHg2NCwgMHgwMSwgMHg3MCwgMHgxZiwgMHg5MCwgMHhmYSwgMHhiYSwgMHhlMCwgMHhmZiwgMHg3ZSwgMHgwMCwgMHg3MCwgMHgwNiwgMHhhMywgCisweGUwLCAweGY1LCAweDkwLCAweDgwLCAweDJkLCAweGMyLCAweGFmLCAweGVmLCAweGY0LCAweDUyLCAweDkwLCAweDkwLCAweGZhLCAweGJiLCAweGUwLCAweDQyLCAKKzB4OTAsIDB4ZDIsIDB4YWYsIDB4ODAsIDB4MWQsIDB4OTAsIDB4ZmEsIDB4YmEsIDB4ZTAsIDB4ZmYsIDB4N2UsIDB4MDAsIDB4NzAsIDB4MDYsIDB4YTMsIDB4ZTAsIAorMHhmNSwgMHhiMCwgMHg4MCwgMHgwZSwgMHhjMiwgMHhhZiwgMHhlZiwgMHhmNCwgMHg1MiwgMHhiMCwgMHg5MCwgMHhmYSwgMHhiYiwgMHhlMCwgMHg0MiwgMHhiMCwgCisweGQyLCAweGFmLCAweGU0LCAweGZmLCAweDAyLCAweDMwLCAweGVjLCAweDEyLCAweDFjLCAweDMwLCAweDkwLCAweGZhLCAweGI2LCAweGUwLCAweGI0LCAweDAxLCAKKzB4MGEsIDB4MTIsIDB4MWMsIDB4MTEsIDB4ZTUsIDB4OTAsIDB4MTIsIDB4MWEsIDB4MzgsIDB4ODAsIDB4MDgsIDB4MTIsIDB4MWMsIDB4MTEsIDB4ZTUsIDB4YjAsIAorMHgxMiwgMHgxYSwgMHgzOCwgMHgwMiwgMHgwZiwgMHhhOSwgMHg5MCwgMHhmYSwgMHhiNiwgMHhlMCwgMHhmZiwgMHgyNCwgMHgxMiwgMHgxMiwgMHgxYywgMHg0MSwgCisweDIwLCAweGUxLCAweDMzLCAweDEyLCAweDFjLCAweGQwLCAweGVmLCAweDI0LCAweGZjLCAweDYwLCAweDE4LCAweDA0LCAweDcwLCAweDI4LCAweDkwLCAweGZhLCAKKzB4YjcsIDB4ZTAsIDB4NjAsIDB4MDksIDB4OTAsIDB4ZmYsIDB4YTQsIDB4ZTAsIDB4NDQsIDB4MTAsIDB4ZjAsIDB4ODAsIDB4MTksIDB4MTIsIDB4MWQsIDB4YTYsIAorMHhmMCwgMHg4MCwgMHgxMywgMHg5MCwgMHhmYSwgMHhiNywgMHhlMCwgMHg2MCwgMHgwOSwgMHg5MCwgMHhmZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgxMCwgMHhmMCwgCisweDgwLCAweDA0LCAweDEyLCAweDFkLCAweGFkLCAweGYwLCAweGU0LCAweGZmLCAweDAyLCAweDMwLCAweGVjLCAweDkwLCAweGZhLCAweGI2LCAweGUwLCAweGZmLCAKKzB4MjQsIDB4MTIsIDB4MTIsIDB4MWMsIDB4NDEsIDB4MjAsIDB4ZTEsIDB4MzksIDB4MTIsIDB4MWMsIDB4ZDAsIDB4ZWYsIDB4MjQsIDB4ZmMsIDB4NjAsIDB4MWIsIAorMHgwNCwgMHg3MCwgMHgyZSwgMHg5MCwgMHhmYSwgMHhiNywgMHhlMCwgMHg2MCwgMHgwOSwgMHg5MCwgMHhmZiwgMHhhNCwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgCisweDgwLCAweDFmLCAweDkwLCAweGZmLCAweGE0LCAweGUwLCAweDU0LCAweGRmLCAweGYwLCAweDgwLCAweDE2LCAweDkwLCAweGZhLCAweGI3LCAweGUwLCAweDYwLCAKKzB4MDksIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsIDB4NTQsIDB4ZGYsIAorMHhmMCwgMHhlNCwgMHhmZiwgMHgwMiwgMHgzMCwgMHhlYywgMHgxMiwgMHgxYywgMHhkMCwgMHgxMiwgMHgxYywgMHhjMSwgMHg2MCwgMHg0ZCwgMHgwNCwgMHg2MCwgCisweDAzLCAweDAyLCAweDBjLCAweGIyLCAweDkwLCAweGZhLCAweGI3LCAweGUwLCAweDYwLCAweDBmLCAweDkwLCAweGZmLCAweGE0LCAweDEyLCAweDFjLCAweDNhLCAKKzB4MzAsIDB4ZTEsIDB4NmYsIDB4MTIsIDB4MWQsIDB4N2MsIDB4MDIsIDB4MGMsIDB4YjIsIDB4OTAsIDB4ZmYsIDB4YTQsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4MTIsIAorMHgxYywgMHgzZCwgMHhmZSwgMHgzMCwgMHhlMSwgMHg1YywgMHgzMCwgMHhlMiwgMHgxMSwgMHgzMCwgMHhiNCwgMHgwNSwgMHgxMiwgMHgxZCwgMHg3YywgMHg4MCwgCisweDUxLCAweDkwLCAweGZmLCAweGE0LCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDgwLCAweDQ4LCAweDMwLCAweDk1LCAweDA1LCAweDEyLCAweDFkLCAweDdjLCAKKzB4ODAsIDB4NDAsIDB4OTAsIDB4ZmYsIDB4YTQsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4ODAsIDB4MzcsIDB4OTAsIDB4ZmEsIDB4YjcsIDB4ZTAsIDB4NjAsIAorMHgxMiwgMHg5MCwgMHhmZiwgMHhiNCwgMHgxMiwgMHgxYywgMHgzYSwgMHgzMCwgMHhlMSwgMHgyOCwgMHg5MCwgMHhmZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgCisweGYwLCAweDgwLCAweDFmLCAweDkwLCAweGZmLCAweGI0LCAweGUwLCAweDU0LCAweGZiLCAweDEyLCAweDFjLCAweDNkLCAweDMwLCAweGUxLCAweDEzLCAweDMwLCAKKzB4OTMsIDB4MDksIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsIDB4NTQsIAorMHhmZCwgMHhmMCwgMHhlNCwgMHhmZiwgMHgwMiwgMHgzMCwgMHhlYywgMHgxMiwgMHgxYywgMHhkMCwgMHg5MCwgMHhmYSwgMHhiNiwgMHhlMCwgMHgyNCwgMHhmYywgCisweDYwLCAweDQwLCAweDA0LCAweDcwLCAweDc4LCAweDkwLCAweGZhLCAweGI3LCAweGUwLCAweDYwLCAweDFkLCAweDkwLCAweGZmLCAweGEyLCAweGUwLCAweDQ0LCAKKzB4NDAsIDB4ZjAsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MzAsIDB4ZTcsIDB4NjUsIDB4ZDIsIDB4MDMsIDB4YTMsIDB4ZTAsIDB4NTQsIDB4ZGYsIDB4ZjAsIDB4OTAsIAorMHhmZiwgMHhhMywgMHhlZiwgMHg1NCwgMHg3ZiwgMHhmMCwgMHg4MCwgMHg1NSwgMHgzMCwgMHgwMywgMHgwZSwgMHg5MCwgMHhmZiwgMHhhMywgMHhlMCwgMHg0NCwgCisweDgwLCAweGYwLCAweGMyLCAweDAzLCAweGEzLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDkwLCAweGZmLCAweGEyLCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAKKzB4ODAsIDB4M2IsIDB4OTAsIDB4ZmEsIDB4YjcsIDB4ZTAsIDB4NjAsIDB4MWQsIDB4OTAsIDB4ZmYsIDB4YjIsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4YTMsIAorMHhlMCwgMHhmZiwgMHgzMCwgMHhlNywgMHgyOCwgMHhkMiwgMHgwNCwgMHhhMywgMHhlMCwgMHg1NCwgMHhkZiwgMHhmMCwgMHg5MCwgMHhmZiwgMHhiMywgMHhlZiwgCisweDU0LCAweDdmLCAweGYwLCAweDgwLCAweDE4LCAweDMwLCAweDA0LCAweDBlLCAweDkwLCAweGZmLCAweGIzLCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGMyLCAKKzB4MDQsIDB4YTMsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4YjIsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4ZTQsIDB4ZmYsIDB4MDIsIAorMHgzMCwgMHhlYywgMHgxMiwgMHgxYywgMHgzMCwgMHg5MCwgMHhmYSwgMHhiNiwgMHhlMCwgMHgyNCwgMHhmYywgMHg2MCwgMHgwZiwgMHgwNCwgMHg3MCwgMHgxNiwgCisweDkwLCAweGZmLCAweGE2LCAweGUwLCAweDEyLCAweDFjLCAweDExLCAweDEyLCAweDFhLCAweDM4LCAweDgwLCAweDBhLCAweDkwLCAweGZmLCAweGI2LCAweGUwLCAKKzB4MTIsIDB4MWMsIDB4MTEsIDB4MTIsIDB4MWEsIDB4MzgsIDB4NzUsIDB4MzksIDB4MDAsIDB4NzUsIDB4M2EsIDB4MDEsIDB4MDIsIDB4MmMsIDB4MDcsIDB4ZTQsIAorMHhmZiwgMHgxMiwgMHgzMCwgMHhlYywgMHgxMiwgMHgxZCwgMHgzNywgMHg3ZiwgMHgwMywgMHgxMiwgMHgxMiwgMHgxOSwgMHg5MCwgMHhmOSwgMHgxNSwgMHhlMCwgCisweDMwLCAweGU0LCAweDA4LCAweDkwLCAweGZmLCAweDkzLCAweDc0LCAweDgwLCAweGYwLCAweDgwLCAweDEwLCAweDkwLCAweGZmLCAweGZjLCAweGUwLCAweDU0LCAKKzB4N2YsIDB4ZjAsIDB4N2YsIDB4ZmYsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MzAsIDB4MTYsIDB4YzIsIDB4OTAsIDB4YzIsIDB4YWYsIDB4MDAsIDB4ODAsIDB4ZmQsIAorMHhlNCwgMHhmNSwgMHg0ZSwgMHhmNSwgMHg0ZiwgMHg5MCwgMHhmYSwgMHhiYywgMHg3NCwgMHgzZSwgMHhmMCwgMHhhMywgMHhlNCwgMHhmMCwgMHg5MCwgMHhmYSwgCisweGI0LCAweGYwLCAweGEzLCAweDc0LCAweDE1LCAweGYwLCAweGUwLCAweDU0LCAweDNmLCAweGZmLCAweGMzLCAweDc0LCAweDQwLCAweDlmLCAweDkwLCAweGZhLCAKKzB4YjksIDB4ZjAsIDB4ZDMsIDB4OTQsIDB4MDAsIDB4ZTQsIDB4OTQsIDB4M2UsIDB4NDAsIDB4MDgsIDB4OTAsIDB4ZmEsIDB4YmQsIDB4ZTAsIDB4OTAsIDB4ZmEsIAorMHhiOSwgMHhmMCwgMHgxMiwgMHgwZiwgMHg1MCwgMHhlNSwgMHgzMSwgMHg0NSwgMHgzMCwgMHg3MCwgMHg3MywgMHgxMiwgMHgxYywgMHg0YSwgMHg5MCwgMHhmYSwgCisweGJjLCAweDEyLCAweDFkLCAweDU2LCAweDYwLCAweDI3LCAweGQzLCAweGVmLCAweDk0LCAweDQwLCAweGVlLCAweDk0LCAweDAwLCAweDQwLCAweDA4LCAweDkwLCAKKzB4ZmEsIDB4YjksIDB4NzQsIDB4NDAsIDB4ZjAsIDB4ODAsIDB4MDgsIDB4OTAsIDB4ZmEsIDB4YmQsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4YjksIDB4ZjAsIDB4MTIsIAorMHgwZiwgMHg1MCwgMHhlNSwgMHgzMSwgMHg0NSwgMHgzMCwgMHg3MCwgMHg0NiwgMHgxMiwgMHgxYywgMHg0YSwgMHg4MCwgMHhkMSwgMHg3NSwgMHg0YywgMHgwMiwgCisweDkwLCAweGZhLCAweGJjLCAweGU0LCAweGYwLCAweGEzLCAweDA0LCAweGYwLCAweDkwLCAweGZhLCAweGI0LCAweGU0LCAweGYwLCAweGEzLCAweDc0LCAweDBmLCAKKzB4ZjAsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4NGMsIDB4OTAsIDB4ZmEsIDB4YmQsIDB4ZTAsIDB4ZjUsIDB4NGEsIDB4N2QsIDB4MGYsIDB4N2MsIAorMHgwMCwgMHgxMiwgMHgyOCwgMHg5ZiwgMHg3NSwgMHgzMCwgMHgwMCwgMHg4ZiwgMHgzMSwgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHg0YywgMHhlNCwgCisweGY1LCAweDJkLCAweGY1LCAweDJlLCAweDdkLCAweDAxLCAweDEyLCAweDI1LCAweGQ3LCAweGU0LCAweGY1LCAweDMwLCAweGY1LCAweDMxLCAweGFmLCAweDMxLCAKKzB4MDIsIDB4MzAsIDB4ZWMsIDB4MTIsIDB4MWMsIDB4ZDAsIDB4MzAsIDB4ZTcsIDB4MTAsIDB4ZTAsIDB4NTQsIDB4MGYsIDB4OTAsIDB4ZjksIDB4NjQsIDB4ZjAsIAorMHhkMywgMHg5NCwgMHgwMCwgMHg0MCwgMHgxNSwgMHhjMiwgMHg5NSwgMHg4MCwgMHgxMSwgMHg5MCwgMHhmYSwgMHhiNywgMHhlMCwgMHg1NCwgMHgwZiwgMHg5MCwgCisweGY5LCAweDYzLCAweGYwLCAweGQzLCAweDk0LCAweDAwLCAweDQwLCAweDAyLCAweGMyLCAweDk0LCAweGU0LCAweGZmLCAweDAyLCAweDMwLCAweGVjLCAweDEyLCAKKzB4MWQsIDB4OWMsIDB4YmYsIDB4MDEsIDB4MDQsIDB4ZDIsIDB4OTMsIDB4ODAsIDB4MDIsIDB4YzIsIDB4OTMsIDB4ZTQsIDB4ZmYsIDB4MDIsIDB4MzAsIDB4ZWMsIAorMHgxMiwgMHgxYywgMHhkMCwgMHg1NCwgMHgwMywgMHgxNCwgMHg2MCwgMHgwYSwgMHgxNCwgMHg2MCwgMHgwZiwgMHgxNCwgMHg2MCwgMHgwOCwgMHgyNCwgMHgwMywgCisweDcwLCAweDJiLCAweGQyLCAweDkxLCAweDgwLCAweDI3LCAweGMyLCAweDkxLCAweDgwLCAweDIzLCAweDEyLCAweDFkLCAweGE2LCAweDEyLCAweDBmLCAweDc4LCAKKzB4NjAsIDB4MDQsIDB4ZDIsIDB4OTEsIDB4ODAsIDB4MTcsIDB4OTAsIDB4ZmYsIDB4YTQsIDB4ZTAsIDB4NDQsIDB4MTAsIDB4MTIsIDB4MGYsIDB4NzgsIDB4ZmYsIAorMHhiZiwgMHhhMCwgMHgwNCwgMHhjMiwgMHg5MSwgMHg4MCwgMHgwMiwgMHhkMiwgMHg5MSwgMHgxMiwgMHgxZCwgMHhhNiwgMHhmMCwgMHg5MCwgMHhmYSwgMHhiNywgCisweGUwLCAweDU0LCAweDBjLCAweGZmLCAweDEzLCAweDEzLCAweDU0LCAweDNmLCAweDE0LCAweDYwLCAweDBhLCAweDE0LCAweDYwLCAweDBmLCAweDE0LCAweDYwLCAKKzB4MDgsIDB4MjQsIDB4MDMsIDB4NzAsIDB4MmIsIDB4ZDIsIDB4OTIsIDB4ODAsIDB4MjcsIDB4YzIsIDB4OTIsIDB4ODAsIDB4MjMsIDB4MTIsIDB4MWQsIDB4YWQsIAorMHgxMiwgMHgwZiwgMHg5OCwgMHg2MCwgMHgwNCwgMHhkMiwgMHg5MiwgMHg4MCwgMHgxNywgMHg5MCwgMHhmZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgxMCwgMHgxMiwgCisweDBmLCAweDk4LCAweGZmLCAweGJmLCAweGEwLCAweDA0LCAweGMyLCAweDkyLCAweDgwLCAweDAyLCAweGQyLCAweDkyLCAweDEyLCAweDFkLCAweGFkLCAweGYwLCAKKzB4ZTQsIDB4ZmYsIDB4MDIsIDB4MzAsIDB4ZWMsIDB4ZTUsIDB4MzUsIDB4MzAsIDB4ZTcsIDB4MDcsIDB4ZTQsIDB4ZmQsIDB4N2YsIDB4MDUsIDB4MDIsIDB4MmYsIAorMHgxOCwgMHg3ZiwgMHgwNSwgMHgwMiwgMHgzMCwgMHhlYywgMHgxMiwgMHgzMSwgMHhiZCwgMHgyMiwgMHg3YiwgMHgwMSwgMHg3YSwgMHhmYSwgMHg3OSwgMHhiMywgCisweDkwLCAweGZhLCAweGI0LCAweGUwLCAweGY1LCAweDJkLCAweGEzLCAweGUwLCAweGY1LCAweDJlLCAweDdkLCAweDAxLCAweDEyLCAweDI1LCAweGQ3LCAweDkwLCAKKzB4ZmEsIDB4YjQsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDMsIDB4MTIsIDB4MWEsIDB4NmMsIDB4YWIsIDB4MzYsIDB4YWEsIDB4MzcsIDB4YTksIDB4MzgsIDB4MjIsIAorMHhhYSwgMHg0ZSwgMHhhOSwgMHg0ZiwgMHg3YiwgMHhmZiwgMHg5MCwgMHhmYSwgMHhiNCwgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmZCwgMHg5MCwgMHhmYSwgCisweGI5LCAweGUwLCAweGY1LCAweDRhLCAweDEyLCAweDI4LCAweDlmLCAweDc1LCAweDMwLCAweDAwLCAweDhmLCAweDMxLCAweDIyLCAweDEyLCAweDIyLCAweGEwLCAKKzB4N2UsIDB4MDAsIDB4OGUsIDB4MzAsIDB4OGYsIDB4MzEsIDB4ZWYsIDB4MjIsIDB4ZjAsIDB4N2YsIDB4MDEsIDB4MTIsIDB4MTIsIDB4MTksIDB4OTAsIDB4ZmYsIAorMHhhNiwgMHhlMCwgMHg5MCwgMHhmYSwgMHhiOCwgMHhmMCwgMHg1NCwgMHhhMCwgMHgyMiwgMHgxMiwgMHgyNSwgMHhkNywgMHg4ZiwgMHg0YywgMHg3ZSwgMHgwMCwgCisweGMzLCAweGVmLCAweDk1LCAweDNjLCAweGVlLCAweDk1LCAweDNiLCAweDIyLCAweGYwLCAweDdmLCAweDAxLCAweDEyLCAweDEyLCAweDE5LCAweDkwLCAweGZmLCAKKzB4YjYsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4YjgsIDB4ZjAsIDB4NTQsIDB4YTAsIDB4MjIsIDB4NzUsIDB4MzksIDB4MDAsIDB4NzUsIDB4M2EsIDB4MDEsIDB4MDIsIAorMHgyYywgMHgwNywgMHg5MCwgMHhmYSwgMHhiNiwgMHhlMCwgMHhmZiwgMHgwMiwgMHgzMSwgMHg4MiwgMHg4ZSwgMHgzOSwgMHg4ZiwgMHgzYSwgMHgwMiwgMHgyYywgCisweDA3LCAweDEyLCAweDIyLCAweGEwLCAweDdlLCAweDAwLCAweDhlLCAweDMwLCAweDhmLCAweDMxLCAweGVmLCAweDIyLCAweDdkLCAweDAxLCAweDEyLCAweDI1LCAKKzB4ZDcsIDB4OTAsIDB4ZmEsIDB4YjEsIDB4ZTAsIDB4MjIsIDB4ZWYsIDB4OTAsIDB4ZjgsIDB4MDQsIDB4ZjAsIDB4MjIsIDB4YzAsIDB4YTgsIDB4YzIsIDB4YWYsIAorMHhlZSwgMHg2MCwgMHgwYSwgMHhjMCwgMHgwNSwgMHg3ZCwgMHg3ZiwgMHhkZCwgMHhmZSwgMHhkZSwgMHhmYSwgMHhkMCwgMHgwNSwgMHhlZiwgMHhjMywgMHg5NCwgCisweDE1LCAweDUwLCAweDAzLCAweGQwLCAweGE4LCAweDIyLCAweDEzLCAweDcwLCAweDAzLCAweGQwLCAweGE4LCAweDIyLCAweGZmLCAweGQ1LCAweDA3LCAweGZkLCAKKzB4ZDAsIDB4YTgsIDB4MjIsIDB4YzAsIDB4MDAsIDB4YzAsIDB4MDEsIDB4YzAsIDB4MDIsIDB4YzAsIDB4MDQsIDB4YzAsIDB4MDUsIDB4ZTUsIDB4M2UsIDB4MjQsIAorMHgwOCwgMHhmOCwgMHg4NiwgMHgwNSwgMHg1MywgMHgwNSwgMHg3ZiwgMHg3YywgMHhmZiwgMHgxMiwgMHgxMCwgMHg3OCwgMHg3ZiwgMHgwMCwgMHg3ZSwgMHgwMCwgCisweGU1LCAweDQzLCAweDYwLCAweDQ2LCAweGZjLCAweDkwLCAweGY5LCAweDFiLCAweGUwLCAweDU0LCAweDdmLCAweDZkLCAweDcwLCAweDBmLCAweGMwLCAweDgzLCAKKzB4YzAsIDB4ODIsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4YTMsIDB4MTUsIDB4NDMsIDB4ODAsIDB4MDcsIDB4YTMsIDB4YTMsIDB4YTMsIAorMHhkYywgMHhlNiwgMHg4MCwgMHgyNiwgMHhkYywgMHgwNiwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHg4MCwgMHgxZSwgMHhlMCwgMHhmOCwgMHhhMywgMHhlMCwgCisweGY5LCAweGEzLCAweGUwLCAweGZhLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGU4LCAweGYwLCAweGEzLCAweGU5LCAweGYwLCAweGEzLCAweGVhLCAweGYwLCAKKzB4YTMsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGEsIDB4MTIsIDB4MTEsIDB4MGYsIDB4ZDAsIDB4MDUsIDB4ZDAsIAorMHgwNCwgMHhkMCwgMHgwMiwgMHhkMCwgMHgwMSwgMHhkMCwgMHgwMCwgMHgyMiwgMHg4NSwgMHhhOCwgMHg0NCwgMHg3NSwgMHhhOCwgMHg4OCwgMHhlYywgMHg3MCwgCisweDAyLCAweDdjLCAweDNmLCAweDhjLCAweDNkLCAweDIyLCAweGU1LCAweDNlLCAweDI0LCAweDA4LCAweGY4LCAweDc2LCAweDAwLCAweDEyLCAweDExLCAweDY2LCAKKzB4ODAsIDB4ZmIsIDB4YzAsIDB4MDAsIDB4YzAsIDB4MDEsIDB4YzAsIDB4MDIsIDB4YzAsIDB4MDQsIDB4YzAsIDB4MDYsIDB4N2MsIDB4ZmYsIDB4MTIsIDB4MTAsIAorMHg3OCwgMHhlNSwgMHg0MywgMHg2MCwgMHg0MiwgMHhmZSwgMHg5MCwgMHhmOSwgMHgxYiwgMHhlMCwgMHg1NCwgMHg3ZiwgMHg2ZiwgMHg3MCwgMHgwYiwgMHhjMCwgCisweDgzLCAweGMwLCAweDgyLCAweGEzLCAweGEzLCAweGEzLCAweDE1LCAweDQzLCAweDgwLCAweDA3LCAweGEzLCAweGEzLCAweGEzLCAweGRlLCAweGVhLCAweDgwLCAKKzB4MjYsIDB4ZGUsIDB4MDYsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ODAsIDB4ZDgsIDB4ZTAsIDB4ZjgsIDB4YTMsIDB4ZTAsIDB4ZjksIDB4YTMsIDB4ZTAsIAorMHhmYSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhlOCwgMHhmMCwgMHhhMywgMHhlOSwgMHhmMCwgMHhhMywgMHhlYSwgMHhmMCwgMHhhMywgMHhjMCwgMHg4MywgCisweGMwLCAweDgyLCAweGEzLCAweGEzLCAweGEzLCAweDgwLCAweGRhLCAweDc4LCAweDA4LCAweDA4LCAweDc5LCAweDE4LCAweDA5LCAweDdjLCAweDAxLCAweGU2LCAKKzB4NTQsIDB4N2YsIDB4NmYsIDB4NzAsIDB4MDYsIDB4NzYsIDB4MDAsIDB4NzcsIDB4MDAsIDB4ODAsIDB4MDYsIDB4MDgsIDB4MDksIDB4MGMsIDB4YmMsIDB4MDgsIAorMHhlZSwgMHgxMiwgMHgxMSwgMHgwZiwgMHhkMCwgMHgwNiwgMHhkMCwgMHgwNCwgMHhkMCwgMHgwMiwgMHhkMCwgMHgwMSwgMHhkMCwgMHgwMCwgMHgyMiwgMHg3NSwgCisweDNkLCAweDAwLCAweDg1LCAweDQ0LCAweGE4LCAweDIyLCAweGMwLCAweGYwLCAweGMwLCAweDgyLCAweGMwLCAweDgzLCAweGMzLCAweGU1LCAweDQzLCAweDI0LCAKKzB4ZTgsIDB4NTAsIDB4MDUsIDB4MTIsIDB4MTEsIDB4NjYsIDB4ODAsIDB4ZjQsIDB4ZWYsIDB4NjAsIDB4MzEsIDB4OTAsIDB4MzAsIDB4NTQsIDB4ZTQsIDB4OTMsIAorMHhjMywgMHg5ZiwgMHg0MCwgMHgyZiwgMHhjMCwgMHgwNCwgMHg3YywgMHhmZiwgMHgxMiwgMHgxMCwgMHg3OCwgMHhkMCwgMHgwNCwgMHg0MywgMHgwNywgMHg4MCwgCisweGU1LCAweDQzLCAweDc1LCAweGYwLCAweDAzLCAweGE0LCAweDI0LCAweDFiLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweGY5LCAweGY1LCAweDgzLCAweGVmLCAKKzB4ZjAsIDB4ZWMsIDB4YTMsIDB4ZjAsIDB4ZWQsIDB4YTMsIDB4ZjAsIDB4MDUsIDB4NDMsIDB4MTIsIDB4MTEsIDB4MGYsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIAorMHhkMCwgMHhmMCwgMHgyMiwgMHgwMiwgMHgxMSwgMHg5NCwgMHhjMCwgMHgwNCwgMHg3YywgMHgyMCwgMHhkMiwgMHg4YywgMHhkMiwgMHg4ZCwgMHhkNSwgMHgwNCwgCisweGZkLCAweGQwLCAweDA0LCAweDIyLCAweDc1LCAweGE4LCAweDAwLCAweDc1LCAweDg4LCAweDAwLCAweDc1LCAweGI4LCAweDAwLCAweDc1LCAweGYwLCAweDAwLCAKKzB4NzUsIDB4ZDAsIDB4MDAsIDB4ZTQsIDB4ZjgsIDB4OTAsIDB4ZjgsIDB4MDQsIDB4ZjAsIDB4OTAsIDB4MDAsIDB4MDAsIDB4ZjYsIDB4MDgsIDB4YjgsIDB4MDAsIAorMHhmYiwgMHgwMiwgMHgwMCwgMHgwMCwgMHhjMiwgMHhhZiwgMHhlNCwgMHg5MCwgMHhmZiwgMHg0OCwgMHhmMCwgMHg5MCwgMHhmZiwgMHg1MCwgMHhmMCwgMHg5MCwgCisweGZmLCAweDA4LCAweGYwLCAweDkwLCAweGZmLCAweDEwLCAweGYwLCAweDkwLCAweGZmLCAweDgwLCAweGYwLCAweGEzLCAweGEzLCAweGYwLCAweGQyLCAweGIxLCAKKzB4YzIsIDB4YjAsIDB4N2UsIDB4ZmYsIDB4N2YsIDB4ZmYsIDB4MTIsIDB4MGYsIDB4ZGMsIDB4N2UsIDB4ZmYsIDB4N2YsIDB4ZmYsIDB4MTIsIDB4MGYsIDB4ZGMsIAorMHg3ZSwgMHhmZiwgMHg3ZiwgMHhmZiwgMHgxMiwgMHgwZiwgMHhkYywgMHhkMiwgMHhiMCwgMHhkMiwgMHhiMSwgMHg3ZSwgMHhmZiwgMHg3ZiwgMHhmZiwgMHgxMiwgCisweDBmLCAweGRjLCAweDdlLCAweGZmLCAweDdmLCAweGZmLCAweDEyLCAweDBmLCAweGRjLCAweDdlLCAweGZmLCAweDdmLCAweGZmLCAweDEyLCAweDBmLCAweGRjLCAKKzB4ODAsIDB4Y2MsIDB4YzMsIDB4ZWUsIDB4OTQsIDB4MDIsIDB4NTAsIDB4MDQsIDB4N2UsIDB4MDMsIDB4N2YsIDB4ZTgsIDB4ZWYsIDB4ZjQsIDB4ZmYsIDB4ZWUsIAorMHhmNCwgMHhmZSwgMHgwZiwgMHhiZiwgMHgwMCwgMHgwMSwgMHgwZSwgMHg4ZiwgMHg0MiwgMHg4ZSwgMHg0MSwgMHgyMiwgMHhjMywgMHhlZiwgMHg5NCwgMHhiYywgCisweGVlLCAweDk0LCAweDAyLCAweDUwLCAweDA0LCAweDdlLCAweDA3LCAweDdmLCAweGQwLCAweGVmLCAweGY0LCAweGZmLCAweGVlLCAweGY0LCAweGZlLCAweDBmLCAKKzB4YmYsIDB4MDAsIDB4MDEsIDB4MGUsIDB4OGYsIDB4NDAsIDB4OGUsIDB4M2YsIDB4MjIsIDB4ZWYsIDB4NzAsIDB4MDEsIDB4MjIsIDB4YzAsIDB4MDAsIDB4YzAsIAorMHhhOCwgMHhjMiwgMHhhZiwgMHhlNSwgMHgzZSwgMHgyNCwgMHgxOCwgMHhmOCwgMHhhNiwgMHgwNywgMHhlNSwgMHgzZSwgMHgyNCwgMHgwOCwgMHhmOCwgMHhjNiwgCisweDU0LCAweDdmLCAweGY2LCAweGQwLCAweGE4LCAweGU2LCAweDMwLCAweGU3LCAweDAzLCAweGQwLCAweDAwLCAweDIyLCAweDEyLCAweDExLCAweDY2LCAweDgwLCAKKzB4ZjQsIDB4YzAsIDB4MDAsIDB4N2YsIDB4MDEsIDB4ZWYsIDB4MjQsIDB4MDgsIDB4ZjgsIDB4ZTYsIDB4NjAsIDB4MDksIDB4MGYsIDB4YmYsIDB4MDgsIDB4ZjUsIAorMHgxMiwgMHgxMSwgMHg2NiwgMHg4MCwgMHhlZSwgMHhkMCwgMHgwMCwgMHgyMiwgMHhjMCwgMHhmMCwgMHhjMCwgMHg4MiwgMHhjMCwgMHg4MywgMHhjMCwgMHgwMCwgCisweGMwLCAweDA2LCAweGMwLCAweDA0LCAweGVkLCAweDI0LCAweDEwLCAweGY4LCAweDc2LCAweDlhLCAweGVkLCAweDc1LCAweGYwLCAweDIxLCAweGE0LCAweDI0LCAKKzB4MDUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZjgsIDB4ZjUsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODMsIDB4YTMsIDB4YTMsIDB4ZTQsIDB4NzgsIAorMHgwZCwgMHhmMCwgMHhhMywgMHhkOCwgMHhmYywgMHhlZiwgMHg1NCwgMHg3ZiwgMHg3NSwgMHhmMCwgMHgwMiwgMHhhNCwgMHgyNCwgMHgzNiwgMHhmNSwgMHg4MiwgCisweGU1LCAweGYwLCAweDM0LCAweDMwLCAweGY1LCAweDgzLCAweGU0LCAweDkzLCAweGZlLCAweDc0LCAweDAxLCAweDkzLCAweGZjLCAweGQwLCAweDgzLCAweGQwLCAKKzB4ODIsIDB4ZWMsIDB4ZjAsIDB4YTMsIDB4ZWUsIDB4ZjAsIDB4ZWQsIDB4MjQsIDB4MDgsIDB4ZjgsIDB4ZWYsIDB4NDQsIDB4ODAsIDB4ZjYsIDB4ZDAsIDB4MDQsIAorMHhkMCwgMHgwNiwgMHhkMCwgMHgwMCwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhkMCwgMHhmMCwgMHgyMiwgMHg3NSwgMHgzZSwgMHgwMCwgMHg3NSwgMHg0MywgCisweDAwLCAweDdhLCAweDA4LCAweDc5LCAweDE4LCAweDc4LCAweDA4LCAweDc2LCAweDAwLCAweDc3LCAweDAwLCAweDA4LCAweDA5LCAweGRhLCAweGY4LCAweDkwLCAKKzB4ZjgsIDB4MDQsIDB4ZTAsIDB4ZmMsIDB4OTAsIDB4MzAsIDB4NTQsIDB4ZTQsIDB4OTMsIDB4YzMsIDB4OWMsIDB4NTAsIDB4MDUsIDB4ZTQsIDB4OTAsIDB4ZjgsIAorMHgwNCwgMHhmMCwgMHg3OCwgMHgwOCwgMHg3NCwgMHg4MCwgMHg0NCwgMHg3ZiwgMHhmNiwgMHg3NCwgMHgwMSwgMHg0NCwgMHgxMCwgMHhmNSwgMHg4OSwgMHg3NSwgCisweGI4LCAweDAwLCAweGQyLCAweGFiLCAweGQyLCAweGE5LCAweDIyLCAweDc1LCAweDgxLCAweDhiLCAweGQyLCAweDhlLCAweGQyLCAweDhjLCAweGQyLCAweGFmLCAKKzB4ZTUsIDB4NDMsIDB4NjAsIDB4MzYsIDB4ZmYsIDB4OTAsIDB4ZjksIDB4MWIsIDB4ZTAsIDB4NTQsIDB4ODAsIDB4NjAsIDB4MjgsIDB4NzgsIDB4MDgsIDB4NzksIAorMHgwOCwgMHhlMCwgMHg1NCwgMHg3ZiwgMHhmYSwgMHg3YiwgMHgwMCwgMHhlNiwgMHg1NCwgMHg3ZiwgMHhiNSwgMHgwMiwgMHgwMiwgMHg3YiwgMHhmZiwgMHgwOCwgCisweGQ5LCAweGY1LCAweGViLCAweDcwLCAweDEwLCAweGVhLCAweGYwLCAweGMwLCAweDA3LCAweDEyLCAweDEyLCAweDQxLCAweGFkLCAweDA3LCAweGFmLCAweDAyLCAKKzB4MTIsIDB4MTIsIDB4NTgsIDB4ZDAsIDB4MDcsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZGYsIDB4Y2UsIDB4MTIsIDB4MTEsIDB4NjYsIDB4ODAsIDB4YzEsIDB4OGYsIAorMHgyNCwgMHgxMiwgMHgyYSwgMHgwNiwgMHg3OCwgMHg4MCwgMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwgMHhmZiwgMHg4ZSwgMHg4MywgMHgyNCwgMHgwOCwgMHgxMiwgCisweDIxLCAweGYzLCAweGUwLCAweGZkLCAweDEyLCAweDIyLCAweDhhLCAweDhhLCAweDgzLCAweDI0LCAweDBhLCAweDEyLCAweDIxLCAweGYzLCAweGVkLCAweGYwLCAKKzB4MTIsIDB4MjIsIDB4NTYsIDB4MjQsIDB4MDcsIDB4MTIsIDB4MjEsIDB4ZjMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MjIsIDB4OTksIDB4MjQsIDB4MDksIDB4MTIsIAorMHgyMSwgMHhmMywgMHhlZiwgMHhmMCwgMHg5MCwgMHhmOSwgMHgxNSwgMHhlMCwgMHgzMCwgMHhlNCwgMHgyMCwgMHgwOCwgMHgxMiwgMHgyMiwgMHgwOSwgMHhjMCwgCisweDgzLCAweGMwLCAweDgyLCAweGEzLCAweGUwLCAweDI1LCAweGUwLCAweGZmLCAweDA1LCAweDgyLCAweGQ1LCAweDgyLCAweDAyLCAweDE1LCAweDgzLCAweDE1LCAKKzB4ODIsIDB4ZTAsIDB4MzMsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZjAsIDB4YTMsIDB4ZWYsIDB4ZjAsIDB4NzgsIDB4ODAsIDB4MTIsIDB4MjIsIDB4MDksIAorMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmZCwgMHhlYywgMHhmZiwgMHgxMiwgMHgyMiwgMHg4YSwgMHg4YSwgMHg4MywgMHgyNCwgMHgwOCwgMHgxMiwgMHgyMSwgCisweGYzLCAweGVmLCAweGYwLCAweGVkLCAweDEyLCAweDIyLCAweDk5LCAweDI0LCAweDA3LCAweDEyLCAweDIxLCAweGYzLCAweGVkLCAweGYwLCAweDEyLCAweDIxLCAKKzB4ZmIsIDB4ZTAsIDB4ZmYsIDB4MzAsIDB4ZTcsIDB4MTksIDB4MTIsIDB4MjIsIDB4NmUsIDB4MTIsIDB4MjEsIDB4ZjMsIDB4ZTAsIDB4NjAsIDB4MDksIDB4MTIsIAorMHgyMSwgMHhmYiwgMHhlZiwgMHg0NCwgMHgwMiwgMHhmMCwgMHg4MCwgMHgwNywgMHgxMiwgMHgyMSwgMHhmYiwgMHhlZiwgMHg1NCwgMHhmZCwgMHhmMCwgMHg3OCwgCisweDdlLCAweDEyLCAweDIyLCAweDA5LCAweGEzLCAweGEzLCAweGUwLCAweGZmLCAweDUzLCAweDA3LCAweGM3LCAweDA4LCAweGU2LCAweGZjLCAweDA4LCAweGU2LCAKKzB4ZmQsIDB4MTIsIDB4MjIsIDB4NDMsIDB4YTMsIDB4ZTAsIDB4MzAsIDB4ZTMsIDB4MTIsIDB4OGQsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZTUsIDB4ODIsIDB4MjQsIAorMHgwNSwgMHgxMiwgMHgyMSwgMHhmMywgMHhlMCwgMHg5MCwgMHgzMSwgMHg5NCwgMHg5MywgMHg0MiwgMHgwNywgMHg1MywgMHgwNywgMHhmYiwgMHg3OCwgMHg4MCwgCisweGU2LCAweGZjLCAweDA4LCAweGU2LCAweDhjLCAweDgzLCAweDI0LCAweDA2LCAweDEyLCAweDIxLCAweGYzLCAweGUwLCAweDYwLCAweDAzLCAweDQzLCAweDA3LCAKKzB4MDQsIDB4NTMsIDB4MDcsIDB4ZmMsIDB4NzgsIDB4ODAsIDB4MTIsIDB4MjIsIDB4N2EsIDB4MjQsIDB4MDQsIDB4MTIsIDB4MjEsIDB4ZjMsIDB4ZTAsIDB4NDIsIAorMHgwNywgMHg0MywgMHgwNywgMHg4MCwgMHgxMiwgMHgyMiwgMHg4YSwgMHhmNSwgMHg4MiwgMHg4YSwgMHg4MywgMHhhMywgMHhhMywgMHhlZiwgMHhmMCwgMHgxMiwgCisweDIyLCAweDk5LCAweDI0LCAweDA0LCAweDEyLCAweDIxLCAweGYzLCAweGUwLCAweGZmLCAweDhkLCAweDgyLCAweDhjLCAweDgzLCAweGEzLCAweGEzLCAweGUwLCAKKzB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4MzAsIDB4ZTEsIDB4MDUsIDB4NTMsIDB4MDcsIDB4ZGYsIDB4ODAsIDB4MDMsIDB4NDMsIDB4MDcsIDB4MjAsIDB4ZWMsIAorMHgzMCwgMHhlNCwgMHgwNSwgMHg1MywgMHgwNywgMHhlZiwgMHg4MCwgMHgwMywgMHg0MywgMHgwNywgMHgxMCwgMHgxMiwgMHgyMSwgMHhmYiwgMHhlMCwgMHhmZSwgCisweDU0LCAweDAzLCAweDYwLCAweDczLCAweDUzLCAweDA3LCAweGRmLCAweGVlLCAweDMwLCAweGUxLCAweDY5LCAweDc4LCAweDgwLCAweDEyLCAweDIyLCAweDZmLCAKKzB4MTIsIDB4MjEsIDB4ZjMsIDB4ZTAsIDB4MTIsIDB4MWIsIDB4NGMsIDB4MTQsIDB4YTYsIDB4MDAsIDB4MTQsIDB4ZGEsIDB4MDEsIDB4MTQsIDB4ZGYsIDB4MDMsIAorMHgxNCwgMHhkYSwgMHgwNSwgMHgxNCwgMHhkZiwgMHgwNywgMHgxNCwgMHhkYSwgMHgwOSwgMHgxNCwgMHhkZiwgMHgwYiwgMHgxNCwgMHhkYSwgMHgwZCwgMHgxNCwgCisweGRmLCAweDBmLCAweDAwLCAweDAwLCAweDE0LCAweGU3LCAweGU1LCAweDI0LCAweDY0LCAweDAzLCAweDcwLCAweDIxLCAweDkwLCAweGY5LCAweDE1LCAweGUwLCAKKzB4MzAsIDB4ZTIsIDB4MGQsIDB4MzAsIDB4YjQsIDB4MDUsIDB4NDMsIDB4MDcsIDB4MDIsIDB4ODAsIDB4MmMsIDB4NTMsIDB4MDcsIDB4ZmQsIDB4ODAsIDB4MjcsIAorMHgzMCwgMHg5NSwgMHgwNSwgMHg0MywgMHgwNywgMHgwMiwgMHg4MCwgMHgxZiwgMHg1MywgMHgwNywgMHhmZCwgMHg4MCwgMHgxYSwgMHgzMCwgMHg5MywgMHgwNSwgCisweDQzLCAweDA3LCAweDAyLCAweDgwLCAweDEyLCAweDUzLCAweDA3LCAweGZkLCAweDgwLCAweDBkLCAweDQzLCAweDA3LCAweDAyLCAweDgwLCAweDA4LCAweDUzLCAKKzB4MDcsIDB4ZmQsIDB4ODAsIDB4MDMsIDB4NTMsIDB4MDcsIDB4ZmQsIDB4MTIsIDB4MjIsIDB4NzgsIDB4MjQsIDB4MDQsIDB4MTIsIDB4MjEsIDB4ZjMsIDB4ZWYsIAorMHhmMCwgMHg4ZCwgMHg4MiwgMHg4YywgMHg4MywgMHhhMywgMHhhMywgMHhhMywgMHhlMCwgMHhmZiwgMHgxMiwgMHgyMSwgMHhmYiwgMHhlMCwgMHhmZSwgMHg1NCwgCisweDAzLCAweDcwLCAweDAzLCAweDAyLCAweDE1LCAweGQ3LCAweGVlLCAweDIwLCAweGUxLCAweDAzLCAweDAyLCAweDE1LCAweGQ0LCAweDEyLCAweDIyLCAweDZlLCAKKzB4MTIsIDB4MjEsIDB4ZjMsIDB4ZTAsIDB4MTIsIDB4MWIsIDB4NGMsIDB4MTUsIDB4MzYsIDB4MDAsIDB4MTUsIDB4NmMsIDB4MDEsIDB4MTUsIDB4NmMsIDB4MDMsIAorMHgxNSwgMHhhMCwgMHgwNSwgMHgxNSwgMHhhMCwgMHgwNywgMHgxNSwgMHg4NiwgMHgwOSwgMHgxNSwgMHg4NiwgMHgwYiwgMHgxNSwgMHhiYSwgMHgwZCwgMHgxNSwgCisweGJhLCAweDBmLCAweDAwLCAweDAwLCAweDE1LCAweGQ3LCAweGU1LCAweDI0LCAweDY0LCAweDAzLCAweDcwLCAweDIzLCAweDkwLCAweGY5LCAweDE1LCAweGUwLCAKKzB4MzAsIDB4ZTIsIDB4MGYsIDB4MzAsIDB4YjEsIDB4MDYsIDB4NTMsIDB4MDcsIDB4N2YsIDB4MDIsIDB4MTUsIDB4ZDcsIDB4NDMsIDB4MDcsIDB4ODAsIDB4MDIsIAorMHgxNSwgMHhkNywgMHgzMCwgMHg5NCwgMHgwNSwgMHg1MywgMHgwNywgMHg3ZiwgMHg4MCwgMHg3ZCwgMHg0MywgMHgwNywgMHg4MCwgMHg4MCwgMHg3OCwgMHgzMCwgCisweDkyLCAweDA1LCAweDUzLCAweDA3LCAweDdmLCAweDgwLCAweDcwLCAweDQzLCAweDA3LCAweDgwLCAweDgwLCAweDZiLCAweGU1LCAweDI0LCAweGI0LCAweDAzLCAKKzB4MDksIDB4OTAsIDB4ZmYsIDB4OWUsIDB4ZTAsIDB4NTQsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4ZmYsIDB4OWUsIDB4ZTAsIDB4NTQsIDB4ZGYsIAorMHhmMCwgMHg1MywgMHgwNywgMHg3ZiwgMHg4MCwgMHg1MSwgMHhlNSwgMHgyNCwgMHhiNCwgMHgwMywgMHgwOSwgMHg5MCwgMHhmZiwgMHg5ZSwgMHhlMCwgMHg0NCwgCisweDEwLCAweGYwLCAweDgwLCAweDA3LCAweDkwLCAweGZmLCAweDllLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDUzLCAweDA3LCAweDdmLCAweDgwLCAweDM3LCAKKzB4ZTUsIDB4MjQsIDB4YjQsIDB4MDMsIDB4MDksIDB4OTAsIDB4ZmYsIDB4OWUsIDB4ZTAsIDB4NTQsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4ZmYsIAorMHg5ZSwgMHhlMCwgMHg1NCwgMHhkZiwgMHhmMCwgMHg0MywgMHgwNywgMHg4MCwgMHg4MCwgMHgxZCwgMHhlNSwgMHgyNCwgMHhiNCwgMHgwMywgMHgwOSwgMHg5MCwgCisweGZmLCAweDllLCAweGUwLCAweDQ0LCAweDEwLCAweGYwLCAweDgwLCAweDA3LCAweDkwLCAweGZmLCAweDllLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDQzLCAKKzB4MDcsIDB4ODAsIDB4ODAsIDB4MDMsIDB4NTMsIDB4MDcsIDB4N2YsIDB4NzgsIDB4ODAsIDB4MTIsIDB4MjIsIDB4M2YsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIAorMHhmZCwgMHgzMCwgMHhlMCwgMHgwNSwgMHg0MywgMHgwNywgMHgyMCwgMHg4MCwgMHgwMywgMHg1MywgMHgwNywgMHhkZiwgMHhlYywgMHgzMCwgMHhlMywgMHgwNSwgCisweDQzLCAweDA3LCAweDQwLCAweDgwLCAweDAzLCAweDUzLCAweDA3LCAweGJmLCAweGVjLCAweDMwLCAweGUwLCAweDA1LCAweDQzLCAweDA3LCAweDEwLCAweDgwLCAKKzB4MDMsIDB4NTMsIDB4MDcsIDB4ZWYsIDB4ZWQsIDB4MzAsIDB4ZTQsIDB4MDUsIDB4NDMsIDB4MDcsIDB4MDgsIDB4ODAsIDB4MDMsIDB4NTMsIDB4MDcsIDB4ZjcsIAorMHhlZCwgMHgzMCwgMHhlNSwgMHgwNSwgMHg0MywgMHgwNywgMHgwNCwgMHg4MCwgMHgwMywgMHg1MywgMHgwNywgMHhmYiwgMHhlZCwgMHgzMCwgMHhlNiwgMHgwNSwgCisweDQzLCAweDA3LCAweDAxLCAweDgwLCAweDAzLCAweDUzLCAweDA3LCAweGZlLCAweGVkLCAweDMwLCAweGU3LCAweDA1LCAweDQzLCAweDA3LCAweDAyLCAweDgwLCAKKzB4MDMsIDB4NTMsIDB4MDcsIDB4ZmQsIDB4NzgsIDB4N2UsIDB4MTIsIDB4MjIsIDB4M2YsIDB4YTMsIDB4ZWYsIDB4ZjAsIDB4MTIsIDB4MzEsIDB4YzcsIDB4N2YsIAorMHgwMCwgMHgyMiwgMHg5MCwgMHhmZiwgMHhmYSwgMHg3NCwgMHgwOCwgMHhmMCwgMHhhMywgMHg3NCwgMHgxNiwgMHhmMCwgMHg5MCwgMHhmZiwgMHhmOSwgMHg3NCwgCisweDAyLCAweGYwLCAweDdiLCAweDAxLCAweDdhLCAweGZhLCAweDc5LCAweGNjLCAweGU0LCAweGZkLCAweDEyLCAweDIyLCAweGEwLCAweDkwLCAweGZhLCAweGNjLCAKKzB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDMsIDB4MTIsIDB4MWEsIDB4NmMsIDB4MTIsIDB4MTgsIDB4ZTIsIDB4ZTUsIDB4MjMsIDB4MzAsIDB4ZTcsIDB4MDIsIDB4ZDIsIAorMHgwMiwgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgyNCwgMHg5MCwgMHhmYSwgMHhjYywgMHhlMCwgMHhmNSwgMHgyZCwgMHhhMywgMHhlMCwgMHhmNSwgCisweDJlLCAweDdkLCAweDAxLCAweDEyLCAweDI1LCAweGQ3LCAweDkwLCAweGZhLCAweGNjLCAweGU0LCAweGYwLCAweGEzLCAweDc0LCAweDBiLCAweGYwLCAweDdiLCAKKzB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4MjMsIDB4NzUsIDB4MmQsIDB4MDAsIDB4ZjUsIDB4MmUsIDB4N2QsIDB4MDEsIDB4MTIsIDB4MjUsIDB4ZDcsIDB4ZTUsIAorMHgyMywgMHgyNCwgMHg4MCwgMHg5MCwgMHhmZiwgMHhmOCwgMHhmMCwgMHhlNSwgMHgyMywgMHg2NCwgMHgwNywgMHg2MCwgMHgxZSwgMHhlNSwgMHgyMywgMHg2NCwgCisweDA2LCAweDYwLCAweDE4LCAweGU1LCAweDIzLCAweDY0LCAweDE0LCAweDYwLCAweDEyLCAweGU1LCAweDIzLCAweDY0LCAweDQxLCAweDYwLCAweDBjLCAweGU1LCAKKzB4MjMsIDB4NjQsIDB4MWEsIDB4NzAsIDB4NDYsIDB4ZTUsIDB4MjQsIDB4NjQsIDB4MDIsIDB4NzAsIDB4NDAsIDB4ZTUsIDB4MjMsIDB4YjQsIDB4MDcsIDB4MTYsIAorMHhkMiwgMHg5NCwgMHhkMiwgMHg5NSwgMHhkMiwgMHg5MiwgMHhkMiwgMHg5MywgMHg5MCwgMHhmOSwgMHgxNSwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhhMywgCisweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDgwLCAweDFlLCAweGU1LCAweDIzLCAweGI0LCAweDQxLCAweDEyLCAweDkwLCAweGY5LCAweDE1LCAweGUwLCAweDQ0LCAKKzB4MDYsIDB4ZjAsIDB4YTMsIDB4ZTAsIDB4NDQsIDB4MDYsIDB4ZjAsIDB4ZDIsIDB4YjEsIDB4ZDIsIDB4YjQsIDB4ODAsIDB4MDcsIDB4OTAsIDB4ZjksIDB4MTUsIAorMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHhmOSwgMHgxNiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHhlNSwgMHgyMywgMHg2NCwgMHg0MiwgMHg2MCwgCisweDA1LCAweGU1LCAweDIzLCAweGI0LCAweDQzLCAweDBjLCAweDkwLCAweGY5LCAweDE1LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGEzLCAweGUwLCAweDQ0LCAKKzB4ODAsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4Y2MsIDB4ZTQsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MGQsIDB4ZjAsIDB4MTIsIDB4MTgsIDB4ZTIsIDB4OTAsIDB4ZmYsIAorMHhmNSwgMHhlNSwgMHgyMywgMHhmMCwgMHhlNCwgMHhmNSwgMHgzNSwgMHhmNSwgMHgzMywgMHhmNSwgMHgzNCwgMHhmNSwgMHgzMiwgMHgxMiwgMHgxZCwgMHg4NCwgCisweDEyLCAweDFjLCAweDMwLCAweDEyLCAweDFkLCAweDhiLCAweDkwLCAweGY5LCAweDY3LCAweDEyLCAweDFiLCAweDQzLCAweDkwLCAweGY5LCAweDZjLCAweDEyLCAKKzB4MWIsIDB4NDMsIDB4OTAsIDB4ZmYsIDB4ZmYsIDB4ZTQsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4ODMsIDB4ZTAsIDB4ZTQsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4ODEsIAorMHg3NCwgMHg4MCwgMHhmMCwgMHhhMywgMHg3NCwgMHg4NCwgMHhmMCwgMHg5MCwgMHhmZiwgMHg4MCwgMHhmMCwgMHhlNCwgMHhmNSwgMHgyMywgMHhlNSwgMHgyMywgCisweDEyLCAweDFjLCAweGE3LCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweGU1LCAweDIzLCAweDEyLCAweDFjLCAweGI1LCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAKKzB4MDUsIDB4MjMsIDB4ZTUsIDB4MjMsIDB4YjQsIDB4MDcsIDB4ZTcsIDB4NzgsIDB4N2EsIDB4NzYsIDB4ZmUsIDB4MDgsIDB4NzYsIDB4ZjAsIDB4OTAsIDB4MzEsIAorMHg0ZCwgMHhlNCwgMHg5MywgMHhmZiwgMHg3OCwgMHg3OCwgMHhmNiwgMHhmZCwgMHhhZCwgMHgwNywgMHg5MCwgMHgzMSwgMHg1YSwgMHhlNCwgMHg5MywgMHhmZiwgCisweDA4LCAweGY2LCAweGZmLCAweGVkLCAweDU0LCAweDBmLCAweGZkLCAweDEyLCAweDFjLCAweDk3LCAweDc0LCAweDg0LCAweGYwLCAweGVkLCAweDc1LCAweGYwLCAKKzB4MDgsIDB4YTQsIDB4MjQsIDB4NDcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZmYsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4YzMsIDB4NzQsIDB4ZjAsIAorMHg5ZiwgMHg3OCwgMHg3YiwgMHhmNiwgMHg3NCwgMHhmZSwgMHg5NCwgMHgwMCwgMHgxOCwgMHgxMiwgMHgxYywgMHgyOCwgMHhjZSwgMHhjMywgMHgxMywgMHhjZSwgCisweDEzLCAweGQ4LCAweGY5LCAweGZmLCAweGVkLCAweDEyLCAweDFjLCAweGY4LCAweGVmLCAweGYwLCAweGVkLCAweDEyLCAweDFkLCAweDFlLCAweGU0LCAweGY1LCAKKzB4MjMsIDB4ZTUsIDB4MjMsIDB4OTAsIDB4MzEsIDB4NDcsIDB4OTMsIDB4ZmYsIDB4NzgsIDB4NzgsIDB4ZjYsIDB4ZmQsIDB4ZTUsIDB4MjMsIDB4MjUsIDB4ZTAsIAorMHgyNCwgMHg0ZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgzMSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgwOCwgMHhmNiwgMHhlZCwgMHgzMCwgMHhlNywgCisweDUzLCAweDE4LCAweGU2LCAweDU0LCAweDBmLCAweGY5LCAweDEyLCAweDFjLCAweDk3LCAweDEyLCAweDFkLCAweDA2LCAweDI0LCAweDQ3LCAweGY1LCAweDgyLCAKKzB4ZTQsIDB4MzQsIDB4ZmYsIDB4MTIsIDB4MWMsIDB4MTgsIDB4Y2UsIDB4YzMsIDB4MTMsIDB4Y2UsIDB4MTMsIDB4ZDgsIDB4ZjksIDB4ZmYsIDB4ZTksIDB4MTIsIAorMHgxYywgMHhmOCwgMHhlZiwgMHhmMCwgMHgxMiwgMHgxYywgMHgxZiwgMHhjZSwgMHhjMywgMHgxMywgMHhjZSwgMHgxMywgMHhkOCwgMHhmOSwgMHgxMiwgMHgxZCwgCisweDBiLCAweDI0LCAweDQ1LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweGZmLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweGU5LCAweDEyLCAweDFkLCAweDFlLCAKKzB4ZTksIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4NDYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZmYsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4ODAsIAorMHhmMCwgMHgwMiwgMHgxOCwgMHhiNywgMHg3OCwgMHg3OCwgMHhlNiwgMHg1NCwgMHgwZiwgMHhmOSwgMHgxMiwgMHgxYywgMHhlYSwgMHgxMiwgMHgxZCwgMHgwNiwgCisweDI0LCAweDA3LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweGZmLCAweDEyLCAweDFjLCAweDE4LCAweGNlLCAweGMzLCAweDEzLCAweGNlLCAweDEzLCAweGQ4LCAKKzB4ZjksIDB4MTIsIDB4MWQsIDB4MGIsIDB4MjQsIDB4MDEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZmYsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MTIsIAorMHgxYywgMHgxZiwgMHhjZSwgMHhjMywgMHgxMywgMHhjZSwgMHgxMywgMHhkOCwgMHhmOSwgMHgxMiwgMHgxZCwgMHgwYiwgMHgyNCwgMHgwNSwgMHhmNSwgMHg4MiwgCisweGU0LCAweDM0LCAweGZmLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweGU5LCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAyLCAweGY1LCAweDgyLCAKKzB4ZTQsIDB4MzQsIDB4ZmYsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4ZTksIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDYsIDB4ZjUsIDB4ODIsIAorMHhlNCwgMHgzNCwgMHhmZiwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHgwNSwgMHgyMywgMHhlNSwgMHgyMywgMHg2NCwgMHgwNCwgMHg2MCwgMHgwMywgMHgwMiwgCisweDE3LCAweGUxLCAweDkwLCAweDMxLCAweDRjLCAweGU0LCAweDkzLCAweGZmLCAweDc4LCAweDc4LCAweGY2LCAweDEyLCAweDFjLCAweGU4LCAweGU0LCAweGYwLCAKKzB4OTAsIDB4MzEsIDB4NGIsIDB4OTMsIDB4ZmYsIDB4ZjYsIDB4MTIsIDB4MWMsIDB4OTUsIDB4ZTQsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4ZmQsIDB4NzQsIDB4MDUsIAorMHhmMCwgMHgyMiwgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgyMywgMHg5MCwgMHhmYSwgMHhjYywgMHhlNCwgMHg3NSwgMHhmMCwgMHgwMSwgMHgxMiwgCisweDFhLCAweDgyLCAweDg1LCAweGYwLCAweDJlLCAweGY1LCAweDJkLCAweDdkLCAweDAxLCAweDAyLCAweDI1LCAweGQ3LCAweGU3LCAweDA5LCAweGY2LCAweDA4LCAKKzB4ZGYsIDB4ZmEsIDB4ODAsIDB4NDYsIDB4ZTcsIDB4MDksIDB4ZjIsIDB4MDgsIDB4ZGYsIDB4ZmEsIDB4ODAsIDB4M2UsIDB4ODgsIDB4ODIsIDB4OGMsIDB4ODMsIAorMHhlNywgMHgwOSwgMHhmMCwgMHhhMywgMHhkZiwgMHhmYSwgMHg4MCwgMHgzMiwgMHhlMywgMHgwOSwgMHhmNiwgMHgwOCwgMHhkZiwgMHhmYSwgMHg4MCwgMHg3OCwgCisweGUzLCAweDA5LCAweGYyLCAweDA4LCAweGRmLCAweGZhLCAweDgwLCAweDcwLCAweDg4LCAweDgyLCAweDhjLCAweDgzLCAweGUzLCAweDA5LCAweGYwLCAweGEzLCAKKzB4ZGYsIDB4ZmEsIDB4ODAsIDB4NjQsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4YTMsIDB4ZjYsIDB4MDgsIDB4ZGYsIDB4ZmEsIDB4ODAsIDB4NTgsIAorMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHhhMywgMHhmMiwgMHgwOCwgMHhkZiwgMHhmYSwgMHg4MCwgMHg0YywgMHg4MCwgMHhkMiwgMHg4MCwgMHhmYSwgCisweDgwLCAweGM2LCAweDgwLCAweGQ0LCAweDgwLCAweDY5LCAweDgwLCAweGYyLCAweDgwLCAweDMzLCAweDgwLCAweDEwLCAweDgwLCAweGE2LCAweDgwLCAweGVhLCAKKzB4ODAsIDB4OWEsIDB4ODAsIDB4YTgsIDB4ODAsIDB4ZGEsIDB4ODAsIDB4ZTIsIDB4ODAsIDB4Y2EsIDB4ODAsIDB4MzMsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIAorMHhlYywgMHhmYSwgMHhlNCwgMHg5MywgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYywgMHhjNSwgMHg4MywgMHhjYywgMHhmMCwgMHhhMywgMHhjOCwgCisweGM1LCAweDgyLCAweGM4LCAweGNjLCAweGM1LCAweDgzLCAweGNjLCAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweDBkLCAweDg5LCAweDgyLCAweDhhLCAKKzB4ODMsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjYsIDB4MDgsIDB4ZGYsIDB4ZjksIDB4ZWMsIDB4ZmEsIDB4YTksIDB4ZjAsIDB4ZWQsIDB4ZmIsIDB4MjIsIDB4ODksIAorMHg4MiwgMHg4YSwgMHg4MywgMHhlYywgMHhmYSwgMHhlMCwgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYywgMHhjNSwgMHg4MywgMHhjYywgMHhmMCwgCisweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNjLCAweGM1LCAweDgzLCAweGNjLCAweGRmLCAweGVhLCAweGRlLCAweGU4LCAweDgwLCAweGRiLCAweDg5LCAKKzB4ODIsIDB4OGEsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjIsIDB4MDgsIDB4ZGYsIDB4ZjksIDB4ODAsIDB4Y2MsIDB4ODgsIDB4ZjAsIDB4ZWYsIDB4NjAsIAorMHgwMSwgMHgwZSwgMHg0ZSwgMHg2MCwgMHhjMywgMHg4OCwgMHhmMCwgMHhlZCwgMHgyNCwgMHgwMiwgMHhiNCwgMHgwNCwgMHgwMCwgMHg1MCwgMHhiOSwgMHhmNSwgCisweDgyLCAweGViLCAweDI0LCAweDAyLCAweGI0LCAweDA0LCAweDAwLCAweDUwLCAweGFmLCAweDIzLCAweDIzLCAweDQ1LCAweDgyLCAweDIzLCAweDkwLCAweDE5LCAKKzB4NGMsIDB4NzMsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDIsIDB4ZTcsIDB4MjIsIDB4YmIsIAorMHhmZSwgMHgwMiwgMHhlMywgMHgyMiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwYywgMHhlNSwgMHg4MiwgCisweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAKKzB4ZTYsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTIsIDB4MjIsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIAorMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhmMCwgCisweDIyLCAweDUwLCAweDAyLCAweGY3LCAweDIyLCAweGJiLCAweGZlLCAweDAxLCAweGYzLCAweDIyLCAweGY4LCAweGJiLCAweDAxLCAweDBkLCAweGU1LCAweDgyLCAKKzB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTgsIDB4ZjAsIDB4MjIsIDB4NTAsIDB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIAorMHhjOCwgMHhmNiwgMHgyMiwgMHhiYiwgMHhmZSwgMHgwNSwgMHhlOSwgMHgyNSwgMHg4MiwgMHhjOCwgMHhmMiwgMHgyMiwgMHhjNSwgMHhmMCwgMHhmOCwgMHhhMywgCisweGUwLCAweDI4LCAweGYwLCAweGM1LCAweGYwLCAweGY4LCAweGU1LCAweDgyLCAweDE1LCAweDgyLCAweDcwLCAweDAyLCAweDE1LCAweDgzLCAweGUwLCAweDM4LCAKKzB4ZjAsIDB4MjIsIDB4YTMsIDB4ZjgsIDB4ZTAsIDB4YzUsIDB4ZjAsIDB4MjUsIDB4ZjAsIDB4ZjAsIDB4ZTUsIDB4ODIsIDB4MTUsIDB4ODIsIDB4NzAsIDB4MDIsIAorMHgxNSwgMHg4MywgMHhlMCwgMHhjOCwgMHgzOCwgMHhmMCwgMHhlOCwgMHgyMiwgMHhiYiwgMHgwMSwgMHgxMCwgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgCisweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweGYwLCAweGEzLCAweGUwLCAweDIyLCAweDUwLCAweDA5LCAweGU5LCAweDI1LCAweDgyLCAKKzB4ZjgsIDB4ODYsIDB4ZjAsIDB4MDgsIDB4ZTYsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MGEsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTIsIDB4ZjUsIDB4ZjAsIAorMHgwOCwgMHhlMiwgMHgyMiwgMHhlNSwgMHg4MywgMHgyYSwgMHhmNSwgMHg4MywgMHhlOSwgMHg5MywgMHhmNSwgMHhmMCwgMHhhMywgMHhlOSwgMHg5MywgMHgyMiwgCisweGJiLCAweDAxLCAweDBhLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGYwLCAweGU1LCAweGYwLCAweGEzLCAweGYwLCAweDIyLCAweDUwLCAweDA2LCAweGY3LCAKKzB4MDksIDB4YTcsIDB4ZjAsIDB4MTksIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDYsIDB4ZjMsIDB4ZTUsIDB4ZjAsIDB4MDksIDB4ZjMsIDB4MTksIDB4MjIsIDB4ZjgsIAorMHhiYiwgMHgwMSwgMHgxMSwgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlOCwgMHhmMCwgMHhlNSwgCisweGYwLCAweGEzLCAweGYwLCAweDIyLCAweDUwLCAweDA5LCAweGU5LCAweDI1LCAweDgyLCAweGM4LCAweGY2LCAweDA4LCAweGE2LCAweGYwLCAweDIyLCAweGJiLCAKKzB4ZmUsIDB4MDksIDB4ZTksIDB4MjUsIDB4ODIsIDB4YzgsIDB4ZjIsIDB4ZTUsIDB4ZjAsIDB4MDgsIDB4ZjIsIDB4MjIsIDB4YTQsIDB4MjUsIDB4ODIsIDB4ZjUsIAorMHg4MiwgMHhlNSwgMHhmMCwgMHgzNSwgMHg4MywgMHhmNSwgMHg4MywgMHgyMiwgMHhlNiwgMHhmYiwgMHgwOCwgMHhlNiwgMHhmYSwgMHgwOCwgMHhlNiwgMHhmOSwgCisweDIyLCAweGViLCAweGY2LCAweDA4LCAweGVhLCAweGY2LCAweDA4LCAweGU5LCAweGY2LCAweDIyLCAweGUwLCAweGZiLCAweGEzLCAweGUwLCAweGZhLCAweGEzLCAKKzB4ZTAsIDB4ZjksIDB4MjIsIDB4ZWIsIDB4ZjAsIDB4YTMsIDB4ZWEsIDB4ZjAsIDB4YTMsIDB4ZTksIDB4ZjAsIDB4MjIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIAorMHhmOCwgMHhlNCwgMHg5MywgMHg3MCwgMHgxMiwgMHg3NCwgMHgwMSwgMHg5MywgMHg3MCwgMHgwZCwgMHhhMywgMHhhMywgMHg5MywgMHhmOCwgMHg3NCwgMHgwMSwgCisweDkzLCAweGY1LCAweDgyLCAweDg4LCAweDgzLCAweGU0LCAweDczLCAweDc0LCAweDAyLCAweDkzLCAweDY4LCAweDYwLCAweGVmLCAweGEzLCAweGEzLCAweGEzLCAKKzB4ODAsIDB4ZGYsIDB4YWIsIDB4MzYsIDB4YWEsIDB4MzcsIDB4YTksIDB4MzgsIDB4ZTUsIDB4NGMsIDB4MTIsIDB4MWEsIDB4MzgsIDB4NzQsIDB4MDEsIDB4MjUsIAorMHgzOCwgMHhmNSwgMHgzOCwgMHhlNCwgMHgzNSwgMHgzNywgMHhmNSwgMHgzNywgMHhhYiwgMHgzNiwgMHhmYSwgMHhhOSwgMHgzOCwgMHg3NCwgMHgxMSwgMHgxMiwgCisweDFhLCAweDM4LCAweDc0LCAweDAxLCAweDI1LCAweDM4LCAweGY1LCAweDM4LCAweGU0LCAweDM1LCAweDM3LCAweGY1LCAweDM3LCAweDkwLCAweGZmLCAweDA2LCAKKzB4ZTAsIDB4YWIsIDB4MzYsIDB4YWEsIDB4MzcsIDB4YTksIDB4MzgsIDB4MTIsIDB4MWEsIDB4MzgsIDB4NzQsIDB4MDEsIDB4MjUsIDB4MzgsIDB4ZjUsIDB4MzgsIAorMHhlNCwgMHgzNSwgMHgzNywgMHhmNSwgMHgzNywgMHhhYiwgMHgzNiwgMHhmYSwgMHhhOSwgMHgzOCwgMHhlNCwgMHgxMiwgMHgxYSwgMHgzOCwgMHgwNCwgMHgyNSwgCisweDM4LCAweGY1LCAweDM4LCAweGU0LCAweDM1LCAweDM3LCAweGY1LCAweDM3LCAweGFiLCAweDM2LCAweGZhLCAweGE5LCAweDM4LCAweGU0LCAweDEyLCAweDFhLCAKKzB4MzgsIDB4MDQsIDB4MjUsIDB4MzgsIDB4ZjUsIDB4MzgsIDB4ZTQsIDB4MzUsIDB4MzcsIDB4ZjUsIDB4MzcsIDB4OTAsIDB4ZmYsIDB4MDQsIDB4ZTAsIDB4YWIsIAorMHgzNiwgMHhhYSwgMHgzNywgMHhhOSwgMHgzOCwgMHgxMiwgMHgxYSwgMHgzOCwgMHg3NCwgMHgwMSwgMHgyNSwgMHgzOCwgMHhmNSwgMHgzOCwgMHhlNCwgMHgzNSwgCisweDM3LCAweGY1LCAweDM3LCAweDkwLCAweGZmLCAweDA1LCAweGUwLCAweGFiLCAweDM2LCAweGFhLCAweDM3LCAweGE5LCAweDM4LCAweDEyLCAweDFhLCAweDM4LCAKKzB4NzQsIDB4MDEsIDB4MjUsIDB4MzgsIDB4ZjUsIDB4MzgsIDB4ZTQsIDB4MzUsIDB4MzcsIDB4ZjUsIDB4MzcsIDB4MjIsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIAorMHgwOCwgMHhhYiwgMHgzNiwgMHhhYSwgMHgzNywgMHhhOSwgMHgzOCwgMHgyMiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHhmZCwgMHg3YywgMHgwMCwgMHhjMywgCisweDc4LCAweDdiLCAweGU2LCAweDlkLCAweGY2LCAweDE4LCAweGU2LCAweDljLCAweGY2LCAweGU2LCAweGZlLCAweDA4LCAweGU2LCAweDc4LCAweDAzLCAweDIyLCAKKzB4NzUsIDB4MzYsIDB4MDEsIDB4NzUsIDB4MzcsIDB4ZjksIDB4NzUsIDB4MzgsIDB4NmYsIDB4MjIsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4NzQsIDB4MTIsIAorMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHhmOSwgMHhmNSwgMHg4MywgMHhlMCwgMHgyMiwgMHg5MCwgMHhmYSwgMHhiOSwgMHhlMCwgMHhmZiwgMHg3ZSwgCisweDAwLCAweGMzLCAweDkwLCAweGZhLCAweGJkLCAweGUwLCAweDlmLCAweGYwLCAweDkwLCAweGZhLCAweGJjLCAweGUwLCAweDllLCAweGYwLCAweDkwLCAweGZhLCAKKzB4YjQsIDB4ZWUsIDB4OGYsIDB4ZjAsIDB4MTIsIDB4MWEsIDB4NmMsIDB4ZWYsIDB4MjUsIDB4NGYsIDB4ZjUsIDB4NGYsIDB4ZWUsIDB4MzUsIDB4NGUsIDB4ZjUsIAorMHg0ZSwgMHgyMiwgMHg3YiwgMHgwMSwgMHg3YSwgMHhmYSwgMHg3OSwgMHhiMSwgMHg5MCwgMHhmYSwgMHhiNCwgMHhlMCwgMHhmNSwgMHgyZCwgMHhhMywgMHhlMCwgCisweGY1LCAweDJlLCAweDIyLCAweDc4LCAweDdjLCAweGU2LCAweGZlLCAweDA4LCAweGU2LCAweDhlLCAweDgzLCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAKKzB4MzUsIDB4ODMsIDB4ZjUsIDB4ODMsIDB4MjIsIDB4NTQsIDB4MGYsIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4NDAsIDB4ZjUsIDB4ODIsIDB4ZTQsIAorMHgzNCwgMHhmZiwgMHhmNSwgMHg4MywgMHgyMiwgMHhlNSwgMHg0ZCwgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHg0OCwgMHhmNSwgMHg4MiwgMHhlNCwgCisweDM0LCAweGZmLCAweDIyLCAweGU1LCAweDRkLCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDA4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweGZmLCAKKzB4MjIsIDB4OTAsIDB4ZmEsIDB4YjYsIDB4ZTAsIDB4ZmYsIDB4MjQsIDB4ZmMsIDB4MjIsIDB4OTAsIDB4ZmYsIDB4MDAsIDB4ZTAsIDB4NTQsIDB4MWYsIDB4MjIsIAorMHg5MCwgMHhmYSwgMHhiYiwgMHhlMCwgMHg5MCwgMHhmYSwgMHhiNywgMHhmMCwgMHgyMiwgMHg3NSwgMHgzMywgMHgwMCwgMHg4ZiwgMHgzNCwgMHg5MCwgMHhmOSwgCisweDZjLCAweDEyLCAweDFiLCAweDNhLCAweDkwLCAweDAwLCAweDAyLCAweDIyLCAweDU0LCAweDBmLCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAwLCAKKzB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZmYsIDB4ZjUsIDB4ODMsIDB4MjIsIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4NDEsIDB4ZjUsIDB4ODIsIAorMHhlNCwgMHgzNCwgMHhmZiwgMHhmNSwgMHg4MywgMHgyMiwgMHg3NCwgMHg4MCwgMHhmMCwgMHgwOCwgMHhlNiwgMHhmZiwgMHhlOSwgMHg3NSwgMHhmMCwgMHgwOCwgCisweGE0LCAweDIyLCAweDc0LCAweGFmLCAweDI1LCAweDIyLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweGZhLCAweGY1LCAweDgzLCAweDIyLCAweDc1LCAweGYwLCAKKzB4MDgsIDB4YTQsIDB4MjQsIDB4NDIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZmYsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4ODAsIDB4ZjAsIDB4MjIsIDB4OTAsIAorMHhmZiwgMHg4MiwgMHhlMCwgMHg0NCwgMHgwOCwgMHhmMCwgMHgyMiwgMHg5MCwgMHhmZiwgMHhmZSwgMHhlMCwgMHg0NCwgMHgwMywgMHhmMCwgMHg5MCwgMHhmZiwgCisweGZjLCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDIyLCAweDc4LCAweDY3LCAweGU2LCAweDU0LCAweGZkLCAweGY2LCAweDkwLCAweGZmLCAweGZkLCAweDc0LCAKKzB4NjUsIDB4ZjAsIDB4MjIsIDB4MTIsIDB4MWIsIDB4MWMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4NGUsIDB4MjIsIDB4N2IsIDB4MDEsIDB4N2EsIAorMHhmYSwgMHg3OSwgMHhiNCwgMHgyMiwgMHg5MCwgMHhmZiwgMHg4MCwgMHhlMCwgMHg0NCwgMHgwOCwgMHhmMCwgMHgyMiwgMHg5MCwgMHhmZiwgMHg4MywgMHhlMCwgCisweDU0LCAweDdmLCAweGYwLCAweDIyLCAweGUwLCAweGZmLCAweDkwLCAweGY5LCAweDY3LCAweDAyLCAweDFiLCAweDNhLCAweDkwLCAweGZmLCAweGE0LCAweGUwLCAKKzB4NDQsIDB4MDIsIDB4ZjAsIDB4MjIsIDB4NzUsIDB4MzksIDB4MDEsIDB4NzUsIDB4M2EsIDB4MDksIDB4MjIsIDB4N2IsIDB4MDEsIDB4N2EsIDB4ZjksIDB4NzksIAorMHg2ZiwgMHgyMiwgMHhkMywgMHhlNSwgMHgzYywgMHg5NCwgMHgwOCwgMHhlNSwgMHgzYiwgMHg5NCwgMHgwMSwgMHgyMiwgMHg5MCwgMHhmYSwgMHhiYiwgMHhlMCwgCisweGZmLCAweDkwLCAweGZhLCAweGI3LCAweGYwLCAweDIyLCAweDkwLCAweGZmLCAweGE0LCAweGUwLCAweDU0LCAweGVmLCAweDIyLCAweDkwLCAweGZmLCAweGI0LCAKKzB4ZTAsIDB4NTQsIDB4ZWYsIDB4MjIsIDB4MTIsIDB4MTAsIDB4MDMsIDB4NzgsIDB4ODgsIDB4ZWYsIDB4ZjYsIDB4MTIsIDB4MmEsIDB4MDYsIDB4MTIsIDB4MjIsIAorMHg0YSwgMHg4ZSwgMHg4MywgMHgyNCwgMHgwOSwgMHgxMiwgMHgyMSwgMHhmMywgMHhlMCwgMHhmZCwgMHgxMiwgMHgyMiwgMHgyZCwgMHg5MCwgMHgwMCwgMHgwYSwgCisweDEyLCAweDIyLCAweDUyLCAweDI0LCAweDBhLCAweDEyLCAweDIxLCAweGYzLCAweGUwLCAweDkwLCAweDAwLCAweDBiLCAweDEyLCAweDFhLCAweDRhLCAweDEyLCAKKzB4MjIsIDB4NGEsIDB4ZjUsIDB4ODIsIDB4OGUsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4NTMsIDB4MTIsIDB4MjIsIDB4NTYsIDB4MjQsIAorMHgwNCwgMHgxMiwgMHgyMSwgMHhmMywgMHhlMCwgMHhmNSwgMHg1NCwgMHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhhMywgMHhhMywgMHhlMCwgMHhmNSwgMHg1NSwgCisweGU1LCAweDUzLCAweGM0LCAweDEzLCAweDEzLCAweDEzLCAweDU0LCAweDAxLCAweDc4LCAweDg4LCAweGY2LCAweGQzLCAweDk0LCAweDAwLCAweDQwLCAweDA2LCAKKzB4ZTUsIDB4NTQsIDB4MzAsIDB4ZTEsIDB4MDEsIDB4MDYsIDB4NzgsIDB4ODgsIDB4ZTYsIDB4MTIsIDB4MjIsIDB4MmMsIDB4OTAsIDB4MDAsIDB4MGMsIDB4ZWYsIAorMHgxMiwgMHgxYSwgMHg0YSwgMHg3OCwgMHg4MCwgMHgxMiwgMHgyMiwgMHgwOSwgMHhhMywgMHhhMywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHhmZiwgMHg1MywgCisweDA3LCAweDBjLCAweDUzLCAweDA2LCAweGU2LCAweGU1LCAweDUzLCAweDMwLCAweGU1LCAweDAzLCAweDQzLCAweDA3LCAweDAxLCAweGU1LCAweDU0LCAweDIwLCAKKzB4ZTUsIDB4MGUsIDB4ZTUsIDB4NTMsIDB4NTQsIDB4N2YsIDB4NzAsIDB4MDgsIDB4ZTUsIDB4NTMsIDB4MjAsIDB4ZTcsIDB4MDMsIDB4NDMsIDB4MDcsIDB4MDIsIAorMHhlNSwgMHg1MywgMHgzMCwgMHhlMywgMHgwMywgMHg0MywgMHgwNywgMHgxMCwgMHhlNSwgMHg1MywgMHgzMCwgMHhlMiwgMHgwMywgMHg0MywgMHgwNywgMHgyMCwgCisweGU1LCAweDUzLCAweDU0LCAweDAzLCAweDYwLCAweDAzLCAweDQzLCAweDA3LCAweDQwLCAweGU1LCAweDUzLCAweDMwLCAweGUxLCAweDAzLCAweDQzLCAweDA3LCAKKzB4ODAsIDB4ZTUsIDB4NTMsIDB4MzAsIDB4ZTQsIDB4MDMsIDB4NDMsIDB4MDYsIDB4MDEsIDB4ZTUsIDB4NTMsIDB4MzAsIDB4ZTYsIDB4MDMsIDB4NDMsIDB4MDYsIAorMHgwOCwgMHhlNSwgMHg1NCwgMHgyMCwgMHhlNCwgMHgwZSwgMHhlNSwgMHg1MywgMHg1NCwgMHg3ZiwgMHg3MCwgMHgwOCwgMHhlNSwgMHg1MywgMHgyMCwgMHhlNywgCisweDAzLCAweDQzLCAweDA2LCAweDEwLCAweDUzLCAweDA3LCAweGZiLCAweDUzLCAweDA2LCAweDc5LCAweDkwLCAweDAwLCAweDA1LCAweGVlLCAweDhmLCAweGYwLCAKKzB4MTIsIDB4MWEsIDB4ZWYsIDB4ZTUsIDB4NTUsIDB4MzAsIDB4ZTMsIDB4MTIsIDB4NTQsIDB4MzAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4MTIsIDB4MjIsIAorMHgyYywgMHg5MCwgMHgwMCwgMHgwOCwgMHhlZiwgMHgxMiwgMHgxYSwgMHg0YSwgMHg4MCwgMHgwYSwgMHgxMiwgMHgyMiwgMHgyZCwgMHg5MCwgMHgwMCwgMHgwOCwgCisweGU0LCAweDEyLCAweDFhLCAweDRhLCAweGU1LCAweDU1LCAweDU0LCAweDAzLCAweDEyLCAweDIyLCAweDJjLCAweDkwLCAweDAwLCAweDA3LCAweGVmLCAweDEyLCAKKzB4MWEsIDB4NGEsIDB4ZTUsIDB4NTUsIDB4NTQsIDB4MDQsIDB4ZmYsIDB4YzMsIDB4MTMsIDB4OTAsIDB4MDAsIDB4MDksIDB4MTIsIDB4MWEsIDB4NGEsIDB4OTAsIAorMHgwMCwgMHgwNywgMHgxMiwgMHgxYSwgMHgwYiwgMHg3MCwgMHgxMywgMHgxMiwgMHgyMiwgMHgyZCwgMHhlOSwgMHgyNCwgMHgwOSwgMHhmOSwgMHhlNCwgMHgzYSwgCisweGZhLCAweDEyLCAweDE5LCAweGYyLCAweGZmLCAweGMzLCAweDEzLCAweDEyLCAweDFhLCAweDM4LCAweDEyLCAweDIyLCAweDc4LCAweDI0LCAweDA4LCAweDEyLCAKKzB4MjEsIDB4ZjMsIDB4ZTAsIDB4ZmUsIDB4OGQsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZTUsIDB4ODIsIDB4MjQsIDB4MDcsIDB4MTIsIDB4MjEsIDB4ZjMsIDB4ZTAsIAorMHhmZCwgMHhlZSwgMHhlZCwgMHgxMiwgMHgyMiwgMHgyYywgMHg5MCwgMHgwMCwgMHgwMywgMHhlZSwgMHg4ZiwgMHhmMCwgMHgxMiwgMHgxYSwgMHhlZiwgMHgxMiwgCisweDMxLCAweGM3LCAweDdkLCAweDBhLCAweGU0LCAweGZmLCAweDEyLCAweDJmLCAweDE4LCAweDAyLCAweDEwLCAweDg2LCAweDkwLCAweGZhLCAweGUzLCAweGUwLCAKKzB4YjQsIDB4MDMsIDB4MDYsIDB4N2UsIDB4MDAsIDB4N2YsIDB4NDAsIDB4ODAsIDB4MDQsIDB4N2UsIDB4MDAsIDB4N2YsIDB4MDgsIDB4OTAsIDB4ZmEsIDB4ZDcsIAorMHhlZSwgMHhmMCwgMHhhMywgMHhlZiwgMHhmMCwgMHg5MCwgMHgwMCwgMHgwNSwgMHgxMiwgMHgxYSwgMHgwYiwgMHhmZiwgMHg3ZSwgMHgwMCwgMHg5MCwgMHhmYSwgCisweGQzLCAweGVlLCAweGYwLCAweGEzLCAweGVmLCAweGYwLCAweDcwLCAweDAzLCAweDdmLCAweDA4LCAweDIyLCAweDkwLCAweDAwLCAweDA4LCAweDEyLCAweDFhLCAKKzB4OTgsIDB4ZmYsIDB4OTAsIDB4ZmEsIDB4ZDUsIDB4ZTUsIDB4ZjAsIDB4ZjAsIDB4YTMsIDB4ZWYsIDB4ZjAsIDB4YWUsIDB4MDIsIDB4YWYsIDB4MDEsIDB4OGUsIAorMHg1MCwgMHg4ZiwgMHg1MSwgMHg3NCwgMHgwYSwgMHgyNSwgMHg1MSwgMHhmNSwgMHg1MSwgMHhlNCwgMHgzNSwgMHg1MCwgMHhmNSwgMHg1MCwgMHg5MCwgMHhmYSwgCisweGQ4LCAweGUwLCAweGZmLCAweDE0LCAweGZlLCAweDkwLCAweGZhLCAweGQ2LCAweGUwLCAweDVlLCAweGZlLCAweGMzLCAweGVmLCAweDllLCAweGZmLCAweDkwLCAKKzB4ZmEsIDB4ZGEsIDB4ZjAsIDB4YzMsIDB4OTAsIDB4ZmEsIDB4ZDQsIDB4ZTAsIDB4OWYsIDB4OTAsIDB4ZmEsIDB4ZDMsIDB4ZTAsIDB4OTQsIDB4MDAsIDB4NTAsIAorMHgwNiwgMHhhMywgMHhlMCwgMHg5MCwgMHhmYSwgMHhkYSwgMHhmMCwgMHgxMiwgMHgxZiwgMHhmYiwgMHg2MCwgMHgwMywgMHhlMCwgMHhmZiwgMHgyMiwgMHgxMiwgCisweDJkLCAweDVhLCAweDkwLCAweGZhLCAweGQzLCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweGZmLCAweDRlLCAweDYwLCAweDJiLCAweDkwLCAweGZhLCAweGQ3LCAKKzB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4ZDMsIDB4ZWYsIDB4OWQsIDB4ZWUsIDB4OWMsIDB4NDAsIDB4MDcsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4ZGEsIAorMHhmMCwgMHg4MCwgMHgwOCwgMHg5MCwgMHhmYSwgMHhkNCwgMHhlMCwgMHg5MCwgMHhmYSwgMHhkYSwgMHhmMCwgMHgxMiwgMHgxZiwgMHhmYiwgMHg2MCwgMHgwMywgCisweGUwLCAweGZmLCAweDIyLCAweDEyLCAweDJkLCAweDVhLCAweDgwLCAweGNhLCAweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDUyLCAweGU0LCAweGY1LCAKKzB4MmQsIDB4ZjUsIDB4MmUsIDB4N2QsIDB4MDEsIDB4MTIsIDB4MjUsIDB4ZDcsIDB4N2YsIDB4MDAsIDB4MjIsIDB4YWEsIDB4NTAsIDB4YTksIDB4NTEsIDB4N2IsIAorMHgwMSwgMHg5MCwgMHhmYSwgMHhkNSwgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmZCwgMHg5MCwgMHhmYSwgMHhkYSwgMHhlMCwgMHhmNSwgMHg0YSwgMHgxMiwgCisweDI4LCAweDlmLCAweDkwLCAweGZhLCAweGQ5LCAweGVmLCAweGYwLCAweDIyLCAweGVmLCAweDI0LCAweGFlLCAweDYwLCAweDUyLCAweDI0LCAweGZlLCAweDYwLCAKKzB4MmUsIDB4MjQsIDB4ZmUsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MjAsIDB4YmIsIDB4MjQsIDB4MDYsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MjEsIDB4MDMsIDB4NzgsIAorMHg3MSwgMHhlNiwgMHg1NCwgMHhmYiwgMHhmNiwgMHg5MCwgMHhmZiwgMHhhNSwgMHhlMCwgMHhmNSwgMHgyMiwgMHg0NCwgMHgwZiwgMHhmMCwgMHg3NCwgMHgzMywgCisweDkwLCAweGZhLCAweDkxLCAweGYwLCAweGU1LCAweDIyLCAweGEzLCAweGYwLCAweDkwLCAweGZhLCAweGFmLCAweDc0LCAweDAxLCAweGYwLCAweDIyLCAweDc4LCAKKzB4NzIsIDB4ZTYsIDB4NTQsIDB4ZmIsIDB4ZjYsIDB4OTAsIDB4ZmYsIDB4YjUsIDB4ZTAsIDB4ZjUsIDB4MjIsIDB4NDQsIDB4MGYsIDB4ZjAsIDB4NzQsIDB4NDMsIAorMHg5MCwgMHhmYSwgMHg5MywgMHhmMCwgMHhlNSwgMHgyMiwgMHhhMywgMHhmMCwgMHg5MCwgMHhmYSwgMHhiMCwgMHg3NCwgMHgwMSwgMHhmMCwgMHgyMiwgMHg5MCwgCisweGZhLCAweDlkLCAweGUwLCAweGEzLCAweDIwLCAweGU1LCAweDAzLCAweDAyLCAweDIxLCAweDAzLCAweDkwLCAweGZmLCAweGE2LCAweGUwLCAweDkwLCAweGZhLCAKKzB4Y2EsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4Y2EsIDB4ZTAsIDB4ZmYsIDB4NTQsIDB4MGYsIDB4ZmUsIDB4NjAsIDB4MTAsIDB4OTAsIDB4ZmYsIAorMHhhNiwgMHgxMiwgMHgyMiwgMHg1ZCwgMHg5MCwgMHhmZiwgMHhhNiwgMHhlMCwgMHg5MCwgMHhmYSwgMHhjYSwgMHhmMCwgMHg4MCwgMHhlNiwgMHg5MCwgMHhmYSwgCisweGNiLCAweGUwLCAweGZmLCAweDc0LCAweDM0LCAweGZlLCAweDEyLCAweDJjLCAweGI0LCAweGVmLCAweDcwLCAweDU3LCAweDkwLCAweGZhLCAweGNiLCAweGUwLCAKKzB4ZmYsIDB4NzQsIDB4MzQsIDB4OTAsIDB4ZmEsIDB4OTUsIDB4ZjAsIDB4ZWYsIDB4YTMsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4ZmEsIDB4YTcsIDB4ZTAsIDB4YTMsIAorMHgzMCwgMHhlNSwgMHg0MCwgMHg5MCwgMHhmZiwgMHhiNiwgMHhlMCwgMHg5MCwgMHhmYSwgMHhjYSwgMHhmMCwgMHhhMywgMHhmMCwgMHg5MCwgMHhmYSwgMHhjYSwgCisweGUwLCAweGZmLCAweDU0LCAweDBmLCAweGZlLCAweDYwLCAweDEwLCAweDkwLCAweGZmLCAweGI2LCAweDEyLCAweDIyLCAweDVkLCAweDkwLCAweGZmLCAweGI2LCAKKzB4ZTAsIDB4OTAsIDB4ZmEsIDB4Y2EsIDB4ZjAsIDB4ODAsIDB4ZTYsIDB4OTAsIDB4ZmEsIDB4Y2IsIDB4ZTAsIDB4ZmYsIDB4NzQsIDB4NDQsIDB4ZmUsIDB4MTIsIAorMHgyYywgMHhiNCwgMHhlZiwgMHg3MCwgMHgwZSwgMHg5MCwgMHhmYSwgMHhjYiwgMHhlMCwgMHhmZiwgMHg3NCwgMHg0NCwgMHg5MCwgMHhmYSwgMHg5NywgMHhmMCwgCisweGVmLCAweGEzLCAweGYwLCAweDIyLCAweGMwLCAweGUwLCAweGMwLCAweGYwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweGQwLCAweDc1LCAweGQwLCAKKzB4MDAsIDB4YzAsIDB4MDAsIDB4YzAsIDB4MDEsIDB4YzAsIDB4MDIsIDB4YzAsIDB4MDMsIDB4YzAsIDB4MDQsIDB4YzAsIDB4MDUsIDB4YzAsIDB4MDYsIDB4YzAsIAorMHgwNywgMHg5MCwgMHhmZiwgMHg5MiwgMHhlMCwgMHhmZiwgMHg5MCwgMHhmYSwgMHhjOSwgMHhmMCwgMHg5MCwgMHhmZiwgMHg5MiwgMHhlNCwgMHhmMCwgMHhlZiwgCisweDEyLCAweDFiLCAweDRjLCAweDIxLCAweGJiLCAweDI2LCAweDIxLCAweGJiLCAweDJlLCAweDIxLCAweDVlLCAweDMwLCAweDIxLCAweDVlLCAweDMyLCAweDIxLCAKKzB4NmMsIDB4MzgsIDB4MjEsIDB4N2UsIDB4M2EsIDB4MjEsIDB4YjAsIDB4M2UsIDB4MjEsIDB4OWIsIDB4NDQsIDB4MjEsIDB4OTAsIDB4NDYsIDB4MjEsIDB4YTYsIAorMHg1MCwgMHgyMSwgMHhhNiwgMHg1MiwgMHgyMSwgMHhhNiwgMHg1NCwgMHgyMSwgMHhhNiwgMHg1NiwgMHgwMCwgMHgwMCwgMHgyMSwgMHhjMCwgMHg5MCwgMHhmYSwgCisweGM5LCAweGUwLCAweGZkLCAweDdjLCAweDAwLCAweDdmLCAweDAxLCAweDEyLCAweDExLCAweDE2LCAweDgwLCAweDYyLCAweDdjLCAweDAwLCAweDdkLCAweDAxLCAKKzB4N2YsIDB4MDMsIDB4MTIsIDB4MTEsIDB4MTYsIDB4OTAsIDB4ZmYsIDB4ZmUsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4ODAsIDB4NTAsIDB4N2MsIDB4MDAsIAorMHg3ZCwgMHgwMSwgMHg3ZiwgMHgwMiwgMHgxMiwgMHgxMSwgMHgxNiwgMHg5MCwgMHhmZiwgMHhmZSwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg4MCwgMHgzZSwgCisweDdjLCAweDAwLCAweDdkLCAweDAxLCAweDdmLCAweDA1LCAweDEyLCAweDExLCAweDE2LCAweDgwLCAweDMzLCAweDdjLCAweDAwLCAweDdkLCAweDAxLCAweDdmLCAKKzB4MDYsIDB4MTIsIDB4MTEsIDB4MTYsIDB4ODAsIDB4MjgsIDB4OTAsIDB4ZmEsIDB4YzksIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MjAsIDB4MTgsIDB4ODAsIDB4MWUsIAorMHg3YywgMHgwMCwgMHg3ZCwgMHgwMSwgMHg3ZiwgMHgwNCwgMHgxMiwgMHgxMSwgMHgxNiwgMHg4MCwgMHgxMywgMHgxMiwgMHgyNywgMHg4ZCwgMHg4MCwgMHgwZSwgCisweDkwLCAweGZhLCAweGM5LCAweGUwLCAweDI0LCAweDAwLCAweGZmLCAweGU0LCAweDM0LCAweGZmLCAweGZlLCAweDEyLCAweDJjLCAweGI0LCAweGQwLCAweDA3LCAKKzB4ZDAsIDB4MDYsIDB4ZDAsIDB4MDUsIDB4ZDAsIDB4MDQsIDB4ZDAsIDB4MDMsIDB4ZDAsIDB4MDIsIDB4ZDAsIDB4MDEsIDB4ZDAsIDB4MDAsIDB4ZDAsIDB4ZDAsIAorMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhmMCwgMHhkMCwgMHhlMCwgMHgzMiwgMHg3OCwgMHg3YywgMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwgMHgyNCwgCisweDA0LCAweDhlLCAweDgzLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDgzLCAweGY1LCAweDgzLCAweDIyLCAweDc0LCAweDEyLCAweDI1LCAweDI0LCAweGY1LCAKKzB4ODIsIDB4ZTQsIDB4MzQsIDB4ZjksIDB4ZjUsIDB4ODMsIDB4MjIsIDB4NzgsIDB4N2MsIDB4ZTYsIDB4ZmUsIDB4MDgsIDB4ZTYsIDB4ZjUsIDB4ODIsIDB4OGUsIAorMHg4MywgMHgyMiwgMHg3OCwgMHg4MCwgMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwgMHhhYSwgMHgwNiwgMHhmOCwgMHhhYywgMHgwMiwgMHg3ZCwgMHgwMSwgMHg3YiwgCisweGZmLCAweDdhLCAweDMxLCAweDc5LCAweDk5LCAweDdlLCAweDAwLCAweDdmLCAweDBhLCAweDAyLCAweDE5LCAweGNjLCAweGZmLCAweDkwLCAweGY5LCAweDZjLCAKKzB4MDIsIDB4MWIsIDB4M2EsIDB4OTAsIDB4ZjksIDB4NjcsIDB4MTIsIDB4MWIsIDB4M2EsIDB4OTAsIDB4MDAsIDB4MDQsIDB4MDIsIDB4MWEsIDB4MGIsIDB4ZTYsIAorMHhmYywgMHgwOCwgMHhlNiwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhhMywgMHhhMywgMHgyMiwgMHg3OCwgMHg3ZSwgMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwgCisweGZmLCAweDIyLCAweGVkLCAweDEyLCAweDFhLCAweDRhLCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGU1LCAweDgyLCAweDIyLCAweGVmLCAweGYwLCAweDkwLCAKKzB4ZmEsIDB4Y2IsIDB4ZTAsIDB4NTQsIDB4MGYsIDB4NGUsIDB4ZmUsIDB4ZjAsIDB4ZWYsIDB4NTQsIDB4ZjAsIDB4NGUsIDB4ZjAsIDB4MjIsIDB4MDgsIDB4ZTYsIAorMHhmYywgMHgwOCwgMHhlNiwgMHg4YywgMHg4MywgMHgyNCwgMHgwOSwgMHgyMiwgMHg3OCwgMHg3ZSwgMHhlNiwgMHhmYywgMHgwOCwgMHhlNiwgMHhmZCwgMHg4YywgCisweDgzLCAweDIyLCAweGE2LCAweDA3LCAweGU2LCAweDI0LCAweDZlLCAweGY4LCAweGU2LCAweDIyLCAweDc4LCAweDdlLCAweGU2LCAweGZhLCAweDA4LCAweGU2LCAKKzB4ZmIsIDB4MjIsIDB4MjYsIDB4ZjYsIDB4MTgsIDB4ZWUsIDB4MzYsIDB4ZjYsIDB4MjIsIDB4OGIsIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTUsIDB4ODIsIDB4MjIsIAorMHg4YiwgMHgyNSwgMHg4YSwgMHgyNiwgMHg4OSwgMHgyNywgMHg4ZCwgMHgyOCwgMHg5MCwgMHhmYSwgMHhjZiwgMHhlNCwgMHhmMCwgMHhhMywgMHg3NCwgMHgwMiwgCisweGYwLCAweDdiLCAweDAxLCAweDdhLCAweGZhLCAweDc5LCAweGNlLCAweDkwLCAweGZhLCAweGNmLCAweGUwLCAweGY1LCAweDJkLCAweGEzLCAweGUwLCAweGY1LCAKKzB4MmUsIDB4N2QsIDB4MDEsIDB4MTIsIDB4MjUsIDB4ZDcsIDB4OTAsIDB4ZmEsIDB4Y2UsIDB4ZTAsIDB4NjUsIDB4MjgsIDB4NjAsIDB4NDYsIDB4YTMsIDB4ZTAsIAorMHhmZiwgMHhhMywgMHhlMCwgMHhhMywgMHhjZiwgMHhmMCwgMHhhMywgMHhlZiwgMHhmMCwgMHgxMiwgMHgyMywgMHgyZiwgMHg5MCwgMHhmYSwgMHhjZSwgMHhlMCwgCisweGZmLCAweDkwLCAweGZhLCAweGQxLCAweGU0LCAweDhmLCAweGYwLCAweDEyLCAweDFhLCAweDZjLCAweDEyLCAweDIzLCAweDJmLCAweDkwLCAweGZhLCAweGQxLCAKKzB4ZTAsIDB4ZmYsIDB4YTMsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4Y2YsIDB4Y2YsIDB4ZjAsIDB4YTMsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4Y2UsIDB4ZTAsIAorMHhhMywgMHg3NSwgMHhmMCwgMHgwMCwgMHgxMiwgMHgxYSwgMHg2YywgMHg5MCwgMHhmYSwgMHhjZiwgMHhlNCwgMHg3NSwgMHhmMCwgMHgwNCwgMHgxMiwgMHgxYSwgCisweDZjLCAweDAyLCAweDIyLCAweGIxLCAweDkwLCAweGZhLCAweGQwLCAweGUwLCAweDI0LCAweDAxLCAweGZmLCAweDkwLCAweGZhLCAweGNmLCAweGUwLCAweDM0LCAKKzB4MDAsIDB4YWIsIDB4MjUsIDB4YWEsIDB4MjYsIDB4YTksIDB4MjcsIDB4OGYsIDB4ZjAsIDB4MTIsIDB4MWEsIDB4ZDAsIDB4N2YsIDB4MDAsIDB4MjIsIDB4N2IsIAorMHgwMSwgMHg3YSwgMHhmYSwgMHg3OSwgMHhjZSwgMHg5MCwgMHhmYSwgMHhjZiwgMHhlNCwgMHg3NSwgMHhmMCwgMHgwMSwgMHgxMiwgMHgxYSwgMHg2YywgMHg4NSwgCisweGYwLCAweDJlLCAweGY1LCAweDJkLCAweDdkLCAweDAxLCAweDAyLCAweDI1LCAweGQ3LCAweDhmLCAweDYyLCAweDEyLCAweDJhLCAweDA2LCAweDEyLCAweDIyLCAKKzB4NGEsIDB4OGUsIDB4ODMsIDB4MjQsIDB4MGIsIDB4MTIsIDB4MjEsIDB4ZjMsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MDgsIAorMHgxMiwgMHgyMiwgMHgzZiwgMHhlMCwgMHhhMywgMHgzMCwgMHhlNSwgMHgwYywgMHgxMiwgMHgyMiwgMHg1NiwgMHgyNCwgMHgwYiwgMHgxMiwgMHgyMSwgMHhmMywgCisweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDc4LCAweDdjLCAweGU2LCAweGZlLCAweDA4LCAweGU2LCAweGZmLCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGUwLCAKKzB4NTQsIDB4YjgsIDB4ZmQsIDB4ZjAsIDB4ZTUsIDB4NjIsIDB4MjQsIDB4ZmUsIDB4NDQsIDB4MjAsIDB4ZmMsIDB4NGQsIDB4ZjAsIDB4ZTUsIDB4ODIsIDB4MjQsIAorMHgwNCwgMHgxMiwgMHgyMSwgMHhmMywgMHhlMCwgMHg1NCwgMHhiOCwgMHhmMCwgMHg0YywgMHhmMCwgMHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhhMywgMHg3NCwgCisweDAzLCAweGYwLCAweDE4LCAweGU2LCAweGZlLCAweDA4LCAweGU2LCAweGZmLCAweDhlLCAweDgzLCAweDI0LCAweDA1LCAweDEyLCAweDIxLCAweGYzLCAweGMwLCAKKzB4ODMsIDB4YzAsIDB4ODIsIDB4ZTAsIDB4ZmQsIDB4NzQsIDB4OTYsIDB4MjUsIDB4NjIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZmEsIDB4ZjUsIDB4ODMsIAorMHhlMCwgMHg1NCwgMHhmYywgMHg0NCwgMHgwMywgMHhmYywgMHhlZCwgMHg0YywgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhmMCwgMHg4ZiwgMHg4MiwgMHg4ZSwgCisweDgzLCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGU1LCAweDgyLCAweDI0LCAweDA0LCAweDEyLCAweDIxLCAweGYzLCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAKKzB4MTIsIDB4MzEsIDB4YzcsIDB4NzQsIDB4NmUsIDB4MjUsIDB4NjIsIDB4ZjgsIDB4NzQsIDB4MDQsIDB4NDYsIDB4ZjYsIDB4N2YsIDB4MDAsIDB4MjIsIDB4MTIsIAorMHgxMCwgMHgwMywgMHg3ZiwgMHgwMiwgMHgxMiwgMHgxMiwgMHgxOSwgMHg3OCwgMHg2NywgMHhlNiwgMHg0NCwgMHgwMiwgMHhmNiwgMHhkMiwgMHhiMCwgMHhkMiwgCisweGIxLCAweDkwLCAweGY5LCAweDE1LCAweGUwLCAweDMwLCAweGU3LCAweDA3LCAweDkwLCAweGZmLCAweDllLCAweGU0LCAweGYwLCAweDgwLCAweDM2LCAweGQyLCAKKzB4YjMsIDB4OTAsIDB4ZmYsIDB4YTQsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4N2IsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4N2MsIAorMHhmMCwgMHg5MCwgMHhmZiwgMHhhMiwgMHhlMCwgMHg5MCwgMHhmYSwgMHg3OSwgMHhmMCwgMHg5MCwgMHhmZiwgMHhiMiwgMHhlMCwgMHg5MCwgMHhmYSwgMHg3YSwgCisweGYwLCAweDkwLCAweGZmLCAweGE0LCAweDc0LCAweDMwLCAweGYwLCAweDkwLCAweGZmLCAweGI0LCAweGYwLCAweDkwLCAweGZmLCAweGEyLCAweDc0LCAweDQwLCAKKzB4ZjAsIDB4OTAsIDB4ZmYsIDB4YjIsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4ZTQsIDB4ZTUsIDB4YTgsIDB4ZjAsIDB4NzUsIDB4YTgsIDB4ODEsIDB4OTAsIDB4ZmYsIAorMHg5MiwgMHhlMCwgMHg2MCwgMHgwNCwgMHhlNCwgMHhmMCwgMHg4MCwgMHhmNiwgMHg5MCwgMHhmZiwgMHhmZCwgMHg3NCwgMHgzYSwgMHhmMCwgMHg0MywgMHg4NywgCisweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDkwLCAweGZhLCAweDdiLCAweGUwLCAweDkwLCAweGZmLCAweGE0LCAweGYwLCAweDkwLCAweGZhLCAweDdjLCAweGUwLCAKKzB4OTAsIDB4ZmYsIDB4YjQsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4NzksIDB4ZTAsIDB4OTAsIDB4ZmYsIDB4YTIsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4N2EsIDB4ZTAsIAorMHg5MCwgMHhmZiwgMHhiMiwgMHhmMCwgMHg5MCwgMHhmOSwgMHgxNywgMHhlMCwgMHg2MCwgMHgwMiwgMHhjMiwgMHhiMywgMHg5MCwgMHhmYSwgMHhlNCwgMHhlMCwgCisweGY1LCAweGE4LCAweDAyLCAweDEwLCAweDg2LCAweDhiLCAweDVjLCAweDhhLCAweDVkLCAweDg5LCAweDVlLCAweDEyLCAweDJkLCAweDNjLCAweDkwLCAweGZhLCAKKzB4YzAsIDB4MTIsIDB4MWIsIDB4NDMsIDB4YWEsIDB4NWQsIDB4YTksIDB4NWUsIDB4OTAsIDB4ZmEsIDB4YzMsIDB4MTIsIDB4MWIsIDB4NDMsIDB4OTAsIDB4ZmEsIAorMHhjNCwgMHhlNCwgMHg3NSwgMHhmMCwgMHgwYSwgMHgxMiwgMHgxYSwgMHg2YywgMHg5MCwgMHhmYSwgMHhjMywgMHgxMiwgMHgxYiwgMHgzYSwgMHhlOSwgMHgyNCwgCisweDAxLCAweGY5LCAweGU0LCAweDNhLCAweGZhLCAweDkwLCAweGZhLCAweGM2LCAweDEyLCAweDFiLCAweDQzLCAweGFiLCAweDVjLCAweGFhLCAweDVkLCAweGE5LCAKKzB4NWUsIDB4MTIsIDB4MmQsIDB4NDgsIDB4ZTAsIDB4ZmYsIDB4YzMsIDB4MTMsIDB4ZjAsIDB4ZTQsIDB4NzgsIDB4ODIsIDB4ZjYsIDB4OTAsIDB4ZmEsIDB4YmUsIAorMHhlMCwgMHhmZiwgMHg3OCwgMHg4MiwgMHhlNiwgMHhjMywgMHg5ZiwgMHg1MCwgMHg0YSwgMHg5MCwgMHhmYSwgMHhjMCwgMHgxMiwgMHgyZCwgMHgxZCwgMHhmZiwgCisweDc4LCAweDgzLCAweGY2LCAweDkwLCAweGZhLCAweGMzLCAweDEyLCAweDJkLCAweDFkLCAweGZlLCAweGY0LCAweDVmLCAweGZmLCAweDc4LCAweDgzLCAweGY2LCAKKzB4MTIsIDB4MmQsIDB4MWEsIDB4NWUsIDB4NGYsIDB4ZmYsIDB4NzgsIDB4ODMsIDB4ZjYsIDB4MTIsIDB4MmQsIDB4MjMsIDB4NzUsIDB4ZjAsIDB4MDIsIDB4MTIsIAorMHgxYSwgMHg2YywgMHg5MCwgMHhmYSwgMHhjNCwgMHhlNCwgMHg3NSwgMHhmMCwgMHgwMiwgMHgxMiwgMHgxYSwgMHg2YywgMHhhYiwgMHg1YywgMHhhYSwgMHg1ZCwgCisweGE5LCAweDVlLCAweDkwLCAweDAwLCAweDA0LCAweDEyLCAweDFhLCAweDBiLCAweDMwLCAweGU0LCAweDAzLCAweDEyLCAweDJkLCAweDMyLCAweDc4LCAweDgyLCAKKzB4MDYsIDB4ODAsIDB4YWEsIDB4ZTQsIDB4OTAsIDB4ZmEsIDB4YmYsIDB4ZjAsIDB4MjIsIDB4OGIsIDB4NTYsIDB4OGEsIDB4NTcsIDB4ODksIDB4NTgsIDB4OTAsIAorMHhmYSwgMHhiZiwgMHg3NCwgMHgwNiwgMHhmMCwgMHhlNCwgMHg5MCwgMHhmYSwgMHhiZSwgMHhmMCwgMHgxMiwgMHgxOSwgMHhmMiwgMHgyNCwgMHg2ZSwgMHg2MCwgCisweDI2LCAweDE0LCAweDcwLCAweDcwLCAweDEyLCAweDJkLCAweDA5LCAweDYwLCAweDA5LCAweDI0LCAweDMwLCAweDcwLCAweDEyLCAweDEyLCAweDI0LCAweDk1LCAKKzB4ODAsIDB4NjIsIDB4MTIsIDB4MmQsIDB4NTMsIDB4MTIsIDB4MWYsIDB4MmMsIDB4OTAsIDB4ZmEsIDB4YmYsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4NTUsIDB4OTAsIAorMHhmYSwgMHhiZiwgMHg3NCwgMHg4MSwgMHhmMCwgMHg4MCwgMHg0ZCwgMHgxMiwgMHgyZCwgMHgwOSwgMHg2MCwgMHgwOSwgMHgyNCwgMHgzMCwgMHg3MCwgMHgzZSwgCisweDEyLCAweDJjLCAweDVmLCAweDgwLCAweDNmLCAweGU1LCAweDU4LCAweDI0LCAweDAzLCAweGY5LCAweGU0LCAweDM1LCAweDU3LCAweGZhLCAweDdiLCAweDAxLCAKKzB4YzAsIDB4MDMsIDB4YzAsIDB4MDIsIDB4YzAsIDB4MDEsIDB4MTIsIDB4MmQsIDB4NTMsIDB4OTAsIDB4MDAsIDB4MDUsIDB4MTIsIDB4MWEsIDB4MGIsIDB4ZmQsIAorMHg5MCwgMHgwMCwgMHgwOCwgMHgxMiwgMHgxYSwgMHg5OCwgMHhmNSwgMHgyZSwgMHg4NSwgMHhmMCwgMHgyZCwgMHhkMCwgMHgwMSwgMHhkMCwgMHgwMiwgMHhkMCwgCisweDAzLCAweDEyLCAweDI1LCAweGQ3LCAweDkwLCAweGZhLCAweGJlLCAweGVmLCAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDgwLCAweDA2LCAweDkwLCAweGZhLCAKKzB4YmYsIDB4NzQsIDB4ODEsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4YmYsIDB4ZTAsIDB4MTIsIDB4MmQsIDB4NTMsIDB4OTAsIDB4MDAsIDB4MDIsIDB4MTIsIDB4MWEsIAorMHg0YSwgMHg5MCwgMHhmYSwgMHhiZSwgMHhlMCwgMHhmZiwgMHgyMiwgMHg4YiwgMHgyOSwgMHg4YSwgMHgyYSwgMHg4OSwgMHgyYiwgMHg4ZCwgMHgyYywgMHhlNSwgCisweDJjLCAweDcwLCAweDAzLCAweGFmLCAweDJjLCAweDIyLCAweDEyLCAweDJkLCAweDgyLCAweDcwLCAweDE2LCAweDEyLCAweDJkLCAweGExLCAweGU1LCAweDJkLCAKKzB4OTAsIDB4ZmYsIDB4ZjEsIDB4ZjAsIDB4MTIsIDB4MzEsIDB4MWIsIDB4NTAsIDB4ZjIsIDB4MTIsIDB4MjYsIDB4NjQsIDB4NDAsIDB4MGIsIDB4N2YsIDB4MDAsIAorMHgyMiwgMHgxMiwgMHgyZCwgMHhhMSwgMHgxMiwgMHgyNiwgMHg2NCwgMHg1MCwgMHhmOCwgMHg5MCwgMHhmZiwgMHhmMywgMHg3NCwgMHhhMSwgMHhmMCwgMHhlNSwgCisweDJjLCAweGI0LCAweDAxLCAweDA3LCAweDkwLCAweGZmLCAweGYwLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDkwLCAweGZmLCAweGYxLCAweGU0LCAweGYwLCAKKzB4ZjUsIDB4MmYsIDB4ZTUsIDB4MmMsIDB4MTQsIDB4ZmYsIDB4ZTUsIDB4MmYsIDB4YzMsIDB4OWYsIDB4NTAsIDB4MmEsIDB4MTIsIDB4MzEsIDB4MDQsIDB4NDAsIAorMHgwMywgMHhhZiwgMHgyZiwgMHgyMiwgMHhjMywgMHhlNSwgMHgyYywgMHg5NSwgMHgyZiwgMHhmZiwgMHhiZiwgMHgwMiwgMHgwNywgMHg5MCwgMHhmZiwgMHhmMCwgCisweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDEyLCAweDJkLCAweDk0LCAweDA1LCAweDJmLCAweDc0LCAweDAxLCAweDI1LCAweDJiLCAweGY1LCAweDJiLCAweGU0LCAKKzB4MzUsIDB4MmEsIDB4ZjUsIDB4MmEsIDB4ODAsIDB4Y2MsIDB4MTIsIDB4MzEsIDB4MDQsIDB4NDAsIDB4MDMsIDB4N2YsIDB4MTgsIDB4MjIsIDB4MTIsIDB4MmQsIAorMHg5NCwgMHhhZiwgMHgyYywgMHgyMiwgMHg5MCwgMHhmZiwgMHhmMSwgMHhlNSwgMHgyZSwgMHhmMCwgMHgwMiwgMHgzMSwgMHgxYiwgMHgxMiwgMHgxMCwgMHgwMywgCisweDc4LCAweDg0LCAweDEyLCAweDIyLCAweDgyLCAweDMwLCAweGUxLCAweDA4LCAweDdmLCAweDEzLCAweDEyLCAweDMwLCAweGVjLCAweDAyLCAweDI2LCAweGZiLCAKKzB4NzgsIDB4ODQsIDB4ZTYsIDB4ZjksIDB4MjQsIDB4MTIsIDB4MTIsIDB4MjEsIDB4ZmYsIDB4ZTAsIDB4ZmYsIDB4MzAsIDB4ZTcsIDB4NDAsIDB4NTQsIDB4MDMsIAorMHg2MCwgMHgxZSwgMHhlOSwgMHhiNCwgMHgwMywgMHgwZCwgMHg5MCwgMHhmZiwgMHg5ZSwgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHhlMCwgMHg0NCwgMHgwNCwgCisweGYwLCAweDgwLCAweDQ2LCAweDkwLCAweGZmLCAweDllLCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDgwLCAweDM5LCAKKzB4ZTksIDB4YjQsIDB4MDMsIDB4MGQsIDB4OTAsIDB4ZmYsIDB4OWUsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIAorMHgyOCwgMHg5MCwgMHhmZiwgMHg5ZSwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg4MCwgMHgxYiwgMHhlZiwgMHg1NCwgCisweDAzLCAweDYwLCAweDE0LCAweGU5LCAweGI0LCAweDAzLCAweDA5LCAweDkwLCAweGZmLCAweGE0LCAweGUwLCAweDU0LCAweGRmLCAweGYwLCAweDgwLCAweDA3LCAKKzB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsIDB4NTQsIDB4ZGYsIDB4ZjAsIDB4YzIsIDB4YjMsIDB4OTAsIDB4ZjksIDB4MTcsIDB4ZTAsIDB4MDQsIDB4ZjAsIDB4YWYsIAorMHgwMSwgMHgxMiwgMHgyMiwgMHgzMywgMHhmZCwgMHgxMiwgMHgyZiwgMHg0OSwgMHgxMiwgMHgzMCwgMHhlYywgMHgwMiwgMHgxMCwgMHg4NiwgMHg3NSwgMHhhOCwgCisweDQwLCAweDc4LCAweDdmLCAweGU0LCAweGY2LCAweGQ4LCAweGZkLCAweDc1LCAweDgxLCAweDhiLCAweDAyLCAweDI3LCAweDQ4LCAweDAyLCAweDMwLCAweGNmLCAKKzB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NDAsIDB4MDMsIDB4ZjYsIDB4ODAsIDB4MDEsIDB4ZjIsIDB4MDgsIDB4ZGYsIDB4ZjQsIAorMHg4MCwgMHgyOSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHg1NCwgMHgwNywgMHgyNCwgMHgwYywgMHhjOCwgMHhjMywgMHgzMywgMHhjNCwgMHg1NCwgMHgwZiwgCisweDQ0LCAweDIwLCAweGM4LCAweDgzLCAweDQwLCAweDA0LCAweGY0LCAweDU2LCAweDgwLCAweDAxLCAweDQ2LCAweGY2LCAweGRmLCAweGU0LCAweDgwLCAweDBiLCAKKzB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4OTAsIDB4MmIsIDB4NGMsIDB4ZTQsIDB4N2UsIDB4MDEsIDB4OTMsIDB4NjAsIAorMHhiYywgMHhhMywgMHhmZiwgMHg1NCwgMHgzZiwgMHgzMCwgMHhlNSwgMHgwOSwgMHg1NCwgMHgxZiwgMHhmZSwgMHhlNCwgMHg5MywgMHhhMywgMHg2MCwgMHgwMSwgCisweDBlLCAweGNmLCAweDU0LCAweGMwLCAweDI1LCAweGUwLCAweDYwLCAweGE4LCAweDQwLCAweGI4LCAweGU0LCAweDkzLCAweGEzLCAweGZhLCAweGU0LCAweDkzLCAKKzB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZjAsIDB4YTMsIDB4YzgsIAorMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhkZiwgMHhlOSwgMHhkZSwgMHhlNywgMHg4MCwgMHhiZSwgMHhlNCwgMHhmNSwgMHgyMiwgCisweDEyLCAweDFkLCAweDEyLCAweGUwLCAweGI0LCAweDA0LCAweDBkLCAweGU1LCAweDIyLCAweDI0LCAweDAzLCAweGZmLCAweDEyLCAweDJmLCAweDc3LCAweDEyLCAKKzB4MWQsIDB4MTIsIDB4ZTQsIDB4ZjAsIDB4MDUsIDB4MjIsIDB4ZTUsIDB4MjIsIDB4YzMsIDB4OTQsIDB4MDIsIDB4NDAsIDB4ZTMsIDB4ZTQsIDB4ZjUsIDB4MjIsIAorMHg3NSwgMHhmMCwgMHgwMiwgMHhlNSwgMHgyMiwgMHg5MCwgMHhmYSwgMHg5MSwgMHgxMiwgMHgxZCwgMHg1MywgMHg2MCwgMHgyYywgMHgxMiwgMHgyYywgMHhiNCwgCisweGVmLCAweDYwLCAweDUyLCAweDc1LCAweGYwLCAweDAyLCAweGU1LCAweDIyLCAweDkwLCAweGZhLCAweDkxLCAweDEyLCAweDFiLCAweDFjLCAweGU0LCAweGYwLCAKKzB4YTMsIDB4ZjAsIDB4NzUsIDB4ZjAsIDB4MGEsIDB4ZTUsIDB4MjIsIDB4OTAsIDB4ZmEsIDB4OWQsIDB4MTIsIDB4MWIsIDB4MWMsIDB4ZTAsIDB4YTMsIDB4MzAsIAorMHhlNiwgMHgzMywgMHgxMiwgMHgxZCwgMHgxMiwgMHg3NCwgMHgwNCwgMHhmMCwgMHgyMiwgMHg3NSwgMHhmMCwgMHgwMiwgMHhlNSwgMHgyMiwgMHg5MCwgMHhmYSwgCisweDk1LCAweDEyLCAweDFkLCAweDUzLCAweDYwLCAweDE2LCAweDEyLCAweDJjLCAweGI0LCAweGVmLCAweDYwLCAweDE5LCAweDc1LCAweGYwLCAweDAyLCAweGU1LCAKKzB4MjIsIDB4OTAsIDB4ZmEsIDB4OTUsIDB4MTIsIDB4MWIsIDB4MWMsIDB4ZTQsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4MjIsIDB4MDUsIDB4MjIsIDB4ZTUsIDB4MjIsIAorMHhjMywgMHg5NCwgMHgwMiwgMHg0MCwgMHg5YiwgMHgyMiwgMHhlNCwgMHhmZiwgMHg5MCwgMHhmZiwgMHg4MywgMHhlMCwgMHg1NCwgMHgwZiwgMHhmZSwgMHhlZiwgCisweGMzLCAweDllLCAweDUwLCAweDE3LCAweDc0LCAweGYwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweGZlLCAweGY1LCAweDgzLCAweGUwLCAweDEyLCAKKzB4MWMsIDB4MTEsIDB4MTIsIDB4MWEsIDB4MzgsIDB4MGYsIDB4MTIsIDB4MWMsIDB4MDAsIDB4ODAsIDB4ZGQsIDB4ZWYsIDB4ZmQsIDB4YzMsIDB4ZTUsIDB4M2EsIAorMHg5ZCwgMHhmNSwgMHgzYSwgMHhlNSwgMHgzOSwgMHg5NCwgMHgwMCwgMHhmNSwgMHgzOSwgMHhkMywgMHhlNSwgMHgzYSwgMHg5NCwgMHgwMCwgMHhlNSwgMHgzOSwgCisweDk0LCAweDAwLCAweDQwLCAweDA2LCAweGU0LCAweDkwLCAweGZmLCAweDgzLCAweGYwLCAweDIyLCAweDEyLCAweDFkLCAweDJmLCAweDEyLCAweDFkLCAweDg0LCAKKzB4MTIsIDB4MWQsIDB4NzYsIDB4MTIsIDB4MTksIDB4ZjIsIDB4MjQsIDB4NmUsIDB4NjAsIDB4MWUsIDB4MTQsIDB4NjAsIDB4MWIsIDB4MjQsIDB4OGUsIDB4NzAsIAorMHgyZCwgMHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHgxYSwgMHgwYiwgMHhmZiwgMHgyNCwgMHhmYywgMHg2MCwgMHgwMywgMHgwNCwgMHg3MCwgMHgxZiwgMHhlZiwgCisweGZkLCAweDdjLCAweDAwLCAweDdmLCAweDBkLCAweDAyLCAweDExLCAweDE2LCAweDEyLCAweDFkLCAweDhiLCAweDEyLCAweDI1LCAweDM5LCAweDEyLCAweDFjLCAKKzB4ZDksIDB4MTIsIDB4MWEsIDB4MGIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MzEsIDB4YmQsIDB4ZTQsIDB4ZmYsIDB4MTIsIDB4MzEsIDB4YjEsIDB4MjIsIDB4OGIsIAorMHg0NSwgMHg4YSwgMHg0NiwgMHg4OSwgMHg0NywgMHg4YywgMHg0OCwgMHg4ZCwgMHg0OSwgMHhkMiwgMHgwMCwgMHgxMiwgMHgyZCwgMHg4MiwgMHg3MCwgMHgxNiwgCisweDEyLCAweDJkLCAweGExLCAweGU1LCAweDQ4LCAweDkwLCAweGZmLCAweGYxLCAweGYwLCAweDEyLCAweDMxLCAweDFiLCAweDUwLCAweGYyLCAweDEyLCAweDI5LCAKKzB4MTQsIDB4NDAsIDB4MGIsIDB4N2YsIDB4MTgsIDB4MjIsIDB4MTIsIDB4MmQsIDB4YTEsIDB4MTIsIDB4MjksIDB4MTQsIDB4NTAsIDB4ZjgsIDB4ZTQsIDB4ZjUsIAorMHg0YiwgMHhlNSwgMHg0YSwgMHgxNCwgMHhmZiwgMHhlNSwgMHg0YiwgMHhjMywgMHg5ZiwgMHg1MCwgMHgxNywgMHgxMiwgMHgyOSwgMHgwNCwgMHg0MCwgMHgwMywgCisweDdmLCAweDE4LCAweDIyLCAweDA1LCAweDRiLCAweDc0LCAweDAxLCAweDI1LCAweDQ3LCAweGY1LCAweDQ3LCAweGU0LCAweDM1LCAweDQ2LCAweGY1LCAweDQ2LCAKKzB4ODAsIDB4ZGYsIDB4OTAsIDB4ZmYsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MTIsIDB4MjksIDB4MDQsIDB4NDAsIDB4MDMsIDB4N2YsIDB4MTgsIAorMHgyMiwgMHg3ZiwgMHgwMCwgMHgyMiwgMHhhYiwgMHg0NSwgMHhhYSwgMHg0NiwgMHhhOSwgMHg0NywgMHgxMiwgMHgxOSwgMHhmMiwgMHg5MCwgMHhmZiwgMHhmMSwgCisweGYwLCAweDAyLCAweDMxLCAweDFiLCAweDkwLCAweGZmLCAweGYxLCAweGU1LCAweDQ5LCAweGYwLCAweDAyLCAweDMxLCAweDFiLCAweDdiLCAweDAxLCAweDdhLCAKKzB4ZmEsIDB4NzksIDB4Y2MsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MjIsIDB4YTAsIDB4OTAsIDB4ZmEsIDB4Y2MsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDksIDB4MTIsIAorMHgxYSwgMHg2YywgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgyMywgMHg5MCwgMHhmYSwgMHhjYywgMHhlNCwgMHg3NSwgMHhmMCwgMHgwMSwgMHgxMiwgCisweDFhLCAweDgyLCAweDg1LCAweGYwLCAweDJlLCAweGY1LCAweDJkLCAweDdkLCAweDAxLCAweDEyLCAweDI1LCAweGQ3LCAweDkwLCAweGZmLCAweGY3LCAweGU1LCAKKzB4MjMsIDB4MTIsIDB4MjksIDB4NzgsIDB4OTAsIDB4ZmYsIDB4ZjYsIDB4ZTUsIDB4MjMsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4Y2MsIDB4ZTQsIDB4ZjAsIDB4YTMsIAorMHg3NCwgMHgwNiwgMHgxMiwgMHgyOSwgMHg3OCwgMHhlNSwgMHgyMywgMHgzMCwgMHhlMCwgMHgwNywgMHg5MCwgMHhmZiwgMHhmYywgMHg3NCwgMHg5NCwgMHhmMCwgCisweDIyLCAweDkwLCAweGZmLCAweGZjLCAweDc0LCAweDkwLCAweGYwLCAweDIyLCAweGYwLCAweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDIzLCAweDkwLCAKKzB4ZmEsIDB4Y2MsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDEsIDB4MTIsIDB4MWEsIDB4ODIsIDB4ODUsIDB4ZjAsIDB4MmUsIDB4ZjUsIDB4MmQsIDB4N2QsIDB4MDEsIAorMHgwMiwgMHgyNSwgMHhkNywgMHg5MCwgMHhmZiwgMHg5MywgMHg3NCwgMHgyYSwgMHhmMCwgMHg5MCwgMHhmZiwgMHhmZiwgMHhlMCwgMHg2MCwgMHgwNiwgMHg5MCwgCisweGZmLCAweGZjLCAweDc0LCAweDEwLCAweGYwLCAweDkwLCAweGZmLCAweDkxLCAweGUwLCAweDQ0LCAweDkwLCAweGYwLCAweGU0LCAweDkwLCAweGY5LCAweDE1LCAKKzB4ZjAsIDB4YTMsIDB4ZjAsIDB4MTIsIDB4MmEsIDB4NzgsIDB4MTIsIDB4MTYsIDB4NDIsIDB4MTIsIDB4MmYsIDB4Y2QsIDB4N2UsIDB4MDcsIDB4N2YsIDB4ZDAsIAorMHgxMiwgMHgxMSwgMHhlMiwgMHg3ZSwgMHgwZiwgMHg3ZiwgMHhhMCwgMHgxMiwgMHgxMSwgMHhmYywgMHhlNCwgMHg3OCwgMHg3NywgMHhmNiwgMHg3OCwgMHg3NywgCisweGU2LCAweGZmLCAweGMzLCAweDk0LCAweDA2LCAweDUwLCAweDBiLCAweDc0LCAweDZlLCAweDJmLCAweGY4LCAweGU0LCAweGY2LCAweDc4LCAweDc3LCAweDA2LCAKKzB4ODAsIDB4ZWMsIDB4N2YsIDB4MDMsIDB4MTIsIDB4MmUsIDB4YjMsIDB4OTAsIDB4ZjksIDB4MTUsIDB4ZTAsIDB4MjAsIDB4ZTQsIDB4MDUsIDB4N2YsIDB4MDQsIAorMHgxMiwgMHgyZSwgMHhiMywgMHg5MCwgMHhmZiwgMHg5YiwgMHhlNCwgMHhmMCwgMHg5MCwgMHhmZiwgMHg5YSwgMHhmMCwgMHg5MCwgMHhmZiwgMHhlOCwgMHhlMCwgCisweDU0LCAweDFmLCAweGYwLCAweGQyLCAweGE4LCAweDIyLCAweDE1LCAweDY1LCAweGE4LCAweDY1LCAweGE2LCAweDA3LCAweDMwLCAweDA4LCAweDA1LCAweDEyLCAKKzB4MTEsIDB4NjYsIDB4ODAsIDB4ZjgsIDB4ZDIsIDB4MDgsIDB4YTgsIDB4NjUsIDB4ZTYsIDB4ZmYsIDB4YjQsIDB4MDMsIDB4MGYsIDB4NzgsIDB4N2MsIDB4NzYsIAorMHhmZiwgMHgwOCwgMHg3NiwgMHhlMCwgMHgwOCwgMHg3NiwgMHhmZiwgMHgwOCwgMHg3NiwgMHhhMCwgMHg4MCwgMHgwZCwgMHg3OCwgMHg3YywgMHg3NiwgMHhmZiwgCisweDA4LCAweDc2LCAweGUyLCAweDA4LCAweDc2LCAweGZmLCAweDA4LCAweDc2LCAweGIwLCAweDc4LCAweDgwLCAweDc2LCAweGZhLCAweDA4LCAweDc2LCAweDliLCAKKzB4ZWYsIDB4MjQsIDB4ZmQsIDB4NzUsIDB4ZjAsIDB4MGEsIDB4YTQsIDB4YWUsIDB4ZjAsIDB4MTIsIDB4MjIsIDB4OTIsIDB4N2IsIDB4MDEsIDB4N2EsIDB4ZmYsIAorMHg3OSwgMHg0OCwgMHg3OCwgMHg2OCwgMHgxMiwgMHgxYiwgMHgzMSwgMHhhOCwgMHg2NSwgMHhlNiwgMHgyNCwgMHhmZCwgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgCisweGZmLCAweGFlLCAweGYwLCAweDc4LCAweDZhLCAweDEyLCAweDIyLCAweDkyLCAweDc5LCAweDA4LCAweDc4LCAweDZiLCAweDEyLCAweDFiLCAweDMxLCAweDc4LCAKKzB4NmQsIDB4ZWYsIDB4MTIsIDB4MjIsIDB4OTIsIDB4MDUsIDB4NjUsIDB4MjIsIDB4OTAsIDB4ZmYsIDB4ZjAsIDB4ZTAsIDB4NTQsIDB4YWIsIDB4ZjAsIDB4ZTAsIAorMHg0NCwgMHgyMCwgMHhmMCwgMHg5MCwgMHhmYSwgMHhlMywgMHg3NCwgMHgwMiwgMHhmMCwgMHg3YiwgMHgwMSwgMHg3YSwgMHhmYSwgMHg3OSwgMHhjYywgMHhlNCwgCisweGY1LCAweDJkLCAweGY1LCAweDJlLCAweDdkLCAweDAxLCAweDEyLCAweDI1LCAweGQ3LCAweDdlLCAweDAwLCAweDkwLCAweGZhLCAweGUxLCAweGVlLCAweGYwLCAKKzB4YTMsIDB4ZWYsIDB4ZjAsIDB4NjQsIDB4MDEsIDB4NzAsIDB4MTAsIDB4OTAsIDB4ZmEsIDB4Y2MsIDB4ZTAsIDB4YjQsIDB4NTIsIDB4MDksIDB4OTAsIDB4ZjksIAorMHgxNSwgMHhlMCwgMHg1NCwgMHhlZiwgMHhmMCwgMHg4MCwgMHgyOSwgMHg5MCwgMHhmYSwgMHhlMSwgMHhlMCwgMHg3MCwgMHgwNCwgMHhhMywgMHhlMCwgMHg2NCwgCisweDAxLCAweDcwLCAweDEwLCAweDkwLCAweGZhLCAweGNjLCAweGUwLCAweGI0LCAweDEwLCAweDA5LCAweDkwLCAweGY5LCAweDE1LCAweGUwLCAweDQ0LCAweDEwLCAKKzB4ZjAsIDB4ODAsIDB4MGQsIDB4OTAsIDB4ZmEsIDB4ZTMsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4OTAsIDB4ZjksIDB4MTUsIDB4ZTAsIDB4NTQsIDB4ZWYsIDB4ZjAsIAorMHg5MCwgMHhmZiwgMHhmMCwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHgyMiwgMHgxMiwgMHgxMCwgMHgwMywgMHg3OCwgMHg4YSwgMHhlZiwgMHhmNiwgMHgxMiwgCisweDJhLCAweDA2LCAweDEyLCAweDIyLCAweDMzLCAweDMwLCAweGUwLCAweDI1LCAweDEyLCAweDIyLCAweDA3LCAweGUwLCAweDU0LCAweDdmLCAweGYwLCAweDc4LCAKKzB4NmIsIDB4MTIsIDB4MWIsIDB4MjgsIDB4OTAsIDB4MDAsIDB4MDIsIDB4MTIsIDB4MWEsIDB4MGIsIDB4MzAsIDB4ZTcsIDB4MDksIDB4OTAsIDB4MDAsIDB4MDIsIAorMHhlNCwgMHgxMiwgMHgxYSwgMHg0YSwgMHg4MCwgMHhlOSwgMHgxMiwgMHgyMiwgMHgwNywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHgxMiwgMHgyMiwgMHgzMywgCisweDMwLCAweGUxLCAweDFlLCAweDEyLCAweDIxLCAweGU5LCAweGUwLCAweDU0LCAweDdmLCAweGYwLCAweDEyLCAweDMxLCAweDVjLCAweDc4LCAweDY4LCAweDEyLCAKKzB4MWIsIDB4MjgsIDB4OTAsIDB4MDAsIDB4MDIsIDB4NzQsIDB4ODAsIDB4MTIsIDB4MWEsIDB4NGEsIDB4MTIsIDB4MjEsIDB4ZTksIDB4ZTAsIDB4NDQsIDB4ODAsIAorMHhmMCwgMHgxMiwgMHgzMSwgMHhjNywgMHhlNCwgMHhmZiwgMHgxMiwgMHgzMCwgMHhlYywgMHgwMiwgMHgxMCwgMHg4NiwgMHgwMywgMHg2OCwgMHgwMSwgMHhmZiwgCisweDQ4LCAweDAzLCAweDZiLCAweDAxLCAweGZmLCAweDA4LCAweDAyLCAweDY2LCAweDAwLCAweDAwLCAweDQ0LCAweGZhLCAweDk1LCAweDAwLCAweDAwLCAweDAwLCAKKzB4MDAsIDB4NDQsIDB4ZmEsIDB4OTEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NDIsIDB4ZmEsIDB4YWYsIDB4MDAsIDB4MDAsIDB4NDIsIDB4ZmEsIDB4N2IsIAorMHgwMCwgMHgwMCwgMHg0MiwgMHhmYSwgMHg3OSwgMHgwMCwgMHgwMCwgMHg0MiwgMHhmOSwgMHg2YSwgMHhmZiwgMHhmZiwgMHg0MiwgMHhmYSwgMHg3NywgMHgwMCwgCisweDAwLCAweDQzLCAweGY5LCAweDE4LCAweDBhLCAweDMyLCAweDAyLCAweDQxLCAweGY5LCAweDY1LCAweDIwLCAweDQxLCAweGY5LCAweDY2LCAweDIwLCAweDQxLCAKKzB4ZjksIDB4NjMsIDB4MDAsIDB4NDEsIDB4ZjksIDB4NjQsIDB4MDAsIDB4NDQsIDB4ZjgsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NDIsIDB4ZjksIAorMHgxNSwgMHgwMCwgMHgwMCwgMHg0MSwgMHhmOSwgMHgxNywgMHgwMCwgMHgwMSwgMHgyMCwgMHgwMCwgMHg0MSwgMHhmOCwgMHgwNCwgMHgwMCwgMHgwMCwgMHgxMiwgCisweDEwLCAweDAzLCAweDc4LCAweDg1LCAweGVmLCAweGY2LCAweDEyLCAweDMwLCAweDkzLCAweDEyLCAweDMwLCAweGVjLCAweDc4LCAweDg1LCAweGU2LCAweGZmLCAKKzB4MjQsIDB4MTIsIDB4MTIsIDB4MjEsIDB4ZmYsIDB4ZTAsIDB4ZmUsIDB4MzAsIDB4ZTcsIDB4MTYsIDB4ZWYsIDB4YjQsIDB4MDMsIDB4MDksIDB4OTAsIDB4ZmYsIAorMHg5ZSwgMHhlMCwgMHg1NCwgMHhmYSwgMHhmMCwgMHg4MCwgMHgyMiwgMHg5MCwgMHhmZiwgMHg5ZSwgMHhlMCwgMHg1NCwgMHhmNSwgMHhmMCwgMHg4MCwgMHgxOSwgCisweGVlLCAweDU0LCAweDAzLCAweDYwLCAweDE0LCAweGVmLCAweGI0LCAweDAzLCAweDA5LCAweDkwLCAweGZmLCAweGE0LCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAKKzB4ODAsIDB4MDcsIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4OTAsIDB4ZjksIDB4MTcsIDB4ZTAsIDB4MTQsIDB4ZjAsIDB4ZTAsIAorMHg3MCwgMHgwMiwgMHhkMiwgMHhiMywgMHgwMiwgMHgxMCwgMHg4NiwgMHgxMiwgMHgxZCwgMHg2YywgMHhlNSwgMHgzYSwgMHg2NCwgMHgwOSwgMHg3MCwgMHgwNCwgCisweGU1LCAweDM5LCAweDY0LCAweDAxLCAweDYwLCAweDQ4LCAweGMzLCAweGU1LCAweDNhLCAweDk0LCAweDA4LCAweGU1LCAweDM5LCAweDk0LCAweDAwLCAweDQwLCAKKzB4MTEsIDB4N2YsIDB4MDgsIDB4ZWYsIDB4ZTUsIDB4M2EsIDB4OTQsIDB4MDgsIDB4ZjUsIDB4M2EsIDB4ZTUsIDB4MzksIDB4OTQsIDB4MDAsIDB4ZjUsIDB4MzksIAorMHg4MCwgMHgwNSwgMHhhZiwgMHgzYSwgMHgxMiwgMHgxZCwgMHg4NCwgMHhlNCwgMHhmZSwgMHhlZSwgMHhjMywgMHg5ZiwgMHg1MCwgMHgxOSwgMHgxMiwgMHgxYywgCisweDExLCAweDEyLCAweDE5LCAweGYyLCAweGZkLCAweDc0LCAweGY4LCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweGZlLCAweGY1LCAweDgzLCAweGVkLCAKKzB4ZjAsIDB4MGUsIDB4MTIsIDB4MWMsIDB4MDAsIDB4ODAsIDB4ZTIsIDB4ZWYsIDB4NTQsIDB4N2YsIDB4OTAsIDB4ZmYsIDB4ODEsIDB4ZjAsIDB4MjIsIDB4OGIsIAorMHg1OSwgMHg4YSwgMHg1YSwgMHg4OSwgMHg1YiwgMHgxMiwgMHgyZCwgMHg0OCwgMHg3MCwgMHgwNSwgMHhhMywgMHg3NCwgMHgwOCwgMHhmMCwgMHgyMiwgMHhhYiwgCisweDU5LCAweGFhLCAweDVhLCAweGE5LCAweDViLCAweDEyLCAweDJkLCAweDNjLCAweDkwLCAweGZhLCAweGM2LCAweDEyLCAweDFiLCAweDQzLCAweGU1LCAweDViLCAKKzB4MjQsIDB4MDMsIDB4ZjksIDB4ZTQsIDB4MzUsIDB4NWEsIDB4ZmEsIDB4OTAsIDB4ZmEsIDB4YzAsIDB4MTIsIDB4MWIsIDB4NDMsIDB4ZTQsIDB4OTAsIDB4ZmEsIAorMHhiZiwgMHhmMCwgMHg3OCwgMHg4YiwgMHhmNiwgMHg5MCwgMHhmYSwgMHhiZSwgMHhlMCwgMHhmZiwgMHg3OCwgMHg4YiwgMHhlNiwgMHhjMywgMHg5ZiwgMHg1MCwgCisweDEyLCAweDEyLCAweDJkLCAweDFhLCAweGZmLCAweDEyLCAweDJkLCAweDIzLCAweDEyLCAweDJkLCAweDM2LCAweDc4LCAweDhiLCAweDA2LCAweDEyLCAweDJkLCAKKzB4MzIsIDB4ODAsIDB4ZTIsIDB4MjIsIDB4YWQsIDB4MDcsIDB4YWMsIDB4MDYsIDB4OTAsIDB4MzEsIDB4NGQsIDB4ZTQsIDB4OTMsIDB4ZmYsIDB4NzgsIDB4NzQsIAorMHhmNiwgMHg1NCwgMHgwZiwgMHgxMiwgMHgxYywgMHhmOCwgMHhlMCwgMHgwOCwgMHg3NiwgMHgwMCwgMHgwOCwgMHhmNiwgMHgxOCwgMHgxMiwgMHgxYywgMHgyOSwgCisweGMzLCAweDMzLCAweGNlLCAweDMzLCAweGNlLCAweGQ4LCAweGY5LCAweGZmLCAweDc4LCAweDc1LCAweGVlLCAweGY2LCAweDA4LCAweGVmLCAweGY2LCAweGVlLCAKKzB4NDQsIDB4ZjgsIDB4MTgsIDB4ZjYsIDB4ZWYsIDB4MDgsIDB4ZjYsIDB4OTAsIDB4ZmYsIDB4N2EsIDB4ZTAsIDB4MjAsIDB4ZTcsIDB4MDMsIDB4N2YsIDB4MDAsIAorMHgyMiwgMHg3OCwgMHg3NSwgMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlYywgMHhmMCwgMHhhMywgMHhlZCwgMHhmMCwgCisweDkwLCAweGZmLCAweDdhLCAweDc0LCAweDAyLCAweGYwLCAweDdmLCAweDAxLCAweDIyLCAweGFiLCAweDU2LCAweGFhLCAweDU3LCAweGE5LCAweDU4LCAweDkwLCAKKzB4MDAsIDB4MDMsIDB4MTIsIDB4MWEsIDB4MGIsIDB4NTQsIDB4ZjAsIDB4MjQsIDB4YTAsIDB4MjIsIDB4OTAsIDB4ZmEsIDB4YzYsIDB4MTIsIDB4MWIsIDB4M2EsIAorMHgwMiwgMHgxOSwgMHhmMiwgMHg5MCwgMHhmYSwgMHhjMCwgMHgxMiwgMHgxYiwgMHgzYSwgMHhlZiwgMHgxMiwgMHgxYSwgMHgzOCwgMHg5MCwgMHhmYSwgMHhjNywgCisweGU0LCAweDIyLCAweDkwLCAweGZhLCAweGMxLCAweGU0LCAweDc1LCAweGYwLCAweDAxLCAweDAyLCAweDFhLCAweDZjLCAweDkwLCAweDAwLCAweDA4LCAweDEyLCAKKzB4MWEsIDB4OTgsIDB4YWEsIDB4ZjAsIDB4ZjksIDB4N2IsIDB4MDEsIDB4MjIsIDB4OTAsIDB4MDAsIDB4MDUsIDB4MTIsIDB4MWEsIDB4MGIsIDB4OTAsIDB4ZmEsIAorMHhiZSwgMHhmMCwgMHgyMiwgMHhhYiwgMHg1NiwgMHhhYSwgMHg1NywgMHhhOSwgMHg1OCwgMHgyMiwgMHg5MCwgMHhmYSwgMHhkYSwgMHhlMCwgMHhmZiwgMHg3ZSwgCisweDAwLCAweGMzLCAweDkwLCAweGZhLCAweGQ0LCAweGUwLCAweDlmLCAweGYwLCAweDkwLCAweGZhLCAweGQzLCAweGUwLCAweDllLCAweGYwLCAweDkwLCAweGZhLCAKKzB4ZDUsIDB4ZWUsIDB4OGYsIDB4ZjAsIDB4MTIsIDB4MWEsIDB4NmMsIDB4ZWYsIDB4MjUsIDB4NTEsIDB4ZjUsIDB4NTEsIDB4ZWUsIDB4MzUsIDB4NTAsIDB4ZjUsIAorMHg1MCwgMHgyMiwgMHg5MCwgMHhmZiwgMHhmMCwgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg5MCwgMHhmYSwgMHhlMywgCisweGUwLCAweDY0LCAweDAzLCAweDIyLCAweDkwLCAweGZmLCAweGYyLCAweGUwLCAweGFiLCAweDI5LCAweGFhLCAweDJhLCAweGE5LCAweDJiLCAweDAyLCAweDFhLCAKKzB4MzgsIDB4OTAsIDB4ZmYsIDB4ZjMsIDB4NzQsIDB4YTAsIDB4ZjAsIDB4MjIsIDB4OGYsIDB4NjQsIDB4ZWQsIDB4NzAsIDB4MGYsIDB4ZTUsIDB4NjQsIDB4YjQsIAorMHgwMywgMHgwNSwgMHg3ZiwgMHgwMSwgMHgwMiwgMHgzMSwgMHgzMiwgMHg3ZiwgMHgwMiwgMHgwMiwgMHgzMSwgMHgzMiwgMHhhZiwgMHg2NCwgMHgxMiwgMHgyYSwgCisweDA2LCAweDc0LCAweDZlLCAweDI1LCAweDY0LCAweGY4LCAweGU2LCAweDMwLCAweGUyLCAweDBiLCAweGQyLCAweDA5LCAweDEyLCAweDFjLCAweDgzLCAweGUwLCAKKzB4NTQsIDB4N2YsIDB4ZjAsIDB4ODAsIDB4MDIsIDB4YzIsIDB4MDksIDB4ZTUsIDB4NjQsIDB4YjQsIDB4MDMsIDB4MDcsIDB4N2YsIDB4ODEsIDB4MTIsIDB4MzEsIAorMHgzMiwgMHg4MCwgMHgwNSwgMHg3ZiwgMHg4MiwgMHgxMiwgMHgzMSwgMHgzMiwgMHgzMCwgMHgwOSwgMHgwNywgMHgxMiwgMHgxYywgMHg4MywgMHhlMCwgMHg0NCwgCisweDgwLCAweGYwLCAweDEyLCAweDMxLCAweGM3LCAweDIyLCAweDEyLCAweDEwLCAweDAzLCAweDkwLCAweGZmLCAweGZkLCAweGUwLCAweDQ0LCAweDYwLCAweGYwLCAKKzB4ZDIsIDB4MDEsIDB4OTAsIDB4ZmYsIDB4ZmMsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4MDAsIDB4ZTAsIDB4MzAsIDB4ZTcsIDB4MTMsIAorMHg5MCwgMHhmZiwgMHg4MywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg0MywgMHgzNSwgMHg4MCwgMHg5MCwgMHhmZiwgMHhmYywgMHhlMCwgMHg0NCwgMHgwMSwgCisweGYwLCAweDgwLCAweDBkLCAweDEyLCAweDFkLCAweDJmLCAweDUzLCAweDM1LCAweDdmLCAweDkwLCAweGZmLCAweGZjLCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAKKzB4OTAsIDB4ZmYsIDB4ODEsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4MTIsIDB4MDIsIDB4YjAsIDB4MTIsIDB4MWQsIDB4MzcsIDB4MDIsIDB4MTAsIDB4ODYsIAorMHgxMiwgMHgxMCwgMHgwMywgMHg3OCwgMHg4OSwgMHhlZiwgMHhmNiwgMHhkMiwgMHgwMCwgMHgxMiwgMHgyYSwgMHgwNiwgMHg5MCwgMHhmOSwgMHg2NywgMHgxMiwgCisweDFiLCAweDNhLCAweGU5LCAweDI0LCAweDAzLCAweGY5LCAweGU0LCAweDNhLCAweGZhLCAweGMwLCAweDAyLCAweDc4LCAweDgwLCAweGU2LCAweGZlLCAweDA4LCAKKzB4ZTYsIDB4YWEsIDB4MDYsIDB4ZjgsIDB4YWMsIDB4MDIsIDB4N2QsIDB4MDEsIDB4ZDAsIDB4MDIsIDB4MTIsIDB4MjIsIDB4MjUsIDB4MTIsIDB4MzEsIDB4YzcsIAorMHg3OCwgMHg4OSwgMHhlNiwgMHhmZiwgMHgxMiwgMHgxMywgMHgzZiwgMHgxMiwgMHgzMCwgMHhlYywgMHgwMiwgMHgxMCwgMHg4NiwgMHg4ZiwgMHg2MywgMHgxMiwgCisweDJhLCAweDA2LCAweDEyLCAweDIyLCAweDA3LCAweGUwLCAweDU0LCAweDNmLCAweGYwLCAweGU1LCAweDgyLCAweDI0LCAweDA0LCAweDEyLCAweDIxLCAweGYzLCAKKzB4ZTAsIDB4NTQsIDB4M2YsIDB4ZjAsIDB4MDgsIDB4ZTYsIDB4ZmUsIDB4MDgsIDB4ZTYsIDB4OGUsIDB4ODMsIDB4MjQsIDB4MGIsIDB4MTIsIDB4MjEsIDB4ZjMsIAorMHhlMCwgMHg1NCwgMHhmOCwgMHhmMCwgMHgxMiwgMHgzMSwgMHhjNywgMHg3NCwgMHg2ZSwgMHgyNSwgMHg2MywgMHhmOCwgMHg3NCwgMHhmYiwgMHg1NiwgMHhmNiwgCisweDdmLCAweDAwLCAweDIyLCAweDhmLCAweDIzLCAweGMyLCAweDA4LCAweDEyLCAweDJhLCAweDA2LCAweDEyLCAweDIyLCAweDEyLCAweDc4LCAweDdlLCAweDEyLCAKKzB4MjEsIDB4ZWIsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MTIsIDB4MjIsIDB4NGEsIDB4MTIsIDB4MjEsIDB4ZWYsIDB4ZTAsIDB4MjAsIDB4ZTAsIDB4ZjYsIAorMHhlZiwgMHgyNCwgMHgwYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzZSwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmOCwgMHhmMCwgMHgxMiwgMHgzMSwgMHhjNywgCisweGFmLCAweDIzLCAweDEyLCAweDEzLCAweDNmLCAweDIyLCAweDEyLCAweDEwLCAweDAzLCAweDEyLCAweDJhLCAweDA2LCAweDEyLCAweDIyLCAweDRhLCAweDI0LCAKKzB4MDYsIDB4MTIsIDB4MjEsIDB4ZjEsIDB4ZTAsIDB4ZmQsIDB4MTIsIDB4MjIsIDB4MmQsIDB4OTAsIDB4MDAsIDB4MDMsIDB4MTIsIDB4MjIsIDB4NTIsIDB4MjQsIAorMHgwNSwgMHgxMiwgMHgyMSwgMHhmMywgMHhlMCwgMHg5MCwgMHgwMCwgMHgwNCwgMHgxMiwgMHgxYSwgMHg0YSwgMHgxMiwgMHgzMSwgMHhjNywgMHg3ZCwgMHgwMiwgCisweGU0LCAweGZmLCAweDEyLCAweDJmLCAweDE4LCAweDAyLCAweDEwLCAweDg2LCAweGFlLCAweDA1LCAweDEyLCAweDFjLCAweGRlLCAweGVmLCAweDEyLCAweDFhLCAKKzB4NGEsIDB4MGUsIDB4MGUsIDB4MGUsIDB4ZWUsIDB4ZDMsIDB4OTUsIDB4M2MsIDB4ZTQsIDB4OTUsIDB4M2IsIDB4NDAsIDB4MDIsIDB4YWUsIDB4M2MsIDB4ZWUsIAorMHhkMywgMHg5NCwgMHgwOCwgMHg3NCwgMHg4MCwgMHg5NCwgMHg4MSwgMHg0MCwgMHgwYSwgMHg3ZSwgMHgwMywgMHg5MCwgMHgwMCwgMHgwMiwgMHg3NCwgMHgwMiwgCisweDEyLCAweDFhLCAweDRhLCAweGFmLCAweDA2LCAweDEyLCAweDMxLCAweGIxLCAweDIyLCAweGFlLCAweDA3LCAweGVkLCAweDU0LCAweDAzLCAweDY0LCAweDAxLCAKKzB4NjAsIDB4MDMsIDB4N2YsIDB4MTAsIDB4MjIsIDB4ZWQsIDB4NTQsIDB4N2MsIDB4YzMsIDB4OTQsIDB4MDQsIDB4NTAsIDB4MDMsIDB4N2YsIDB4MGIsIDB4MjIsIAorMHg3NCwgMHg2ZSwgMHgyZSwgMHhmOCwgMHg3NCwgMHgwMiwgMHg0NiwgMHhmNiwgMHg3NCwgMHg5NiwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHhmYSwgCisweGY1LCAweDgzLCAweGVkLCAweGYwLCAweDdmLCAweDAwLCAweDIyLCAweGJmLCAweDAzLCAweDA2LCAweDdjLCAweGZmLCAweDdkLCAweGUwLCAweDgwLCAweDA0LCAKKzB4N2MsIDB4ZmYsIDB4N2QsIDB4ZTIsIDB4OGQsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ZTUsIDB4ODIsIDB4MjQsIDB4MDQsIAorMHgxMiwgMHgyMSwgMHhmMywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg3NCwgMHg2ZSwgMHgyZiwgMHhmOCwgMHg3NCwgMHgwNCwgMHg0NiwgMHhmNiwgMHg3ZiwgCisweDAwLCAweDIyLCAweDEyLCAweDEwLCAweDAzLCAweGU1LCAweDNhLCAweDY0LCAweDA5LCAweDcwLCAweDA0LCAweGU1LCAweDM5LCAweDY0LCAweDAxLCAweDYwLCAKKzB4MTYsIDB4OTAsIDB4ZmYsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4YzMsIDB4ZTUsIDB4M2EsIDB4OWYsIDB4ZTUsIDB4MzksIDB4OTQsIDB4MDAsIAorMHg0MCwgMHgwNSwgMHgxMiwgMHgyOCwgMHgxNiwgMHg4MCwgMHgwMywgMHgxMiwgMHgzMSwgMHhiZCwgMHgwMiwgMHgxMCwgMHg4NiwgMHg5MCwgMHhmZiwgMHhmYywgCisweGUwLCAweDIwLCAweGU3LCAweDFmLCAweGMyLCAweGFmLCAweDdkLCAweGZmLCAweGFjLCAweDA1LCAweDFkLCAweGVjLCAweDYwLCAweDE1LCAweDdlLCAweDA0LCAKKzB4N2YsIDB4MDAsIDB4ZWYsIDB4MWYsIDB4YWEsIDB4MDYsIDB4NzAsIDB4MDEsIDB4MWUsIDB4NGEsIDB4NjAsIDB4ZWMsIDB4OTAsIDB4ZmYsIDB4OTIsIDB4ZTQsIAorMHhmMCwgMHg4MCwgMHhlZiwgMHgyMiwgMHgxMiwgMHgxMCwgMHgwMywgMHg3OCwgMHg2NiwgMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwgMHhmZiwgMHgzMCwgMHhlMCwgCisweDEyLCAweDMwLCAweGUxLCAweDBmLCAweDkwLCAweGZmLCAweGZjLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDdmLCAweDA0LCAweDEyLCAweDEyLCAweDE5LCAKKzB4MTIsIDB4MWQsIDB4NDYsIDB4MDIsIDB4MTAsIDB4ODYsIDB4OGUsIDB4NWYsIDB4OGYsIDB4NjAsIDB4ZTUsIDB4NjAsIDB4MTUsIDB4NjAsIDB4YWUsIDB4NWYsIAorMHg3MCwgMHgwMiwgMHgxNSwgMHg1ZiwgMHhkMywgMHg5NCwgMHgwMCwgMHhlZSwgMHg5NCwgMHgwMCwgMHg0MCwgMHgwOSwgMHg3ZSwgMHgwNywgMHg3ZiwgMHhkMCwgCisweDEyLCAweDBmLCAweGRjLCAweDgwLCAweGU1LCAweDIyLCAweDExLCAweDk0LCAweDJkLCAweGY2LCAweDIzLCAweGVmLCAweDMxLCAweGEzLCAweDJmLCAweGY0LCAKKzB4MmYsIDB4YTIsIDB4MzAsIDB4YjIsIDB4MmUsIDB4ZTYsIDB4MjYsIDB4NmQsIDB4MmIsIDB4YWYsIDB4MzAsIDB4NTUsIDB4MzAsIDB4NzQsIDB4MWQsIDB4YjQsIAorMHgyZSwgMHg0MCwgMHgyYSwgMHhlOCwgMHgwZSwgMHgxMiwgMHgxMCwgMHgwMywgMHg3OCwgMHg4NiwgMHgxMiwgMHgyMiwgMHg4MiwgMHgyMCwgMHhlMSwgMHgwNywgCisweDdmLCAweDEyLCAweDEyLCAweDMwLCAweGVjLCAweDgwLCAweDBhLCAweDc4LCAweDg2LCAweGU2LCAweGZmLCAweDEyLCAweDIzLCAweDQ5LCAweDEyLCAweDMwLCAKKzB4ZWMsIDB4MDIsIDB4MTAsIDB4ODYsIDB4MTIsIDB4MTAsIDB4MDMsIDB4NzgsIDB4ODcsIDB4MTIsIDB4MjIsIDB4ODIsIDB4MjAsIDB4ZTIsIDB4MDcsIDB4N2YsIAorMHgxMSwgMHgxMiwgMHgzMCwgMHhlYywgMHg4MCwgMHgwYSwgMHg3OCwgMHg4NywgMHhlNiwgMHhmZiwgMHgxMiwgMHgyZSwgMHg3ZCwgMHgxMiwgMHgzMCwgMHhlYywgCisweDAyLCAweDEwLCAweDg2LCAweDhmLCAweDYxLCAweDEyLCAweDJlLCAweDdkLCAweGFmLCAweDYxLCAweDEyLCAweDJhLCAweDA2LCAweDEyLCAweDIyLCAweDEyLCAKKzB4MTIsIDB4MzEsIDB4YzcsIDB4NzQsIDB4NmUsIDB4MjUsIDB4NjEsIDB4ZjgsIDB4NzQsIDB4ZmQsIDB4NTYsIDB4ZjYsIDB4YWYsIDB4NjEsIDB4MTIsIDB4MTMsIAorMHgzZiwgMHgyMiwgMHgxMiwgMHgxMCwgMHgwMywgMHhlNSwgMHgzYSwgMHg2NCwgMHgwOSwgMHg3MCwgMHgwNCwgMHhlNSwgMHgzOSwgMHg2NCwgMHgwMSwgMHg2MCwgCisweDA1LCAweDEyLCAweDJjLCAweDA3LCAweDgwLCAweDA2LCAweDEyLCAweDFkLCAweDY0LCAweDEyLCAweDFkLCAweDZjLCAweDAyLCAweDEwLCAweDg2LCAweDEyLCAKKzB4MjksIDB4OTMsIDB4MTIsIDB4MTIsIDB4YmIsIDB4OTAsIDB4ZjgsIDB4MDQsIDB4ZTAsIDB4ZmYsIDB4NjAsIDB4MDUsIDB4N2QsIDB4MDEsIDB4MTIsIDB4MTIsIAorMHg1OCwgMHgxMiwgMHgyOSwgMHgxZCwgMHgxMiwgMHgxMiwgMHhmNywgMHgxMiwgMHgxMSwgMHg3NCwgMHg4MCwgMHhlMywgMHgxMiwgMHgxYywgMHhkZSwgMHhlZiwgCisweDEyLCAweDFhLCAweDRhLCAweGU0LCAweGY1LCAweDMzLCAweGY1LCAweDM0LCAweGVmLCAweDYwLCAweDAzLCAweDAyLCAweDMxLCAweGJkLCAweGU0LCAweGZmLCAKKzB4MTIsIDB4MzEsIDB4YjEsIDB4MjIsIDB4OTAsIDB4ZmYsIDB4ZjAsIDB4ZTAsIDB4ZmYsIDB4NTQsIDB4YTAsIDB4NjAsIDB4ZjcsIDB4ZWYsIDB4MzAsIDB4ZTUsIAorMHgwOCwgMHg5MCwgMHhmZiwgMHhmMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHhjMywgMHgyMiwgMHhkMywgMHgyMiwgMHg5MCwgMHhmZiwgMHhmMCwgMHhlMCwgMHhmZiwgCisweDU0LCAweDI4LCAweDYwLCAweGY3LCAweGVmLCAweDMwLCAweGU1LCAweDA4LCAweDkwLCAweGZmLCAweGYwLCAweDQ0LCAweDIwLCAweGYwLCAweGMzLCAweDIyLCAKKzB4ZDMsIDB4MjIsIDB4ZWYsIDB4MzAsIDB4ZTcsIDB4MDgsIDB4MTIsIDB4MWMsIDB4OTUsIDB4ZTAsIDB4NTQsIDB4ZGYsIDB4ZjAsIDB4MjIsIDB4ZWYsIDB4MTIsIAorMHgxYywgMHhlOCwgMHhlMCwgMHg1NCwgMHhkZiwgMHhmMCwgMHgyMiwgMHg4MSwgMHgwMSwgMHg4MiwgMHgwMiwgMHg4MywgMHgwMywgMHg4NywgMHg0MCwgMHgwMCwgCisweDQwLCAweDAwLCAweDQwLCAweDAwLCAweDQwLCAweDAwLCAweDQwLCAweDAwLCAweDQwLCAweDAwLCAweDA4LCAweDAwLCAweDc4LCAweDdlLCAweDEyLCAweDIyLCAKKzB4MDksIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MzAsIDB4ZTcsIDB4MDYsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4MjIsIDB4ODUsIAorMHgzYiwgMHgzOSwgMHg4NSwgMHgzYywgMHgzYSwgMHg5MCwgMHhmZiwgMHg4MiwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHhhMywgMHhlMCwgMHg1NCwgMHg3ZiwgCisweGYwLCAweDIyLCAweGU0LCAweGZlLCAweGVlLCAweDkwLCAweDMxLCAweDQ3LCAweDkzLCAweGI1LCAweDA3LCAweDAyLCAweGQzLCAweDIyLCAweDBlLCAweGJlLCAKKzB4MDcsIDB4ZjIsIDB4YzMsIDB4MjIsIDB4MDAsIDB4MDgsIDB4MTgsIDB4MjgsIDB4MzgsIDB4MDEsIDB4ODEsIDB4MTAsIDB4MGEsIDB4MDIsIDB4MDAsIDB4MDAsIAorMHgwMCwgMHgwMCwgMHgwMCwgMHgxMiwgMHgxMCwgMHgwMywgMHg3ZiwgMHgwMiwgMHgxMiwgMHgxMCwgMHg5MiwgMHgxMiwgMHgxZCwgMHg0NiwgMHgwMiwgMHgxMCwgCisweDg2LCAweDc1LCAweDM5LCAweDAwLCAweDhmLCAweDNhLCAweDEyLCAweDFjLCAweDMwLCAweDEyLCAweDJjLCAweDA3LCAweDIyLCAweDEyLCAweDFkLCAweDZjLCAKKzB4MTIsIDB4MWQsIDB4MmYsIDB4MTIsIDB4MWQsIDB4NjQsIDB4MjIsIDB4YzIsIDB4MDgsIDB4MjIsIAorfTsKKworI3VuZGVmIElNQUdFX1ZFUlNJT05fTkFNRQorCisjdW5kZWYgSU1BR0VfQVJSQVlfTkFNRQorCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvaW9faW9uc3AuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19pb25zcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5MmUwM2QKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvaW9faW9uc3AuaApAQCAtMCwwICsxLDQ1NCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqCUlPTlNQLkgJCURlZmluaXRpb25zIGZvciBJL08gTmV0d29ya3MgU2VyaWFsIFByb3RvY29sCisgKgorICoJQ29weXJpZ2h0IChDKSAxOTk3LTE5OTggSW5zaWRlIE91dCBOZXR3b3JrcywgSW5jLgorICoKKyAqCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKglpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICoJdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqCShhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICoJVGhlc2UgZGVmaW5pdGlvbnMgYXJlIHVzZWQgYnkgYm90aCBrZXJuZWwtbW9kZSBkcml2ZXIgYW5kIHRoZQorICoJcGVyaXBoZXJhbCBmaXJtd2FyZSBhbmQgTVVTVCBiZSBrZXB0IGluIHN5bmMuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCitUaGUgZGF0YSB0byBhbmQgZnJvbSBhbGwgcG9ydHMgb24gdGhlIHBlcmlwaGVyYWwgaXMgbXVsdGlwbGV4ZWQKK3Rocm91Z2ggYSBzaW5nbGUgZW5kcG9pbnQgcGFpciAoRVAxIHNpbmNlIGl0IHN1cHBvcnRzIDY0LWJ5dGUKK01heFBhY2tldFNpemUpLiBUaGVyZWZvcmUsIHRoZSBkYXRhLCBjb21tYW5kcywgYW5kIHN0YXR1cyBmb3IKK2VhY2ggcG9ydCBtdXN0IGJlIHByZWNlZGVkIGJ5IGEgc2hvcnQgaGVhZGVyIGlkZW50aWZ5aW5nIHRoZQorZGVzdGluYXRpb24gcG9ydC4gVGhlIGhlYWRlciBhbHNvIGlkZW50aWZpZXMgdGhlIGJ5dGVzIHRoYXQgZm9sbG93CithcyBkYXRhIG9yIGFzIGNvbW1hbmQvc3RhdHVzIGluZm8uCisKK0hlYWRlciBmb3JtYXQsIGZpcnN0IGJ5dGU6CisKKyAgICBDTExMTFBQUAorICAgIC0tLS0tLS0tCisgICAgfCB8CSB8LS0tLS0tIFBvcnQgTnVtYmVyOgkwLTcKKyAgICB8IHwtLS0tLS0tLS0gTGVuZ3RoOglNU0IgYml0cyBvZiBsZW5ndGgKKyAgICB8LS0tLS0tLS0tLS0gRGF0YS9Db21tYW5kOgkwID0gRGF0YSBoZWFkZXIKKwkJCQkxID0gQ21kIC8gU3RhdHVzIChDbWQgaWYgT1VULCBTdGF0dXMgaWYgSU4pCisKK1RoaXMgZ2l2ZXMgMiBwb3NzaWJsZSBmb3JtYXRzOgorCisKKyAgICBEYXRhIGhlYWRlcjoJCTBMTExMUFBQCUxMTExMTExMCisgICAgPT09PT09PT09PT09CisKKyAgICBXaGVyZSAoTExMTCxMTExMTExMKSBpcyAxMi1iaXQgbGVuZ3RoIG9mIGRhdGEgdGhhdCBmb2xsb3dzIGZvcgorICAgIHBvcnQgbnVtYmVyIChQUFApLiBUaGUgbGVuZ3RoIGlzIDAtYmFzZWQgKDAtRkZGIG1lYW5zIDAtNDA5NQorICAgIGJ5dGVzKS4gVGhlIH40SyBsaW1pdCBhbGxvd3MgdGhlIGhvc3QgZHJpdmVyICh3aGljaCBkZWFscyBpbgorICAgIHRyYW5zZmVyIHJlcXVlc3RzIGluc3RlYWQgb2YgaW5kaXZpZHVhbCBwYWNrZXRzKSB0byB3cml0ZSBhCisgICAgbGFyZ2UgY2h1bmsgb2YgZGF0YSBpbiBhIHNpbmdsZSByZXF1ZXN0LiBOb3RlLCBob3dldmVyLCB0aGF0CisgICAgdGhlIGxlbmd0aCBtdXN0IGFsd2F5cyBiZSA8PSB0aGUgY3VycmVudCBUeENyZWRpdHMgZm9yIGEgZ2l2ZW4KKyAgICBwb3J0IGR1ZSB0byBidWZmZXJpbmcgbGltaXRhdGlvbnMgb24gdGhlIHBlcmlwaGVyYWwuCisKKworICAgIENtZC9TdGF0dXMgaGVhZGVyOgkJMWNjY2NQUFAJWyBDQ0NDQ0NDQywJIFBhcmFtcyBdLi4uCisgICAgPT09PT09PT09PT09PT09PT09CisKKyAgICBXaGVyZSAoY2NjYykgb3IgKGNjY2MsQ0NDQ0NDQ0MpIGlzIHRoZSBjbWQgb3Igc3RhdHVzIGlkZW50aWZpZXIuCisgICAgRnJlcXVlbnRseS11c2VkIHZhbHVlcyBhcmUgZW5jb2RlZCBhcyAoY2NjYyksIGxvbmdlciBvbmVzIHVzaW5nCisgICAgKGNjY2MsQ0NDQ0NDQ0MpLiBTdWJzZXF1ZW50IGJ5dGVzIGFyZSBvcHRpb25hbCBwYXJhbWV0ZXJzIGFuZCBhcmUKKyAgICBzcGVjaWZpYyB0byB0aGUgY21kIG9yIHN0YXR1cyBjb2RlLiBUaGlzIG1heSBpbmNsdWRlIGEgbGVuZ3RoCisgICAgZm9yIGNvbW1hbmQgYW5kIHN0YXR1cyBjb2RlcyB0aGF0IG5lZWQgdmFyaWFibGUtbGVuZ3RoIHBhcmFtZXRlcnMuCisKKworSW4gYWRkaXRpb24sIHdlIHVzZSBhbm90aGVyIGludGVycnVwdCBwaXBlIChlbmRwb2ludCkgd2hpY2ggdGhlIGhvc3QgcG9sbHMKK3BlcmlvZGljYWxseSBmb3IgZmxvdyBjb250cm9sIGluZm9ybWF0aW9uLiBUaGUgcGVyaXBoZXJhbCwgd2hlbiB0aGVyZSBoYXMKK2JlZW4gYSBjaGFuZ2UsIHNlbmRzIHRoZSBmb2xsb3dpbmcgMTAtYnl0ZSBwYWNrZXQ6CisKKwlSUlJSUlJSUlJSUlJSUlJSCisJVDBUMFQwVDBUMFQwVDBUMAorCVQxVDFUMVQxVDFUMVQxVDEKKwlUMlQyVDJUMlQyVDJUMlQyCisJVDNUM1QzVDNUM1QzVDNUMworCitUaGUgZmlyc3QgZmllbGQgaXMgdGhlIDE2LWJpdCBSeEJ5dGVzQXZhaWwgZmllbGQsIHdoaWNoIGluZGljYXRlcyB0aGUKK251bWJlciBvZiBieXRlcyB3aGljaCBtYXkgYmUgcmVhZCBieSB0aGUgaG9zdCBmcm9tIEVQMS4gVGhpcyBpcyBuZWNlc3Nhcnk6CisoYSkgYmVjYXVzZSBPU1IyLjEgaGFzIGEgYnVnIHdoaWNoIGNhdXNlcyBkYXRhIGxvc3MgaWYgdGhlIHBlcmlwaGVyYWwgcmV0dXJucworZmV3ZXIgYnl0ZXMgdGhhbiB0aGUgaG9zdCBleHBlY3RzIHRvIHJlYWQsIGFuZCAoYikgYmVjYXVzZSwgb24gTWljcm9zb2Z0CitwbGF0Zm9ybXMgYXQgbGVhc3QsIGFuIG91dHN0YW5kaW5nIHJlYWQgcG9zdGVkIG9uIEVQMSBjb25zdW1lcyBhYm91dCAzNSUgb2YKK3RoZSBDUFUganVzdCBwb2xsaW5nIHRoZSBkZXZpY2UgZm9yIGRhdGEuCisKK1RoZSBuZXh0IDQgZmllbGRzIGFyZSB0aGUgMTYtYml0IFR4Q3JlZGl0cyBmb3IgZWFjaCBwb3J0LCB3aGljaCBpbmRpY2F0ZSBob3cKK21hbnkgYnl0ZXMgdGhlIGhvc3QgaXMgYWxsb3dlZCB0byBzZW5kIG9uIEVQMSBmb3IgdHJhbnNtaXQgdG8gYSBnaXZlbiBwb3J0LgorQWZ0ZXIgYW4gT1BFTl9QT1JUIGNvbW1hbmQsIHRoZSBFZGdlcG9ydCBzZW5kcyB0aGUgaW5pdGlhbCBUeENyZWRpdHMgZm9yIHRoYXQKK3BvcnQuCisKK0FsbCAxNi1iaXQgZmllbGRzIGFyZSBzZW50IGluIGxpdHRsZS1lbmRpYW4gKEludGVsKSBmb3JtYXQuCisKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLy8KKy8vIERlZmluZSBmb3JtYXQgb2YgSW50ZXJydXB0U3RhdHVzIHBhY2tldCByZXR1cm5lZCBmcm9tIHRoZQorLy8gSW50ZXJydXB0IHBpcGUKKy8vCisKK3N0cnVjdCBpbnRfc3RhdHVzX3BrdCB7CisJX191MTYgICAgICBSeEJ5dGVzQXZhaWw7CQkgICAgLy8gQWRkaXRpb25hbCBieXRlcyBhdmFpbGFibGUgdG8KKwkJCQkJCSAgICAvLyBiZSByZWFkIGZyb20gQnVsayBJTiBwaXBlCisJX191MTYgICAgICBUeENyZWRpdHNbIE1BWF9SUzIzMl9QT1JUUyBdOyAgIC8vIEFkZGl0aW9uYWwgc3BhY2UgYXZhaWxhYmxlIGluCisJCQkJCQkgICAgLy8gZ2l2ZW4gcG9ydCdzIFR4QnVmZmVyCit9OworCisKKyNkZWZpbmUgR0VUX0lOVF9TVEFUVVNfU0laRShOdW1Qb3J0cykgKHNpemVvZihfX3UxNikgKyAoc2l6ZW9mKF9fdTE2KSAqIChOdW1Qb3J0cykpKQorCisKKworLy8KKy8vIERlZmluZSBjbWQvc3RhdHVzIGhlYWRlciB2YWx1ZXMgYW5kIG1hY3JvcyB0byBleHRyYWN0IHRoZW0uCisvLworLy8JRGF0YToJCTBMTExMUFBQIExMTExMTExMCisvLwlDbWQvU3RhdDoJMWNjY2NQUFAgQ0NDQ0NDQ0MKKworI2RlZmluZQlJT1NQX0RBVEFfSERSX1NJWkUJCTIKKyNkZWZpbmUJSU9TUF9DTURfSERSX1NJWkUJCTIKKworI2RlZmluZQlJT1NQX01BWF9EQVRBX0xFTkdUSAkJMHgwRkZGCQkvLyAxMiBiaXRzIC0+IDRLCisKKyNkZWZpbmUJSU9TUF9QT1JUX01BU0sJCQkweDA3CQkvLyBNYXNrIHRvIGlzb2xhdGUgcG9ydCBudW1iZXIKKyNkZWZpbmUJSU9TUF9DTURfU1RBVF9CSVQJCTB4ODAJCS8vIElmIHNldCwgdGhpcyBpcyBjb21tYW5kL3N0YXR1cyBoZWFkZXIKKworI2RlZmluZSBJU19DTURfU1RBVF9IRFIoQnl0ZTEpCQkoKEJ5dGUxKSAmIElPU1BfQ01EX1NUQVRfQklUKQorI2RlZmluZSBJU19EQVRBX0hEUihCeXRlMSkJCSghIElTX0NNRF9TVEFUX0hEUihCeXRlMSkpCisKKyNkZWZpbmUJSU9TUF9HRVRfSERSX1BPUlQoQnl0ZTEpCQkoKF9fdTgpICgoQnl0ZTEpICYgSU9TUF9QT1JUX01BU0spKQorI2RlZmluZQlJT1NQX0dFVF9IRFJfREFUQV9MRU4oQnl0ZTEsIEJ5dGUyKQkoKF9fdTE2KSAoICgoX191MTYpKChCeXRlMSkgJiAweDc4KSkgPDwgNSkgfCAoQnl0ZTIpKQorI2RlZmluZQlJT1NQX0dFVF9TVEFUVVNfQ09ERShCeXRlMSkJCSgoX191OCkgKCgoQnl0ZTEpICYgIDB4NzgpID4+IDMpKQorCisKKy8vCisvLyBUaGVzZSBtYWNyb3MgYnVpbGQgdGhlIDFzdCBhbmQgMm5kIGJ5dGVzIGZvciBhIGRhdGEgaGVhZGVyCisvLworI2RlZmluZQlJT1NQX0JVSUxEX0RBVEFfSERSMShQb3J0LCBMZW4pCQkoKF9fdTgpICgoKFBvcnQpIHwgKChfX3U4KSAoKChfX3UxNikgKExlbikpID4+IDUpICYgMHg3OCApKSkpCisjZGVmaW5lCUlPU1BfQlVJTERfREFUQV9IRFIyKFBvcnQsIExlbikJCSgoX191OCkgKExlbikpCisKKworLy8KKy8vIFRoZXNlIG1hY3JvcyBidWlsZCB0aGUgMXN0IGFuZCAybmQgYnl0ZXMgZm9yIGEgY29tbWFuZCBoZWFkZXIKKy8vCisjZGVmaW5lCUlPU1BfQlVJTERfQ01EX0hEUjEoUG9ydCwgQ21kKQkJKChfX3U4KSAoIElPU1BfQ01EX1NUQVRfQklUIHwgKFBvcnQpIHwJKChfX3U4KSAoKENtZCkgPDwgMykpICkpCisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8KKy8vCURlZmluZSB2YWx1ZXMgZm9yIGNvbW1hbmRzIGFuZCBjb21tYW5kIHBhcmFtZXRlcnMKKy8vCShzZW50IGZyb20gSG9zdCB0byBFZGdlcG9ydCkKKy8vCisvLwkxY2NjY1BQUCBQMVAxUDFQMSBbIFAyUDJQMlAyUDIgXS4uLgorLy8KKy8vCWNjY2M6CTAwLTA3CTItYnl0ZSBjb21tYW5kcy4gV3JpdGUgVUFSVCByZWdpc3RlciAwLTcgd2l0aAorLy8JCQkJCXZhbHVlIGluIFAxLiBTZWUgMTY2NTAuSCBmb3IgZGVmaW5pdGlvbnMgb2YKKy8vCQkJCQlVQVJUIHJlZ2lzdGVyIG51bWJlcnMgYW5kIGNvbnRlbnRzLgorLy8KKy8vCQkwOC0wQgkzLWJ5dGUgY29tbWFuZHM6CQkJCQk9PT09IFAxID09PT0JPT09PSBQMiA9PT09CisvLwkJCQkJMDgJYXZhaWxhYmxlIGZvciBleHBhbnNpb24KKy8vCQkJCQkwOQkxLXBhcmFtIGNvbW1hbmRzCQlDb21tYW5kIENvZGUJUGFyYW0KKy8vCQkJCQkwQQlhdmFpbGFibGUgZm9yIGV4cGFuc2lvbgorLy8JCQkJCTBCCWF2YWlsYWJsZSBmb3IgZXhwYW5zaW9uCisvLworLy8JCTBDLTBECTQtYnl0ZSBjb21tYW5kcy4JUDEgPSBleHRlbmRlZCBjbWQgYW5kIFAyLFAzID0gcGFyYW1zCisvLwkJCQkJCUN1cnJlbnRseSB1bmltcGxlbWVudGVkLgorLy8KKy8vCQkwRS0wRglOLWJ5dGUgY29tbWFuZHM6CVAxID0gbnVtIGJ5dGVzIGFmdGVyIFAxIChpZSwgVG90YWxMZW4gLSAyKQorLy8JCQkJCQlQMiA9IGV4dGVuZGVkIGNtZCwgUDMuLlBuID0gcGFyYW1ldGVycy4KKy8vCQkJCQkJQ3VycmVudGx5IHVuaW1wbGVtZW50ZWQuCisvLworCisjZGVmaW5lCUlPU1BfV1JJVEVfVUFSVF9SRUcobikJKChuKSAmIDB4MDcpCS8vIFVhcnRSZWdbIG4gXSA6PSBQMQorCisvLyBSZWdpc3RlciBudW1iZXJzIGFuZCBjb250ZW50cworLy8gZGVmaW5lZCBpbiAxNjU1NC5ILgorCisvLwkJCQkJMHgwOAkJLy8gQXZhaWxhYmxlIGZvciBleHBhbnNpb24uCisjZGVmaW5lCUlPU1BfRVhUX0NNRAkJCTB4MDkJCS8vIFAxID0gQ29tbWFuZCBjb2RlIChkZWZpbmVkIGJlbG93KQorCisvLyBQMiA9IFBhcmFtZXRlcgorCisvLworLy8gRXh0ZW5kZWQgQ29tbWFuZCB2YWx1ZXMsIHVzZWQgd2l0aCBJT1NQX0VYVF9DTUQsIG1heQorLy8gb3IgbWF5IG5vdCB1c2UgcGFyYW1ldGVyIFAyLgorLy8KKworI2RlZmluZQlJT1NQX0NNRF9PUEVOX1BPUlQJCTB4MDAJCS8vIEVuYWJsZSBpbnRzLCBpbml0IFVBUlQuIChOTyBQQVJBTSkKKyNkZWZpbmUJSU9TUF9DTURfQ0xPU0VfUE9SVAkJMHgwMQkJLy8gRGlzYWJsZSBpbnRzLCBmbHVzaCBidWZmZXJzLiAoTk8gUEFSQU0pCisjZGVmaW5lCUlPU1BfQ01EX0NIQVNFX1BPUlQJCTB4MDIJCS8vIFdhaXQgZm9yIEVkZ2Vwb3J0IFRYIGJ1ZmZlcnMgdG8gZW1wdHkuIChOTyBQQVJBTSkKKyNkZWZpbmUgSU9TUF9DTURfU0VUX1JYX0ZMT1cJCTB4MDMJCS8vIFNldCBSeCBGbG93IENvbnRyb2wgaW4gRWRnZXBvcnQKKyNkZWZpbmUgSU9TUF9DTURfU0VUX1RYX0ZMT1cJCTB4MDQJCS8vIFNldCBUeCBGbG93IENvbnRyb2wgaW4gRWRnZXBvcnQKKyNkZWZpbmUgSU9TUF9DTURfU0VUX1hPTl9DSEFSCQkweDA1CQkvLyBTZXQgWE9OIENoYXJhY3RlciBpbiBFZGdlcG9ydAorI2RlZmluZSBJT1NQX0NNRF9TRVRfWE9GRl9DSEFSCQkweDA2CQkvLyBTZXQgWE9GRiBDaGFyYWN0ZXIgaW4gRWRnZXBvcnQKKyNkZWZpbmUgSU9TUF9DTURfUlhfQ0hFQ0tfUkVRCQkweDA3CQkvLyBSZXF1ZXN0IEVkZ2Vwb3J0IHRvIGluc2VydCBhIENoZWNrcG9pbnQgaW50bworCisvLyB0aGUgcmVjZWl2ZSBkYXRhIHN0cmVhbSAoUGFyYW1ldGVyID0gMSBieXRlIHNlcXVlbmNlIG51bWJlcikKKworI2RlZmluZSBJT1NQX0NNRF9TRVRfQlJFQUsJCTB4MDgJCS8vIFR1cm4gb24gdGhlIEJSRUFLIChMQ1IgYml0IDYpCisjZGVmaW5lIElPU1BfQ01EX0NMRUFSX0JSRUFLCQkweDA5CQkvLyBUdXJuIG9mZiB0aGUgQlJFQUsgKExDUiBiaXQgNikKKworCisvLworLy8gRGVmaW5lIG1hY3JvcyB0byBzaW1wbGlmeSBidWlsZGluZyBvZiBJT1NQIGNtZHMKKy8vCisKKyNkZWZpbmUJTUFLRV9DTURfV1JJVEVfUkVHKHBwQnVmLCBwTGVuLCBQb3J0LCBSZWcsIFZhbCkJCQkJCQlcCisJZG8gewkJCQkJCQkJCQkJXAorCQkoKihwcEJ1ZikpWzBdID0gSU9TUF9CVUlMRF9DTURfSERSMSggKFBvcnQpLCBJT1NQX1dSSVRFX1VBUlRfUkVHKFJlZykgKTsJXAorCQkoKihwcEJ1ZikpWzFdID0gKFZhbCk7CQkJCQkJCQlcCisJCQkJCQkJCQkJCQlcCisJCSpwcEJ1ZiArPSAyOwkJCQkJCQkJCVwKKwkJKnBMZW4gICs9IDI7CQkJCQkJCQkJXAorCX0gd2hpbGUgKDApCisKKyNkZWZpbmUJTUFLRV9DTURfRVhUX0NNRChwcEJ1ZiwgcExlbiwgUG9ydCwgRXh0Q21kLCBQYXJhbSkJCQkJCVwKKwlkbyB7CQkJCQkJCQkJCQlcCisJCSgqKHBwQnVmKSlbMF0gPSBJT1NQX0JVSUxEX0NNRF9IRFIxKCAoUG9ydCksIElPU1BfRVhUX0NNRCApOwkJCVwKKwkJKCoocHBCdWYpKVsxXSA9IChFeHRDbWQpOwkJCQkJCQlcCisJCSgqKHBwQnVmKSlbMl0gPSAoUGFyYW0pOwkJCQkJCQlcCisJCQkJCQkJCQkJCQlcCisJCSpwcEJ1ZiArPSAzOwkJCQkJCQkJCVwKKwkJKnBMZW4gICs9IDM7CQkJCQkJCQkJXAorCX0gd2hpbGUgKDApCisKKworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8JRGVmaW5lIGZvcm1hdCBvZiBmbG93IGNvbnRyb2wgY29tbWFuZHMKKy8vCShzZW50IGZyb20gSG9zdCB0byBFZGdlcG9ydCkKKy8vCisvLwkxMTAwMVBQUCBGbG93Q21kIEZsb3dUeXBlcworLy8KKy8vCU5vdGUgdGhhdCB0aGUgJ0Zsb3dUeXBlcycgcGFyYW1ldGVyIGlzIGEgYml0IG1hc2s7IHRoYXQgaXMsCisvLwltb3JlIHRoYW4gb25lIGZsb3cgY29udHJvbCB0eXBlIGNhbiBiZSBhY3RpdmUgYXQgdGhlIHNhbWUgdGltZS4KKy8vCUZsb3dUeXBlcyA9IDAgbWVhbnMgJ25vIGZsb3cgY29udHJvbCcuCisvLworCisvLworLy8JSU9TUF9DTURfU0VUX1JYX0ZMT1cKKy8vCisvLwlUZWxscyBFZGdlcG9ydCBob3cgaXQgY2FuIHN0b3AgaW5jb21pbmcgVUFSVCBkYXRhCisvLworLy8gIEV4YW1wbGUgZm9yIFBvcnQgMAorLy8JUDAgPSAxMTAwMTAwMAorLy8gIFAxID0gSU9TUF9DTURfU0VUX1JYX0ZMT1cKKy8vICBQMiA9IEJpdCBtYXNrIGFzIGZvbGxvd3M6CisKKyNkZWZpbmUgSU9TUF9SWF9GTE9XX1JUUwkJMHgwMQkvLyBFZGdlcG9ydCBkcm9wcyBSVFMgdG8gc3RvcCBpbmNvbWluZyBkYXRhCisjZGVmaW5lIElPU1BfUlhfRkxPV19EVFIJCTB4MDIJLy8gRWRnZXBvcnQgZHJvcHMgRFRSIHRvIHN0b3AgaW5jb21pbmcgZGF0YQorI2RlZmluZSBJT1NQX1JYX0ZMT1dfRFNSX1NFTlNJVElWSVRZCTB4MDQJLy8gSWdub3JlcyBSeCBkYXRhIHVubGVzcyBEU1IgaGlnaAorCisvLyBOb3QgY3VycmVudGx5IGltcGxlbWVudGVkIGJ5IGZpcm13YXJlLgorI2RlZmluZSBJT1NQX1JYX0ZMT1dfWE9OX1hPRkYJCTB4MDgJLy8gRWRnZXBvcnQgc2VuZHMgWE9GRiBjaGFyIHRvIHN0b3AgaW5jb21pbmcgZGF0YS4KKworLy8gSG9zdCBtdXN0IGhhdmUgcHJldmlvdXNseSBwcm9ncmFtbWVkIHRoZQorLy8gWE9OL1hPRkYgdmFsdWVzIHdpdGggU0VUX1hPTi9TRVRfWE9GRgorLy8gYmVmb3JlIGVuYWJsaW5nIHRoaXMgYml0LgorCisvLworLy8JSU9TUF9DTURfU0VUX1RYX0ZMT1cKKy8vCisvLwlUZWxscyBFZGdlcG9ydCB3aGF0IHNpZ25hbChzKSB3aWxsIHN0b3AgaXQgZnJvbSB0cmFuc21pdHRpbmcgVUFSVCBkYXRhCisvLworLy8gIEV4YW1wbGUgZm9yIFBvcnQgMAorLy8JUDAgPSAxMTAwMTAwMAorLy8gIFAxID0gSU9TUF9DTURfU0VUX1RYX0ZMT1cKKy8vICBQMiA9IEJpdCBtYXNrIGFzIGZvbGxvd3M6CisKKyNkZWZpbmUgSU9TUF9UWF9GTE9XX0NUUwkJMHgwMQkvLyBFZGdlcG9ydCBzdG9wcyBUeCBpZiBDVFMgbG93CisjZGVmaW5lIElPU1BfVFhfRkxPV19EU1IJCTB4MDIJLy8gRWRnZXBvcnQgc3RvcHMgVHggaWYgRFNSIGxvdworI2RlZmluZSBJT1NQX1RYX0ZMT1dfRENECQkweDA0CS8vIEVkZ2Vwb3J0IHN0b3BzIFR4IGlmIERDRCBsb3cKKyNkZWZpbmUgSU9TUF9UWF9GTE9XX1hPTl9YT0ZGCQkweDA4CS8vIEVkZ2Vwb3J0IHN0b3BzIFR4IHVwb24gcmVjZWl2aW5nIFhPRkYgY2hhci4KKworLy8gSG9zdCBtdXN0IGhhdmUgcHJldmlvdXNseSBwcm9ncmFtbWVkIHRoZQorLy8gWE9OL1hPRkYgdmFsdWVzIHdpdGggU0VUX1hPTi9TRVRfWE9GRgorLy8gYmVmb3JlIGVuYWJsaW5nIHRoaXMgYml0LgorI2RlZmluZSBJT1NQX1RYX0ZMT1dfWE9GRl9DT05USU5VRQkweDEwCS8vIElmIG5vdCBzZXQsIEVkZ2Vwb3J0IHN0b3BzIFR4IHdoZW4KKworLy8gc2VuZGluZyBYT0ZGIGluIG9yZGVyIHRvIGZpeCBicm9rZW4KKy8vIHN5c3RlbXMgdGhhdCBpbnRlcnByZXQgdGhlIG5leHQKKy8vIHJlY2VpdmVkIGNoYXIgYXMgWE9OLgorLy8gSWYgc2V0LCBFZGdlcG9ydCBjb250aW51ZXMgVHgKKy8vIG5vcm1hbGx5IGFmdGVyIHRyYW5zbWl0dGluZyBYT0ZGLgorLy8gTm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZCBieSBmaXJtd2FyZS4KKyNkZWZpbmUgSU9TUF9UWF9UT0dHTEVfUlRTCQkweDIwCS8vIEVkZ2Vwb3J0IGRyaXZlcyBSVFMgYXMgYSB0cnVlIGhhbGYtZHVwbGV4CisKKy8vIFJlcXVlc3QtdG8tU2VuZCBzaWduYWw6IGl0IGlzIHJhaXNlZCBiZWZvcmUKKy8vIGJlZ2lubmluZyB0cmFuc21pc3Npb24gYW5kIGxvd2VyZWQgYWZ0ZXIKKy8vIHRoZSBsYXN0IFR4IGNoYXIgbGVhdmVzIHRoZSBVQVJULgorLy8gTm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZCBieSBmaXJtd2FyZS4KKworLy8KKy8vCUlPU1BfQ01EX1NFVF9YT05fQ0hBUgorLy8KKy8vCVNldHMgdGhlIGNoYXJhY3RlciB3aGljaCBFZGdlcG9ydCB0cmFuc21pdHMvaW50ZXJwcmV0cyBhcyBYT04uCisvLwlOb3RlOiBUaGlzIGNvbW1hbmQgTVVTVCBiZSBzZW50IGJlZm9yZSBzZW5kaW5nIGEgU0VUX1JYX0ZMT1cgb3IKKy8vCVNFVF9UWF9GTE9XIHdpdGggdGhlIFhPTl9YT0ZGIGJpdCBzZXQuCisvLworLy8gIEV4YW1wbGUgZm9yIFBvcnQgMAorLy8JUDAgPSAxMTAwMTAwMAorLy8gIFAxID0gSU9TUF9DTURfU0VUX1hPTl9DSEFSCisvLyAgUDIgPSAweDExCisKKworLy8KKy8vCUlPU1BfQ01EX1NFVF9YT0ZGX0NIQVIKKy8vCisvLwlTZXRzIHRoZSBjaGFyYWN0ZXIgd2hpY2ggRWRnZXBvcnQgdHJhbnNtaXRzL2ludGVycHJldHMgYXMgWE9GRi4KKy8vCU5vdGU6IFRoaXMgY29tbWFuZCBtdXN0IGJlIHNlbnQgYmVmb3JlIHNlbmRpbmcgYSBTRVRfUlhfRkxPVyBvcgorLy8JU0VUX1RYX0ZMT1cgd2l0aCB0aGUgWE9OX1hPRkYgYml0IHNldC4KKy8vCisvLyAgRXhhbXBsZSBmb3IgUG9ydCAwCisvLwlQMCA9IDExMDAxMDAwCisvLyAgUDEgPSBJT1NQX0NNRF9TRVRfWE9GRl9DSEFSCisvLyAgUDIgPSAweDEzCisKKworLy8KKy8vCUlPU1BfQ01EX1JYX0NIRUNLX1JFUQorLy8KKy8vICBUaGlzIGNvbW1hbmQgaXMgdXNlZCB0byBhc3Npc3QgaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSAKKy8vICBJT0NUTF9TRVJJQUxfUFVSR0UgV2luZG93cyBJT0NUTC4gIAorLy8gIFRoaXMgSU9TUCBjb21tYW5kIHRyaWVzIHRvIHBsYWNlIGEgbWFya2VyIGF0IHRoZSBlbmQgb2YgdGhlIFJYIAorLy8gIHF1ZXVlIGluIHRoZSBFZGdlcG9ydC4gSWYgdGhlIEVkZ2Vwb3J0IFJYIHF1ZXVlIGlzIGZ1bGwgdGhlbiAKKy8vICB0aGUgQ2hlY2sgd2lsbCBiZSBkaXNjYXJkZWQuICAKKy8vICBJdCBpcyB1cCB0byB0aGUgZGV2aWNlIGRyaXZlciB0byB0aW1lb3V0IHdhaXRpbmcgZm9yIHRoZSAKKy8vICBSWF9DSEVDS19SU1AuICBJZiBhIFJYX0NIRUNLX1JTUCBpcyByZWNlaXZlZCwgdGhlIGRyaXZlciBpcyAKKy8vCXN1cmUgdGhhdCBhbGwgZGF0YSBoYXMgYmVlbiByZWNlaXZlZCBmcm9tIHRoZSBlZGdlcG9ydCBhbmQgCisvLwltYXkgbm93IHB1cmdlIGFueSBpbnRlcm5hbCBSWCBidWZmZXJzLgorLy8gIE5vdGUgdGF0IHRoZSBzZXF1ZW5jZSBudW1iZXJzIG1heSBiZSB1c2VkIHRvIGRldGVjdCBsb3N0IAorLy8gIENIRUNLX1JFUXMuCisKKy8vICBFeGFtcGxlIGZvciBQb3J0IDAKKy8vCVAwID0gMTEwMDEwMDAKKy8vICBQMSA9IElPU1BfQ01EX1JYX0NIRUNLX1JFUQorLy8gIFAyID0gU2VxdWVuY2UgbnVtYmVyCisKKworLy8gIFJlc3BvbnNlIHdpbGwgYmU6CisvLyAgUDEgPSBJT1NQX0VYVF9SWF9DSEVDS19SU1AKKy8vICBQMiA9IFJlcXVlc3QgU2VxdWVuY2UgbnVtYmVyCisKKworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8JRGVmaW5lIHZhbHVlcyBmb3Igc3RhdHVzIGFuZCBzdGF0dXMgcGFyYW1ldGVycworLy8JKHJlY2VpdmVkIGJ5IEhvc3QgZnJvbSBFZGdlcG9ydCkKKy8vCisvLwkxc3Nzc1BQUCBQMVAxUDFQMSBbIFAyUDJQMlAyUDIgXS4uLgorLy8KKy8vIAlzc3NzOgkwMC0wNwkyLWJ5dGUgc3RhdHVzLglzc3NzIGlkZW50aWZpZXMgd2hpY2ggVUFSVCByZWdpc3RlcgorLy8JCQkJCWhhcyBjaGFuZ2VkIHZhbHVlLCBhbmQgdGhlIG5ldyB2YWx1ZSBpcyBpbiBQMS4KKy8vCQkJCQlOb3RlIHRoYXQgdGhlIHNzc3MgdmFsdWVzIGRvIG5vdCBjb3JyZXNwb25kIHRvIHRoZQorLy8JCQkJCTE2NTU0IHJlZ2lzdGVyIG51bWJlcnMgZ2l2ZW4gaW4gMTY1NTQuSC4gSW5zdGVhZCwKKy8vCQkJCQlzZWUgYmVsb3cgZm9yIGRlZmluaXRpb25zIG9mIHRoZSBzc3NzIG51bWJlcnMKKy8vCQkJCQl1c2VkIGluIHRoaXMgc3RhdHVzIG1lc3NhZ2UuCisvLworLy8JCTA4LTBCCTMtYnl0ZSBzdGF0dXM6CQkJCQk9PT09IFAxID09PT0JPT09PSBQMiA9PT09CisvLwkJCQkJMDgJTFNSX0RBVEE6CQlOZXcgTFNSCQlFcnJvcmVkIGJ5dGUKKy8vCQkJCQkwOQkxLXBhcmFtIHJlc3BvbnNlcwlSZXNwb25zZSBDb2RlCVBhcmFtCisvLwkJCQkJMEEJT1BFTl9SU1A6CQlJbml0aWFsTXNyCVR4QnVmZmVyU2l6ZQorLy8JCQkJCTBCCWF2YWlsYWJsZSBmb3IgZXhwYW5zaW9uCisvLworLy8JCTBDLTBECTQtYnl0ZSBzdGF0dXMuCVAxID0gZXh0ZW5kZWQgc3RhdHVzIGNvZGUgYW5kIFAyLFAzID0gcGFyYW1zCisvLwkJCQkJTm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZC4KKy8vCisvLwkJMEUtMEYJTi1ieXRlIHN0YXR1czoJUDEgPSBudW0gYnl0ZXMgYWZ0ZXIgUDEgKGllLCBUb3RhbExlbiAtIDIpCisvLwkJCQkJUDIgPSBleHRlbmRlZCBzdGF0dXMsIFAzLi5QbiA9IHBhcmFtZXRlcnMuCisvLwkJCQkJTm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZC4KKy8vCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKglTU1NTIHZhbHVlcyBmb3IgMi1ieXRlIHN0YXR1cyBtZXNzYWdlcyAoMC04KQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUJSU9TUF9TVEFUVVNfTFNSCQkJMHgwMAkvLyBQMSBpcyBuZXcgdmFsdWUgb2YgTFNSIHJlZ2lzdGVyLgorCisvLyBCaXRzIGRlZmluZWQgaW4gMTY1NTQuSC4gRWRnZXBvcnQKKy8vIHJldHVybnMgdGhpcyBpbiBvcmRlciB0byByZXBvcnQKKy8vIGxpbmUgc3RhdHVzIGVycm9ycyAob3ZlcnJ1biwKKy8vIHBhcml0eSwgZnJhbWluZywgYnJlYWspLiBUaGlzIGZvcm0KKy8vIGlzIHVzZWQgd2hlbiBhIGVycm9yZWQgcmVjZWl2ZSBkYXRhCisvLyBjaGFyYWN0ZXIgd2FzIE5PVCBwcmVzZW50IGluIHRoZQorLy8gVUFSVCB3aGVuIHRoZSBMU1IgZXJyb3Igb2NjdXJyZWQKKy8vIChpZSwgd2hlbiBMU1IgYml0IDAgPSAwKS4KKworI2RlZmluZQlJT1NQX1NUQVRVU19NU1IJCQkweDAxCS8vIFAxIGlzIG5ldyB2YWx1ZSBvZiBNU1IgcmVnaXN0ZXIuCisKKy8vIEJpdHMgZGVmaW5lZCBpbiAxNjU1NC5ILiBFZGdlcG9ydAorLy8gcmV0dXJucyB0aGlzIGluIG9yZGVyIHRvIHJlcG9ydAorLy8gY2hhbmdlcyBpbiBtb2RlbSBzdGF0dXMgbGluZXMKKy8vIChDVFMsIERTUiwgUkksIENEKQorLy8gCisKKy8vCQkJCQkweDAyCS8vIEF2YWlsYWJsZSBmb3IgZnV0dXJlIGV4cGFuc2lvbgorLy8JCQkJCTB4MDMJLy8gCisvLwkJCQkJMHgwNAkvLyAKKy8vCQkJCQkweDA1CS8vIAorLy8JCQkJCTB4MDYJLy8gCisvLwkJCQkJMHgwNwkvLyAKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJU1NTUyB2YWx1ZXMgZm9yIDMtYnl0ZSBzdGF0dXMgbWVzc2FnZXMgKDgtQSkKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lCUlPU1BfU1RBVFVTX0xTUl9EQVRBCQkweDA4CS8vIFAxIGlzIG5ldyB2YWx1ZSBvZiBMU1IgcmVnaXN0ZXIgKHNhbWUgYXMgU1RBVFVTX0xTUikKKworLy8gUDIgaXMgZXJyb3JlZCBjaGFyYWN0ZXIgcmVhZCBmcm9tCisvLyAgICBSeEZJRk8gYWZ0ZXIgTFNSIHJlcG9ydGVkIGFuIGVycm9yLgkJCQkJCQkJCQkJCQkKKworI2RlZmluZQlJT1NQX0VYVF9TVEFUVVMJCQkweDA5CS8vIFAxIGlzIHN0YXR1cy9yZXNwb25zZSBjb2RlLCBwYXJhbSBpbiBQMi4KKworCisvLyBSZXNwb25zZSBDb2RlcyAoUDEgdmFsdWVzKSBmb3IgMy1ieXRlIHN0YXR1cyBtZXNzYWdlcworCisjZGVmaW5lCUlPU1BfRVhUX1NUQVRVU19DSEFTRV9SU1AJMAkvLyBSZXBseSB0byBDSEFTRV9QT1JUIGNtZC4gUDIgaXMgb3V0Y29tZToKKyNkZWZpbmUJSU9TUF9FWFRfU1RBVFVTX0NIQVNFX1BBU1MJMAkvLyAJUDIgPSAwOiBBbGwgVHggZGF0YSBkcmFpbmVkIHN1Y2Nlc3NmdWxseQorI2RlZmluZQlJT1NQX0VYVF9TVEFUVVNfQ0hBU0VfRkFJTAkxCS8vCVAyID0gMTogVGltZWQgb3V0IChzdHVjayBkdWUgdG8gZmxvdworCisvLwkJCWNvbnRyb2wgZnJvbSByZW1vdGUgZGV2aWNlKS4KKworI2RlZmluZQlJT1NQX0VYVF9TVEFUVVNfUlhfQ0hFQ0tfUlNQCTEJLy8gUmVwbHkgdG8gUlhfQ0hFQ0sgY21kLiBQMiBpcyBzZXF1ZW5jZSBudW1iZXIKKworCisjZGVmaW5lIElPU1BfU1RBVFVTX09QRU5fUlNQCQkweDBBCS8vIFJlcGx5IHRvIE9QRU5fUE9SVCBjbWQuCisKKy8vIFAxIGlzIEluaXRpYWwgTVNSIHZhbHVlCisvLyBQMiBpcyBlbmNvZGVkIFR4QnVmZmVyIFNpemU6CisvLwlUeEJ1ZmZlclNpemUgPSAoUDIgKyAxKSAqIDY0CisKKy8vCQkJCQkweDBCCS8vIEF2YWlsYWJsZSBmb3IgZnV0dXJlIGV4cGFuc2lvbgorCisjZGVmaW5lIEdFVF9UWF9CVUZGRVJfU0laRShQMikgKCgoUDIpICsgMSkgKiA2NCkKKworCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCVNTU1MgdmFsdWVzIGZvciA0LWJ5dGUgc3RhdHVzIG1lc3NhZ2VzCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBJT1NQX0VYVDRfU1RBVFVTCQkweDBDCS8vIEV4dGVuZGVkIHN0YXR1cyBjb2RlIGluIFAxLAorCisvLyBQYXJhbXMgaW4gUDIsIFAzCisvLyBDdXJyZW50bHkgdW5pbXBsZW1lbnRlZC4KKworLy8JCQkJCTB4MEQJLy8gQ3VycmVudGx5IHVudXNlZCwgYXZhaWxhYmxlLgorCisKKworLy8KKy8vIE1hY3JvcyB0byBwYXJzZSBzdGF0dXMgbWVzc2FnZXMKKy8vCisKKyNkZWZpbmUJSU9TUF9HRVRfU1RBVFVTX0xFTihjb2RlKQkoIChjb2RlKSA8IDggPyAyIDogKChjb2RlKSA8IDB4MEEgPyAzIDogNCkgKQorCisjZGVmaW5lCUlPU1BfU1RBVFVTX0lTXzJCWVRFKGNvZGUpCSggKGNvZGUpIDwgMHgwOCApCisjZGVmaW5lCUlPU1BfU1RBVFVTX0lTXzNCWVRFKGNvZGUpCSggKChjb2RlKSA+PSAweDA4KSAmJiAoKGNvZGUpIDw9IDB4MEIpICkKKyNkZWZpbmUJSU9TUF9TVEFUVVNfSVNfNEJZVEUoY29kZSkJKCAoKGNvZGUpID49IDB4MEMpICYmICgoY29kZSkgPD0gMHgwRCkgKQorCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fdGFibGVzLmggYi9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fdGFibGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTdmZmUwMgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pb190YWJsZXMuaApAQCAtMCwwICsxLDE2MyBAQAorLyoKKyAqIElPIEVkZ2Vwb3J0IERyaXZlciB0YWJsZXMKKyAqCisgKglDb3B5cmlnaHQgKEMpIDIwMDEKKyAqCSAgICBHcmVnIEtyb2FoLUhhcnRtYW4gKGdyZWdAa3JvYWguY29tKQorICoKKyAqCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKglpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICoJdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqCShhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiAKKyAqLworCisjaWZuZGVmIElPX1RBQkxFU19ICisjZGVmaW5lIElPX1RBQkxFU19ICisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBlZGdlcG9ydF8ycG9ydF9pZF90YWJsZSBbXSA9IHsKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfRURHRVBPUlRfMikgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfRURHRVBPUlRfMkkpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX0VER0VQT1JUXzQyMSkgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfRURHRVBPUlRfMjEpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX0VER0VQT1JUXzJfRElOKSB9LAorCXsgfQorfTsKKworc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGVkZ2Vwb3J0XzRwb3J0X2lkX3RhYmxlIFtdID0geworCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9FREdFUE9SVF80KSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9SQVBJRFBPUlRfNCkgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfRURHRVBPUlRfNFQpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX01UNFg1NlVTQikgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfRURHRVBPUlRfNEkpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX0VER0VQT1JUXzhfRFVBTF9DUFUpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX0VER0VQT1JUXzRfRElOKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9FREdFUE9SVF8yMkkpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX0VER0VQT1JUXzQxMl80KSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9FREdFUE9SVF9DT01QQVRJQkxFKSB9LAorCXsgfQorfTsKKworc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGVkZ2Vwb3J0Xzhwb3J0X2lkX3RhYmxlIFtdID0geworCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9FREdFUE9SVF84KSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9FREdFUE9SVF8xNl9EVUFMX0NQVSkgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfRURHRVBPUlRfOEkpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX0VER0VQT1JUXzhSKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9FREdFUE9SVF84UlIpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX0VER0VQT1JUXzQxMl84KSB9LAorCXsgfQorfTsKKworLyogRGV2aWNlcyB0aGF0IHRoaXMgZHJpdmVyIHN1cHBvcnRzICovCitzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgaWRfdGFibGVfY29tYmluZWQgW10gPSB7CisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLAlJT05fREVWSUNFX0lEX0VER0VQT1JUXzQpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLAlJT05fREVWSUNFX0lEX1JBUElEUE9SVF80KSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwJSU9OX0RFVklDRV9JRF9FREdFUE9SVF80VCkgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfTVQ0WDU2VVNCKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwJSU9OX0RFVklDRV9JRF9FREdFUE9SVF8yKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwJSU9OX0RFVklDRV9JRF9FREdFUE9SVF80SSkgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sCUlPTl9ERVZJQ0VfSURfRURHRVBPUlRfMkkpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLAlJT05fREVWSUNFX0lEX0VER0VQT1JUXzQyMSkgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sCUlPTl9ERVZJQ0VfSURfRURHRVBPUlRfMjEpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLAlJT05fREVWSUNFX0lEX0VER0VQT1JUXzhfRFVBTF9DUFUpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLAlJT05fREVWSUNFX0lEX0VER0VQT1JUXzgpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLAlJT05fREVWSUNFX0lEX0VER0VQT1JUXzJfRElOKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwJSU9OX0RFVklDRV9JRF9FREdFUE9SVF80X0RJTikgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sCUlPTl9ERVZJQ0VfSURfRURHRVBPUlRfMTZfRFVBTF9DUFUpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX0VER0VQT1JUXzIySSkgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfRURHRVBPUlRfNDEyXzQpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLAlJT05fREVWSUNFX0lEX0VER0VQT1JUX0NPTVBBVElCTEUpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLAlJT05fREVWSUNFX0lEX0VER0VQT1JUXzhJKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9FREdFUE9SVF84UikgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfRURHRVBPUlRfOFJSKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9FREdFUE9SVF80MTJfOCkgfSwKKwl7IH0JCQkJCQkJLyogVGVybWluYXRpbmcgZW50cnkgKi8KK307CisKK01PRFVMRV9ERVZJQ0VfVEFCTEUgKHVzYiwgaWRfdGFibGVfY29tYmluZWQpOworCitzdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUgZWRnZXBvcnRfMnBvcnRfZGV2aWNlID0geworCS5vd25lcgkJCT0gVEhJU19NT0RVTEUsCisJLm5hbWUJCQk9ICJFZGdlcG9ydCAyIHBvcnQgYWRhcHRlciIsCisJLnNob3J0X25hbWUJCT0gImVkZ2Vwb3J0XzIiLAorCS5pZF90YWJsZQkJPSBlZGdlcG9ydF8ycG9ydF9pZF90YWJsZSwKKwkubnVtX2ludGVycnVwdF9pbgk9IDEsCisJLm51bV9idWxrX2luCQk9IDEsCisJLm51bV9idWxrX291dAkJPSAxLAorCS5udW1fcG9ydHMJCT0gMiwKKwkub3BlbgkJCT0gZWRnZV9vcGVuLAorCS5jbG9zZQkJCT0gZWRnZV9jbG9zZSwKKwkudGhyb3R0bGUJCT0gZWRnZV90aHJvdHRsZSwKKwkudW50aHJvdHRsZQkJPSBlZGdlX3VudGhyb3R0bGUsCisJLmF0dGFjaAkJCT0gZWRnZV9zdGFydHVwLAorCS5zaHV0ZG93bgkJPSBlZGdlX3NodXRkb3duLAorCS5pb2N0bAkJCT0gZWRnZV9pb2N0bCwKKwkuc2V0X3Rlcm1pb3MJCT0gZWRnZV9zZXRfdGVybWlvcywKKwkudGlvY21nZXQJCT0gZWRnZV90aW9jbWdldCwKKwkudGlvY21zZXQJCT0gZWRnZV90aW9jbXNldCwKKwkud3JpdGUJCQk9IGVkZ2Vfd3JpdGUsCisJLndyaXRlX3Jvb20JCT0gZWRnZV93cml0ZV9yb29tLAorCS5jaGFyc19pbl9idWZmZXIJPSBlZGdlX2NoYXJzX2luX2J1ZmZlciwKKwkuYnJlYWtfY3RsCQk9IGVkZ2VfYnJlYWssCisJLnJlYWRfaW50X2NhbGxiYWNrCT0gZWRnZV9pbnRlcnJ1cHRfY2FsbGJhY2ssCisJLnJlYWRfYnVsa19jYWxsYmFjawk9IGVkZ2VfYnVsa19pbl9jYWxsYmFjaywKKwkud3JpdGVfYnVsa19jYWxsYmFjawk9IGVkZ2VfYnVsa19vdXRfZGF0YV9jYWxsYmFjaywKK307CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kZXZpY2VfdHlwZSBlZGdlcG9ydF80cG9ydF9kZXZpY2UgPSB7CisJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKKwkubmFtZQkJCT0gIkVkZ2Vwb3J0IDQgcG9ydCBhZGFwdGVyIiwKKwkuc2hvcnRfbmFtZQkJPSAiZWRnZXBvcnRfNCIsCisJLmlkX3RhYmxlCQk9IGVkZ2Vwb3J0XzRwb3J0X2lkX3RhYmxlLAorCS5udW1faW50ZXJydXB0X2luCT0gMSwKKwkubnVtX2J1bGtfaW4JCT0gMSwKKwkubnVtX2J1bGtfb3V0CQk9IDEsCisJLm51bV9wb3J0cwkJPSA0LAorCS5vcGVuCQkJPSBlZGdlX29wZW4sCisJLmNsb3NlCQkJPSBlZGdlX2Nsb3NlLAorCS50aHJvdHRsZQkJPSBlZGdlX3Rocm90dGxlLAorCS51bnRocm90dGxlCQk9IGVkZ2VfdW50aHJvdHRsZSwKKwkuYXR0YWNoCQkJPSBlZGdlX3N0YXJ0dXAsCisJLnNodXRkb3duCQk9IGVkZ2Vfc2h1dGRvd24sCisJLmlvY3RsCQkJPSBlZGdlX2lvY3RsLAorCS5zZXRfdGVybWlvcwkJPSBlZGdlX3NldF90ZXJtaW9zLAorCS50aW9jbWdldAkJPSBlZGdlX3Rpb2NtZ2V0LAorCS50aW9jbXNldAkJPSBlZGdlX3Rpb2Ntc2V0LAorCS53cml0ZQkJCT0gZWRnZV93cml0ZSwKKwkud3JpdGVfcm9vbQkJPSBlZGdlX3dyaXRlX3Jvb20sCisJLmNoYXJzX2luX2J1ZmZlcgk9IGVkZ2VfY2hhcnNfaW5fYnVmZmVyLAorCS5icmVha19jdGwJCT0gZWRnZV9icmVhaywKKwkucmVhZF9pbnRfY2FsbGJhY2sJPSBlZGdlX2ludGVycnVwdF9jYWxsYmFjaywKKwkucmVhZF9idWxrX2NhbGxiYWNrCT0gZWRnZV9idWxrX2luX2NhbGxiYWNrLAorCS53cml0ZV9idWxrX2NhbGxiYWNrCT0gZWRnZV9idWxrX291dF9kYXRhX2NhbGxiYWNrLAorfTsKKworc3RhdGljIHN0cnVjdCB1c2Jfc2VyaWFsX2RldmljZV90eXBlIGVkZ2Vwb3J0Xzhwb3J0X2RldmljZSA9IHsKKwkub3duZXIJCQk9IFRISVNfTU9EVUxFLAorCS5uYW1lCQkJPSAiRWRnZXBvcnQgOCBwb3J0IGFkYXB0ZXIiLAorCS5zaG9ydF9uYW1lCQk9ICJlZGdlcG9ydF84IiwKKwkuaWRfdGFibGUJCT0gZWRnZXBvcnRfOHBvcnRfaWRfdGFibGUsCisJLm51bV9pbnRlcnJ1cHRfaW4JPSAxLAorCS5udW1fYnVsa19pbgkJPSAxLAorCS5udW1fYnVsa19vdXQJCT0gMSwKKwkubnVtX3BvcnRzCQk9IDgsCisJLm9wZW4JCQk9IGVkZ2Vfb3BlbiwKKwkuY2xvc2UJCQk9IGVkZ2VfY2xvc2UsCisJLnRocm90dGxlCQk9IGVkZ2VfdGhyb3R0bGUsCisJLnVudGhyb3R0bGUJCT0gZWRnZV91bnRocm90dGxlLAorCS5hdHRhY2gJCQk9IGVkZ2Vfc3RhcnR1cCwKKwkuc2h1dGRvd24JCT0gZWRnZV9zaHV0ZG93biwKKwkuaW9jdGwJCQk9IGVkZ2VfaW9jdGwsCisJLnNldF90ZXJtaW9zCQk9IGVkZ2Vfc2V0X3Rlcm1pb3MsCisJLnRpb2NtZ2V0CQk9IGVkZ2VfdGlvY21nZXQsCisJLnRpb2Ntc2V0CQk9IGVkZ2VfdGlvY21zZXQsCisJLndyaXRlCQkJPSBlZGdlX3dyaXRlLAorCS53cml0ZV9yb29tCQk9IGVkZ2Vfd3JpdGVfcm9vbSwKKwkuY2hhcnNfaW5fYnVmZmVyCT0gZWRnZV9jaGFyc19pbl9idWZmZXIsCisJLmJyZWFrX2N0bAkJPSBlZGdlX2JyZWFrLAorCS5yZWFkX2ludF9jYWxsYmFjawk9IGVkZ2VfaW50ZXJydXB0X2NhbGxiYWNrLAorCS5yZWFkX2J1bGtfY2FsbGJhY2sJPSBlZGdlX2J1bGtfaW5fY2FsbGJhY2ssCisJLndyaXRlX2J1bGtfY2FsbGJhY2sJPSBlZGdlX2J1bGtfb3V0X2RhdGFfY2FsbGJhY2ssCit9OworCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX3RpLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fdGkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Yzk2ZmRhCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lvX3RpLmMKQEAgLTAsMCArMSwzMDkxIEBACisvKgorICogRWRnZXBvcnQgVVNCIFNlcmlhbCBDb252ZXJ0ZXIgZHJpdmVyCisgKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDIgSW5zaWRlIE91dCBOZXR3b3JrcywgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDAyIEdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ0Brcm9haC5jb20+CisgKgorICoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqCWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKgl0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICoJKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBTdXBwb3J0cyB0aGUgZm9sbG93aW5nIGRldmljZXM6CisgKglFUC8xIEVQLzIgRVAvNCBFUC8yMSBFUC8yMiBFUC8yMjEgRVAvNDIgRVAvNDIxIFdBVENIUE9SVAorICoKKyAqIEZvciBxdWVzdGlvbnMgb3IgcHJvYmxlbXMgd2l0aCB0aGlzIGRyaXZlciwgY29udGFjdCBJbnNpZGUgT3V0CisgKiBOZXR3b3JrcyB0ZWNobmljYWwgc3VwcG9ydCwgb3IgUGV0ZXIgQmVyZ2VyIDxwYmVyZ2VyQGJyaW1zb24uY29tPiwKKyAqIG9yIEFsIEJvcmNoZXJzIDxhbGJvcmNoZXJzQHN0ZWluZXJwb2ludC5jb20+LgorICoKKyAqIFZlcnNpb24gaGlzdG9yeToKKyAqCisgKglKdWx5IDExLCAyMDAyIAlSZW1vdmVkIDQgcG9ydCBkZXZpY2Ugc3RydWN0dXJlIHNpbmNlIGFsbCBUSSBVTVAgCisgKgkJCWNoaXBzIGhhdmUgb25seSAyIHBvcnRzIAorICoJCQlEYXZpZCBJYWNvdmVsbGkgKGRhdmlkaUBpb25ldHdvcmtzLmNvbSkKKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvdHR5Lmg+CisjaW5jbHVkZSA8bGludXgvdHR5X2RyaXZlci5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eV9mbGlwLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpYWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pb2N0bC5oPgorI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CisjaW5jbHVkZSA8YXNtL3NlbWFwaG9yZS5oPgorI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgorCisjaW5jbHVkZSAidXNiLXNlcmlhbC5oIgorI2luY2x1ZGUgImlvXzE2NjU0LmgiCisjaW5jbHVkZSAiaW9fdXNidmVuZC5oIgorI2luY2x1ZGUgImlvX3RpLmgiCisKKy8qCisgKiBWZXJzaW9uIEluZm9ybWF0aW9uCisgKi8KKyNkZWZpbmUgRFJJVkVSX1ZFUlNJT04gInYwLjciCisjZGVmaW5lIERSSVZFUl9BVVRIT1IgIkdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ0Brcm9haC5jb20+IGFuZCBEYXZpZCBJYWNvdmVsbGkiCisjZGVmaW5lIERSSVZFUl9ERVNDICJFZGdlcG9ydCBVU0IgU2VyaWFsIERyaXZlciIKKworCisvKiBmaXJtd2FyZSBpbWFnZSBjb2RlICovCisjZGVmaW5lIElNQUdFX1ZFUlNJT05fTkFNRQlQYWdhYmxlT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uCisjZGVmaW5lIElNQUdFX0FSUkFZX05BTUUJUGFnYWJsZU9wZXJhdGlvbmFsQ29kZUltYWdlCisjZGVmaW5lIElNQUdFX1NJWkUJCVBhZ2FibGVPcGVyYXRpb25hbENvZGVTaXplCisjaW5jbHVkZSAiaW9fZndfZG93bjMuaCIJLyogRGVmaW5lIGFycmF5IE9wZXJhdGlvbmFsQ29kZUltYWdlW10gKi8KKworI2RlZmluZSBFUFJPTV9QQUdFX1NJWkUJCTY0CisKKworc3RydWN0IGVkZ2Vwb3J0X3VhcnRfYnVmX2Rlc2MgeworCV9fdTMyIGNvdW50OwkJLy8gTnVtYmVyIG9mIGJ5dGVzIGN1cnJlbnRseSBpbiBidWZmZXIKK307CisKKy8qIGRpZmZlcmVudCBoYXJkd2FyZSB0eXBlcyAqLworI2RlZmluZSBIQVJEV0FSRV9UWVBFXzkzMAkwCisjZGVmaW5lIEhBUkRXQVJFX1RZUEVfVElVTVAJMQorCisvLyBJT0NUTF9QUklWQVRFX1RJX0dFVF9NT0RFIERlZmluaXRpb25zCisjZGVmaW5lCVRJX01PREVfQ09ORklHVVJJTkcJMCAgIC8vIERldmljZSBoYXMgbm90IGVudGVyZWQgc3RhcnQgZGV2aWNlIAorI2RlZmluZQlUSV9NT0RFX0JPT1QJCTEgICAvLyBTdGF5aW5nIGluIGJvb3QgbW9kZQorI2RlZmluZSBUSV9NT0RFX0RPV05MT0FECTIgICAvLyBNYWRlIGl0IHRvIGRvd25sb2FkIG1vZGUKKyNkZWZpbmUgVElfTU9ERV9UUkFOU0lUSU9OSU5HCTMgICAvLyBDdXJyZW50bHkgaW4gYm9vdCBtb2RlIGJ1dCB0cmFuc2l0aW9uaW5nIHRvIGRvd25sb2FkIG1vZGUKKworLyogcmVhZCB1cmIgc3RhdGUgKi8KKyNkZWZpbmUgRURHRV9SRUFEX1VSQl9SVU5OSU5HCTAKKyNkZWZpbmUgRURHRV9SRUFEX1VSQl9TVE9QUElORwkxCisjZGVmaW5lIEVER0VfUkVBRF9VUkJfU1RPUFBFRAkyCisKKyNkZWZpbmUgRURHRV9MT1dfTEFURU5DWQkxCisjZGVmaW5lIEVER0VfQ0xPU0lOR19XQUlUCTQwMDAJLyogaW4gLjAxIHNlYyAqLworCisjZGVmaW5lIEVER0VfT1VUX0JVRl9TSVpFCTEwMjQKKworCisvKiBQcm9kdWN0IGluZm9ybWF0aW9uIHJlYWQgZnJvbSB0aGUgRWRnZXBvcnQgKi8KK3N0cnVjdCBwcm9kdWN0X2luZm8KK3sKKwlpbnQJVGlNb2RlOwkJCS8vIEN1cnJlbnQgVEkgTW9kZQorCV9fdTgJaGFyZHdhcmVfdHlwZTsJCS8vIFR5cGUgb2YgaGFyZHdhcmUKK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKKy8qIGNpcmN1bGFyIGJ1ZmZlciAqLworc3RydWN0IGVkZ2VfYnVmIHsKKwl1bnNpZ25lZCBpbnQJYnVmX3NpemU7CisJY2hhcgkJKmJ1Zl9idWY7CisJY2hhcgkJKmJ1Zl9nZXQ7CisJY2hhcgkJKmJ1Zl9wdXQ7Cit9OworCitzdHJ1Y3QgZWRnZXBvcnRfcG9ydCB7CisJX191MTYgdWFydF9iYXNlOworCV9fdTE2IGRtYV9hZGRyZXNzOworCV9fdTggc2hhZG93X21zcjsKKwlfX3U4IHNoYWRvd19tY3I7CisJX191OCBzaGFkb3dfbHNyOworCV9fdTggbHNyX21hc2s7CisJX191MzIgdW1wX3JlYWRfdGltZW91dDsJCS8qIE51bWJlciBvZiBtaWxpc2Vjb25kcyB0aGUgVU1QIHdpbGwKKwkJCQkJICAgd2FpdCB3aXRob3V0IGRhdGEgYmVmb3JlIGNvbXBsZXRpbmcKKwkJCQkJICAgYSByZWFkIHNob3J0ICovCisJaW50IGJhdWRfcmF0ZTsKKwlpbnQgY2xvc2VfcGVuZGluZzsKKwlpbnQgbHNyX2V2ZW50OworCXN0cnVjdCBlZGdlcG9ydF91YXJ0X2J1Zl9kZXNjIHR4OworCXN0cnVjdCBhc3luY19pY291bnQJaWNvdW50OworCXdhaXRfcXVldWVfaGVhZF90CWRlbHRhX21zcl93YWl0OwkvKiBmb3IgaGFuZGxpbmcgc2xlZXBpbmcgd2hpbGUKKwkJCQkJCSAgIHdhaXRpbmcgZm9yIG1zciBjaGFuZ2UgdG8KKwkJCQkJCSAgIGhhcHBlbiAqLworCXN0cnVjdCBlZGdlcG9ydF9zZXJpYWwJKmVkZ2Vfc2VyaWFsOworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQJKnBvcnQ7CisJX191OCBiVWFydE1vZGU7CQkvKiBQb3J0IHR5cGUsIDA6IFJTMjMyLCBldGMuICovIAorCXNwaW5sb2NrX3QgZXBfbG9jazsKKwlpbnQgZXBfcmVhZF91cmJfc3RhdGU7CisJaW50IGVwX3dyaXRlX3VyYl9pbl91c2U7CisJc3RydWN0IGVkZ2VfYnVmICplcF9vdXRfYnVmOworfTsKKworc3RydWN0IGVkZ2Vwb3J0X3NlcmlhbCB7CisJc3RydWN0IHByb2R1Y3RfaW5mbyBwcm9kdWN0X2luZm87CisJdTggVElfSTJDX1R5cGU7CQkJLy8gVHlwZSBvZiBJMkMgaW4gVU1QCisJdTggVGlSZWFkSTJDOwkJCS8vIFNldCB0byBUUlVFIGlmIHdlIGhhdmUgcmVhZCB0aGUgSTJjIGluIEJvb3QgTW9kZQorCXN0cnVjdCBzZW1hcGhvcmUgZXNfc2VtOworCWludCBudW1fcG9ydHNfb3BlbjsKKwlzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsOworfTsKKworCisvKiBEZXZpY2VzIHRoYXQgdGhpcyBkcml2ZXIgc3VwcG9ydHMgKi8KK3N0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBlZGdlcG9ydF8xcG9ydF9pZF90YWJsZSBbXSA9IHsKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfVElfRURHRVBPUlRfMSkgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfVElfVEkzNDEwX0VER0VQT1JUXzEpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX1RJX1RJMzQxMF9FREdFUE9SVF8xSSkgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfV1BfUFJPWElNSVRZKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9XUF9NT1RJT04pIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX1dQX01PSVNUVVJFKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9XUF9URU1QRVJBVFVSRSkgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfV1BfSFVNSURJVFkpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX1dQX1BPV0VSKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9XUF9MSUdIVCkgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfV1BfUkFESUFUSU9OKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9XUF9ESVNUQU5DRSkgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfV1BfQUNDRUxFUkFUSU9OKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9XUF9QUk9YX0RJU1QpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX1BMVVNfUFdSX0hQNENEKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9QTFVTX1BXUl9QQ0kpIH0sCisJeyB9Cit9OworCitzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgZWRnZXBvcnRfMnBvcnRfaWRfdGFibGUgW10gPSB7CisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX1RJX0VER0VQT1JUXzIpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX1RJX0VER0VQT1JUXzJDKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9USV9FREdFUE9SVF8ySSkgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfVElfRURHRVBPUlRfNDIxKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9USV9FREdFUE9SVF8yMSkgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfVElfRURHRVBPUlRfNDIpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX1RJX0VER0VQT1JUXzQpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX1RJX0VER0VQT1JUXzRJKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9USV9FREdFUE9SVF8yMkkpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX1RJX0VER0VQT1JUXzIyMUMpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX1RJX0VER0VQT1JUXzIyQykgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfVElfRURHRVBPUlRfMjFDKSB9LAorLy8gVGhlIDQtcG9ydCBzaG93cyB1cCBhcyB0d28gMi1wb3J0IGRldmljZXMKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfVElfRURHRVBPUlRfNFMpIH0sCisJeyB9Cit9OworCisvKiBEZXZpY2VzIHRoYXQgdGhpcyBkcml2ZXIgc3VwcG9ydHMgKi8KK3N0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90YWJsZV9jb21iaW5lZCBbXSA9IHsKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfVElfRURHRVBPUlRfMSkgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfVElfVEkzNDEwX0VER0VQT1JUXzEpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX1RJX1RJMzQxMF9FREdFUE9SVF8xSSkgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfV1BfUFJPWElNSVRZKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9XUF9NT1RJT04pIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX1dQX01PSVNUVVJFKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9XUF9URU1QRVJBVFVSRSkgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfV1BfSFVNSURJVFkpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX1dQX1BPV0VSKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9XUF9MSUdIVCkgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfV1BfUkFESUFUSU9OKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9XUF9ESVNUQU5DRSkgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfV1BfQUNDRUxFUkFUSU9OKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9XUF9QUk9YX0RJU1QpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX1BMVVNfUFdSX0hQNENEKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9QTFVTX1BXUl9QQ0kpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX1RJX0VER0VQT1JUXzIpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX1RJX0VER0VQT1JUXzJDKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9USV9FREdFUE9SVF8ySSkgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfVElfRURHRVBPUlRfNDIxKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9USV9FREdFUE9SVF8yMSkgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfVElfRURHRVBPUlRfNDIpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX1RJX0VER0VQT1JUXzQpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX1RJX0VER0VQT1JUXzRJKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9USV9FREdFUE9SVF8yMkkpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX1RJX0VER0VQT1JUXzIyMUMpIH0sCisJeyBVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfSU9OLCBJT05fREVWSUNFX0lEX1RJX0VER0VQT1JUXzIyQykgfSwKKwl7IFVTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9JT04sIElPTl9ERVZJQ0VfSURfVElfRURHRVBPUlRfMjFDKSB9LAorCXsgVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0lPTiwgSU9OX0RFVklDRV9JRF9USV9FREdFUE9SVF80UykgfSwKKwl7IH0KK307CisKK01PRFVMRV9ERVZJQ0VfVEFCTEUgKHVzYiwgaWRfdGFibGVfY29tYmluZWQpOworCitzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgaW9fZHJpdmVyID0geworCS5vd25lciA9CVRISVNfTU9EVUxFLAorCS5uYW1lID0JCSJpb190aSIsCisJLnByb2JlID0JdXNiX3NlcmlhbF9wcm9iZSwKKwkuZGlzY29ubmVjdCA9CXVzYl9zZXJpYWxfZGlzY29ubmVjdCwKKwkuaWRfdGFibGUgPQlpZF90YWJsZV9jb21iaW5lZCwKK307CisKKworc3RhdGljIHN0cnVjdCBFREdFX0ZJUk1XQVJFX1ZFUlNJT05fSU5GTyBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb247CisKK3N0YXRpYyBpbnQgZGVidWc7CisKK3N0YXRpYyBpbnQgVElTdGF5SW5Cb290TW9kZSA9IDA7CitzdGF0aWMgaW50IGxvd19sYXRlbmN5ID0gRURHRV9MT1dfTEFURU5DWTsKK3N0YXRpYyBpbnQgY2xvc2luZ193YWl0ID0gRURHRV9DTE9TSU5HX1dBSVQ7CitzdGF0aWMgaW50IGlnbm9yZV9jcHVfcmV2ID0gMDsKKworCitzdGF0aWMgdm9pZCBlZGdlX3R0eV9yZWN2KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgdW5zaWduZWQgY2hhciAqZGF0YSwgaW50IGxlbmd0aCk7CisKK3N0YXRpYyB2b2lkIHN0b3BfcmVhZChzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqZWRnZV9wb3J0KTsKK3N0YXRpYyBpbnQgcmVzdGFydF9yZWFkKHN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQpOworCitzdGF0aWMgdm9pZCBlZGdlX3NldF90ZXJtaW9zIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgdGVybWlvcyAqb2xkX3Rlcm1pb3MpOworc3RhdGljIHZvaWQgZWRnZV9zZW5kKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworCisvKiBjaXJjdWxhciBidWZmZXIgKi8KK3N0YXRpYyBzdHJ1Y3QgZWRnZV9idWYgKmVkZ2VfYnVmX2FsbG9jKHVuc2lnbmVkIGludCBzaXplKTsKK3N0YXRpYyB2b2lkIGVkZ2VfYnVmX2ZyZWUoc3RydWN0IGVkZ2VfYnVmICplYik7CitzdGF0aWMgdm9pZCBlZGdlX2J1Zl9jbGVhcihzdHJ1Y3QgZWRnZV9idWYgKmViKTsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgZWRnZV9idWZfZGF0YV9hdmFpbChzdHJ1Y3QgZWRnZV9idWYgKmViKTsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgZWRnZV9idWZfc3BhY2VfYXZhaWwoc3RydWN0IGVkZ2VfYnVmICplYik7CitzdGF0aWMgdW5zaWduZWQgaW50IGVkZ2VfYnVmX3B1dChzdHJ1Y3QgZWRnZV9idWYgKmViLCBjb25zdCBjaGFyICpidWYsCisJdW5zaWduZWQgaW50IGNvdW50KTsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgZWRnZV9idWZfZ2V0KHN0cnVjdCBlZGdlX2J1ZiAqZWIsIGNoYXIgKmJ1ZiwKKwl1bnNpZ25lZCBpbnQgY291bnQpOworCisKK3N0YXRpYyBpbnQgVElSZWFkVmVuZG9yUmVxdWVzdFN5bmMgKHN0cnVjdCB1c2JfZGV2aWNlICpkZXYsCisJCQkJX191OAkJcmVxdWVzdCwKKwkJCQlfX3UxNgkJdmFsdWUsCisJCQkJX191MTYJCWluZGV4LAorCQkJCXU4IAkJKmRhdGEsCisJCQkJaW50CQlzaXplKQoreworCWludCBzdGF0dXM7CisKKwlzdGF0dXMgPSB1c2JfY29udHJvbF9tc2cgKGRldiwKKwkJCQl1c2JfcmN2Y3RybHBpcGUoZGV2LCAwKSwKKwkJCQlyZXF1ZXN0LAorCQkJCShVU0JfVFlQRV9WRU5ET1IgfCAKKwkJCQkgVVNCX1JFQ0lQX0RFVklDRSB8IAorCQkJCSBVU0JfRElSX0lOKSwKKwkJCQl2YWx1ZSwKKwkJCQlpbmRleCwKKwkJCQlkYXRhLAorCQkJCXNpemUsCisJCQkJMTAwMCk7CisJaWYgKHN0YXR1cyA8IDApCisJCXJldHVybiBzdGF0dXM7CisJaWYgKHN0YXR1cyAhPSBzaXplKSB7CisJCWRiZyAoIiVzIC0gd2FudGVkIHRvIHdyaXRlICVkLCBidXQgb25seSB3cm90ZSAlZCIsCisJCSAgICAgX19GVU5DVElPTl9fLCBzaXplLCBzdGF0dXMpOworCQlyZXR1cm4gLUVDT01NOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBUSVNlbmRWZW5kb3JSZXF1ZXN0U3luYyAoc3RydWN0IHVzYl9kZXZpY2UgKmRldiwKKwkJCQlfX3U4CQlyZXF1ZXN0LAorCQkJCV9fdTE2CQl2YWx1ZSwKKwkJCQlfX3UxNgkJaW5kZXgsCisJCQkJdTggCQkqZGF0YSwKKwkJCQlpbnQJCXNpemUpCit7CisJaW50IHN0YXR1czsKKworCXN0YXR1cyA9IHVzYl9jb250cm9sX21zZyAoZGV2LAorCQkJCXVzYl9zbmRjdHJscGlwZShkZXYsIDApLAorCQkJCXJlcXVlc3QsCisJCQkJKFVTQl9UWVBFX1ZFTkRPUiB8IAorCQkJCSBVU0JfUkVDSVBfREVWSUNFIHwgCisJCQkJIFVTQl9ESVJfT1VUKSwKKwkJCQl2YWx1ZSwKKwkJCQlpbmRleCwKKwkJCQlkYXRhLAorCQkJCXNpemUsCisJCQkJMTAwMCk7CisJaWYgKHN0YXR1cyA8IDApCisJCXJldHVybiBzdGF0dXM7CisJaWYgKHN0YXR1cyAhPSBzaXplKSB7CisJCWRiZyAoIiVzIC0gd2FudGVkIHRvIHdyaXRlICVkLCBidXQgb25seSB3cm90ZSAlZCIsCisJCSAgICAgX19GVU5DVElPTl9fLCBzaXplLCBzdGF0dXMpOworCQlyZXR1cm4gLUVDT01NOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBUSVdyaXRlQ29tbWFuZFN5bmMgKHN0cnVjdCB1c2JfZGV2aWNlICpkZXYsIF9fdTggY29tbWFuZCwKKwkJCQlfX3U4IG1vZHVsZWlkLCBfX3UxNiB2YWx1ZSwgdTggKmRhdGEsCisJCQkJaW50IHNpemUpCit7CisJcmV0dXJuIFRJU2VuZFZlbmRvclJlcXVlc3RTeW5jIChkZXYsCisJCQkJCSAgY29tbWFuZCwJICAJCS8vIFJlcXVlc3QKKwkJCQkJICB2YWx1ZSwJCQkvLyB3VmFsdWUgCisJCQkJCSAgbW9kdWxlaWQsCQkJLy8gd0luZGV4CisJCQkJCSAgZGF0YSwJCQkJLy8gVHJhbnNmZXJCdWZmZXIKKwkJCQkJICBzaXplKTsJCQkvLyBUcmFuc2ZlckJ1ZmZlckxlbmd0aAorCit9CisKKy8qIGNsZWFyIHR4L3J4IGJ1ZmZlcnMgYW5kIGZpZm8gaW4gVEkgVU1QICovCitzdGF0aWMgaW50IFRJUHVyZ2VEYXRhU3luYyAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgX191MTYgbWFzaykKK3sKKwlpbnQgcG9ydF9udW1iZXIgPSBwb3J0LT5udW1iZXIgLSBwb3J0LT5zZXJpYWwtPm1pbm9yOworCisJZGJnICgiJXMgLSBwb3J0ICVkLCBtYXNrICV4IiwgX19GVU5DVElPTl9fLCBwb3J0X251bWJlciwgbWFzayk7CisKKwlyZXR1cm4gVElXcml0ZUNvbW1hbmRTeW5jIChwb3J0LT5zZXJpYWwtPmRldiwKKwkJCQkJVU1QQ19QVVJHRV9QT1JULAorCQkJCQkoX191OCkoVU1QTV9VQVJUMV9QT1JUICsgcG9ydF9udW1iZXIpLAorCQkJCQltYXNrLAorCQkJCQlOVUxMLAorCQkJCQkwKTsKK30KKworLyoqCisgKiBUSVJlYWREb3dubG9hZE1lbW9yeSAtIFJlYWQgZWRnZXBvcnQgbWVtb3J5IGZyb20gVEkgY2hpcAorICogQGRldjogdXNiIGRldmljZSBwb2ludGVyCisgKiBAc3RhcnRfYWRkcmVzczogRGV2aWNlIENQVSBhZGRyZXNzIGF0IHdoaWNoIHRvIHJlYWQKKyAqIEBsZW5ndGg6IExlbmd0aCBvZiBhYm92ZSBkYXRhCisgKiBAYWRkcmVzc190eXBlOiBDYW4gcmVhZCBib3RoIFhEQVRBIGFuZCBJMkMKKyAqIEBidWZmZXI6IHBvaW50ZXIgdG8gaW5wdXQgZGF0YSBidWZmZXIKKyAqLworc3RhdGljIGludCBUSVJlYWREb3dubG9hZE1lbW9yeShzdHJ1Y3QgdXNiX2RldmljZSAqZGV2LCBpbnQgc3RhcnRfYWRkcmVzcywKKwkJCQlpbnQgbGVuZ3RoLCBfX3U4IGFkZHJlc3NfdHlwZSwgX191OCAqYnVmZmVyKQoreworCWludCBzdGF0dXMgPSAwOworCV9fdTggcmVhZF9sZW5ndGg7CisJX19iZTE2IGJlX3N0YXJ0X2FkZHJlc3M7CisJCisJZGJnICgiJXMgLSBAICV4IGZvciAlZCIsIF9fRlVOQ1RJT05fXywgc3RhcnRfYWRkcmVzcywgbGVuZ3RoKTsKKworCS8qIFJlYWQgaW4gYmxvY2tzIG9mIDY0IGJ5dGVzCisJICogKFRJIGZpcm13YXJlIGNhbid0IGhhbmRsZSBtb3JlIHRoYW4gNjQgYnl0ZSByZWFkcykKKwkgKi8KKwl3aGlsZSAobGVuZ3RoKSB7CisJCWlmIChsZW5ndGggPiA2NCkKKwkJCXJlYWRfbGVuZ3RoPSA2NDsKKwkJZWxzZQorCQkJcmVhZF9sZW5ndGggPSAoX191OClsZW5ndGg7CisKKwkJaWYgKHJlYWRfbGVuZ3RoID4gMSkgeworCQkJZGJnICgiJXMgLSBAICV4IGZvciAlZCIsIF9fRlVOQ1RJT05fXywgCisJCQkgICAgIHN0YXJ0X2FkZHJlc3MsIHJlYWRfbGVuZ3RoKTsKKwkJfQorCQliZV9zdGFydF9hZGRyZXNzID0gY3B1X3RvX2JlMTYgKHN0YXJ0X2FkZHJlc3MpOworCQlzdGF0dXMgPSBUSVJlYWRWZW5kb3JSZXF1ZXN0U3luYyAoZGV2LAorCQkJCQkJICBVTVBDX01FTU9SWV9SRUFELAkvLyBSZXF1ZXN0CisJCQkJCQkgIChfX3UxNilhZGRyZXNzX3R5cGUsCS8vIHdWYWx1ZSAoQWRkcmVzcyB0eXBlKQorCQkJCQkJICAoX19mb3JjZSBfX3UxNiliZV9zdGFydF9hZGRyZXNzLAkvLyB3SW5kZXggKEFkZHJlc3MgdG8gcmVhZCkKKwkJCQkJCSAgYnVmZmVyLAkJLy8gVHJhbnNmZXJCdWZmZXIKKwkJCQkJCSAgcmVhZF9sZW5ndGgpOwkvLyBUcmFuc2ZlckJ1ZmZlckxlbmd0aAorCisJCWlmIChzdGF0dXMpIHsKKwkJCWRiZyAoIiVzIC0gRVJST1IgJXgiLCBfX0ZVTkNUSU9OX18sIHN0YXR1cyk7CisJCQlyZXR1cm4gc3RhdHVzOworCQl9CisKKwkJaWYgKHJlYWRfbGVuZ3RoID4gMSkgeworCQkJdXNiX3NlcmlhbF9kZWJ1Z19kYXRhKGRlYnVnLCAmZGV2LT5kZXYsIF9fRlVOQ1RJT05fXywKKwkJCQkJICAgICAgcmVhZF9sZW5ndGgsIGJ1ZmZlcik7CisJCX0KKworCQkvKiBVcGRhdGUgcG9pbnRlcnMvbGVuZ3RoICovCisJCXN0YXJ0X2FkZHJlc3MgKz0gcmVhZF9sZW5ndGg7CisJCWJ1ZmZlciArPSByZWFkX2xlbmd0aDsKKwkJbGVuZ3RoIC09IHJlYWRfbGVuZ3RoOworCX0KKwkKKwlyZXR1cm4gc3RhdHVzOworfQorCitzdGF0aWMgaW50IFRJUmVhZFJhbSAoc3RydWN0IHVzYl9kZXZpY2UgKmRldiwgaW50IHN0YXJ0X2FkZHJlc3MsIGludCBsZW5ndGgsIF9fdTggKmJ1ZmZlcikKK3sKKwlyZXR1cm4gVElSZWFkRG93bmxvYWRNZW1vcnkgKGRldiwKKwkJCQkgICAgIHN0YXJ0X2FkZHJlc3MsCisJCQkJICAgICBsZW5ndGgsCisJCQkJICAgICBEVEtfQUREUl9TUEFDRV9YREFUQSwKKwkJCQkgICAgIGJ1ZmZlcik7Cit9CisKKy8qIFJlYWQgZWRnZXBvcnQgbWVtb3J5IHRvIGEgZ2l2ZW4gYmxvY2sgKi8KK3N0YXRpYyBpbnQgVElSZWFkQm9vdE1lbW9yeSAoc3RydWN0IGVkZ2Vwb3J0X3NlcmlhbCAqc2VyaWFsLCBpbnQgc3RhcnRfYWRkcmVzcywgaW50IGxlbmd0aCwgX191OCAqIGJ1ZmZlcikKK3sKKwlpbnQgc3RhdHVzID0gMDsKKwlpbnQgaTsKKworCWZvciAoaT0wOyBpPCBsZW5ndGg7IGkrKykgeworCQlzdGF0dXMgPSBUSVJlYWRWZW5kb3JSZXF1ZXN0U3luYyAoc2VyaWFsLT5zZXJpYWwtPmRldiwKKwkJCQkJVU1QQ19NRU1PUllfUkVBRCwJCS8vIFJlcXVlc3QKKwkJCQkJc2VyaWFsLT5USV9JMkNfVHlwZSwJCS8vIHdWYWx1ZSAoQWRkcmVzcyB0eXBlKQorCQkJCQkoX191MTYpKHN0YXJ0X2FkZHJlc3MraSksCS8vIHdJbmRleAorCQkJCQkmYnVmZmVyW2ldLAkJCS8vIFRyYW5zZmVyQnVmZmVyCisJCQkJCTB4MDEpOwkJCQkvLyBUcmFuc2ZlckJ1ZmZlckxlbmd0aAorCQlpZiAoc3RhdHVzKSB7CisJCQlkYmcgKCIlcyAtIEVSUk9SICV4IiwgX19GVU5DVElPTl9fLCBzdGF0dXMpOworCQkJcmV0dXJuIHN0YXR1czsKKwkJfQorCX0KKworCWRiZyAoIiVzIC0gc3RhcnRfYWRkcmVzcyA9ICV4LCBsZW5ndGggPSAlZCIsIF9fRlVOQ1RJT05fXywgc3RhcnRfYWRkcmVzcywgbGVuZ3RoKTsKKwl1c2Jfc2VyaWFsX2RlYnVnX2RhdGEoZGVidWcsICZzZXJpYWwtPnNlcmlhbC0+ZGV2LT5kZXYsIF9fRlVOQ1RJT05fXywgbGVuZ3RoLCBidWZmZXIpOworCisJc2VyaWFsLT5UaVJlYWRJMkMgPSAxOworCisJcmV0dXJuIHN0YXR1czsKK30KKworLyogV3JpdGUgZ2l2ZW4gYmxvY2sgdG8gVEkgRVBST00gbWVtb3J5ICovCitzdGF0aWMgaW50IFRJV3JpdGVCb290TWVtb3J5IChzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsICpzZXJpYWwsIGludCBzdGFydF9hZGRyZXNzLCBpbnQgbGVuZ3RoLCBfX3U4ICpidWZmZXIpCit7CisJaW50IHN0YXR1cyA9IDA7CisJaW50IGk7CisJX191OCB0ZW1wOworCisJLyogTXVzdCBkbyBhIHJlYWQgYmVmb3JlIHdyaXRlICovCisJaWYgKCFzZXJpYWwtPlRpUmVhZEkyQykgeworCQlzdGF0dXMgPSBUSVJlYWRCb290TWVtb3J5KHNlcmlhbCwgMCwgMSwgJnRlbXApOworCQlpZiAoc3RhdHVzKQorCQkJcmV0dXJuIHN0YXR1czsKKwl9CisKKwlmb3IgKGk9MDsgaSA8IGxlbmd0aDsgKytpKSB7CisJCXN0YXR1cyA9IFRJU2VuZFZlbmRvclJlcXVlc3RTeW5jIChzZXJpYWwtPnNlcmlhbC0+ZGV2LAorCQkJCQkJVU1QQ19NRU1PUllfV1JJVEUsCQkvLyBSZXF1ZXN0CisJCQkJCQlidWZmZXJbaV0sCQkJLy8gd1ZhbHVlCisJCQkJCQkoX191MTYpKGkrc3RhcnRfYWRkcmVzcyksCS8vIHdJbmRleAorCQkJCQkJTlVMTCwJCQkJLy8gVHJhbnNmZXJCdWZmZXIKKwkJCQkJCTApOwkJCQkvLyBUcmFuc2ZlckJ1ZmZlckxlbmd0aAorCQlpZiAoc3RhdHVzKQorCQkJcmV0dXJuIHN0YXR1czsKKwl9CisKKyAgCWRiZyAoIiVzIC0gc3RhcnRfc2RkciA9ICV4LCBsZW5ndGggPSAlZCIsIF9fRlVOQ1RJT05fXywgc3RhcnRfYWRkcmVzcywgbGVuZ3RoKTsKKwl1c2Jfc2VyaWFsX2RlYnVnX2RhdGEoZGVidWcsICZzZXJpYWwtPnNlcmlhbC0+ZGV2LT5kZXYsIF9fRlVOQ1RJT05fXywgbGVuZ3RoLCBidWZmZXIpOworCisJcmV0dXJuIHN0YXR1czsKK30KKworCisvKiBXcml0ZSBlZGdlcG9ydCBJMkMgbWVtb3J5IHRvIFRJIGNoaXAJKi8KK3N0YXRpYyBpbnQgVElXcml0ZURvd25sb2FkSTJDIChzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsICpzZXJpYWwsIGludCBzdGFydF9hZGRyZXNzLCBpbnQgbGVuZ3RoLCBfX3U4IGFkZHJlc3NfdHlwZSwgX191OCAqYnVmZmVyKQoreworCWludCBzdGF0dXMgPSAwOworCWludCB3cml0ZV9sZW5ndGg7CisJX19iZTE2IGJlX3N0YXJ0X2FkZHJlc3M7CisKKwkvKiBXZSBjYW4gb25seSBzZW5kIGEgbWF4aW11bSBvZiAxIGFsaWduZWQgYnl0ZSBwYWdlIGF0IGEgdGltZSAqLworCQorCS8qIGNhbHVsYXRlIHRoZSBudW1iZXIgb2YgYnl0ZXMgbGVmdCBpbiB0aGUgZmlyc3QgcGFnZSAqLworCXdyaXRlX2xlbmd0aCA9IEVQUk9NX1BBR0VfU0laRSAtIChzdGFydF9hZGRyZXNzICYgKEVQUk9NX1BBR0VfU0laRSAtIDEpKTsKKworCWlmICh3cml0ZV9sZW5ndGggPiBsZW5ndGgpCisJCXdyaXRlX2xlbmd0aCA9IGxlbmd0aDsKKworCWRiZyAoIiVzIC0gQnl0ZXNJbkZpcnN0UGFnZSBBZGRyID0gJXgsIGxlbmd0aCA9ICVkIiwgX19GVU5DVElPTl9fLCBzdGFydF9hZGRyZXNzLCB3cml0ZV9sZW5ndGgpOworCXVzYl9zZXJpYWxfZGVidWdfZGF0YShkZWJ1ZywgJnNlcmlhbC0+c2VyaWFsLT5kZXYtPmRldiwgX19GVU5DVElPTl9fLCB3cml0ZV9sZW5ndGgsIGJ1ZmZlcik7CisKKwkvKiBXcml0ZSBmaXJzdCBwYWdlICovCisJYmVfc3RhcnRfYWRkcmVzcyA9IGNwdV90b19iZTE2IChzdGFydF9hZGRyZXNzKTsKKwlzdGF0dXMgPSBUSVNlbmRWZW5kb3JSZXF1ZXN0U3luYyAoc2VyaWFsLT5zZXJpYWwtPmRldiwKKwkJCQkJVU1QQ19NRU1PUllfV1JJVEUsCS8vIFJlcXVlc3QKKwkJCQkJKF9fdTE2KWFkZHJlc3NfdHlwZSwJLy8gd1ZhbHVlCisJCQkJCShfX2ZvcmNlIF9fdTE2KWJlX3N0YXJ0X2FkZHJlc3MsCS8vIHdJbmRleAorCQkJCQlidWZmZXIsCQkJLy8gVHJhbnNmZXJCdWZmZXIKKwkJCQkJd3JpdGVfbGVuZ3RoKTsKKwlpZiAoc3RhdHVzKSB7CisJCWRiZyAoIiVzIC0gRVJST1IgJWQiLCBfX0ZVTkNUSU9OX18sIHN0YXR1cyk7CisJCXJldHVybiBzdGF0dXM7CisJfQorCisJbGVuZ3RoCQktPSB3cml0ZV9sZW5ndGg7CisJc3RhcnRfYWRkcmVzcwkrPSB3cml0ZV9sZW5ndGg7CisJYnVmZmVyCQkrPSB3cml0ZV9sZW5ndGg7CisKKwkvKiBXZSBzaG91bGQgYmUgYWxpZ25lZCBub3cgLS0gY2FuIHdyaXRlIG1heCBwYWdlIHNpemUgYnl0ZXMgYXQgYSB0aW1lICovCisJd2hpbGUgKGxlbmd0aCkgeworCQlpZiAobGVuZ3RoID4gRVBST01fUEFHRV9TSVpFKQorCQkJd3JpdGVfbGVuZ3RoID0gRVBST01fUEFHRV9TSVpFOworCQllbHNlCisJCQl3cml0ZV9sZW5ndGggPSBsZW5ndGg7CisKKwkJZGJnICgiJXMgLSBQYWdlIFdyaXRlIEFkZHIgPSAleCwgbGVuZ3RoID0gJWQiLCBfX0ZVTkNUSU9OX18sIHN0YXJ0X2FkZHJlc3MsIHdyaXRlX2xlbmd0aCk7CisJCXVzYl9zZXJpYWxfZGVidWdfZGF0YShkZWJ1ZywgJnNlcmlhbC0+c2VyaWFsLT5kZXYtPmRldiwgX19GVU5DVElPTl9fLCB3cml0ZV9sZW5ndGgsIGJ1ZmZlcik7CisKKwkJLyogV3JpdGUgbmV4dCBwYWdlICovCisJCWJlX3N0YXJ0X2FkZHJlc3MgPSBjcHVfdG9fYmUxNiAoc3RhcnRfYWRkcmVzcyk7CisJCXN0YXR1cyA9IFRJU2VuZFZlbmRvclJlcXVlc3RTeW5jIChzZXJpYWwtPnNlcmlhbC0+ZGV2LAorCQkJCQkJVU1QQ19NRU1PUllfV1JJVEUsCS8vIFJlcXVlc3QKKwkJCQkJCShfX3UxNilhZGRyZXNzX3R5cGUsCS8vIHdWYWx1ZQorCQkJCQkJKF9fZm9yY2UgX191MTYpYmVfc3RhcnRfYWRkcmVzcywJLy8gd0luZGV4CisJCQkJCQlidWZmZXIsCSAgCQkvLyBUcmFuc2ZlckJ1ZmZlcgorCQkJCQkJd3JpdGVfbGVuZ3RoKTsJCS8vIFRyYW5zZmVyQnVmZmVyTGVuZ3RoCisJCWlmIChzdGF0dXMpIHsKKwkJCWRldl9lcnIgKCZzZXJpYWwtPnNlcmlhbC0+ZGV2LT5kZXYsICIlcyAtIEVSUk9SICVkXG4iLCBfX0ZVTkNUSU9OX18sIHN0YXR1cyk7CisJCQlyZXR1cm4gc3RhdHVzOworCQl9CisJCQorCQlsZW5ndGgJCS09IHdyaXRlX2xlbmd0aDsKKwkJc3RhcnRfYWRkcmVzcwkrPSB3cml0ZV9sZW5ndGg7CisJCWJ1ZmZlcgkJKz0gd3JpdGVfbGVuZ3RoOworCX0KKwlyZXR1cm4gc3RhdHVzOworfQorCisvKiBFeGFtaW5lIHRoZSBVTVAgRE1BIHJlZ2lzdGVycyBhbmQgTFNSCisgKiAKKyAqIENoZWNrIHRoZSBNU0JpdCBvZiB0aGUgWCBhbmQgWSBETUEgYnl0ZSBjb3VudCByZWdpc3RlcnMuCisgKiBBIHplcm8gaW4gdGhpcyBiaXQgaW5kaWNhdGVzIHRoYXQgdGhlIFRYIERNQSBidWZmZXJzIGFyZSBlbXB0eQorICogdGhlbiBjaGVjayB0aGUgVFggRW1wdHkgYml0IGluIHRoZSBVQVJULgorICovCitzdGF0aWMgaW50IFRJSXNUeEFjdGl2ZSAoc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKnBvcnQpCit7CisJaW50IHN0YXR1czsKKwlzdHJ1Y3Qgb3V0X2VuZHBvaW50X2Rlc2NfYmxvY2sgKm9lZGI7CisJX191OCAqbHNyOworCWludCBieXRlc19sZWZ0ID0gMDsKKworCW9lZGIgPSBrbWFsbG9jIChzaXplb2YgKCogb2VkYiksIEdGUF9LRVJORUwpOworCWlmICghb2VkYikgeworCQlkZXZfZXJyICgmcG9ydC0+cG9ydC0+ZGV2LCAiJXMgLSBvdXQgb2YgbWVtb3J5XG4iLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwlsc3IgPSBrbWFsbG9jICgxLCBHRlBfS0VSTkVMKTsJLyogU2lnaCwgdGhhdCdzIHJpZ2h0LCBqdXN0IG9uZSBieXRlLAorCQkJCQkgICBhcyBub3QgYWxsIHBsYXRmb3JtcyBjYW4gZG8gRE1BCisJCQkJCSAgIGZyb20gc3RhY2sgKi8KKwlpZiAoIWxzcikgeworCQlrZnJlZShvZWRiKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCS8qIFJlYWQgdGhlIERNQSBDb3VudCBSZWdpc3RlcnMgKi8KKwlzdGF0dXMgPSBUSVJlYWRSYW0gKHBvcnQtPnBvcnQtPnNlcmlhbC0+ZGV2LAorCQkJICAgIHBvcnQtPmRtYV9hZGRyZXNzLAorCQkJICAgIHNpemVvZiggKm9lZGIpLAorCQkJICAgICh2b2lkICopb2VkYik7CisKKwlpZiAoc3RhdHVzKQorCQlnb3RvIGV4aXRfaXNfdHhfYWN0aXZlOworCisJZGJnICgiJXMgLSBYQnl0ZUNvdW50ICAgIDB4JVgiLCBfX0ZVTkNUSU9OX18sIG9lZGItPlhCeXRlQ291bnQpOworCisJLyogYW5kIHRoZSBMU1IgKi8KKwlzdGF0dXMgPSBUSVJlYWRSYW0gKHBvcnQtPnBvcnQtPnNlcmlhbC0+ZGV2LCAKKwkJCSAgICBwb3J0LT51YXJ0X2Jhc2UgKyBVTVBNRU1fT0ZGU19VQVJUX0xTUiwKKwkJCSAgICAxLAorCQkJICAgIGxzcik7CisKKwlpZiAoc3RhdHVzKQorCQlnb3RvIGV4aXRfaXNfdHhfYWN0aXZlOworCWRiZyAoIiVzIC0gTFNSID0gMHglWCIsIF9fRlVOQ1RJT05fXywgKmxzcik7CisJCisJLyogSWYgZWl0aGVyIGJ1ZmZlciBoYXMgZGF0YSBvciB3ZSBhcmUgdHJhbnNtaXR0aW5nIHRoZW4gcmV0dXJuIFRSVUUgKi8KKwlpZiAoKG9lZGItPlhCeXRlQ291bnQgJiAweDgwICkgIT0gMCApCisJCWJ5dGVzX2xlZnQgKz0gNjQ7CisKKwlpZiAoKCpsc3IgJiBVTVBfVUFSVF9MU1JfVFhfTUFTSyApID09IDAgKQorCQlieXRlc19sZWZ0ICs9IDE7CisKKwkvKiBXZSByZXR1cm4gTm90IEFjdGl2ZSBpZiB3ZSBnZXQgYW55IGtpbmQgb2YgZXJyb3IgKi8KK2V4aXRfaXNfdHhfYWN0aXZlOgorCWRiZyAoIiVzIC0gcmV0dXJuICVkIiwgX19GVU5DVElPTl9fLCBieXRlc19sZWZ0ICk7CisKKwlrZnJlZShsc3IpOworCWtmcmVlKG9lZGIpOworCXJldHVybiBieXRlc19sZWZ0OworfQorCitzdGF0aWMgdm9pZCBUSUNoYXNlUG9ydChzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqcG9ydCwgdW5zaWduZWQgbG9uZyB0aW1lb3V0LCBpbnQgZmx1c2gpCit7CisJaW50IGJhdWRfcmF0ZTsKKwlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5ID0gcG9ydC0+cG9ydC0+dHR5OworCXdhaXRfcXVldWVfdCB3YWl0OworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlpZiAoIXRpbWVvdXQpCisJCXRpbWVvdXQgPSAoSFoqRURHRV9DTE9TSU5HX1dBSVQpLzEwMDsKKworCS8qIHdhaXQgZm9yIGRhdGEgdG8gZHJhaW4gZnJvbSB0aGUgYnVmZmVyICovCisJc3Bpbl9sb2NrX2lycXNhdmUoJnBvcnQtPmVwX2xvY2ssIGZsYWdzKTsKKwlpbml0X3dhaXRxdWV1ZV9lbnRyeSgmd2FpdCwgY3VycmVudCk7CisJYWRkX3dhaXRfcXVldWUoJnR0eS0+d3JpdGVfd2FpdCwgJndhaXQpOworCWZvciAoOzspIHsKKwkJc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19JTlRFUlJVUFRJQkxFKTsKKwkJaWYgKGVkZ2VfYnVmX2RhdGFfYXZhaWwocG9ydC0+ZXBfb3V0X2J1ZikgPT0gMAorCQl8fCB0aW1lb3V0ID09IDAgfHwgc2lnbmFsX3BlbmRpbmcoY3VycmVudCkKKwkJfHwgIXVzYl9nZXRfaW50ZmRhdGEocG9ydC0+cG9ydC0+c2VyaWFsLT5pbnRlcmZhY2UpKSAgLyogZGlzY29ubmVjdCAqLworCQkJYnJlYWs7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBvcnQtPmVwX2xvY2ssIGZsYWdzKTsKKwkJdGltZW91dCA9IHNjaGVkdWxlX3RpbWVvdXQodGltZW91dCk7CisJCXNwaW5fbG9ja19pcnFzYXZlKCZwb3J0LT5lcF9sb2NrLCBmbGFncyk7CisJfQorCXNldF9jdXJyZW50X3N0YXRlKFRBU0tfUlVOTklORyk7CisJcmVtb3ZlX3dhaXRfcXVldWUoJnR0eS0+d3JpdGVfd2FpdCwgJndhaXQpOworCWlmIChmbHVzaCkKKwkJZWRnZV9idWZfY2xlYXIocG9ydC0+ZXBfb3V0X2J1Zik7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG9ydC0+ZXBfbG9jaywgZmxhZ3MpOworCisJLyogd2FpdCBmb3IgZGF0YSB0byBkcmFpbiBmcm9tIHRoZSBkZXZpY2UgKi8KKwl0aW1lb3V0ICs9IGppZmZpZXM7CisJd2hpbGUgKChsb25nKShqaWZmaWVzIC0gdGltZW91dCkgPCAwICYmICFzaWduYWxfcGVuZGluZyhjdXJyZW50KQorCSYmIHVzYl9nZXRfaW50ZmRhdGEocG9ydC0+cG9ydC0+c2VyaWFsLT5pbnRlcmZhY2UpKSB7ICAvKiBub3QgZGlzY29ubmVjdGVkICovCisJCWlmICghVElJc1R4QWN0aXZlKHBvcnQpKQorCQkJYnJlYWs7CisJCW1zbGVlcCgxMCk7CisJfQorCisJLyogZGlzY29ubmVjdGVkICovCisJaWYgKCF1c2JfZ2V0X2ludGZkYXRhKHBvcnQtPnBvcnQtPnNlcmlhbC0+aW50ZXJmYWNlKSkKKwkJcmV0dXJuOworCisJLyogd2FpdCBvbmUgbW9yZSBjaGFyYWN0ZXIgdGltZSwgYmFzZWQgb24gYmF1ZCByYXRlICovCisJLyogKFRJSXNUeEFjdGl2ZSBkb2Vzbid0IHNlZW0gdG8gd2FpdCBmb3IgdGhlIGxhc3QgYnl0ZSkgKi8KKwlpZiAoKGJhdWRfcmF0ZT1wb3J0LT5iYXVkX3JhdGUpID09IDApCisJCWJhdWRfcmF0ZSA9IDUwOworCW1zbGVlcChtYXgoMSwoMTAwMDArYmF1ZF9yYXRlLTEpL2JhdWRfcmF0ZSkpOworfQorCitzdGF0aWMgaW50IFRJQ2hvb3NlQ29uZmlndXJhdGlvbiAoc3RydWN0IHVzYl9kZXZpY2UgKmRldikKK3sKKwkvLyBUaGVyZSBtYXkgYmUgbXVsdGlwbGUgY29uZmlndXJhdGlvbnMgb24gdGhpcyBkZXZpY2UsIGluIHdoaWNoIGNhc2UKKwkvLyB3ZSB3b3VsZCBuZWVkIHRvIHJlYWQgYW5kIHBhcnNlIGFsbCBvZiB0aGVtIHRvIGZpbmQgb3V0IHdoaWNoIG9uZQorCS8vIHdlIHdhbnQuIEhvd2V2ZXIsIHdlIGp1c3Qgc3VwcG9ydCBvbmUgY29uZmlnIGF0IHRoaXMgcG9pbnQsCisJLy8gY29uZmlndXJhdGlvbiAjIDEsIHdoaWNoIGlzIENvbmZpZyBEZXNjcmlwdG9yIDAuCisKKwlkYmcgKCIlcyAtIE51bWJlciBvZiBJbnRlcmZhY2VzID0gJWQiLCBfX0ZVTkNUSU9OX18sIGRldi0+Y29uZmlnLT5kZXNjLmJOdW1JbnRlcmZhY2VzKTsKKwlkYmcgKCIlcyAtIE1BWCBQb3dlciAgICAgICAgICAgID0gJWQiLCBfX0ZVTkNUSU9OX18sIGRldi0+Y29uZmlnLT5kZXNjLmJNYXhQb3dlcioyKTsKKworCWlmIChkZXYtPmNvbmZpZy0+ZGVzYy5iTnVtSW50ZXJmYWNlcyAhPSAxKSB7CisJCWRldl9lcnIgKCZkZXYtPmRldiwgIiVzIC0gYk51bUludGVyZmFjZXMgaXMgbm90IDEsIEVSUk9SIVxuIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgVElSZWFkUm9tIChzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsICpzZXJpYWwsIGludCBzdGFydF9hZGRyZXNzLCBpbnQgbGVuZ3RoLCBfX3U4ICpidWZmZXIpCit7CisJaW50IHN0YXR1czsKKworCWlmIChzZXJpYWwtPnByb2R1Y3RfaW5mby5UaU1vZGUgPT0gVElfTU9ERV9ET1dOTE9BRCkgeworCQlzdGF0dXMgPSBUSVJlYWREb3dubG9hZE1lbW9yeSAoc2VyaWFsLT5zZXJpYWwtPmRldiwKKwkJCQkJICAgICAgIHN0YXJ0X2FkZHJlc3MsCisJCQkJCSAgICAgICBsZW5ndGgsCisJCQkJCSAgICAgICBzZXJpYWwtPlRJX0kyQ19UeXBlLAorCQkJCQkgICAgICAgYnVmZmVyKTsKKwl9IGVsc2UgeworCQlzdGF0dXMgPSBUSVJlYWRCb290TWVtb3J5IChzZXJpYWwsCisJCQkJCSAgIHN0YXJ0X2FkZHJlc3MsCisJCQkJCSAgIGxlbmd0aCwKKwkJCQkJICAgYnVmZmVyKTsKKwl9CisKKwlyZXR1cm4gc3RhdHVzOworfQorCitzdGF0aWMgaW50IFRJV3JpdGVSb20gKHN0cnVjdCBlZGdlcG9ydF9zZXJpYWwgKnNlcmlhbCwgaW50IHN0YXJ0X2FkZHJlc3MsIGludCBsZW5ndGgsIF9fdTggKmJ1ZmZlcikKK3sKKwlpZiAoc2VyaWFsLT5wcm9kdWN0X2luZm8uVGlNb2RlID09IFRJX01PREVfQk9PVCkKKwkJcmV0dXJuIFRJV3JpdGVCb290TWVtb3J5IChzZXJpYWwsCisJCQkJCSAgc3RhcnRfYWRkcmVzcywKKwkJCQkJICBsZW5ndGgsCisJCQkJCSAgYnVmZmVyKTsKKworCWlmIChzZXJpYWwtPnByb2R1Y3RfaW5mby5UaU1vZGUgPT0gVElfTU9ERV9ET1dOTE9BRCkKKwkJcmV0dXJuIFRJV3JpdGVEb3dubG9hZEkyQyAoc2VyaWFsLAorCQkJCQkgICBzdGFydF9hZGRyZXNzLAorCQkJCQkgICBsZW5ndGgsCisJCQkJCSAgIHNlcmlhbC0+VElfSTJDX1R5cGUsCisJCQkJCSAgIGJ1ZmZlcik7CisKKwlyZXR1cm4gLUVJTlZBTDsKK30KKworCisKKy8qIFJlYWQgYSBkZXNjcmlwdG9yIGhlYWRlciBmcm9tIEkyQyBiYXNlZCBvbiB0eXBlICovCitzdGF0aWMgaW50IFRJR2V0RGVzY3JpcHRvckFkZHJlc3MgKHN0cnVjdCBlZGdlcG9ydF9zZXJpYWwgKnNlcmlhbCwgaW50IGRlc2NfdHlwZSwgc3RydWN0IHRpX2kyY19kZXNjICpyb21fZGVzYykKK3sKKwlpbnQgc3RhcnRfYWRkcmVzczsKKwlpbnQgc3RhdHVzOworCisJLyogU2VhcmNoIGZvciByZXF1ZXN0ZWQgZGVzY3JpcHRvciBpbiBJMkMgKi8KKwlzdGFydF9hZGRyZXNzID0gMjsKKwlkbyB7CisJCXN0YXR1cyA9IFRJUmVhZFJvbSAoc2VyaWFsLAorCQkJCSAgIHN0YXJ0X2FkZHJlc3MsCisJCQkJICAgc2l6ZW9mKHN0cnVjdCB0aV9pMmNfZGVzYyksCisJCQkJICAgKF9fdTggKilyb21fZGVzYyApOworCQlpZiAoc3RhdHVzKQorCQkJcmV0dXJuIDA7CisKKwkJaWYgKHJvbV9kZXNjLT5UeXBlID09IGRlc2NfdHlwZSkKKwkJCXJldHVybiBzdGFydF9hZGRyZXNzOworCisJCXN0YXJ0X2FkZHJlc3MgPSBzdGFydF9hZGRyZXNzICsgc2l6ZW9mKHN0cnVjdCB0aV9pMmNfZGVzYykgKyAgcm9tX2Rlc2MtPlNpemU7CisKKwl9IHdoaWxlICgoc3RhcnRfYWRkcmVzcyA8IFRJX01BWF9JMkNfU0laRSkgJiYgcm9tX2Rlc2MtPlR5cGUpOworCQorCXJldHVybiAwOworfQorCisvKiBWYWxpZGF0ZSBkZXNjcmlwdG9yIGNoZWNrc3VtICovCitzdGF0aWMgaW50IFZhbGlkQ2hlY2tzdW0oc3RydWN0IHRpX2kyY19kZXNjICpyb21fZGVzYywgX191OCAqYnVmZmVyKQoreworCV9fdTE2IGk7CisJX191OCBjcyA9IDA7CisKKwlmb3IgKGk9MDsgaSA8IHJvbV9kZXNjLT5TaXplOyBpKyspIHsKKwkJY3MgPSAoX191OCkoY3MgKyBidWZmZXJbaV0pOworCX0KKwlpZiAoY3MgIT0gcm9tX2Rlc2MtPkNoZWNrU3VtKSB7CisJCWRiZyAoIiVzIC0gTWlzbWF0Y2ggJXggLSAleCIsIF9fRlVOQ1RJT05fXywgcm9tX2Rlc2MtPkNoZWNrU3VtLCBjcyk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlyZXR1cm4gMDsKK30KKworLyogTWFrZSBzdXJlIHRoYXQgdGhlIEkyQyBpbWFnZSBpcyBnb29kICovCitzdGF0aWMgaW50IFRpVmFsaWRhdGVJMmNJbWFnZSAoc3RydWN0IGVkZ2Vwb3J0X3NlcmlhbCAqc2VyaWFsKQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZzZXJpYWwtPnNlcmlhbC0+ZGV2LT5kZXY7CisJaW50IHN0YXR1cyA9IDA7CisJc3RydWN0IHRpX2kyY19kZXNjICpyb21fZGVzYzsKKwlpbnQgc3RhcnRfYWRkcmVzcyA9IDI7CisJX191OCAqYnVmZmVyOworCV9fdTE2IHR0eXBlOworCisJcm9tX2Rlc2MgPSBrbWFsbG9jIChzaXplb2YgKCpyb21fZGVzYyksIEdGUF9LRVJORUwpOworCWlmICghcm9tX2Rlc2MpIHsKKwkJZGV2X2VyciAoZGV2LCAiJXMgLSBvdXQgb2YgbWVtb3J5XG4iLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisJYnVmZmVyID0ga21hbGxvYyAoVElfTUFYX0kyQ19TSVpFLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWJ1ZmZlcikgeworCQlkZXZfZXJyIChkZXYsICIlcyAtIG91dCBvZiBtZW1vcnkgd2hlbiBhbGxvY2F0aW5nIGJ1ZmZlclxuIiwgX19GVU5DVElPTl9fKTsKKwkJa2ZyZWUgKHJvbV9kZXNjKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJLy8gUmVhZCB0aGUgZmlyc3QgYnl0ZSAoU2lnbmF0dXJlMCkgbXVzdCBiZSAweDUyIG9yIDB4MTAKKwlzdGF0dXMgPSBUSVJlYWRSb20gKHNlcmlhbCwgMCwgMSwgYnVmZmVyKTsKKwlpZiAoc3RhdHVzKQorCQlnb3RvIEV4aXRUaVZhbGlkYXRlSTJjSW1hZ2U7IAorCisJaWYgKCpidWZmZXIgIT0gVU1QNTE1MiAmJiAqYnVmZmVyICE9IFVNUDM0MTApIHsKKwkJZGV2X2VyciAoZGV2LCAiJXMgLSBpbnZhbGlkIGJ1ZmZlciBzaWduYXR1cmVcbiIsIF9fRlVOQ1RJT05fXyk7CisJCXN0YXR1cyA9IC1FTk9ERVY7CisJCWdvdG8gRXhpdFRpVmFsaWRhdGVJMmNJbWFnZTsKKwl9CisKKwlkbyB7CisJCS8vIFZhbGlkYXRlIHRoZSBJMkMKKwkJc3RhdHVzID0gVElSZWFkUm9tIChzZXJpYWwsCisJCQkJc3RhcnRfYWRkcmVzcywKKwkJCQlzaXplb2Yoc3RydWN0IHRpX2kyY19kZXNjKSwKKwkJCQkoX191OCAqKXJvbV9kZXNjKTsKKwkJaWYgKHN0YXR1cykKKwkJCWJyZWFrOworCisJCWlmICgoc3RhcnRfYWRkcmVzcyArIHNpemVvZihzdHJ1Y3QgdGlfaTJjX2Rlc2MpICsgcm9tX2Rlc2MtPlNpemUpID4gVElfTUFYX0kyQ19TSVpFKSB7CisJCQlzdGF0dXMgPSAtRU5PREVWOworCQkJZGJnICgiJXMgLSBzdHJ1Y3R1cmUgdG9vIGJpZywgZXJyb3Jpbmcgb3V0LiIsIF9fRlVOQ1RJT05fXyk7CisJCQlicmVhazsKKwkJfQorCisJCWRiZyAoIiVzIFR5cGUgPSAweCV4IiwgX19GVU5DVElPTl9fLCByb21fZGVzYy0+VHlwZSk7CisKKwkJLy8gU2tpcCB0eXBlIDIgcmVjb3JkCisJCXR0eXBlID0gcm9tX2Rlc2MtPlR5cGUgJiAweDBmOworCQlpZiAoIHR0eXBlICE9IEkyQ19ERVNDX1RZUEVfRklSTVdBUkVfQkFTSUMKKwkJCSYmIHR0eXBlICE9IEkyQ19ERVNDX1RZUEVfRklSTVdBUkVfQVVUTyApIHsKKwkJCS8vIFJlYWQgdGhlIGRlc2NyaXB0b3IgZGF0YQorCQkJc3RhdHVzID0gVElSZWFkUm9tKHNlcmlhbCwKKwkJCQkJCXN0YXJ0X2FkZHJlc3Mrc2l6ZW9mKHN0cnVjdCB0aV9pMmNfZGVzYyksCisJCQkJCQlyb21fZGVzYy0+U2l6ZSwKKwkJCQkJCWJ1ZmZlcik7CisJCQlpZiAoc3RhdHVzKQorCQkJCWJyZWFrOworCisJCQlzdGF0dXMgPSBWYWxpZENoZWNrc3VtKHJvbV9kZXNjLCBidWZmZXIpOworCQkJaWYgKHN0YXR1cykKKwkJCQlicmVhazsKKwkJfQorCQlzdGFydF9hZGRyZXNzID0gc3RhcnRfYWRkcmVzcyArIHNpemVvZihzdHJ1Y3QgdGlfaTJjX2Rlc2MpICsgcm9tX2Rlc2MtPlNpemU7CisKKwl9IHdoaWxlICgocm9tX2Rlc2MtPlR5cGUgIT0gSTJDX0RFU0NfVFlQRV9JT04pICYmIChzdGFydF9hZGRyZXNzIDwgVElfTUFYX0kyQ19TSVpFKSk7CisKKwlpZiAoKHJvbV9kZXNjLT5UeXBlICE9IEkyQ19ERVNDX1RZUEVfSU9OKSB8fCAoc3RhcnRfYWRkcmVzcyA+IFRJX01BWF9JMkNfU0laRSkpCisJCXN0YXR1cyA9IC1FTk9ERVY7CisKK0V4aXRUaVZhbGlkYXRlSTJjSW1hZ2U6CQorCWtmcmVlIChidWZmZXIpOworCWtmcmVlIChyb21fZGVzYyk7CisJcmV0dXJuIHN0YXR1czsKK30KKworc3RhdGljIGludCBUSVJlYWRNYW51ZkRlc2NyaXB0b3IgKHN0cnVjdCBlZGdlcG9ydF9zZXJpYWwgKnNlcmlhbCwgX191OCAqYnVmZmVyKQoreworCWludCBzdGF0dXM7CisJaW50IHN0YXJ0X2FkZHJlc3M7CisJc3RydWN0IHRpX2kyY19kZXNjICpyb21fZGVzYzsKKwlzdHJ1Y3QgZWRnZV90aV9tYW51Zl9kZXNjcmlwdG9yICpkZXNjOworCisJcm9tX2Rlc2MgPSBrbWFsbG9jIChzaXplb2YgKCpyb21fZGVzYyksIEdGUF9LRVJORUwpOworCWlmICghcm9tX2Rlc2MpIHsKKwkJZGV2X2VyciAoJnNlcmlhbC0+c2VyaWFsLT5kZXYtPmRldiwgIiVzIC0gb3V0IG9mIG1lbW9yeVxuIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCXN0YXJ0X2FkZHJlc3MgPSBUSUdldERlc2NyaXB0b3JBZGRyZXNzIChzZXJpYWwsIEkyQ19ERVNDX1RZUEVfSU9OLCByb21fZGVzYyk7CisKKwlpZiAoIXN0YXJ0X2FkZHJlc3MpIHsKKwkJZGJnICgiJXMgLSBFZGdlIERlc2NyaXB0b3Igbm90IGZvdW5kIGluIEkyQyIsIF9fRlVOQ1RJT05fXyk7CisJCXN0YXR1cyA9IC1FTk9ERVY7CisJCWdvdG8gZXhpdDsKKwl9CisKKwkvLyBSZWFkIHRoZSBkZXNjcmlwdG9yIGRhdGEKKwlzdGF0dXMgPSBUSVJlYWRSb20gKHNlcmlhbCwKKwkJCQlzdGFydF9hZGRyZXNzK3NpemVvZihzdHJ1Y3QgdGlfaTJjX2Rlc2MpLAorCQkJCXJvbV9kZXNjLT5TaXplLAorCQkJCWJ1ZmZlcik7CisJaWYgKHN0YXR1cykKKwkJZ290byBleGl0OworCQorCXN0YXR1cyA9IFZhbGlkQ2hlY2tzdW0ocm9tX2Rlc2MsIGJ1ZmZlcik7CisJCisJZGVzYyA9IChzdHJ1Y3QgZWRnZV90aV9tYW51Zl9kZXNjcmlwdG9yICopYnVmZmVyOworCWRiZyAoICIlcyAtIElvbkNvbmZpZyAgICAgIDB4JXgiLCBfX0ZVTkNUSU9OX18sIGRlc2MtPklvbkNvbmZpZyAJKTsKKwlkYmcgKCAiJXMgLSBWZXJzaW9uICAgICAgICAgICVkIiwgX19GVU5DVElPTl9fLCBkZXNjLT5WZXJzaW9uCSAgCSk7CisJZGJnICggIiVzIC0gQ3B1L0JvYXJkICAgICAgMHgleCIsIF9fRlVOQ1RJT05fXywgZGVzYy0+Q3B1UmV2X0JvYXJkUmV2CSk7CisJZGJnICggIiVzIC0gTnVtUG9ydHMgICAgICAgICAlZCIsIF9fRlVOQ1RJT05fXywgZGVzYy0+TnVtUG9ydHMgIAkpOwkKKwlkYmcgKCAiJXMgLSBOdW1WaXJ0dWFsUG9ydHMgICVkIiwgX19GVU5DVElPTl9fLCBkZXNjLT5OdW1WaXJ0dWFsUG9ydHMJKTsJCisJZGJnICggIiVzIC0gVG90YWxQb3J0cyAgICAgICAlZCIsIF9fRlVOQ1RJT05fXywgZGVzYy0+VG90YWxQb3J0cyAgCSk7CQorCitleGl0OgorCWtmcmVlIChyb21fZGVzYyk7CisJcmV0dXJuIHN0YXR1czsKK30KKworLyogQnVpbGQgZmlybXdhcmUgaGVhZGVyIHVzZWQgZm9yIGZpcm13YXJlIHVwZGF0ZSAqLworc3RhdGljIGludCBCdWlsZEkyQ0Zpcm13YXJlSGVhZGVyIChfX3U4ICpoZWFkZXIsIHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlfX3U4ICpidWZmZXI7CisJaW50IGJ1ZmZlcl9zaXplOworCWludCBpOworCV9fdTggY3MgPSAwOworCXN0cnVjdCB0aV9pMmNfZGVzYyAqaTJjX2hlYWRlcjsKKwlzdHJ1Y3QgdGlfaTJjX2ltYWdlX2hlYWRlciAqaW1nX2hlYWRlcjsKKwlzdHJ1Y3QgdGlfaTJjX2Zpcm13YXJlX3JlYyAqZmlybXdhcmVfcmVjOworCisJLy8gSW4gb3JkZXIgdG8gdXBkYXRlIHRoZSBJMkMgZmlybXdhcmUgd2UgbXVzdCBjaGFuZ2UgdGhlIHR5cGUgMiByZWNvcmQgdG8gdHlwZSAweEYyLgorCS8vIFRoaXMgd2lsbCBmb3JjZSB0aGUgVU1QIHRvIGNvbWUgdXAgaW4gQm9vdCBNb2RlLiAgVGhlbiB3aGlsZSBpbiBib290IG1vZGUsIHRoZSBkcml2ZXIgCisJLy8gd2lsbCBkb3dubG9hZCB0aGUgbGF0ZXN0IGZpcm13YXJlIChwYWRkZWQgdG8gMTUuNWspIGludG8gdGhlIFVNUCByYW0uIAorCS8vIEFuZCBmaW5hbGx5IHdoZW4gdGhlIGRldmljZSBjb21lcyBiYWNrIHVwIGluIGRvd25sb2FkIG1vZGUgdGhlIGRyaXZlciB3aWxsIGNhdXNlIAorCS8vIHRoZSBuZXcgZmlybXdhcmUgdG8gYmUgY29waWVkIGZyb20gdGhlIFVNUCBSYW0gdG8gSTJDIGFuZCB0aGUgZmlybXdhcmUgd2lsbCB1cGRhdGUKKwkvLyB0aGUgcmVjb3JkIHR5cGUgZnJvbSAweGYyIHRvIDB4MDIuCisJCisJLy8gQWxsb2NhdGUgYSAxNS41ayBidWZmZXIgKyAyIGJ5dGVzIGZvciB2ZXJzaW9uIG51bWJlciAoRmlybXdhcmUgUmVjb3JkKQorCWJ1ZmZlcl9zaXplID0gKCgoMTAyNCAqIDE2KSAtIDUxMiApKyBzaXplb2Yoc3RydWN0IHRpX2kyY19maXJtd2FyZV9yZWMpKTsKKworCWJ1ZmZlciA9IGttYWxsb2MgKGJ1ZmZlcl9zaXplLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWJ1ZmZlcikgeworCQlkZXZfZXJyIChkZXYsICIlcyAtIG91dCBvZiBtZW1vcnlcbiIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKwkKKwkvLyBTZXQgZW50aXJlIGltYWdlIG9mIDB4ZmZzCisJbWVtc2V0IChidWZmZXIsIDB4ZmYsIGJ1ZmZlcl9zaXplKTsKKworCS8vIENvcHkgdmVyc2lvbiBudW1iZXIgaW50byBmaXJtd2FyZSByZWNvcmQKKwlmaXJtd2FyZV9yZWMgPSAoc3RydWN0IHRpX2kyY19maXJtd2FyZV9yZWMgKilidWZmZXI7CisKKwlmaXJtd2FyZV9yZWMtPlZlcl9NYWpvcgk9IE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbi5NYWpvclZlcnNpb247CisJZmlybXdhcmVfcmVjLT5WZXJfTWlub3IJPSBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb24uTWlub3JWZXJzaW9uOworCisJLy8gUG9pbnRlciB0byBmd19kb3duIG1lbW9yeSBpbWFnZQorCWltZ19oZWFkZXIgPSAoc3RydWN0IHRpX2kyY19pbWFnZV9oZWFkZXIgKikmUGFnYWJsZU9wZXJhdGlvbmFsQ29kZUltYWdlWzBdOworCisJbWVtY3B5IChidWZmZXIgKyBzaXplb2Yoc3RydWN0IHRpX2kyY19maXJtd2FyZV9yZWMpLAorCQkmUGFnYWJsZU9wZXJhdGlvbmFsQ29kZUltYWdlW3NpemVvZihzdHJ1Y3QgdGlfaTJjX2ltYWdlX2hlYWRlcildLAorCQlsZTE2X3RvX2NwdShpbWdfaGVhZGVyLT5MZW5ndGgpKTsKKworCWZvciAoaT0wOyBpIDwgYnVmZmVyX3NpemU7IGkrKykgeworCQljcyA9IChfX3U4KShjcyArIGJ1ZmZlcltpXSk7CisJfQorCisJa2ZyZWUgKGJ1ZmZlcik7CisKKwkvLyBCdWlsZCBuZXcgaGVhZGVyCisJaTJjX2hlYWRlciA9ICAoc3RydWN0IHRpX2kyY19kZXNjICopaGVhZGVyOworCWZpcm13YXJlX3JlYyA9ICAoc3RydWN0IHRpX2kyY19maXJtd2FyZV9yZWMqKWkyY19oZWFkZXItPkRhdGE7CisJCisJaTJjX2hlYWRlci0+VHlwZQk9IEkyQ19ERVNDX1RZUEVfRklSTVdBUkVfQkxBTks7CisJaTJjX2hlYWRlci0+U2l6ZQk9IChfX3UxNilidWZmZXJfc2l6ZTsKKwlpMmNfaGVhZGVyLT5DaGVja1N1bQk9IGNzOworCWZpcm13YXJlX3JlYy0+VmVyX01ham9yCT0gT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLk1ham9yVmVyc2lvbjsKKwlmaXJtd2FyZV9yZWMtPlZlcl9NaW5vcgk9IE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbi5NaW5vclZlcnNpb247CisKKwlyZXR1cm4gMDsKK30KKworLyogVHJ5IHRvIGZpZ3VyZSBvdXQgd2hhdCB0eXBlIG9mIEkyYyB3ZSBoYXZlICovCitzdGF0aWMgaW50IFRJR2V0STJjVHlwZUluQm9vdE1vZGUgKHN0cnVjdCBlZGdlcG9ydF9zZXJpYWwgKnNlcmlhbCkKK3sKKwlpbnQgc3RhdHVzOworCV9fdTggZGF0YTsKKwkJCisJLy8gVHJ5IHRvIHJlYWQgdHlwZSAyCisJc3RhdHVzID0gVElSZWFkVmVuZG9yUmVxdWVzdFN5bmMgKHNlcmlhbC0+c2VyaWFsLT5kZXYsCisJCQkJCVVNUENfTUVNT1JZX1JFQUQsCQkvLyBSZXF1ZXN0CisJCQkJCURUS19BRERSX1NQQUNFX0kyQ19UWVBFX0lJLAkvLyB3VmFsdWUgKEFkZHJlc3MgdHlwZSkKKwkJCQkJMCwJCSAJCS8vIHdJbmRleAorCQkJCQkmZGF0YSwJCQkJLy8gVHJhbnNmZXJCdWZmZXIKKwkJCQkJMHgwMSk7CQkJCS8vIFRyYW5zZmVyQnVmZmVyTGVuZ3RoCisJaWYgKHN0YXR1cykKKwkJZGJnICgiJXMgLSByZWFkIDIgc3RhdHVzIGVycm9yID0gJWQiLCBfX0ZVTkNUSU9OX18sIHN0YXR1cyk7CisJZWxzZQorCQlkYmcgKCIlcyAtIHJlYWQgMiBkYXRhID0gMHgleCIsIF9fRlVOQ1RJT05fXywgZGF0YSk7CisJaWYgKCghc3RhdHVzKSAmJiAoZGF0YSA9PSBVTVA1MTUyIHx8IGRhdGEgPT0gVU1QMzQxMCkpIHsKKwkJZGJnICgiJXMgLSBST01fVFlQRV9JSSIsIF9fRlVOQ1RJT05fXyk7CisJCXNlcmlhbC0+VElfSTJDX1R5cGUgPSBEVEtfQUREUl9TUEFDRV9JMkNfVFlQRV9JSTsKKwkJcmV0dXJuIDA7CisJfQorCisJLy8gVHJ5IHRvIHJlYWQgdHlwZSAzCisJc3RhdHVzID0gVElSZWFkVmVuZG9yUmVxdWVzdFN5bmMgKHNlcmlhbC0+c2VyaWFsLT5kZXYsCisJCQkJCVVNUENfTUVNT1JZX1JFQUQsCQkvLyBSZXF1ZXN0CisJCQkJCURUS19BRERSX1NQQUNFX0kyQ19UWVBFX0lJSSwJLy8gd1ZhbHVlIChBZGRyZXNzIHR5cGUpCisJCQkJCTAsCQkJCS8vIHdJbmRleAorCQkJCQkmZGF0YSwJCQkJLy8gVHJhbnNmZXJCdWZmZXIKKwkJCQkJMHgwMSk7CQkJCS8vIFRyYW5zZmVyQnVmZmVyTGVuZ3RoCisJaWYgKHN0YXR1cykKKwkJZGJnICgiJXMgLSByZWFkIDMgc3RhdHVzIGVycm9yID0gJWQiLCBfX0ZVTkNUSU9OX18sIHN0YXR1cyk7CisJZWxzZQorCQlkYmcgKCIlcyAtIHJlYWQgMiBkYXRhID0gMHgleCIsIF9fRlVOQ1RJT05fXywgZGF0YSk7CisJaWYgKCghc3RhdHVzKSAmJiAoZGF0YSA9PSBVTVA1MTUyIHx8IGRhdGEgPT0gVU1QMzQxMCkpIHsKKwkJZGJnICgiJXMgLSBST01fVFlQRV9JSUkiLCBfX0ZVTkNUSU9OX18pOworCQlzZXJpYWwtPlRJX0kyQ19UeXBlID0gRFRLX0FERFJfU1BBQ0VfSTJDX1RZUEVfSUlJOworCQlyZXR1cm4gMDsKKwl9CisKKwlkYmcgKCIlcyAtIFVua25vd24iLCBfX0ZVTkNUSU9OX18pOworCXNlcmlhbC0+VElfSTJDX1R5cGUgPSBEVEtfQUREUl9TUEFDRV9JMkNfVFlQRV9JSTsKKwlyZXR1cm4gLUVOT0RFVjsKK30KKworc3RhdGljIGludCBUSVNlbmRCdWxrVHJhbnNmZXJTeW5jIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLCB2b2lkICpidWZmZXIsIGludCBsZW5ndGgsIGludCAqbnVtX3NlbnQpCit7CisJaW50IHN0YXR1czsKKworCXN0YXR1cyA9IHVzYl9idWxrX21zZyAoc2VyaWFsLT5kZXYsCisJCQkJdXNiX3NuZGJ1bGtwaXBlKHNlcmlhbC0+ZGV2LAorCQkJCQkJc2VyaWFsLT5wb3J0WzBdLT5idWxrX291dF9lbmRwb2ludEFkZHJlc3MpLAorCQkJCWJ1ZmZlciwKKwkJCQlsZW5ndGgsCisJCQkJbnVtX3NlbnQsCisJCQkJMTAwMCk7CisJcmV0dXJuIHN0YXR1czsKK30KKworLyogRG93bmxvYWQgZ2l2ZW4gZmlybXdhcmUgaW1hZ2UgdG8gdGhlIGRldmljZSAoSU4gQk9PVCBNT0RFKSAqLworc3RhdGljIGludCBUSURvd25sb2FkQ29kZUltYWdlIChzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsICpzZXJpYWwsIF9fdTggKmltYWdlLCBpbnQgaW1hZ2VfbGVuZ3RoKQoreworCWludCBzdGF0dXMgPSAwOworCWludCBwb3M7CisJaW50IHRyYW5zZmVyOworCWludCBkb25lOworCisJLy8gVHJhbnNmZXIgZmlybXdhcmUgaW1hZ2UKKwlmb3IgKHBvcyA9IDA7IHBvcyA8IGltYWdlX2xlbmd0aDsgKSB7CisJCS8vIFJlYWQgdGhlIG5leHQgYnVmZmVyIGZyb20gZmlsZQorCQl0cmFuc2ZlciA9IGltYWdlX2xlbmd0aCAtIHBvczsKKwkJaWYgKHRyYW5zZmVyID4gRURHRV9GV19CVUxLX01BWF9QQUNLRVRfU0laRSkKKwkJCXRyYW5zZmVyID0gRURHRV9GV19CVUxLX01BWF9QQUNLRVRfU0laRTsKKworCQkvLyBUcmFuc2ZlciBkYXRhCisJCXN0YXR1cyA9IFRJU2VuZEJ1bGtUcmFuc2ZlclN5bmMgKHNlcmlhbC0+c2VyaWFsLCAmaW1hZ2VbcG9zXSwgdHJhbnNmZXIsICZkb25lKTsKKwkJaWYgKHN0YXR1cykKKwkJCWJyZWFrOworCQkvLyBBZHZhbmNlIGJ1ZmZlciBwb2ludGVyCisJCXBvcyArPSBkb25lOworCX0KKworCXJldHVybiBzdGF0dXM7Cit9CisKKy8vIEZJWE1FISEhCitzdGF0aWMgaW50IFRJQ29uZmlndXJlQm9vdERldmljZSAoc3RydWN0IHVzYl9kZXZpY2UgKmRldikKK3sKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiBEb3dubG9hZFRJRmlybXdhcmUgLSBEb3dubG9hZCBydW4tdGltZSBvcGVyYXRpbmcgZmlybXdhcmUgdG8gdGhlIFRJNTA1MgorICogCisgKiBUaGlzIHJvdXRpbmUgZG93bmxvYWRzIHRoZSBtYWluIG9wZXJhdGluZyBjb2RlIGludG8gdGhlIFRJNTA1MiwgdXNpbmcgdGhlCisgKiBib290IGNvZGUgYWxyZWFkeSBidXJuZWQgaW50byBFMlBST00gb3IgUk9NLgorICovCitzdGF0aWMgaW50IFRJRG93bmxvYWRGaXJtd2FyZSAoc3RydWN0IGVkZ2Vwb3J0X3NlcmlhbCAqc2VyaWFsKQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZzZXJpYWwtPnNlcmlhbC0+ZGV2LT5kZXY7CisJaW50IHN0YXR1cyA9IDA7CisJaW50IHN0YXJ0X2FkZHJlc3M7CisJc3RydWN0IGVkZ2VfdGlfbWFudWZfZGVzY3JpcHRvciAqdGlfbWFudWZfZGVzYzsKKwlzdHJ1Y3QgdXNiX2ludGVyZmFjZV9kZXNjcmlwdG9yICppbnRlcmZhY2U7CisJaW50IGRvd25sb2FkX2N1cl92ZXI7CisJaW50IGRvd25sb2FkX25ld192ZXI7CisKKwkvKiBUaGlzIHJvdXRpbmUgaXMgZW50ZXJlZCBieSBib3RoIHRoZSBCT09UIG1vZGUgYW5kIHRoZSBEb3dubG9hZCBtb2RlCisJICogV2UgY2FuIGRldGVybWluZSB3aGljaCBjb2RlIGlzIHJ1bm5pbmcgYnkgdGhlIHJlYWRpbmcgdGhlIGNvbmZpZworCSAqIGRlc2NyaXB0b3IgYW5kIGlmIHdlIGhhdmUgb25seSBvbmUgYnVsayBwaXBlIGl0IGlzIGluIGJvb3QgbW9kZQorCSAqLworCXNlcmlhbC0+cHJvZHVjdF9pbmZvLmhhcmR3YXJlX3R5cGUgPSBIQVJEV0FSRV9UWVBFX1RJVU1QOworCisJLyogRGVmYXVsdCB0byB0eXBlIDIgaTJjICovCisJc2VyaWFsLT5USV9JMkNfVHlwZSA9IERUS19BRERSX1NQQUNFX0kyQ19UWVBFX0lJOworCisJc3RhdHVzID0gVElDaG9vc2VDb25maWd1cmF0aW9uIChzZXJpYWwtPnNlcmlhbC0+ZGV2KTsKKwlpZiAoc3RhdHVzKQorCQlyZXR1cm4gc3RhdHVzOworCisJaW50ZXJmYWNlID0gJnNlcmlhbC0+c2VyaWFsLT5pbnRlcmZhY2UtPmN1cl9hbHRzZXR0aW5nLT5kZXNjOworCWlmICghaW50ZXJmYWNlKSB7CisJCWRldl9lcnIgKGRldiwgIiVzIC0gbm8gaW50ZXJmYWNlIHNldCwgZXJyb3IhXG4iLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwkvLyBTZXR1cCBpbml0aWFsIG1vZGUgLS0gdGhlIGRlZmF1bHQgbW9kZSAwIGlzIFRJX01PREVfQ09ORklHVVJJTkcKKwkvLyBpZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgZW5kcG9pbnQgd2UgYXJlIGRlZmluaXRlbHkgaW4gZG93bmxvYWQgbW9kZQorCWlmIChpbnRlcmZhY2UtPmJOdW1FbmRwb2ludHMgPiAxKQorCQlzZXJpYWwtPnByb2R1Y3RfaW5mby5UaU1vZGUgPSBUSV9NT0RFX0RPV05MT0FEOworCWVsc2UKKwkJLy8gT3RoZXJ3aXNlIHdlIHdpbGwgcmVtYWluIGluIGNvbmZpZ3VyaW5nIG1vZGUKKwkJc2VyaWFsLT5wcm9kdWN0X2luZm8uVGlNb2RlID0gVElfTU9ERV9DT05GSUdVUklORzsKKworCS8vIFNhdmUgRG93bmxvYWQgVmVyc2lvbiBOdW1iZXIKKwlPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb24uTWFqb3JWZXJzaW9uID0gUGFnYWJsZU9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbi5NYWpvclZlcnNpb247CisJT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLk1pbm9yVmVyc2lvbiA9IFBhZ2FibGVPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb24uTWlub3JWZXJzaW9uOworCU9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbi5CdWlsZE51bWJlcgkgPSBQYWdhYmxlT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLkJ1aWxkTnVtYmVyOworCisJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCS8qIERvd25sb2FkIE1vZGUgKi8KKwkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisJaWYgKHNlcmlhbC0+cHJvZHVjdF9pbmZvLlRpTW9kZSA9PSBUSV9NT0RFX0RPV05MT0FEKSB7CisJCXN0cnVjdCB0aV9pMmNfZGVzYyAqcm9tX2Rlc2M7CisKKwkJZGJnICgiJXMgLSA8PDw8PDw8PDw8PDw8PDxSVU5OSU5HIElOIERPV05MT0FEIE1PREU+Pj4+Pj4+Pj4+IiwgX19GVU5DVElPTl9fKTsKKworCQlzdGF0dXMgPSBUaVZhbGlkYXRlSTJjSW1hZ2UgKHNlcmlhbCk7CisJCWlmIChzdGF0dXMpIHsKKwkJCWRiZyAoIiVzIC0gPDw8PDw8PDw8PDw8PDw8RE9XTkxPQUQgTU9ERSAtLSBCQUQgSTJDID4+Pj4+Pj4+Pj4iLAorCQkJICAgICBfX0ZVTkNUSU9OX18pOworCQkJcmV0dXJuIHN0YXR1czsKKwkJfQorCQkKKwkJLyogVmFsaWRhdGUgSGFyZHdhcmUgdmVyc2lvbiBudW1iZXIKKwkJICogUmVhZCBNYW51ZmFjdHVyaW5nIERlc2NyaXB0b3IgZnJvbSBUSSBCYXNlZCBFZGdlcG9ydAorCQkgKi8KKwkJdGlfbWFudWZfZGVzYyA9IGttYWxsb2MgKHNpemVvZiAoKnRpX21hbnVmX2Rlc2MpLCBHRlBfS0VSTkVMKTsKKwkJaWYgKCF0aV9tYW51Zl9kZXNjKSB7CisJCQlkZXZfZXJyIChkZXYsICIlcyAtIG91dCBvZiBtZW1vcnkuXG4iLCBfX0ZVTkNUSU9OX18pOworCQkJcmV0dXJuIC1FTk9NRU07CisJCX0KKwkJc3RhdHVzID0gVElSZWFkTWFudWZEZXNjcmlwdG9yIChzZXJpYWwsIChfX3U4ICopdGlfbWFudWZfZGVzYyk7CisJCWlmIChzdGF0dXMpIHsKKwkJCWtmcmVlICh0aV9tYW51Zl9kZXNjKTsKKwkJCXJldHVybiBzdGF0dXM7CisJCX0KKworCQkvLyBDaGVjayB2ZXJzaW9uIG51bWJlciBvZiBJT04gZGVzY3JpcHRvcgorCQlpZiAoIWlnbm9yZV9jcHVfcmV2ICYmIFRJX0dFVF9DUFVfUkVWSVNJT04odGlfbWFudWZfZGVzYy0+Q3B1UmV2X0JvYXJkUmV2KSA8IDIpIHsKKwkJCWRiZyAoICIlcyAtIFdyb25nIENQVSBSZXYgJWQgKE11c3QgYmUgMikiLCBfX0ZVTkNUSU9OX18sIAorCQkJICAgICBUSV9HRVRfQ1BVX1JFVklTSU9OKHRpX21hbnVmX2Rlc2MtPkNwdVJldl9Cb2FyZFJldikpOworCQkJa2ZyZWUgKHRpX21hbnVmX2Rlc2MpOworCQkgICAJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlyb21fZGVzYyA9IGttYWxsb2MgKHNpemVvZiAoKnJvbV9kZXNjKSwgR0ZQX0tFUk5FTCk7CisJCWlmICghcm9tX2Rlc2MpIHsKKwkJCWRldl9lcnIgKGRldiwgIiVzIC0gb3V0IG9mIG1lbW9yeS5cbiIsIF9fRlVOQ1RJT05fXyk7CisJCQlrZnJlZSAodGlfbWFudWZfZGVzYyk7CisJCQlyZXR1cm4gLUVOT01FTTsKKwkJfQorCisJCS8vIFNlYXJjaCBmb3IgdHlwZSAyIHJlY29yZCAoZmlybXdhcmUgcmVjb3JkKQorCQlpZiAoKHN0YXJ0X2FkZHJlc3MgPSBUSUdldERlc2NyaXB0b3JBZGRyZXNzIChzZXJpYWwsIEkyQ19ERVNDX1RZUEVfRklSTVdBUkVfQkFTSUMsIHJvbV9kZXNjKSkgIT0gMCkgeworCQkJc3RydWN0IHRpX2kyY19maXJtd2FyZV9yZWMgKmZpcm13YXJlX3ZlcnNpb247CisJCQlfX3U4IHJlY29yZDsKKworCQkJZGJnICgiJXMgLSBGb3VuZCBUeXBlIEZJUk1XQVJFIChUeXBlIDIpIHJlY29yZCIsIF9fRlVOQ1RJT05fXyk7CisKKwkJCWZpcm13YXJlX3ZlcnNpb24gPSBrbWFsbG9jIChzaXplb2YgKCpmaXJtd2FyZV92ZXJzaW9uKSwgR0ZQX0tFUk5FTCk7CisJCQlpZiAoIWZpcm13YXJlX3ZlcnNpb24pIHsKKwkJCQlkZXZfZXJyIChkZXYsICIlcyAtIG91dCBvZiBtZW1vcnkuXG4iLCBfX0ZVTkNUSU9OX18pOworCQkJCWtmcmVlIChyb21fZGVzYyk7CisJCQkJa2ZyZWUgKHRpX21hbnVmX2Rlc2MpOworCQkJCXJldHVybiAtRU5PTUVNOworCQkJfQorCisJCQkvLyBWYWxpZGF0ZSB2ZXJzaW9uIG51bWJlcgkJCQkKKwkJCS8vIFJlYWQgdGhlIGRlc2NyaXB0b3IgZGF0YQorCQkJc3RhdHVzID0gVElSZWFkUm9tIChzZXJpYWwsCisJCQkJCXN0YXJ0X2FkZHJlc3Mrc2l6ZW9mKHN0cnVjdCB0aV9pMmNfZGVzYyksCisJCQkJCXNpemVvZihzdHJ1Y3QgdGlfaTJjX2Zpcm13YXJlX3JlYyksCisJCQkJCShfX3U4ICopZmlybXdhcmVfdmVyc2lvbik7CisJCQlpZiAoc3RhdHVzKSB7CisJCQkJa2ZyZWUgKGZpcm13YXJlX3ZlcnNpb24pOworCQkJCWtmcmVlIChyb21fZGVzYyk7CisJCQkJa2ZyZWUgKHRpX21hbnVmX2Rlc2MpOworCQkJCXJldHVybiBzdGF0dXM7CisJCQl9CisKKwkJCS8vIENoZWNrIHZlcnNpb24gbnVtYmVyIG9mIGRvd25sb2FkIHdpdGggY3VycmVudCB2ZXJzaW9uIGluIEkyYworCQkJZG93bmxvYWRfY3VyX3ZlciA9IChmaXJtd2FyZV92ZXJzaW9uLT5WZXJfTWFqb3IgPDwgOCkgKyAKKwkJCQkJICAgKGZpcm13YXJlX3ZlcnNpb24tPlZlcl9NaW5vcik7CisJCQlkb3dubG9hZF9uZXdfdmVyID0gKE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbi5NYWpvclZlcnNpb24gPDwgOCkgKworCQkJCQkgICAoT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLk1pbm9yVmVyc2lvbik7CisKKwkJCWRiZyAoIiVzIC0gPj4+RmlybXdhcmUgVmVyc2lvbnMgRGV2aWNlICVkLiVkICBEcml2ZXIgJWQuJWQiLAorCQkJICAgICBfX0ZVTkNUSU9OX18sCisJCQkgICAgIGZpcm13YXJlX3ZlcnNpb24tPlZlcl9NYWpvciwKKwkJCSAgICAgZmlybXdhcmVfdmVyc2lvbi0+VmVyX01pbm9yLAorCQkJICAgICBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb24uTWFqb3JWZXJzaW9uLAorCQkJICAgICBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb24uTWlub3JWZXJzaW9uKTsKKworCQkJLy8gQ2hlY2sgaWYgd2UgaGF2ZSBhbiBvbGQgdmVyc2lvbiBpbiB0aGUgSTJDIGFuZCB1cGRhdGUgaWYgbmVjZXNzYXJ5CisJCQlpZiAoZG93bmxvYWRfY3VyX3ZlciAhPSBkb3dubG9hZF9uZXdfdmVyKSB7CisJCQkJZGJnICgiJXMgLSBVcGRhdGUgSTJDIERvd25sb2FkIGZyb20gJWQuJWQgdG8gJWQuJWQiLAorCQkJCSAgICAgX19GVU5DVElPTl9fLAorCQkJCSAgICAgZmlybXdhcmVfdmVyc2lvbi0+VmVyX01ham9yLAorCQkJCSAgICAgZmlybXdhcmVfdmVyc2lvbi0+VmVyX01pbm9yLAorCQkJCSAgICAgT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLk1ham9yVmVyc2lvbiwKKwkJCQkgICAgIE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbi5NaW5vclZlcnNpb24pOworCisJCQkJLy8gSW4gb3JkZXIgdG8gdXBkYXRlIHRoZSBJMkMgZmlybXdhcmUgd2UgbXVzdCBjaGFuZ2UgdGhlIHR5cGUgMiByZWNvcmQgdG8gdHlwZSAweEYyLgorCQkJCS8vIFRoaXMgd2lsbCBmb3JjZSB0aGUgVU1QIHRvIGNvbWUgdXAgaW4gQm9vdCBNb2RlLiAgVGhlbiB3aGlsZSBpbiBib290IG1vZGUsIHRoZSBkcml2ZXIgCisJCQkJLy8gd2lsbCBkb3dubG9hZCB0aGUgbGF0ZXN0IGZpcm13YXJlIChwYWRkZWQgdG8gMTUuNWspIGludG8gdGhlIFVNUCByYW0uIAorCQkJCS8vIEFuZCBmaW5hbGx5IHdoZW4gdGhlIGRldmljZSBjb21lcyBiYWNrIHVwIGluIGRvd25sb2FkIG1vZGUgdGhlIGRyaXZlciB3aWxsIGNhdXNlIAorCQkJCS8vIHRoZSBuZXcgZmlybXdhcmUgdG8gYmUgY29waWVkIGZyb20gdGhlIFVNUCBSYW0gdG8gSTJDIGFuZCB0aGUgZmlybXdhcmUgd2lsbCB1cGRhdGUKKwkJCQkvLyB0aGUgcmVjb3JkIHR5cGUgZnJvbSAweGYyIHRvIDB4MDIuCisKKwkJCQlyZWNvcmQgPSBJMkNfREVTQ19UWVBFX0ZJUk1XQVJFX0JMQU5LOworCisJCQkJLy8gQ2hhbmdlIHRoZSBJMkMgRmlybXdhcmUgcmVjb3JkIHR5cGUgdG8gMHhmMiB0byB0cmlnZ2VyIGFuIHVwZGF0ZQorCQkJCXN0YXR1cyA9IFRJV3JpdGVSb20gKHNlcmlhbCwKKwkJCQkJCQlzdGFydF9hZGRyZXNzLAorCQkJCQkJCXNpemVvZihyZWNvcmQpLAorCQkJCQkJCSZyZWNvcmQpOworCQkJCWlmIChzdGF0dXMpIHsKKwkJCQkJa2ZyZWUgKGZpcm13YXJlX3ZlcnNpb24pOworCQkJCQlrZnJlZSAocm9tX2Rlc2MpOworCQkJCQlrZnJlZSAodGlfbWFudWZfZGVzYyk7CisJCQkJCXJldHVybiBzdGF0dXM7CisJCQkJfQorCisJCQkJLy8gdmVyaWZ5IHRoZSB3cml0ZSAtLSBtdXN0IGRvIHRoaXMgaW4gb3JkZXIgZm9yIHdyaXRlIHRvIAorCQkJCS8vIGNvbXBsZXRlIGJlZm9yZSB3ZSBkbyB0aGUgaGFyZHdhcmUgcmVzZXQKKwkJCQlzdGF0dXMgPSBUSVJlYWRSb20gKHNlcmlhbCwKKwkJCQkJCQlzdGFydF9hZGRyZXNzLAorCQkJCQkJCXNpemVvZihyZWNvcmQpLAorCQkJCQkJCSZyZWNvcmQpOworCisJCQkJaWYgKHN0YXR1cykgeworCQkJCQlrZnJlZSAoZmlybXdhcmVfdmVyc2lvbik7CisJCQkJCWtmcmVlIChyb21fZGVzYyk7CisJCQkJCWtmcmVlICh0aV9tYW51Zl9kZXNjKTsKKwkJCQkJcmV0dXJuIHN0YXR1czsKKwkJCQl9CisKKwkJCQlpZiAocmVjb3JkICE9IEkyQ19ERVNDX1RZUEVfRklSTVdBUkVfQkxBTkspIHsKKwkJCQkJZGV2X2VyciAoZGV2LCAiJXMgLSBlcnJvciByZXNldHRpbmcgZGV2aWNlXG4iLCBfX0ZVTkNUSU9OX18pOworCQkJCQlrZnJlZSAoZmlybXdhcmVfdmVyc2lvbik7CisJCQkJCWtmcmVlIChyb21fZGVzYyk7CisJCQkJCWtmcmVlICh0aV9tYW51Zl9kZXNjKTsKKwkJCQkJcmV0dXJuIC1FTk9ERVY7CisJCQkJfQorCisJCQkJZGJnICgiJXMgLSBIQVJEV0FSRSBSRVNFVCIsIF9fRlVOQ1RJT05fXyk7CisKKwkJCQkvLyBSZXNldCBVTVAgLS0gQmFjayB0byBCT09UIE1PREUKKwkJCQlzdGF0dXMgPSBUSVNlbmRWZW5kb3JSZXF1ZXN0U3luYyAoc2VyaWFsLT5zZXJpYWwtPmRldiwKKwkJCQkJCQkJVU1QQ19IQVJEV0FSRV9SRVNFVCwJLy8gUmVxdWVzdAorCQkJCQkJCQkwLAkJCS8vIHdWYWx1ZQorCQkJCQkJCQkwLAkJCS8vIHdJbmRleAorCQkJCQkJCQlOVUxMLAkJCS8vIFRyYW5zZmVyQnVmZmVyCisJCQkJCQkJCTApOwkJCS8vIFRyYW5zZmVyQnVmZmVyTGVuZ3RoCisKKwkJCQlkYmcgKCAiJXMgLSBIQVJEV0FSRSBSRVNFVCByZXR1cm4gJWQiLCBfX0ZVTkNUSU9OX18sIHN0YXR1cyk7CisKKwkJCQkvKiByZXR1cm4gYW4gZXJyb3Igb24gcHVycG9zZS4gKi8KKwkJCQlrZnJlZSAoZmlybXdhcmVfdmVyc2lvbik7CisJCQkJa2ZyZWUgKHJvbV9kZXNjKTsKKwkJCQlrZnJlZSAodGlfbWFudWZfZGVzYyk7CisJCQkJcmV0dXJuIC1FTk9ERVY7CisJCQl9CisJCQlrZnJlZSAoZmlybXdhcmVfdmVyc2lvbik7CisJCX0KKwkJLy8gU2VhcmNoIGZvciB0eXBlIDB4RjIgcmVjb3JkIChmaXJtd2FyZSBibGFuayByZWNvcmQpCisJCWVsc2UgaWYgKChzdGFydF9hZGRyZXNzID0gVElHZXREZXNjcmlwdG9yQWRkcmVzcyAoc2VyaWFsLCBJMkNfREVTQ19UWVBFX0ZJUk1XQVJFX0JMQU5LLCByb21fZGVzYykpICE9IDApIHsKKwkJCSNkZWZpbmUgSEVBREVSX1NJWkUJKHNpemVvZihzdHJ1Y3QgdGlfaTJjX2Rlc2MpICsgc2l6ZW9mKHN0cnVjdCB0aV9pMmNfZmlybXdhcmVfcmVjKSkKKwkJCV9fdTggKmhlYWRlcjsKKwkJCV9fdTggKnZoZWFkZXI7CisKKwkJCWhlYWRlciAgPSBrbWFsbG9jIChIRUFERVJfU0laRSwgR0ZQX0tFUk5FTCk7CisJCQlpZiAoIWhlYWRlcikgeworCQkJCWRldl9lcnIgKGRldiwgIiVzIC0gb3V0IG9mIG1lbW9yeS5cbiIsIF9fRlVOQ1RJT05fXyk7CisJCQkJa2ZyZWUgKHJvbV9kZXNjKTsKKwkJCQlrZnJlZSAodGlfbWFudWZfZGVzYyk7CisJCQkJcmV0dXJuIC1FTk9NRU07CisJCQl9CisJCQkJCisJCQl2aGVhZGVyID0ga21hbGxvYyAoSEVBREVSX1NJWkUsIEdGUF9LRVJORUwpOworCQkJaWYgKCF2aGVhZGVyKSB7CisJCQkJZGV2X2VyciAoZGV2LCAiJXMgLSBvdXQgb2YgbWVtb3J5LlxuIiwgX19GVU5DVElPTl9fKTsKKwkJCQlrZnJlZSAoaGVhZGVyKTsKKwkJCQlrZnJlZSAocm9tX2Rlc2MpOworCQkJCWtmcmVlICh0aV9tYW51Zl9kZXNjKTsKKwkJCQlyZXR1cm4gLUVOT01FTTsKKwkJCX0KKwkJCQorCQkJZGJnICgiJXMgLSBGb3VuZCBUeXBlIEJMQU5LIEZJUk1XQVJFIChUeXBlIEYyKSByZWNvcmQiLCBfX0ZVTkNUSU9OX18pOworCisJCQkvLyBJbiBvcmRlciB0byB1cGRhdGUgdGhlIEkyQyBmaXJtd2FyZSB3ZSBtdXN0IGNoYW5nZSB0aGUgdHlwZSAyIHJlY29yZCB0byB0eXBlIDB4RjIuCisJCQkvLyBUaGlzIHdpbGwgZm9yY2UgdGhlIFVNUCB0byBjb21lIHVwIGluIEJvb3QgTW9kZS4gIFRoZW4gd2hpbGUgaW4gYm9vdCBtb2RlLCB0aGUgZHJpdmVyIAorCQkJLy8gd2lsbCBkb3dubG9hZCB0aGUgbGF0ZXN0IGZpcm13YXJlIChwYWRkZWQgdG8gMTUuNWspIGludG8gdGhlIFVNUCByYW0uIAorCQkJLy8gQW5kIGZpbmFsbHkgd2hlbiB0aGUgZGV2aWNlIGNvbWVzIGJhY2sgdXAgaW4gZG93bmxvYWQgbW9kZSB0aGUgZHJpdmVyIHdpbGwgY2F1c2UgCisJCQkvLyB0aGUgbmV3IGZpcm13YXJlIHRvIGJlIGNvcGllZCBmcm9tIHRoZSBVTVAgUmFtIHRvIEkyQyBhbmQgdGhlIGZpcm13YXJlIHdpbGwgdXBkYXRlCisJCQkvLyB0aGUgcmVjb3JkIHR5cGUgZnJvbSAweGYyIHRvIDB4MDIuCisJCQlzdGF0dXMgPSBCdWlsZEkyQ0Zpcm13YXJlSGVhZGVyKGhlYWRlciwgZGV2KTsKKwkJCWlmIChzdGF0dXMpIHsKKwkJCQlrZnJlZSAodmhlYWRlcik7CisJCQkJa2ZyZWUgKGhlYWRlcik7CisJCQkJa2ZyZWUgKHJvbV9kZXNjKTsKKwkJCQlrZnJlZSAodGlfbWFudWZfZGVzYyk7CisJCQkJcmV0dXJuIHN0YXR1czsKKwkJCX0KKworCQkJLy8gVXBkYXRlIEkyQyB3aXRoIHR5cGUgMHhmMiByZWNvcmQgd2l0aCBjb3JyZWN0IHNpemUgYW5kIGNoZWNrc3VtCisJCQlzdGF0dXMgPSBUSVdyaXRlUm9tIChzZXJpYWwsCisJCQkJCQlzdGFydF9hZGRyZXNzLAorCQkJCQkJSEVBREVSX1NJWkUsCisJCQkJCQloZWFkZXIpOworCQkJaWYgKHN0YXR1cykgeworCQkJCWtmcmVlICh2aGVhZGVyKTsKKwkJCQlrZnJlZSAoaGVhZGVyKTsKKwkJCQlrZnJlZSAocm9tX2Rlc2MpOworCQkJCWtmcmVlICh0aV9tYW51Zl9kZXNjKTsKKwkJCQlyZXR1cm4gc3RhdHVzOworCQkJfQorCisJCQkvLyB2ZXJpZnkgdGhlIHdyaXRlIC0tIG11c3QgZG8gdGhpcyBpbiBvcmRlciBmb3Igd3JpdGUgdG8gCisJCQkvLyBjb21wbGV0ZSBiZWZvcmUgd2UgZG8gdGhlIGhhcmR3YXJlIHJlc2V0CisJCQlzdGF0dXMgPSBUSVJlYWRSb20gKHNlcmlhbCwKKwkJCQkJCXN0YXJ0X2FkZHJlc3MsCisJCQkJCQlIRUFERVJfU0laRSwKKwkJCQkJCXZoZWFkZXIpOworCisJCQlpZiAoc3RhdHVzKSB7CisJCQkJZGJnICgiJXMgLSBjYW4ndCByZWFkIGhlYWRlciBiYWNrIiwgX19GVU5DVElPTl9fKTsKKwkJCQlrZnJlZSAodmhlYWRlcik7CisJCQkJa2ZyZWUgKGhlYWRlcik7CisJCQkJa2ZyZWUgKHJvbV9kZXNjKTsKKwkJCQlrZnJlZSAodGlfbWFudWZfZGVzYyk7CisJCQkJcmV0dXJuIHN0YXR1czsKKwkJCX0KKwkJCWlmIChtZW1jbXAodmhlYWRlciwgaGVhZGVyLCBIRUFERVJfU0laRSkpIHsKKwkJCQlkYmcgKCIlcyAtIHdyaXRlIGRvd25sb2FkIHJlY29yZCBmYWlsZWQiLCBfX0ZVTkNUSU9OX18pOworCQkJCWtmcmVlICh2aGVhZGVyKTsKKwkJCQlrZnJlZSAoaGVhZGVyKTsKKwkJCQlrZnJlZSAocm9tX2Rlc2MpOworCQkJCWtmcmVlICh0aV9tYW51Zl9kZXNjKTsKKwkJCQlyZXR1cm4gc3RhdHVzOworCQkJfQorCisJCQlrZnJlZSAodmhlYWRlcik7CisJCQlrZnJlZSAoaGVhZGVyKTsKKworCQkJZGJnICgiJXMgLSBTdGFydCBmaXJtd2FyZSB1cGRhdGUiLCBfX0ZVTkNUSU9OX18pOworCisJCQkvLyBUZWxsIGZpcm13YXJlIHRvIGNvcHkgZG93bmxvYWQgaW1hZ2UgaW50byBJMkMgCisJCQlzdGF0dXMgPSBUSVNlbmRWZW5kb3JSZXF1ZXN0U3luYyAoc2VyaWFsLT5zZXJpYWwtPmRldiwKKwkJCQkJCVVNUENfQ09QWV9ETkxEX1RPX0kyQywJLy8gUmVxdWVzdAorCQkJCQkJMCwJCQkvLyB3VmFsdWUgCisJCQkJCQkwLAkJCS8vIHdJbmRleAorCQkJCQkJTlVMTCwJCQkvLyBUcmFuc2ZlckJ1ZmZlcgorCQkJCQkJMCk7CQkJLy8gVHJhbnNmZXJCdWZmZXJMZW5ndGgKKworCQkgIAlkYmcgKCIlcyAtIFVwZGF0ZSBjb21wbGV0ZSAweCV4IiwgX19GVU5DVElPTl9fLCBzdGF0dXMpOworCQkJaWYgKHN0YXR1cykgeworCQkJCWRldl9lcnIgKGRldiwgIiVzIC0gVU1QQ19DT1BZX0ROTERfVE9fSTJDIGZhaWxlZFxuIiwgX19GVU5DVElPTl9fKTsKKwkJCQlrZnJlZSAocm9tX2Rlc2MpOworCQkJCWtmcmVlICh0aV9tYW51Zl9kZXNjKTsKKwkJCQlyZXR1cm4gc3RhdHVzOworCQkJfQorCQl9CisKKwkJLy8gVGhlIGRldmljZSBpcyBydW5uaW5nIHRoZSBkb3dubG9hZCBjb2RlCisJCWtmcmVlIChyb21fZGVzYyk7CisJCWtmcmVlICh0aV9tYW51Zl9kZXNjKTsKKwkJcmV0dXJuIDA7CisJfQorCisJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCS8qIEJvb3QgTW9kZSAqLworCS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwlkYmcgKCIlcyAtIDw8PDw8PDw8PDw8PDw8PFJVTk5JTkcgSU4gQk9PVCBNT0RFPj4+Pj4+Pj4+Pj4+Pj4+IiwKKwkgICAgIF9fRlVOQ1RJT05fXyk7CisKKwkvLyBDb25maWd1cmUgdGhlIFRJIGRldmljZSBzbyB3ZSBjYW4gdXNlIHRoZSBCVUxLIHBpcGVzIGZvciBkb3dubG9hZAorCXN0YXR1cyA9IFRJQ29uZmlndXJlQm9vdERldmljZSAoc2VyaWFsLT5zZXJpYWwtPmRldik7CisJaWYgKHN0YXR1cykKKwkJcmV0dXJuIHN0YXR1czsKKworCWlmIChsZTE2X3RvX2NwdShzZXJpYWwtPnNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmlkVmVuZG9yKSAhPSBVU0JfVkVORE9SX0lEX0lPTikgeworCQlkYmcgKCIlcyAtIFZJRCA9IDB4JXgiLCBfX0ZVTkNUSU9OX18sCisJCSAgICAgbGUxNl90b19jcHUoc2VyaWFsLT5zZXJpYWwtPmRldi0+ZGVzY3JpcHRvci5pZFZlbmRvcikpOworCQlzZXJpYWwtPlRJX0kyQ19UeXBlID0gRFRLX0FERFJfU1BBQ0VfSTJDX1RZUEVfSUk7CisJCWdvdG8gU3RheUluQm9vdE1vZGU7CisJfQorCisJLy8gV2UgaGF2ZSBhbiBJT04gZGV2aWNlIChJMmMgTXVzdCBiZSBwcm9ncmFtbWVkKQorCS8vIERldGVybWluZSBJMkMgaW1hZ2UgdHlwZQorCWlmIChUSUdldEkyY1R5cGVJbkJvb3RNb2RlKHNlcmlhbCkpIHsKKwkJZ290byBTdGF5SW5Cb290TW9kZTsKKwl9CisKKwkvLyBSZWdpc3RyeSB2YXJpYWJsZSBzZXQ/CisJaWYgKFRJU3RheUluQm9vdE1vZGUpIHsKKwkJZGJnICgiJXMgLSBUSVN0YXlJbkJvb3RNb2RlIiwgX19GVU5DVElPTl9fKTsKKwkJZ290byBTdGF5SW5Cb290TW9kZTsKKwl9CisKKwkvLyBDaGVjayBmb3IgSU9OIFZlbmRvciBJRCBhbmQgdGhhdCB0aGUgSTJDIGlzIHZhbGlkCisJaWYgKCFUaVZhbGlkYXRlSTJjSW1hZ2Uoc2VyaWFsKSkgeworCQlzdHJ1Y3QgdGlfaTJjX2ltYWdlX2hlYWRlciAqaGVhZGVyOworCQlpbnQgaTsKKwkJX191OCBjcyA9IDA7CisJCV9fdTggKmJ1ZmZlcjsKKwkJaW50IGJ1ZmZlcl9zaXplOworCisJCS8qIFZhbGlkYXRlIEhhcmR3YXJlIHZlcnNpb24gbnVtYmVyCisJCSAqIFJlYWQgTWFudWZhY3R1cmluZyBEZXNjcmlwdG9yIGZyb20gVEkgQmFzZWQgRWRnZXBvcnQKKwkJICovCisJCXRpX21hbnVmX2Rlc2MgPSBrbWFsbG9jIChzaXplb2YgKCp0aV9tYW51Zl9kZXNjKSwgR0ZQX0tFUk5FTCk7CisJCWlmICghdGlfbWFudWZfZGVzYykgeworCQkJZGV2X2VyciAoZGV2LCAiJXMgLSBvdXQgb2YgbWVtb3J5LlxuIiwgX19GVU5DVElPTl9fKTsKKwkJCXJldHVybiAtRU5PTUVNOworCQl9CisJCXN0YXR1cyA9IFRJUmVhZE1hbnVmRGVzY3JpcHRvciAoc2VyaWFsLCAoX191OCAqKXRpX21hbnVmX2Rlc2MpOworCQlpZiAoc3RhdHVzKSB7CisJCQlrZnJlZSAodGlfbWFudWZfZGVzYyk7CisJCQlnb3RvIFN0YXlJbkJvb3RNb2RlOworCQl9CisKKwkJLy8gQ2hlY2sgZm9yIHZlcnNpb24gMgorCQlpZiAoIWlnbm9yZV9jcHVfcmV2ICYmIFRJX0dFVF9DUFVfUkVWSVNJT04odGlfbWFudWZfZGVzYy0+Q3B1UmV2X0JvYXJkUmV2KSA8IDIpIHsKKwkJCWRiZyAoIiVzIC0gV3JvbmcgQ1BVIFJldiAlZCAoTXVzdCBiZSAyKSIsIF9fRlVOQ1RJT05fXywKKwkJCSAgICAgVElfR0VUX0NQVV9SRVZJU0lPTih0aV9tYW51Zl9kZXNjLT5DcHVSZXZfQm9hcmRSZXYpKTsKKwkJCWtmcmVlICh0aV9tYW51Zl9kZXNjKTsKKwkJCWdvdG8gU3RheUluQm9vdE1vZGU7CisJCX0KKworCQlrZnJlZSAodGlfbWFudWZfZGVzYyk7CisKKwkJLy8gSW4gb3JkZXIgdG8gdXBkYXRlIHRoZSBJMkMgZmlybXdhcmUgd2UgbXVzdCBjaGFuZ2UgdGhlIHR5cGUgMiByZWNvcmQgdG8gdHlwZSAweEYyLgorCQkvLyBUaGlzIHdpbGwgZm9yY2UgdGhlIFVNUCB0byBjb21lIHVwIGluIEJvb3QgTW9kZS4gIFRoZW4gd2hpbGUgaW4gYm9vdCBtb2RlLCB0aGUgZHJpdmVyIAorCQkvLyB3aWxsIGRvd25sb2FkIHRoZSBsYXRlc3QgZmlybXdhcmUgKHBhZGRlZCB0byAxNS41aykgaW50byB0aGUgVU1QIHJhbS4gCisJCS8vIEFuZCBmaW5hbGx5IHdoZW4gdGhlIGRldmljZSBjb21lcyBiYWNrIHVwIGluIGRvd25sb2FkIG1vZGUgdGhlIGRyaXZlciB3aWxsIGNhdXNlIAorCQkvLyB0aGUgbmV3IGZpcm13YXJlIHRvIGJlIGNvcGllZCBmcm9tIHRoZSBVTVAgUmFtIHRvIEkyQyBhbmQgdGhlIGZpcm13YXJlIHdpbGwgdXBkYXRlCisJCS8vIHRoZSByZWNvcmQgdHlwZSBmcm9tIDB4ZjIgdG8gMHgwMi4KKwkJCisJCS8qCisJCSAqIERvIHdlIHJlYWxseSBoYXZlIHRvIGNvcHkgdGhlIHdob2xlIGZpcm13YXJlIGltYWdlLAorCQkgKiBvciBjb3VsZCB3ZSBkbyB0aGlzIGluIHBsYWNlIQorCQkgKi8KKworCQkvLyBBbGxvY2F0ZSBhIDE1LjVrIGJ1ZmZlciArIDMgYnl0ZSBoZWFkZXIKKwkJYnVmZmVyX3NpemUgPSAoKCgxMDI0ICogMTYpIC0gNTEyKSArIHNpemVvZihzdHJ1Y3QgdGlfaTJjX2ltYWdlX2hlYWRlcikpOworCQlidWZmZXIgPSBrbWFsbG9jIChidWZmZXJfc2l6ZSwgR0ZQX0tFUk5FTCk7CisJCWlmICghYnVmZmVyKSB7CisJCQlkZXZfZXJyIChkZXYsICIlcyAtIG91dCBvZiBtZW1vcnlcbiIsIF9fRlVOQ1RJT05fXyk7CisJCQlyZXR1cm4gLUVOT01FTTsKKwkJfQorCQkKKwkJLy8gSW5pdGlhbGl6ZSB0aGUgYnVmZmVyIHRvIDB4ZmYgKHBhZCB0aGUgYnVmZmVyKQorCQltZW1zZXQgKGJ1ZmZlciwgMHhmZiwgYnVmZmVyX3NpemUpOworCisJCW1lbWNweSAoYnVmZmVyLCAmUGFnYWJsZU9wZXJhdGlvbmFsQ29kZUltYWdlWzBdLCBQYWdhYmxlT3BlcmF0aW9uYWxDb2RlU2l6ZSk7CisKKwkJZm9yKGkgPSBzaXplb2Yoc3RydWN0IHRpX2kyY19pbWFnZV9oZWFkZXIpOyBpIDwgYnVmZmVyX3NpemU7IGkrKykgeworCQkJY3MgPSAoX191OCkoY3MgKyBidWZmZXJbaV0pOworCQl9CisJCQorCQloZWFkZXIgPSAoc3RydWN0IHRpX2kyY19pbWFnZV9oZWFkZXIgKilidWZmZXI7CisJCQorCQkvLyB1cGRhdGUgbGVuZ3RoIGFuZCBjaGVja3N1bSBhZnRlciBwYWRkaW5nCisJCWhlYWRlci0+TGVuZ3RoIAkgPSBjcHVfdG9fbGUxNigoX191MTYpKGJ1ZmZlcl9zaXplIC0gc2l6ZW9mKHN0cnVjdCB0aV9pMmNfaW1hZ2VfaGVhZGVyKSkpOworCQloZWFkZXItPkNoZWNrU3VtID0gY3M7CisKKwkJLy8gRG93bmxvYWQgdGhlIG9wZXJhdGlvbmFsIGNvZGUgCisJCWRiZyAoIiVzIC0gRG93bmxvYWRpbmcgb3BlcmF0aW9uYWwgY29kZSBpbWFnZSAoVEkgVU1QKSIsIF9fRlVOQ1RJT05fXyk7CisJCXN0YXR1cyA9IFRJRG93bmxvYWRDb2RlSW1hZ2UgKHNlcmlhbCwgYnVmZmVyLCBidWZmZXJfc2l6ZSk7CisKKwkJa2ZyZWUgKGJ1ZmZlcik7CisKKwkJaWYgKHN0YXR1cykgeworCSAgCQlkYmcgKCIlcyAtIEVycm9yIGRvd25sb2FkaW5nIG9wZXJhdGlvbmFsIGNvZGUgaW1hZ2UiLCBfX0ZVTkNUSU9OX18pOworCQkJcmV0dXJuIHN0YXR1czsKKwkJfQorCisJCS8vIERldmljZSB3aWxsIHJlYm9vdAorCQlzZXJpYWwtPnByb2R1Y3RfaW5mby5UaU1vZGUgPSBUSV9NT0RFX1RSQU5TSVRJT05JTkc7CisKKyAgCQlkYmcgKCIlcyAtIERvd25sb2FkIHN1Y2Nlc3NmdWwgLS0gRGV2aWNlIHJlYm9vdGluZy4uLiIsIF9fRlVOQ1RJT05fXyk7CisKKwkJLyogcmV0dXJuIGFuIGVycm9yIG9uIHB1cnBvc2UgKi8KKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCitTdGF5SW5Cb290TW9kZToKKwkvLyBFcHJvbSBpcyBpbnZhbGlkIG9yIGJsYW5rIHN0YXkgaW4gYm9vdCBtb2RlCisJZGJnICgiJXMgLSA8PDw8PDw8PDw8PDw8PDxTVEFZSU5HIElOIEJPT1QgTU9ERT4+Pj4+Pj4+Pj4+PiIsIF9fRlVOQ1RJT05fXyk7CisJc2VyaWFsLT5wcm9kdWN0X2luZm8uVGlNb2RlID0gVElfTU9ERV9CT09UOworCisJcmV0dXJuIDA7Cit9CisKKworc3RhdGljIGludCBUSVNldER0ciAoc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKnBvcnQpCit7CisJaW50IHBvcnRfbnVtYmVyID0gcG9ydC0+cG9ydC0+bnVtYmVyIC0gcG9ydC0+cG9ydC0+c2VyaWFsLT5taW5vcjsKKworCWRiZyAoIiVzIiwgX19GVU5DVElPTl9fKTsKKwlwb3J0LT5zaGFkb3dfbWNyIHw9IE1DUl9EVFI7CisKKwlyZXR1cm4gVElXcml0ZUNvbW1hbmRTeW5jIChwb3J0LT5wb3J0LT5zZXJpYWwtPmRldiwKKwkJCQlVTVBDX1NFVF9DTFJfRFRSLAorCQkJCShfX3U4KShVTVBNX1VBUlQxX1BPUlQgKyBwb3J0X251bWJlciksCisJCQkJMSwJLyogc2V0ICovCisJCQkJTlVMTCwKKwkJCQkwKTsKK30KKworc3RhdGljIGludCBUSUNsZWFyRHRyIChzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqcG9ydCkKK3sKKwlpbnQgcG9ydF9udW1iZXIgPSBwb3J0LT5wb3J0LT5udW1iZXIgLSBwb3J0LT5wb3J0LT5zZXJpYWwtPm1pbm9yOworCisJZGJnICgiJXMiLCBfX0ZVTkNUSU9OX18pOworCXBvcnQtPnNoYWRvd19tY3IgJj0gfk1DUl9EVFI7CisKKwlyZXR1cm4gVElXcml0ZUNvbW1hbmRTeW5jIChwb3J0LT5wb3J0LT5zZXJpYWwtPmRldiwKKwkJCQlVTVBDX1NFVF9DTFJfRFRSLAorCQkJCShfX3U4KShVTVBNX1VBUlQxX1BPUlQgKyBwb3J0X251bWJlciksCisJCQkJMCwJLyogY2xlYXIgKi8KKwkJCQlOVUxMLAorCQkJCTApOworfQorCitzdGF0aWMgaW50IFRJU2V0UnRzIChzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqcG9ydCkKK3sKKwlpbnQgcG9ydF9udW1iZXIgPSBwb3J0LT5wb3J0LT5udW1iZXIgLSBwb3J0LT5wb3J0LT5zZXJpYWwtPm1pbm9yOworCisJZGJnICgiJXMiLCBfX0ZVTkNUSU9OX18pOworCXBvcnQtPnNoYWRvd19tY3IgfD0gTUNSX1JUUzsKKworCXJldHVybiBUSVdyaXRlQ29tbWFuZFN5bmMgKHBvcnQtPnBvcnQtPnNlcmlhbC0+ZGV2LAorCQkJCVVNUENfU0VUX0NMUl9SVFMsCisJCQkJKF9fdTgpKFVNUE1fVUFSVDFfUE9SVCArIHBvcnRfbnVtYmVyKSwKKwkJCQkxLAkvKiBzZXQgKi8KKwkJCQlOVUxMLAorCQkJCTApOworfQorCitzdGF0aWMgaW50IFRJQ2xlYXJSdHMgKHN0cnVjdCBlZGdlcG9ydF9wb3J0ICpwb3J0KQoreworCWludCBwb3J0X251bWJlciA9IHBvcnQtPnBvcnQtPm51bWJlciAtIHBvcnQtPnBvcnQtPnNlcmlhbC0+bWlub3I7CisKKwlkYmcgKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisJcG9ydC0+c2hhZG93X21jciAmPSB+TUNSX1JUUzsKKworCXJldHVybiBUSVdyaXRlQ29tbWFuZFN5bmMgKHBvcnQtPnBvcnQtPnNlcmlhbC0+ZGV2LAorCQkJCVVNUENfU0VUX0NMUl9SVFMsCisJCQkJKF9fdTgpKFVNUE1fVUFSVDFfUE9SVCArIHBvcnRfbnVtYmVyKSwKKwkJCQkwLAkvKiBjbGVhciAqLworCQkJCU5VTEwsCisJCQkJMCk7Cit9CisKK3N0YXRpYyBpbnQgVElTZXRMb29wQmFjayAoc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKnBvcnQpCit7CisJaW50IHBvcnRfbnVtYmVyID0gcG9ydC0+cG9ydC0+bnVtYmVyIC0gcG9ydC0+cG9ydC0+c2VyaWFsLT5taW5vcjsKKworCWRiZyAoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCXJldHVybiBUSVdyaXRlQ29tbWFuZFN5bmMgKHBvcnQtPnBvcnQtPnNlcmlhbC0+ZGV2LAorCQkJCVVNUENfU0VUX0NMUl9MT09QQkFDSywKKwkJCQkoX191OCkoVU1QTV9VQVJUMV9QT1JUICsgcG9ydF9udW1iZXIpLAorCQkJCTEsCS8qIHNldCAqLworCQkJCU5VTEwsCisJCQkJMCk7Cit9CisKK3N0YXRpYyBpbnQgVElDbGVhckxvb3BCYWNrIChzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqcG9ydCkKK3sKKwlpbnQgcG9ydF9udW1iZXIgPSBwb3J0LT5wb3J0LT5udW1iZXIgLSBwb3J0LT5wb3J0LT5zZXJpYWwtPm1pbm9yOworCisJZGJnICgiJXMiLCBfX0ZVTkNUSU9OX18pOworCisJcmV0dXJuIFRJV3JpdGVDb21tYW5kU3luYyAocG9ydC0+cG9ydC0+c2VyaWFsLT5kZXYsCisJCQkJVU1QQ19TRVRfQ0xSX0xPT1BCQUNLLAorCQkJCShfX3U4KShVTVBNX1VBUlQxX1BPUlQgKyBwb3J0X251bWJlciksCisJCQkJMCwJLyogY2xlYXIgKi8KKwkJCQlOVUxMLAorCQkJCTApOworfQorCitzdGF0aWMgaW50IFRJU2V0QnJlYWsgKHN0cnVjdCBlZGdlcG9ydF9wb3J0ICpwb3J0KQoreworCWludCBwb3J0X251bWJlciA9IHBvcnQtPnBvcnQtPm51bWJlciAtIHBvcnQtPnBvcnQtPnNlcmlhbC0+bWlub3I7CisKKwlkYmcgKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwlyZXR1cm4gVElXcml0ZUNvbW1hbmRTeW5jIChwb3J0LT5wb3J0LT5zZXJpYWwtPmRldiwKKwkJCQlVTVBDX1NFVF9DTFJfQlJFQUssCisJCQkJKF9fdTgpKFVNUE1fVUFSVDFfUE9SVCArIHBvcnRfbnVtYmVyKSwKKwkJCQkxLAkvKiBzZXQgKi8KKwkJCQlOVUxMLAorCQkJCTApOworfQorCitzdGF0aWMgaW50IFRJQ2xlYXJCcmVhayAoc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKnBvcnQpCit7CisJaW50IHBvcnRfbnVtYmVyID0gcG9ydC0+cG9ydC0+bnVtYmVyIC0gcG9ydC0+cG9ydC0+c2VyaWFsLT5taW5vcjsKKworCWRiZyAoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCXJldHVybiBUSVdyaXRlQ29tbWFuZFN5bmMgKHBvcnQtPnBvcnQtPnNlcmlhbC0+ZGV2LAorCQkJCVVNUENfU0VUX0NMUl9CUkVBSywKKwkJCQkoX191OCkoVU1QTV9VQVJUMV9QT1JUICsgcG9ydF9udW1iZXIpLAorCQkJCTAsCS8qIGNsZWFyICovCisJCQkJTlVMTCwKKwkJCQkwKTsKK30KKworc3RhdGljIGludCBUSVJlc3RvcmVNQ1IgKHN0cnVjdCBlZGdlcG9ydF9wb3J0ICpwb3J0LCBfX3U4IG1jcikKK3sKKwlpbnQgc3RhdHVzID0gMDsKKworCWRiZyAoIiVzIC0gJXgiLCBfX0ZVTkNUSU9OX18sIG1jcik7CisKKwlpZiAobWNyICYgTUNSX0RUUikKKwkJc3RhdHVzID0gVElTZXREdHIgKHBvcnQpOworCWVsc2UKKwkJc3RhdHVzID0gVElDbGVhckR0ciAocG9ydCk7CisKKwlpZiAoc3RhdHVzKQorCQlyZXR1cm4gc3RhdHVzOworCisJaWYgKG1jciAmIE1DUl9SVFMpCisJCXN0YXR1cyA9IFRJU2V0UnRzIChwb3J0KTsKKwllbHNlCisJCXN0YXR1cyA9IFRJQ2xlYXJSdHMgKHBvcnQpOworCisJaWYgKHN0YXR1cykKKwkJcmV0dXJuIHN0YXR1czsKKworCWlmIChtY3IgJiBNQ1JfTE9PUEJBQ0spCisJCXN0YXR1cyA9IFRJU2V0TG9vcEJhY2sgKHBvcnQpOworCWVsc2UKKwkJc3RhdHVzID0gVElDbGVhckxvb3BCYWNrIChwb3J0KTsKKworCXJldHVybiBzdGF0dXM7Cit9CisKKworCisvKiBDb252ZXJ0IFRJIExTUiB0byBzdGFuZGFyZCBVQVJUIGZsYWdzICovCitzdGF0aWMgX191OCBNYXBMaW5lU3RhdHVzIChfX3U4IHRpX2xzcikKK3sKKwlfX3U4IGxzciA9IDA7CisKKyNkZWZpbmUgTUFQX0ZMQUcoZmxhZ1VtcCwgZmxhZ1VhcnQpICAgIFwKKwlpZiAodGlfbHNyICYgZmxhZ1VtcCkgXAorCQlsc3IgfD0gZmxhZ1VhcnQ7CisKKwlNQVBfRkxBRyhVTVBfVUFSVF9MU1JfT1ZfTUFTSywgTFNSX09WRVJfRVJSKQkvKiBvdmVycnVuICovCisJTUFQX0ZMQUcoVU1QX1VBUlRfTFNSX1BFX01BU0ssIExTUl9QQVJfRVJSKQkvKiBwYXJpdHkgZXJyb3IgKi8KKwlNQVBfRkxBRyhVTVBfVUFSVF9MU1JfRkVfTUFTSywgTFNSX0ZSTV9FUlIpCS8qIGZyYW1pbmcgZXJyb3IgKi8KKwlNQVBfRkxBRyhVTVBfVUFSVF9MU1JfQlJfTUFTSywgTFNSX0JSRUFLKQkvKiBicmVhayBkZXRlY3RlZCAqLworCU1BUF9GTEFHKFVNUF9VQVJUX0xTUl9SWF9NQVNLLCBMU1JfUlhfQVZBSUwpCS8qIHJlY2VpdmUgZGF0YSBhdmFpbGFibGUgKi8KKwlNQVBfRkxBRyhVTVBfVUFSVF9MU1JfVFhfTUFTSywgTFNSX1RYX0VNUFRZKQkvKiB0cmFuc21pdCBob2xkaW5nIHJlZ2lzdGVyIGVtcHR5ICovCisKKyN1bmRlZiBNQVBfRkxBRworCisJcmV0dXJuIGxzcjsKK30KKworc3RhdGljIHZvaWQgaGFuZGxlX25ld19tc3IgKHN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQsIF9fdTggbXNyKQoreworCXN0cnVjdCBhc3luY19pY291bnQgKmljb3VudDsKKwlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5OworCisJZGJnICgiJXMgLSAlMDJ4IiwgX19GVU5DVElPTl9fLCBtc3IpOworCisJaWYgKG1zciAmIChFREdFUE9SVF9NU1JfREVMVEFfQ1RTIHwgRURHRVBPUlRfTVNSX0RFTFRBX0RTUiB8IEVER0VQT1JUX01TUl9ERUxUQV9SSSB8IEVER0VQT1JUX01TUl9ERUxUQV9DRCkpIHsKKwkJaWNvdW50ID0gJmVkZ2VfcG9ydC0+aWNvdW50OworCisJCS8qIHVwZGF0ZSBpbnB1dCBsaW5lIGNvdW50ZXJzICovCisJCWlmIChtc3IgJiBFREdFUE9SVF9NU1JfREVMVEFfQ1RTKQorCQkJaWNvdW50LT5jdHMrKzsKKwkJaWYgKG1zciAmIEVER0VQT1JUX01TUl9ERUxUQV9EU1IpCisJCQlpY291bnQtPmRzcisrOworCQlpZiAobXNyICYgRURHRVBPUlRfTVNSX0RFTFRBX0NEKQorCQkJaWNvdW50LT5kY2QrKzsKKwkJaWYgKG1zciAmIEVER0VQT1JUX01TUl9ERUxUQV9SSSkKKwkJCWljb3VudC0+cm5nKys7CisJCXdha2VfdXBfaW50ZXJydXB0aWJsZSAoJmVkZ2VfcG9ydC0+ZGVsdGFfbXNyX3dhaXQpOworCX0KKworCS8qIFNhdmUgdGhlIG5ldyBtb2RlbSBzdGF0dXMgKi8KKwllZGdlX3BvcnQtPnNoYWRvd19tc3IgPSBtc3IgJiAweGYwOworCisJdHR5ID0gZWRnZV9wb3J0LT5wb3J0LT50dHk7CisJLyogaGFuZGxlIENUUyBmbG93IGNvbnRyb2wgKi8KKwlpZiAodHR5ICYmIENfQ1JUU0NUUyh0dHkpKSB7CisJCWlmIChtc3IgJiBFREdFUE9SVF9NU1JfQ1RTKSB7CisJCQl0dHktPmh3X3N0b3BwZWQgPSAwOworCQkJdHR5X3dha2V1cCh0dHkpOworCQl9IGVsc2UgeworCQkJdHR5LT5od19zdG9wcGVkID0gMTsKKwkJfQorCX0KKworCXJldHVybjsKK30KKworc3RhdGljIHZvaWQgaGFuZGxlX25ld19sc3IgKHN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQsIGludCBsc3JfZGF0YSwgX191OCBsc3IsIF9fdTggZGF0YSkKK3sKKwlzdHJ1Y3QgYXN5bmNfaWNvdW50ICppY291bnQ7CisJX191OCBuZXdfbHNyID0gKF9fdTgpKGxzciAmIChfX3U4KShMU1JfT1ZFUl9FUlIgfCBMU1JfUEFSX0VSUiB8IExTUl9GUk1fRVJSIHwgTFNSX0JSRUFLKSk7CisKKwlkYmcgKCIlcyAtICUwMngiLCBfX0ZVTkNUSU9OX18sIG5ld19sc3IpOworCisJZWRnZV9wb3J0LT5zaGFkb3dfbHNyID0gbHNyOworCisJaWYgKG5ld19sc3IgJiBMU1JfQlJFQUspIHsKKwkJLyoKKwkJICogUGFyaXR5IGFuZCBGcmFtaW5nIGVycm9ycyBvbmx5IGNvdW50IGlmIHRoZXkKKwkJICogb2NjdXIgZXhjbHVzaXZlIG9mIGEgYnJlYWsgYmVpbmcgcmVjZWl2ZWQuCisJCSAqLworCQluZXdfbHNyICY9IChfX3U4KShMU1JfT1ZFUl9FUlIgfCBMU1JfQlJFQUspOworCX0KKworCS8qIFBsYWNlIExTUiBkYXRhIGJ5dGUgaW50byBSeCBidWZmZXIgKi8KKwlpZiAobHNyX2RhdGEgJiYgZWRnZV9wb3J0LT5wb3J0LT50dHkpCisJCWVkZ2VfdHR5X3JlY3YoJmVkZ2VfcG9ydC0+cG9ydC0+ZGV2LCBlZGdlX3BvcnQtPnBvcnQtPnR0eSwgJmRhdGEsIDEpOworCisJLyogdXBkYXRlIGlucHV0IGxpbmUgY291bnRlcnMgKi8KKwlpY291bnQgPSAmZWRnZV9wb3J0LT5pY291bnQ7CisJaWYgKG5ld19sc3IgJiBMU1JfQlJFQUspCisJCWljb3VudC0+YnJrKys7CisJaWYgKG5ld19sc3IgJiBMU1JfT1ZFUl9FUlIpCisJCWljb3VudC0+b3ZlcnJ1bisrOworCWlmIChuZXdfbHNyICYgTFNSX1BBUl9FUlIpCisJCWljb3VudC0+cGFyaXR5Kys7CisJaWYgKG5ld19sc3IgJiBMU1JfRlJNX0VSUikKKwkJaWNvdW50LT5mcmFtZSsrOworfQorCisKK3N0YXRpYyB2b2lkIGVkZ2VfaW50ZXJydXB0X2NhbGxiYWNrIChzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXN0cnVjdCBlZGdlcG9ydF9zZXJpYWwgKmVkZ2Vfc2VyaWFsID0gKHN0cnVjdCBlZGdlcG9ydF9zZXJpYWwgKil1cmItPmNvbnRleHQ7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydDsKKwlzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqZWRnZV9wb3J0OworCXVuc2lnbmVkIGNoYXIgKmRhdGEgPSB1cmItPnRyYW5zZmVyX2J1ZmZlcjsKKwlpbnQgbGVuZ3RoID0gdXJiLT5hY3R1YWxfbGVuZ3RoOworCWludCBwb3J0X251bWJlcjsKKwlpbnQgZnVuY3Rpb247CisJaW50IHN0YXR1czsKKwlfX3U4IGxzcjsKKwlfX3U4IG1zcjsKKworCWRiZygiJXMiLCBfX0ZVTkNUSU9OX18pOworCisJc3dpdGNoICh1cmItPnN0YXR1cykgeworCWNhc2UgMDoKKwkJLyogc3VjY2VzcyAqLworCQlicmVhazsKKwljYXNlIC1FQ09OTlJFU0VUOgorCWNhc2UgLUVOT0VOVDoKKwljYXNlIC1FU0hVVERPV046CisJCS8qIHRoaXMgdXJiIGlzIHRlcm1pbmF0ZWQsIGNsZWFuIHVwICovCisJCWRiZygiJXMgLSB1cmIgc2h1dHRpbmcgZG93biB3aXRoIHN0YXR1czogJWQiLCBfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzKTsKKwkJcmV0dXJuOworCWRlZmF1bHQ6CisJCWRldl9lcnIoJnVyYi0+ZGV2LT5kZXYsICIlcyAtIG5vbnplcm8gdXJiIHN0YXR1cyByZWNlaXZlZDogJWRcbiIsIF9fRlVOQ1RJT05fXywgdXJiLT5zdGF0dXMpOworCQlnb3RvIGV4aXQ7CisJfQorCisJaWYgKCFsZW5ndGgpIHsKKwkJZGJnICgiJXMgLSBubyBkYXRhIGluIHVyYiIsIF9fRlVOQ1RJT05fXyk7CisJCWdvdG8gZXhpdDsKKwl9CisJCQorCXVzYl9zZXJpYWxfZGVidWdfZGF0YShkZWJ1ZywgJmVkZ2Vfc2VyaWFsLT5zZXJpYWwtPmRldi0+ZGV2LCBfX0ZVTkNUSU9OX18sIGxlbmd0aCwgZGF0YSk7CisJCQorCWlmIChsZW5ndGggIT0gMikgeworCQlkYmcgKCIlcyAtIGV4cGVjdGluZyBwYWNrZXQgb2Ygc2l6ZSAyLCBnb3QgJWQiLCBfX0ZVTkNUSU9OX18sIGxlbmd0aCk7CisJCWdvdG8gZXhpdDsKKwl9CisKKwlwb3J0X251bWJlciA9IFRJVU1QX0dFVF9QT1JUX0ZST01fQ09ERSAoZGF0YVswXSk7CisJZnVuY3Rpb24gICAgPSBUSVVNUF9HRVRfRlVOQ19GUk9NX0NPREUgKGRhdGFbMF0pOworCWRiZyAoIiVzIC0gcG9ydF9udW1iZXIgJWQsIGZ1bmN0aW9uICVkLCBpbmZvIDB4JXgiLAorCSAgICAgX19GVU5DVElPTl9fLCBwb3J0X251bWJlciwgZnVuY3Rpb24sIGRhdGFbMV0pOworCXBvcnQgPSBlZGdlX3NlcmlhbC0+c2VyaWFsLT5wb3J0W3BvcnRfbnVtYmVyXTsKKwllZGdlX3BvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJaWYgKCFlZGdlX3BvcnQpIHsKKwkJZGJnICgiJXMgLSBlZGdlX3BvcnQgbm90IGZvdW5kIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuOworCX0KKwlzd2l0Y2ggKGZ1bmN0aW9uKSB7CisJY2FzZSBUSVVNUF9JTlRFUlJVUFRfQ09ERV9MU1I6CisJCWxzciA9IE1hcExpbmVTdGF0dXMoZGF0YVsxXSk7CisJCWlmIChsc3IgJiBVTVBfVUFSVF9MU1JfREFUQV9NQVNLKSB7CisJCQkvKiBTYXZlIHRoZSBMU1IgZXZlbnQgZm9yIGJ1bGsgcmVhZCBjb21wbGV0aW9uIHJvdXRpbmUgKi8KKwkJCWRiZyAoIiVzIC0gTFNSIEV2ZW50IFBvcnQgJXUgTFNSIFN0YXR1cyA9ICUwMngiLAorCQkJICAgICBfX0ZVTkNUSU9OX18sIHBvcnRfbnVtYmVyLCBsc3IpOworCQkJZWRnZV9wb3J0LT5sc3JfZXZlbnQgPSAxOworCQkJZWRnZV9wb3J0LT5sc3JfbWFzayA9IGxzcjsKKwkJfSBlbHNlIHsKKwkJCWRiZyAoIiVzIC0gPT09PT0gUG9ydCAlZCBMU1IgU3RhdHVzID0gJTAyeCA9PT09PT0iLAorCQkJICAgICBfX0ZVTkNUSU9OX18sIHBvcnRfbnVtYmVyLCBsc3IpOworCQkJaGFuZGxlX25ld19sc3IgKGVkZ2VfcG9ydCwgMCwgbHNyLCAwKTsKKwkJfQorCQlicmVhazsKKworCWNhc2UgVElVTVBfSU5URVJSVVBUX0NPREVfTVNSOgkvLyBNU1IKKwkJLyogQ29weSBNU1IgZnJvbSBVTVAgKi8KKwkJbXNyID0gZGF0YVsxXTsKKwkJZGJnICgiJXMgLSA9PT09PSBQb3J0ICV1IE1TUiBTdGF0dXMgPSAlMDJ4ID09PT09PVxuIiwKKwkJICAgICBfX0ZVTkNUSU9OX18sIHBvcnRfbnVtYmVyLCBtc3IpOworCQloYW5kbGVfbmV3X21zciAoZWRnZV9wb3J0LCBtc3IpOworCQlicmVhazsKKworCWRlZmF1bHQ6CisJCWRldl9lcnIgKCZ1cmItPmRldi0+ZGV2LCAiJXMgLSBVbmtub3duIEludGVycnVwdCBjb2RlIGZyb20gVU1QICV4XG4iLAorCQkJIF9fRlVOQ1RJT05fXywgZGF0YVsxXSk7CisJCWJyZWFrOworCQkKKwl9CisKK2V4aXQ6CisJc3RhdHVzID0gdXNiX3N1Ym1pdF91cmIgKHVyYiwgR0ZQX0FUT01JQyk7CisJaWYgKHN0YXR1cykKKwkJZGV2X2VyciAoJnVyYi0+ZGV2LT5kZXYsICIlcyAtIHVzYl9zdWJtaXRfdXJiIGZhaWxlZCB3aXRoIHJlc3VsdCAlZFxuIiwKKwkJCSBfX0ZVTkNUSU9OX18sIHN0YXR1cyk7Cit9CisKK3N0YXRpYyB2b2lkIGVkZ2VfYnVsa19pbl9jYWxsYmFjayAoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqZWRnZV9wb3J0ID0gKHN0cnVjdCBlZGdlcG9ydF9wb3J0ICopdXJiLT5jb250ZXh0OworCXVuc2lnbmVkIGNoYXIgKmRhdGEgPSB1cmItPnRyYW5zZmVyX2J1ZmZlcjsKKwlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5OworCWludCBzdGF0dXMgPSAwOworCWludCBwb3J0X251bWJlcjsKKworCWRiZygiJXMiLCBfX0ZVTkNUSU9OX18pOworCisJc3dpdGNoICh1cmItPnN0YXR1cykgeworCWNhc2UgMDoKKwkJLyogc3VjY2VzcyAqLworCQlicmVhazsKKwljYXNlIC1FQ09OTlJFU0VUOgorCWNhc2UgLUVOT0VOVDoKKwljYXNlIC1FU0hVVERPV046CisJCS8qIHRoaXMgdXJiIGlzIHRlcm1pbmF0ZWQsIGNsZWFuIHVwICovCisJCWRiZygiJXMgLSB1cmIgc2h1dHRpbmcgZG93biB3aXRoIHN0YXR1czogJWQiLCBfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzKTsKKwkJcmV0dXJuOworCWRlZmF1bHQ6CisJCWRldl9lcnIgKCZ1cmItPmRldi0+ZGV2LCIlcyAtIG5vbnplcm8gcmVhZCBidWxrIHN0YXR1cyByZWNlaXZlZDogJWRcbiIsCisJCSAgICAgX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyApOworCX0KKworCWlmICh1cmItPnN0YXR1cyA9PSAtRVBJUEUpCisJCWdvdG8gZXhpdDsKKworCWlmICh1cmItPnN0YXR1cykgeworCQlkZXZfZXJyKCZ1cmItPmRldi0+ZGV2LCIlcyAtIHN0b3BwaW5nIHJlYWQhXG4iLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm47CisJfQorCisJcG9ydF9udW1iZXIgPSBlZGdlX3BvcnQtPnBvcnQtPm51bWJlciAtIGVkZ2VfcG9ydC0+cG9ydC0+c2VyaWFsLT5taW5vcjsKKworCWlmIChlZGdlX3BvcnQtPmxzcl9ldmVudCkgeworCQllZGdlX3BvcnQtPmxzcl9ldmVudCA9IDA7CisJCWRiZyAoIiVzID09PT09IFBvcnQgJXUgTFNSIFN0YXR1cyA9ICUwMngsIERhdGEgPSAlMDJ4ID09PT09PSIsCisJCSAgICAgX19GVU5DVElPTl9fLCBwb3J0X251bWJlciwgZWRnZV9wb3J0LT5sc3JfbWFzaywgKmRhdGEpOworCQloYW5kbGVfbmV3X2xzciAoZWRnZV9wb3J0LCAxLCBlZGdlX3BvcnQtPmxzcl9tYXNrLCAqZGF0YSk7CisJCS8qIEFkanVzdCBidWZmZXIgbGVuZ3RoL3BvaW50ZXIgKi8KKwkJLS11cmItPmFjdHVhbF9sZW5ndGg7CisJCSsrZGF0YTsKKwl9CisKKwl0dHkgPSBlZGdlX3BvcnQtPnBvcnQtPnR0eTsKKwlpZiAodHR5ICYmIHVyYi0+YWN0dWFsX2xlbmd0aCkgeworCQl1c2Jfc2VyaWFsX2RlYnVnX2RhdGEoZGVidWcsICZlZGdlX3BvcnQtPnBvcnQtPmRldiwgX19GVU5DVElPTl9fLCB1cmItPmFjdHVhbF9sZW5ndGgsIGRhdGEpOworCisJCWlmIChlZGdlX3BvcnQtPmNsb3NlX3BlbmRpbmcpIHsKKwkJCWRiZyAoIiVzIC0gY2xvc2UgaXMgcGVuZGluZywgZHJvcHBpbmcgZGF0YSBvbiB0aGUgZmxvb3IuIiwgX19GVU5DVElPTl9fKTsKKwkJfSBlbHNlIHsKKwkJCWVkZ2VfdHR5X3JlY3YoJmVkZ2VfcG9ydC0+cG9ydC0+ZGV2LCB0dHksIGRhdGEsIHVyYi0+YWN0dWFsX2xlbmd0aCk7CisJCX0KKwkJZWRnZV9wb3J0LT5pY291bnQucnggKz0gdXJiLT5hY3R1YWxfbGVuZ3RoOworCX0KKworZXhpdDoKKwkvKiBjb250aW51ZSByZWFkIHVubGVzcyBzdG9wcGVkICovCisJc3Bpbl9sb2NrKCZlZGdlX3BvcnQtPmVwX2xvY2spOworCWlmIChlZGdlX3BvcnQtPmVwX3JlYWRfdXJiX3N0YXRlID09IEVER0VfUkVBRF9VUkJfUlVOTklORykgeworCQl1cmItPmRldiA9IGVkZ2VfcG9ydC0+cG9ydC0+c2VyaWFsLT5kZXY7CisJCXN0YXR1cyA9IHVzYl9zdWJtaXRfdXJiKHVyYiwgR0ZQX0FUT01JQyk7CisJfSBlbHNlIGlmIChlZGdlX3BvcnQtPmVwX3JlYWRfdXJiX3N0YXRlID09IEVER0VfUkVBRF9VUkJfU1RPUFBJTkcpIHsKKwkJZWRnZV9wb3J0LT5lcF9yZWFkX3VyYl9zdGF0ZSA9IEVER0VfUkVBRF9VUkJfU1RPUFBFRDsKKwl9CisJc3Bpbl91bmxvY2soJmVkZ2VfcG9ydC0+ZXBfbG9jayk7CisJaWYgKHN0YXR1cykKKwkJZGV2X2VyciAoJnVyYi0+ZGV2LT5kZXYsICIlcyAtIHVzYl9zdWJtaXRfdXJiIGZhaWxlZCB3aXRoIHJlc3VsdCAlZFxuIiwKKwkJCSBfX0ZVTkNUSU9OX18sIHN0YXR1cyk7Cit9CisKK3N0YXRpYyB2b2lkIGVkZ2VfdHR5X3JlY3Yoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCB1bnNpZ25lZCBjaGFyICpkYXRhLCBpbnQgbGVuZ3RoKQoreworCWludCBjbnQ7CisKKwlkbyB7CisJCWlmICh0dHktPmZsaXAuY291bnQgPj0gVFRZX0ZMSVBCVUZfU0laRSkgeworCQkJdHR5X2ZsaXBfYnVmZmVyX3B1c2godHR5KTsKKwkJCWlmICh0dHktPmZsaXAuY291bnQgPj0gVFRZX0ZMSVBCVUZfU0laRSkgeworCQkJCWRldl9lcnIoZGV2LCAiJXMgLSBkcm9wcGluZyBkYXRhLCAlZCBieXRlcyBsb3N0XG4iLAorCQkJCQlfX0ZVTkNUSU9OX18sIGxlbmd0aCk7CisJCQkJcmV0dXJuOworCQkJfQorCQl9CisJCWNudCA9IG1pbihsZW5ndGgsIFRUWV9GTElQQlVGX1NJWkUgLSB0dHktPmZsaXAuY291bnQpOworCQltZW1jcHkodHR5LT5mbGlwLmNoYXJfYnVmX3B0ciwgZGF0YSwgY250KTsKKwkJbWVtc2V0KHR0eS0+ZmxpcC5mbGFnX2J1Zl9wdHIsIDAsIGNudCk7CisJCXR0eS0+ZmxpcC5jaGFyX2J1Zl9wdHIgKz0gY250OworCQl0dHktPmZsaXAuZmxhZ19idWZfcHRyICs9IGNudDsKKwkJdHR5LT5mbGlwLmNvdW50ICs9IGNudDsKKwkJZGF0YSArPSBjbnQ7CisJCWxlbmd0aCAtPSBjbnQ7CisJfSB3aGlsZSAobGVuZ3RoID4gMCk7CisKKwl0dHlfZmxpcF9idWZmZXJfcHVzaCh0dHkpOworfQorCitzdGF0aWMgdm9pZCBlZGdlX2J1bGtfb3V0X2NhbGxiYWNrIChzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqKXVyYi0+Y29udGV4dDsKKwlzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqZWRnZV9wb3J0ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCisJZGJnICgiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJZWRnZV9wb3J0LT5lcF93cml0ZV91cmJfaW5fdXNlID0gMDsKKworCXN3aXRjaCAodXJiLT5zdGF0dXMpIHsKKwljYXNlIDA6CisJCS8qIHN1Y2Nlc3MgKi8KKwkJYnJlYWs7CisJY2FzZSAtRUNPTk5SRVNFVDoKKwljYXNlIC1FTk9FTlQ6CisJY2FzZSAtRVNIVVRET1dOOgorCQkvKiB0aGlzIHVyYiBpcyB0ZXJtaW5hdGVkLCBjbGVhbiB1cCAqLworCQlkYmcoIiVzIC0gdXJiIHNodXR0aW5nIGRvd24gd2l0aCBzdGF0dXM6ICVkIiwgX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyk7CisJCXJldHVybjsKKwlkZWZhdWx0OgorCQlkZXZfZXJyICgmdXJiLT5kZXYtPmRldiwiJXMgLSBub256ZXJvIHdyaXRlIGJ1bGsgc3RhdHVzIHJlY2VpdmVkOiAlZFxuIiwKKwkJICAgICBfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzKTsKKwl9CisKKwkvKiBzZW5kIGFueSBidWZmZXJlZCBkYXRhICovCisJZWRnZV9zZW5kKHBvcnQpOworfQorCitzdGF0aWMgaW50IGVkZ2Vfb3BlbiAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKiBmaWxwKQoreworCXN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJc3RydWN0IGVkZ2Vwb3J0X3NlcmlhbCAqZWRnZV9zZXJpYWw7CisJc3RydWN0IHVzYl9kZXZpY2UgKmRldjsKKwlzdHJ1Y3QgdXJiICp1cmI7CisJaW50IHBvcnRfbnVtYmVyOworCWludCBzdGF0dXM7CisJdTE2IG9wZW5fc2V0dGluZ3M7CisJdTggdHJhbnNhY3Rpb25fdGltZW91dDsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJaWYgKGVkZ2VfcG9ydCA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWlmIChwb3J0LT50dHkpCisJCXBvcnQtPnR0eS0+bG93X2xhdGVuY3kgPSBsb3dfbGF0ZW5jeTsKKworCXBvcnRfbnVtYmVyID0gcG9ydC0+bnVtYmVyIC0gcG9ydC0+c2VyaWFsLT5taW5vcjsKKwlzd2l0Y2ggKHBvcnRfbnVtYmVyKSB7CisJCWNhc2UgMDoKKwkJCWVkZ2VfcG9ydC0+dWFydF9iYXNlID0gVU1QTUVNX0JBU0VfVUFSVDE7CisJCQllZGdlX3BvcnQtPmRtYV9hZGRyZXNzID0gVU1QRF9PRURCMV9BRERSRVNTOworCQkJYnJlYWs7CisJCWNhc2UgMToKKwkJCWVkZ2VfcG9ydC0+dWFydF9iYXNlID0gVU1QTUVNX0JBU0VfVUFSVDI7CisJCQllZGdlX3BvcnQtPmRtYV9hZGRyZXNzID0gVU1QRF9PRURCMl9BRERSRVNTOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlkZXZfZXJyICgmcG9ydC0+ZGV2LCAiVW5rbm93biBwb3J0IG51bWJlciEhIVxuIik7CisJCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlkYmcgKCIlcyAtIHBvcnRfbnVtYmVyID0gJWQsIHVhcnRfYmFzZSA9ICUwNHgsIGRtYV9hZGRyZXNzID0gJTA0eCIsCisJICAgICBfX0ZVTkNUSU9OX18sIHBvcnRfbnVtYmVyLCBlZGdlX3BvcnQtPnVhcnRfYmFzZSwgZWRnZV9wb3J0LT5kbWFfYWRkcmVzcyk7CisKKwlkZXYgPSBwb3J0LT5zZXJpYWwtPmRldjsKKworCW1lbXNldCAoJihlZGdlX3BvcnQtPmljb3VudCksIDB4MDAsIHNpemVvZihlZGdlX3BvcnQtPmljb3VudCkpOworCWluaXRfd2FpdHF1ZXVlX2hlYWQgKCZlZGdlX3BvcnQtPmRlbHRhX21zcl93YWl0KTsKKworCS8qIHR1cm4gb2ZmIGxvb3BiYWNrICovCisJc3RhdHVzID0gVElDbGVhckxvb3BCYWNrIChlZGdlX3BvcnQpOworCWlmIChzdGF0dXMpIHsKKwkJZGV2X2VycigmcG9ydC0+ZGV2LCIlcyAtIGNhbm5vdCBzZW5kIGNsZWFyIGxvb3BiYWNrIGNvbW1hbmQsICVkXG4iLAorCQkJX19GVU5DVElPTl9fLCBzdGF0dXMpOworCQlyZXR1cm4gc3RhdHVzOworCX0KKwkKKwkvKiBzZXQgdXAgdGhlIHBvcnQgc2V0dGluZ3MgKi8KKwllZGdlX3NldF90ZXJtaW9zIChwb3J0LCBOVUxMKTsKKworCS8qIG9wZW4gdXAgdGhlIHBvcnQgKi8KKworCS8qIG1pbGxpc2Vjb25kcyB0byB0aW1lb3V0IGZvciBETUEgdHJhbnNmZXIgKi8KKwl0cmFuc2FjdGlvbl90aW1lb3V0ID0gMjsKKworCWVkZ2VfcG9ydC0+dW1wX3JlYWRfdGltZW91dCA9IG1heCAoMjAsICgodHJhbnNhY3Rpb25fdGltZW91dCAqIDMpIC8gMikgKTsKKworCS8vIG1pbGxpc2Vjb25kcyB0byB0aW1lb3V0IGZvciBETUEgdHJhbnNmZXIKKwlvcGVuX3NldHRpbmdzID0gKHU4KShVTVBfRE1BX01PREVfQ09OVElOT1VTIHwgCisJCQkgICAgIFVNUF9QSVBFX1RSQU5TX1RJTUVPVVRfRU5BIHwgCisJCQkgICAgICh0cmFuc2FjdGlvbl90aW1lb3V0IDw8IDIpKTsKKworCWRiZyAoIiVzIC0gU2VuZGluZyBVTVBDX09QRU5fUE9SVCIsIF9fRlVOQ1RJT05fXyk7CisKKwkvKiBUZWxsIFRJIHRvIG9wZW4gYW5kIHN0YXJ0IHRoZSBwb3J0ICovCisJc3RhdHVzID0gVElXcml0ZUNvbW1hbmRTeW5jIChkZXYsCisJCQkJCVVNUENfT1BFTl9QT1JULAorCQkJCQkodTgpKFVNUE1fVUFSVDFfUE9SVCArIHBvcnRfbnVtYmVyKSwKKwkJCQkJb3Blbl9zZXR0aW5ncywKKwkJCQkJTlVMTCwKKwkJCQkJMCk7CisJaWYgKHN0YXR1cykgeworCQlkZXZfZXJyKCZwb3J0LT5kZXYsIiVzIC0gY2Fubm90IHNlbmQgb3BlbiBjb21tYW5kLCAlZFxuIiwgX19GVU5DVElPTl9fLCBzdGF0dXMpOworCQlyZXR1cm4gc3RhdHVzOworCX0KKworCS8qIFN0YXJ0IHRoZSBETUE/ICovCisJc3RhdHVzID0gVElXcml0ZUNvbW1hbmRTeW5jIChkZXYsCisJCQkJCVVNUENfU1RBUlRfUE9SVCwKKwkJCQkJKHU4KShVTVBNX1VBUlQxX1BPUlQgKyBwb3J0X251bWJlciksCisJCQkJCTAsCisJCQkJCU5VTEwsCisJCQkJCTApOworCWlmIChzdGF0dXMpIHsKKwkJZGV2X2VycigmcG9ydC0+ZGV2LCIlcyAtIGNhbm5vdCBzZW5kIHN0YXJ0IERNQSBjb21tYW5kLCAlZFxuIiwgX19GVU5DVElPTl9fLCBzdGF0dXMpOworCQlyZXR1cm4gc3RhdHVzOworCX0KKworCS8qIENsZWFyIFRYIGFuZCBSWCBidWZmZXJzIGluIFVNUCAqLworCXN0YXR1cyA9IFRJUHVyZ2VEYXRhU3luYyAocG9ydCwgVU1QX1BPUlRfRElSX09VVCB8IFVNUF9QT1JUX0RJUl9JTik7CisJaWYgKHN0YXR1cykgeworCQlkZXZfZXJyKCZwb3J0LT5kZXYsIiVzIC0gY2Fubm90IHNlbmQgY2xlYXIgYnVmZmVycyBjb21tYW5kLCAlZFxuIiwgX19GVU5DVElPTl9fLCBzdGF0dXMpOworCQlyZXR1cm4gc3RhdHVzOworCX0KKworCS8qIFJlYWQgSW5pdGlhbCBNU1IgKi8KKwlzdGF0dXMgPSBUSVJlYWRWZW5kb3JSZXF1ZXN0U3luYyAoZGV2LAorCQkJCQlVTVBDX1JFQURfTVNSLAkvLyBSZXF1ZXN0CisJCQkJCTAsCQkvLyB3VmFsdWUKKwkJCQkJKF9fdTE2KShVTVBNX1VBUlQxX1BPUlQgKyBwb3J0X251bWJlciksCS8vIHdJbmRleCAoQWRkcmVzcykKKwkJCQkJJmVkZ2VfcG9ydC0+c2hhZG93X21zciwJCQkvLyBUcmFuc2ZlckJ1ZmZlcgorCQkJCQkxKTsJCQkJCS8vIFRyYW5zZmVyQnVmZmVyTGVuZ3RoCisJaWYgKHN0YXR1cykgeworIAkJZGV2X2VycigmcG9ydC0+ZGV2LCIlcyAtIGNhbm5vdCBzZW5kIHJlYWQgTVNSIGNvbW1hbmQsICVkXG4iLCBfX0ZVTkNUSU9OX18sIHN0YXR1cyk7CisJCXJldHVybiBzdGF0dXM7CisJfQorCisJZGJnICgiU2hhZG93TVNSIDB4JVgiLCBlZGdlX3BvcnQtPnNoYWRvd19tc3IpOworIAorCS8qIFNldCBJbml0aWFsIE1DUiAqLworCWVkZ2VfcG9ydC0+c2hhZG93X21jciA9IE1DUl9SVFMgfCBNQ1JfRFRSOworCWRiZyAoIlNoYWRvd01DUiAweCVYIiwgZWRnZV9wb3J0LT5zaGFkb3dfbWNyKTsKKworCWVkZ2Vfc2VyaWFsID0gZWRnZV9wb3J0LT5lZGdlX3NlcmlhbDsKKwlpZiAoZG93bl9pbnRlcnJ1cHRpYmxlKCZlZGdlX3NlcmlhbC0+ZXNfc2VtKSkKKwkJcmV0dXJuIC1FUkVTVEFSVFNZUzsKKwlpZiAoZWRnZV9zZXJpYWwtPm51bV9wb3J0c19vcGVuID09IDApIHsKKwkJLyogd2UgYXJlIHRoZSBmaXJzdCBwb3J0IHRvIGJlIG9wZW5lZCwgbGV0J3MgcG9zdCB0aGUgaW50ZXJydXB0IHVyYiAqLworCQl1cmIgPSBlZGdlX3NlcmlhbC0+c2VyaWFsLT5wb3J0WzBdLT5pbnRlcnJ1cHRfaW5fdXJiOworCQlpZiAoIXVyYikgeworCQkJZGV2X2VyciAoJnBvcnQtPmRldiwgIiVzIC0gbm8gaW50ZXJydXB0IHVyYiBwcmVzZW50LCBleGl0aW5nXG4iLCBfX0ZVTkNUSU9OX18pOworCQkJc3RhdHVzID0gLUVJTlZBTDsKKwkJCWdvdG8gdXBfZXNfc2VtOworCQl9CisJCXVyYi0+Y29tcGxldGUgPSBlZGdlX2ludGVycnVwdF9jYWxsYmFjazsKKwkJdXJiLT5jb250ZXh0ID0gZWRnZV9zZXJpYWw7CisJCXVyYi0+ZGV2ID0gZGV2OworCQlzdGF0dXMgPSB1c2Jfc3VibWl0X3VyYiAodXJiLCBHRlBfS0VSTkVMKTsKKwkJaWYgKHN0YXR1cykgeworCQkJZGV2X2VyciAoJnBvcnQtPmRldiwgIiVzIC0gdXNiX3N1Ym1pdF91cmIgZmFpbGVkIHdpdGggdmFsdWUgJWRcbiIsIF9fRlVOQ1RJT05fXywgc3RhdHVzKTsKKwkJCWdvdG8gdXBfZXNfc2VtOworCQl9CisJfQorCisJLyoKKwkgKiByZXNldCB0aGUgZGF0YSB0b2dnbGUgb24gdGhlIGJ1bGsgZW5kcG9pbnRzIHRvIHdvcmsgYXJvdW5kIGJ1ZyBpbgorCSAqIGhvc3QgY29udHJvbGxlcnMgd2hlcmUgdGhpbmdzIGdldCBvdXQgb2Ygc3luYyBzb21lIHRpbWVzCisJICovCisJdXNiX2NsZWFyX2hhbHQgKGRldiwgcG9ydC0+d3JpdGVfdXJiLT5waXBlKTsKKwl1c2JfY2xlYXJfaGFsdCAoZGV2LCBwb3J0LT5yZWFkX3VyYi0+cGlwZSk7CisKKwkvKiBzdGFydCB1cCBvdXIgYnVsayByZWFkIHVyYiAqLworCXVyYiA9IHBvcnQtPnJlYWRfdXJiOworCWlmICghdXJiKSB7CisJCWRldl9lcnIgKCZwb3J0LT5kZXYsICIlcyAtIG5vIHJlYWQgdXJiIHByZXNlbnQsIGV4aXRpbmdcbiIsIF9fRlVOQ1RJT05fXyk7CisJCXN0YXR1cyA9IC1FSU5WQUw7CisJCWdvdG8gdW5saW5rX2ludF91cmI7CisJfQorCWVkZ2VfcG9ydC0+ZXBfcmVhZF91cmJfc3RhdGUgPSBFREdFX1JFQURfVVJCX1JVTk5JTkc7CisJdXJiLT5jb21wbGV0ZSA9IGVkZ2VfYnVsa19pbl9jYWxsYmFjazsKKwl1cmItPmNvbnRleHQgPSBlZGdlX3BvcnQ7CisJdXJiLT5kZXYgPSBkZXY7CisJc3RhdHVzID0gdXNiX3N1Ym1pdF91cmIgKHVyYiwgR0ZQX0tFUk5FTCk7CisJaWYgKHN0YXR1cykgeworCQlkZXZfZXJyICgmcG9ydC0+ZGV2LCAiJXMgLSByZWFkIGJ1bGsgdXNiX3N1Ym1pdF91cmIgZmFpbGVkIHdpdGggdmFsdWUgJWRcbiIsIF9fRlVOQ1RJT05fXywgc3RhdHVzKTsKKwkJZ290byB1bmxpbmtfaW50X3VyYjsKKwl9CisKKwkrK2VkZ2Vfc2VyaWFsLT5udW1fcG9ydHNfb3BlbjsKKworCWRiZygiJXMgLSBleGl0ZWQiLCBfX0ZVTkNUSU9OX18pOworCisJZ290byB1cF9lc19zZW07CisKK3VubGlua19pbnRfdXJiOgorCWlmIChlZGdlX3BvcnQtPmVkZ2Vfc2VyaWFsLT5udW1fcG9ydHNfb3BlbiA9PSAwKQorCQl1c2Jfa2lsbF91cmIocG9ydC0+c2VyaWFsLT5wb3J0WzBdLT5pbnRlcnJ1cHRfaW5fdXJiKTsKK3VwX2VzX3NlbToKKwl1cCgmZWRnZV9zZXJpYWwtPmVzX3NlbSk7CisJcmV0dXJuIHN0YXR1czsKK30KKworc3RhdGljIHZvaWQgZWRnZV9jbG9zZSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbHApCit7CisJc3RydWN0IGVkZ2Vwb3J0X3NlcmlhbCAqZWRnZV9zZXJpYWw7CisJc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKmVkZ2VfcG9ydDsKKwlpbnQgcG9ydF9udW1iZXI7CisJaW50IHN0YXR1czsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCQkJIAorCWVkZ2Vfc2VyaWFsID0gdXNiX2dldF9zZXJpYWxfZGF0YShwb3J0LT5zZXJpYWwpOworCWVkZ2VfcG9ydCA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlpZiAoKGVkZ2Vfc2VyaWFsID09IE5VTEwpIHx8IChlZGdlX3BvcnQgPT0gTlVMTCkpCisJCXJldHVybjsKKwkKKwkvKiBUaGUgYnVsa3JlYWRjb21wbGV0aW9uIHJvdXRpbmUgd2lsbCBjaGVjayAKKwkgKiB0aGlzIGZsYWcgYW5kIGR1bXAgYWRkIHJlYWQgZGF0YSAqLworCWVkZ2VfcG9ydC0+Y2xvc2VfcGVuZGluZyA9IDE7CisKKwkvKiBjaGFzZSB0aGUgcG9ydCBjbG9zZSBhbmQgZmx1c2ggKi8KKwlUSUNoYXNlUG9ydCAoZWRnZV9wb3J0LCAoSFoqY2xvc2luZ193YWl0KS8xMDAsIDEpOworCisJdXNiX2tpbGxfdXJiKHBvcnQtPnJlYWRfdXJiKTsKKwl1c2Jfa2lsbF91cmIocG9ydC0+d3JpdGVfdXJiKTsKKwllZGdlX3BvcnQtPmVwX3dyaXRlX3VyYl9pbl91c2UgPSAwOworCisJLyogYXNzdW1pbmcgd2UgY2FuIHN0aWxsIHRhbGsgdG8gdGhlIGRldmljZSwKKwkgKiBzZW5kIGEgY2xvc2UgcG9ydCBjb21tYW5kIHRvIGl0ICovCisJZGJnKCIlcyAtIHNlbmQgdW1wY19jbG9zZV9wb3J0IiwgX19GVU5DVElPTl9fKTsKKwlwb3J0X251bWJlciA9IHBvcnQtPm51bWJlciAtIHBvcnQtPnNlcmlhbC0+bWlub3I7CisJc3RhdHVzID0gVElXcml0ZUNvbW1hbmRTeW5jIChwb3J0LT5zZXJpYWwtPmRldiwKKwkJCQkgICAgIFVNUENfQ0xPU0VfUE9SVCwKKwkJCQkgICAgIChfX3U4KShVTVBNX1VBUlQxX1BPUlQgKyBwb3J0X251bWJlciksCisJCQkJICAgICAwLAorCQkJCSAgICAgTlVMTCwKKwkJCQkgICAgIDApOworCWRvd24oJmVkZ2Vfc2VyaWFsLT5lc19zZW0pOworCS0tZWRnZV9wb3J0LT5lZGdlX3NlcmlhbC0+bnVtX3BvcnRzX29wZW47CisJaWYgKGVkZ2VfcG9ydC0+ZWRnZV9zZXJpYWwtPm51bV9wb3J0c19vcGVuIDw9IDApIHsKKwkJLyogbGFzdCBwb3J0IGlzIG5vdyBjbG9zZWQsIGxldCdzIHNodXQgZG93biBvdXIgaW50ZXJydXB0IHVyYiAqLworCQl1c2Jfa2lsbF91cmIocG9ydC0+c2VyaWFsLT5wb3J0WzBdLT5pbnRlcnJ1cHRfaW5fdXJiKTsKKwkJZWRnZV9wb3J0LT5lZGdlX3NlcmlhbC0+bnVtX3BvcnRzX29wZW4gPSAwOworCX0KKwl1cCgmZWRnZV9zZXJpYWwtPmVzX3NlbSk7CisJZWRnZV9wb3J0LT5jbG9zZV9wZW5kaW5nID0gMDsKKworCWRiZygiJXMgLSBleGl0ZWQiLCBfX0ZVTkNUSU9OX18pOworfQorCitzdGF0aWMgaW50IGVkZ2Vfd3JpdGUgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEsIGludCBjb3VudCkKK3sKKwlzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqZWRnZV9wb3J0ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCWlmIChjb3VudCA9PSAwKSB7CisJCWRiZygiJXMgLSB3cml0ZSByZXF1ZXN0IG9mIDAgYnl0ZXMiLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAoZWRnZV9wb3J0ID09IE5VTEwpCisJCXJldHVybiAtRU5PREVWOworCWlmIChlZGdlX3BvcnQtPmNsb3NlX3BlbmRpbmcgPT0gMSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZWRnZV9wb3J0LT5lcF9sb2NrLCBmbGFncyk7CisJY291bnQgPSBlZGdlX2J1Zl9wdXQoZWRnZV9wb3J0LT5lcF9vdXRfYnVmLCBkYXRhLCBjb3VudCk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZWRnZV9wb3J0LT5lcF9sb2NrLCBmbGFncyk7CisKKwllZGdlX3NlbmQocG9ydCk7CisKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyB2b2lkIGVkZ2Vfc2VuZChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCWludCBjb3VudCwgcmVzdWx0OworCXN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSA9IHBvcnQtPnR0eTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZlZGdlX3BvcnQtPmVwX2xvY2ssIGZsYWdzKTsKKworCWlmIChlZGdlX3BvcnQtPmVwX3dyaXRlX3VyYl9pbl91c2UpIHsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZWRnZV9wb3J0LT5lcF9sb2NrLCBmbGFncyk7CisJCXJldHVybjsKKwl9CisKKwljb3VudCA9IGVkZ2VfYnVmX2dldChlZGdlX3BvcnQtPmVwX291dF9idWYsCisJCQkJcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXIsCisJCQkJcG9ydC0+YnVsa19vdXRfc2l6ZSk7CisKKwlpZiAoY291bnQgPT0gMCkgeworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlZGdlX3BvcnQtPmVwX2xvY2ssIGZsYWdzKTsKKwkJcmV0dXJuOworCX0KKworCWVkZ2VfcG9ydC0+ZXBfd3JpdGVfdXJiX2luX3VzZSA9IDE7CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlZGdlX3BvcnQtPmVwX2xvY2ssIGZsYWdzKTsKKworCXVzYl9zZXJpYWxfZGVidWdfZGF0YShkZWJ1ZywgJnBvcnQtPmRldiwgX19GVU5DVElPTl9fLCBjb3VudCwgcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXIpOworCisJLyogc2V0IHVwIG91ciB1cmIgKi8KKwl1c2JfZmlsbF9idWxrX3VyYiAocG9ydC0+d3JpdGVfdXJiLCBwb3J0LT5zZXJpYWwtPmRldiwKKwkJCSAgIHVzYl9zbmRidWxrcGlwZSAocG9ydC0+c2VyaWFsLT5kZXYsCisJCQkJCSAgICBwb3J0LT5idWxrX291dF9lbmRwb2ludEFkZHJlc3MpLAorCQkJICAgcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXIsIGNvdW50LAorCQkJICAgZWRnZV9idWxrX291dF9jYWxsYmFjaywKKwkJCSAgIHBvcnQpOworCisJLyogc2VuZCB0aGUgZGF0YSBvdXQgdGhlIGJ1bGsgcG9ydCAqLworCXJlc3VsdCA9IHVzYl9zdWJtaXRfdXJiKHBvcnQtPndyaXRlX3VyYiwgR0ZQX0FUT01JQyk7CisJaWYgKHJlc3VsdCkgeworCQlkZXZfZXJyKCZwb3J0LT5kZXYsICIlcyAtIGZhaWxlZCBzdWJtaXR0aW5nIHdyaXRlIHVyYiwgZXJyb3IgJWRcbiIsIF9fRlVOQ1RJT05fXywgcmVzdWx0KTsKKwkJZWRnZV9wb3J0LT5lcF93cml0ZV91cmJfaW5fdXNlID0gMDsKKwkJLy8gVE9ETzogcmVzY2hlZHVsZSBlZGdlX3NlbmQKKwl9IGVsc2UgeworCQllZGdlX3BvcnQtPmljb3VudC50eCArPSBjb3VudDsKKwl9CisKKwkvKiB3YWtldXAgYW55IHByb2Nlc3Mgd2FpdGluZyBmb3Igd3JpdGVzIHRvIGNvbXBsZXRlICovCisJLyogdGhlcmUgaXMgbm93IG1vcmUgcm9vbSBpbiB0aGUgYnVmZmVyIGZvciBuZXcgd3JpdGVzICovCisJaWYgKHR0eSkgeworCQkvKiBsZXQgdGhlIHR0eSBkcml2ZXIgd2FrZXVwIGlmIGl0IGhhcyBhIHNwZWNpYWwgd3JpdGVfd2FrZXVwIGZ1bmN0aW9uICovCisJCXR0eV93YWtldXAodHR5KTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgZWRnZV93cml0ZV9yb29tIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJaW50IHJvb20gPSAwOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCWlmIChlZGdlX3BvcnQgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9ERVY7CisJaWYgKGVkZ2VfcG9ydC0+Y2xvc2VfcGVuZGluZyA9PSAxKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZlZGdlX3BvcnQtPmVwX2xvY2ssIGZsYWdzKTsKKwlyb29tID0gZWRnZV9idWZfc3BhY2VfYXZhaWwoZWRnZV9wb3J0LT5lcF9vdXRfYnVmKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlZGdlX3BvcnQtPmVwX2xvY2ssIGZsYWdzKTsKKworCWRiZygiJXMgLSByZXR1cm5zICVkIiwgX19GVU5DVElPTl9fLCByb29tKTsKKwlyZXR1cm4gcm9vbTsKK30KKworc3RhdGljIGludCBlZGdlX2NoYXJzX2luX2J1ZmZlciAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKK3sKKwlzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqZWRnZV9wb3J0ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCWludCBjaGFycyA9IDA7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJaWYgKGVkZ2VfcG9ydCA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT0RFVjsKKwlpZiAoZWRnZV9wb3J0LT5jbG9zZV9wZW5kaW5nID09IDEpCisJCXJldHVybiAtRU5PREVWOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmVkZ2VfcG9ydC0+ZXBfbG9jaywgZmxhZ3MpOworCWNoYXJzID0gZWRnZV9idWZfZGF0YV9hdmFpbChlZGdlX3BvcnQtPmVwX291dF9idWYpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVkZ2VfcG9ydC0+ZXBfbG9jaywgZmxhZ3MpOworCisJZGJnICgiJXMgLSByZXR1cm5zICVkIiwgX19GVU5DVElPTl9fLCBjaGFycyk7CisJcmV0dXJuIGNoYXJzOworfQorCitzdGF0aWMgdm9pZCBlZGdlX3Rocm90dGxlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eTsKKwlpbnQgc3RhdHVzOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAoZWRnZV9wb3J0ID09IE5VTEwpCisJCXJldHVybjsKKworCXR0eSA9IHBvcnQtPnR0eTsKKwlpZiAoIXR0eSkgeworCQlkYmcgKCIlcyAtIG5vIHR0eSBhdmFpbGFibGUiLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm47CisJfQorCisJLyogaWYgd2UgYXJlIGltcGxlbWVudGluZyBYT04vWE9GRiwgc2VuZCB0aGUgc3RvcCBjaGFyYWN0ZXIgKi8KKwlpZiAoSV9JWE9GRih0dHkpKSB7CisJCXVuc2lnbmVkIGNoYXIgc3RvcF9jaGFyID0gU1RPUF9DSEFSKHR0eSk7CisJCXN0YXR1cyA9IGVkZ2Vfd3JpdGUgKHBvcnQsICZzdG9wX2NoYXIsIDEpOworCQlpZiAoc3RhdHVzIDw9IDApIHsKKwkJCWRldl9lcnIoJnBvcnQtPmRldiwgIiVzIC0gZmFpbGVkIHRvIHdyaXRlIHN0b3AgY2hhcmFjdGVyLCAlZFxuIiwgX19GVU5DVElPTl9fLCBzdGF0dXMpOworCQl9CisJfQorCisJLyogaWYgd2UgYXJlIGltcGxlbWVudGluZyBSVFMvQ1RTLCBzdG9wIHJlYWRzICovCisJLyogYW5kIHRoZSBFZGdlcG9ydCB3aWxsIGNsZWFyIHRoZSBSVFMgbGluZSAqLworCWlmIChDX0NSVFNDVFModHR5KSkKKwkJc3RvcF9yZWFkKGVkZ2VfcG9ydCk7CisKK30KKworc3RhdGljIHZvaWQgZWRnZV91bnRocm90dGxlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eTsKKwlpbnQgc3RhdHVzOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAoZWRnZV9wb3J0ID09IE5VTEwpCisJCXJldHVybjsKKworCXR0eSA9IHBvcnQtPnR0eTsKKwlpZiAoIXR0eSkgeworCQlkYmcgKCIlcyAtIG5vIHR0eSBhdmFpbGFibGUiLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm47CisJfQorCisJLyogaWYgd2UgYXJlIGltcGxlbWVudGluZyBYT04vWE9GRiwgc2VuZCB0aGUgc3RhcnQgY2hhcmFjdGVyICovCisJaWYgKElfSVhPRkYodHR5KSkgeworCQl1bnNpZ25lZCBjaGFyIHN0YXJ0X2NoYXIgPSBTVEFSVF9DSEFSKHR0eSk7CisJCXN0YXR1cyA9IGVkZ2Vfd3JpdGUgKHBvcnQsICZzdGFydF9jaGFyLCAxKTsKKwkJaWYgKHN0YXR1cyA8PSAwKSB7CisJCQlkZXZfZXJyKCZwb3J0LT5kZXYsICIlcyAtIGZhaWxlZCB0byB3cml0ZSBzdGFydCBjaGFyYWN0ZXIsICVkXG4iLCBfX0ZVTkNUSU9OX18sIHN0YXR1cyk7CisJCX0KKwl9CisKKwkvKiBpZiB3ZSBhcmUgaW1wbGVtZW50aW5nIFJUUy9DVFMsIHJlc3RhcnQgcmVhZHMgKi8KKwkvKiBhcmUgdGhlIEVkZ2Vwb3J0IHdpbGwgYXNzZXJ0IHRoZSBSVFMgbGluZSAqLworCWlmIChDX0NSVFNDVFModHR5KSkgeworCQlzdGF0dXMgPSByZXN0YXJ0X3JlYWQoZWRnZV9wb3J0KTsKKwkJaWYgKHN0YXR1cykKKwkJCWRldl9lcnIoJnBvcnQtPmRldiwgIiVzIC0gcmVhZCBidWxrIHVzYl9zdWJtaXRfdXJiIGZhaWxlZCB3aXRoIHZhbHVlICVkXG4iLCBfX0ZVTkNUSU9OX18sIHN0YXR1cyk7CisJfQorCit9CisKK3N0YXRpYyB2b2lkIHN0b3BfcmVhZChzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqZWRnZV9wb3J0KQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZWRnZV9wb3J0LT5lcF9sb2NrLCBmbGFncyk7CisKKwlpZiAoZWRnZV9wb3J0LT5lcF9yZWFkX3VyYl9zdGF0ZSA9PSBFREdFX1JFQURfVVJCX1JVTk5JTkcpCisJCWVkZ2VfcG9ydC0+ZXBfcmVhZF91cmJfc3RhdGUgPSBFREdFX1JFQURfVVJCX1NUT1BQSU5HOworCWVkZ2VfcG9ydC0+c2hhZG93X21jciAmPSB+TUNSX1JUUzsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVkZ2VfcG9ydC0+ZXBfbG9jaywgZmxhZ3MpOworfQorCitzdGF0aWMgaW50IHJlc3RhcnRfcmVhZChzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqZWRnZV9wb3J0KQoreworCXN0cnVjdCB1cmIgKnVyYjsKKwlpbnQgc3RhdHVzID0gMDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmVkZ2VfcG9ydC0+ZXBfbG9jaywgZmxhZ3MpOworCisJaWYgKGVkZ2VfcG9ydC0+ZXBfcmVhZF91cmJfc3RhdGUgPT0gRURHRV9SRUFEX1VSQl9TVE9QUEVEKSB7CisJCXVyYiA9IGVkZ2VfcG9ydC0+cG9ydC0+cmVhZF91cmI7CisJCXVyYi0+Y29tcGxldGUgPSBlZGdlX2J1bGtfaW5fY2FsbGJhY2s7CisJCXVyYi0+Y29udGV4dCA9IGVkZ2VfcG9ydDsKKwkJdXJiLT5kZXYgPSBlZGdlX3BvcnQtPnBvcnQtPnNlcmlhbC0+ZGV2OworCQlzdGF0dXMgPSB1c2Jfc3VibWl0X3VyYih1cmIsIEdGUF9LRVJORUwpOworCX0KKwllZGdlX3BvcnQtPmVwX3JlYWRfdXJiX3N0YXRlID0gRURHRV9SRUFEX1VSQl9SVU5OSU5HOworCWVkZ2VfcG9ydC0+c2hhZG93X21jciB8PSBNQ1JfUlRTOworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZWRnZV9wb3J0LT5lcF9sb2NrLCBmbGFncyk7CisKKwlyZXR1cm4gc3RhdHVzOworfQorCitzdGF0aWMgdm9pZCBjaGFuZ2VfcG9ydF9zZXR0aW5ncyAoc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKmVkZ2VfcG9ydCwgc3RydWN0IHRlcm1pb3MgKm9sZF90ZXJtaW9zKQoreworCXN0cnVjdCB1bXBfdWFydF9jb25maWcgKmNvbmZpZzsKKwlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5OworCWludCBiYXVkOworCXVuc2lnbmVkIGNmbGFnOworCWludCBzdGF0dXM7CisJaW50IHBvcnRfbnVtYmVyID0gZWRnZV9wb3J0LT5wb3J0LT5udW1iZXIgLSBlZGdlX3BvcnQtPnBvcnQtPnNlcmlhbC0+bWlub3I7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgZWRnZV9wb3J0LT5wb3J0LT5udW1iZXIpOworCisJdHR5ID0gZWRnZV9wb3J0LT5wb3J0LT50dHk7CisJaWYgKCghdHR5KSB8fAorCSAgICAoIXR0eS0+dGVybWlvcykpIHsKKwkJZGJnKCIlcyAtIG5vIHR0eSBzdHJ1Y3R1cmVzIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuOworCX0KKworCWNvbmZpZyA9IGttYWxsb2MgKHNpemVvZiAoKmNvbmZpZyksIEdGUF9LRVJORUwpOworCWlmICghY29uZmlnKSB7CisJCWRldl9lcnIgKCZlZGdlX3BvcnQtPnBvcnQtPmRldiwgIiVzIC0gb3V0IG9mIG1lbW9yeVxuIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuOworCX0KKworCWNmbGFnID0gdHR5LT50ZXJtaW9zLT5jX2NmbGFnOworCisJY29uZmlnLT53RmxhZ3MgPSAwOworCisJLyogVGhlc2UgZmxhZ3MgbXVzdCBiZSBzZXQgKi8KKwljb25maWctPndGbGFncyB8PSBVTVBfTUFTS19VQVJUX0ZMQUdTX1JFQ0VJVkVfTVNfSU5UOworCWNvbmZpZy0+d0ZsYWdzIHw9IFVNUF9NQVNLX1VBUlRfRkxBR1NfQVVUT19TVEFSVF9PTl9FUlI7CisJY29uZmlnLT5iVWFydE1vZGUgPSAoX191OCkoZWRnZV9wb3J0LT5iVWFydE1vZGUpOworCisJc3dpdGNoIChjZmxhZyAmIENTSVpFKSB7CisJCWNhc2UgQ1M1OgorCQkJICAgIGNvbmZpZy0+YkRhdGFCaXRzID0gVU1QX1VBUlRfQ0hBUjVCSVRTOworCQkJICAgIGRiZyAoIiVzIC0gZGF0YSBiaXRzID0gNSIsIF9fRlVOQ1RJT05fXyk7CisJCQkgICAgYnJlYWs7CisJCWNhc2UgQ1M2OgorCQkJICAgIGNvbmZpZy0+YkRhdGFCaXRzID0gVU1QX1VBUlRfQ0hBUjZCSVRTOworCQkJICAgIGRiZyAoIiVzIC0gZGF0YSBiaXRzID0gNiIsIF9fRlVOQ1RJT05fXyk7CisJCQkgICAgYnJlYWs7CisJCWNhc2UgQ1M3OgorCQkJICAgIGNvbmZpZy0+YkRhdGFCaXRzID0gVU1QX1VBUlRfQ0hBUjdCSVRTOworCQkJICAgIGRiZyAoIiVzIC0gZGF0YSBiaXRzID0gNyIsIF9fRlVOQ1RJT05fXyk7CisJCQkgICAgYnJlYWs7CisJCWRlZmF1bHQ6CisJCWNhc2UgQ1M4OgorCQkJICAgIGNvbmZpZy0+YkRhdGFCaXRzID0gVU1QX1VBUlRfQ0hBUjhCSVRTOworCQkJICAgIGRiZyAoIiVzIC0gZGF0YSBiaXRzID0gOCIsIF9fRlVOQ1RJT05fXyk7CisJCQkgICAgYnJlYWs7CisJfQorCisJaWYgKGNmbGFnICYgUEFSRU5CKSB7CisJCWlmIChjZmxhZyAmIFBBUk9ERCkgeworCQkJY29uZmlnLT53RmxhZ3MgfD0gVU1QX01BU0tfVUFSVF9GTEFHU19QQVJJVFk7CisJCQljb25maWctPmJQYXJpdHkgPSBVTVBfVUFSVF9PRERQQVJJVFk7CisJCQlkYmcoIiVzIC0gcGFyaXR5ID0gb2RkIiwgX19GVU5DVElPTl9fKTsKKwkJfSBlbHNlIHsKKwkJCWNvbmZpZy0+d0ZsYWdzIHw9IFVNUF9NQVNLX1VBUlRfRkxBR1NfUEFSSVRZOworCQkJY29uZmlnLT5iUGFyaXR5ID0gVU1QX1VBUlRfRVZFTlBBUklUWTsKKwkJCWRiZygiJXMgLSBwYXJpdHkgPSBldmVuIiwgX19GVU5DVElPTl9fKTsKKwkJfQorCX0gZWxzZSB7CisJCWNvbmZpZy0+YlBhcml0eSA9IFVNUF9VQVJUX05PUEFSSVRZOyAJCisJCWRiZygiJXMgLSBwYXJpdHkgPSBub25lIiwgX19GVU5DVElPTl9fKTsKKwl9CisKKwlpZiAoY2ZsYWcgJiBDU1RPUEIpIHsKKwkJY29uZmlnLT5iU3RvcEJpdHMgPSBVTVBfVUFSVF9TVE9QQklUMjsKKwkJZGJnKCIlcyAtIHN0b3AgYml0cyA9IDIiLCBfX0ZVTkNUSU9OX18pOworCX0gZWxzZSB7CisJCWNvbmZpZy0+YlN0b3BCaXRzID0gVU1QX1VBUlRfU1RPUEJJVDE7CisJCWRiZygiJXMgLSBzdG9wIGJpdHMgPSAxIiwgX19GVU5DVElPTl9fKTsKKwl9CisKKwkvKiBmaWd1cmUgb3V0IHRoZSBmbG93IGNvbnRyb2wgc2V0dGluZ3MgKi8KKwlpZiAoY2ZsYWcgJiBDUlRTQ1RTKSB7CisJCWNvbmZpZy0+d0ZsYWdzIHw9IFVNUF9NQVNLX1VBUlRfRkxBR1NfT1VUX1hfQ1RTX0ZMT1c7CisJCWNvbmZpZy0+d0ZsYWdzIHw9IFVNUF9NQVNLX1VBUlRfRkxBR1NfUlRTX0ZMT1c7CisJCWRiZygiJXMgLSBSVFMvQ1RTIGlzIGVuYWJsZWQiLCBfX0ZVTkNUSU9OX18pOworCX0gZWxzZSB7CisJCWRiZygiJXMgLSBSVFMvQ1RTIGlzIGRpc2FibGVkIiwgX19GVU5DVElPTl9fKTsKKwkJdHR5LT5od19zdG9wcGVkID0gMDsKKwkJcmVzdGFydF9yZWFkKGVkZ2VfcG9ydCk7CisJfQorCisJLyogaWYgd2UgYXJlIGltcGxlbWVudGluZyBYT04vWE9GRiwgc2V0IHRoZSBzdGFydCBhbmQgc3RvcCBjaGFyYWN0ZXIgaW4gdGhlIGRldmljZSAqLworCWlmIChJX0lYT0ZGKHR0eSkgfHwgSV9JWE9OKHR0eSkpIHsKKwkJY29uZmlnLT5jWG9uICA9IFNUQVJUX0NIQVIodHR5KTsKKwkJY29uZmlnLT5jWG9mZiA9IFNUT1BfQ0hBUih0dHkpOworCisJCS8qIGlmIHdlIGFyZSBpbXBsZW1lbnRpbmcgSU5CT1VORCBYT04vWE9GRiAqLworCQlpZiAoSV9JWE9GRih0dHkpKSB7CisJCQljb25maWctPndGbGFncyB8PSBVTVBfTUFTS19VQVJUX0ZMQUdTX0lOX1g7CisJCQlkYmcgKCIlcyAtIElOQk9VTkQgWE9OL1hPRkYgaXMgZW5hYmxlZCwgWE9OID0gJTJ4LCBYT0ZGID0gJTJ4IiwKKwkJCSAgICAgX19GVU5DVElPTl9fLCBjb25maWctPmNYb24sIGNvbmZpZy0+Y1hvZmYpOworCQl9IGVsc2UgeworCQkJZGJnICgiJXMgLSBJTkJPVU5EIFhPTi9YT0ZGIGlzIGRpc2FibGVkIiwgX19GVU5DVElPTl9fKTsKKwkJfQorCisJCS8qIGlmIHdlIGFyZSBpbXBsZW1lbnRpbmcgT1VUQk9VTkQgWE9OL1hPRkYgKi8KKwkJaWYgKElfSVhPTih0dHkpKSB7CisJCQljb25maWctPndGbGFncyB8PSBVTVBfTUFTS19VQVJUX0ZMQUdTX09VVF9YOworCQkJZGJnICgiJXMgLSBPVVRCT1VORCBYT04vWE9GRiBpcyBlbmFibGVkLCBYT04gPSAlMngsIFhPRkYgPSAlMngiLAorCQkJICAgICBfX0ZVTkNUSU9OX18sIGNvbmZpZy0+Y1hvbiwgY29uZmlnLT5jWG9mZik7CisJCX0gZWxzZSB7CisJCQlkYmcgKCIlcyAtIE9VVEJPVU5EIFhPTi9YT0ZGIGlzIGRpc2FibGVkIiwgX19GVU5DVElPTl9fKTsKKwkJfQorCX0KKworCS8qIFJvdW5kIHRoZSBiYXVkIHJhdGUgKi8KKwliYXVkID0gdHR5X2dldF9iYXVkX3JhdGUodHR5KTsKKwlpZiAoIWJhdWQpIHsKKwkJLyogcGljayBhIGRlZmF1bHQsIGFueSBkZWZhdWx0Li4uICovCisJCWJhdWQgPSA5NjAwOworCX0KKwllZGdlX3BvcnQtPmJhdWRfcmF0ZSA9IGJhdWQ7CisJY29uZmlnLT53QmF1ZFJhdGUgPSAoX191MTYpKCg0NjE1NTBMICsgYmF1ZC8yKSAvIGJhdWQpOworCisJZGJnICgiJXMgLSBiYXVkIHJhdGUgPSAlZCwgd0JhdWRSYXRlID0gJWQiLCBfX0ZVTkNUSU9OX18sIGJhdWQsIGNvbmZpZy0+d0JhdWRSYXRlKTsKKworCWRiZyAoIndCYXVkUmF0ZTogICAlZCIsIChpbnQpKDQ2MTU1MEwgLyBjb25maWctPndCYXVkUmF0ZSkpOworCWRiZyAoIndGbGFnczogICAgMHgleCIsIGNvbmZpZy0+d0ZsYWdzKTsKKwlkYmcgKCJiRGF0YUJpdHM6ICAgJWQiLCBjb25maWctPmJEYXRhQml0cyk7CisJZGJnICgiYlBhcml0eTogICAgICVkIiwgY29uZmlnLT5iUGFyaXR5KTsKKwlkYmcgKCJiU3RvcEJpdHM6ICAgJWQiLCBjb25maWctPmJTdG9wQml0cyk7CisJZGJnICgiY1hvbjogICAgICAgICVkIiwgY29uZmlnLT5jWG9uKTsKKwlkYmcgKCJjWG9mZjogICAgICAgJWQiLCBjb25maWctPmNYb2ZmKTsKKwlkYmcgKCJiVWFydE1vZGU6ICAgJWQiLCBjb25maWctPmJVYXJ0TW9kZSk7CisKKwkvKiBtb3ZlIHRoZSB3b3JkIHZhbHVlcyBpbnRvIGJpZyBlbmRpYW4gbW9kZSAqLworCWNwdV90b19iZTE2cyAoJmNvbmZpZy0+d0ZsYWdzKTsKKwljcHVfdG9fYmUxNnMgKCZjb25maWctPndCYXVkUmF0ZSk7CisKKwlzdGF0dXMgPSBUSVdyaXRlQ29tbWFuZFN5bmMgKGVkZ2VfcG9ydC0+cG9ydC0+c2VyaWFsLT5kZXYsCisJCQkJVU1QQ19TRVRfQ09ORklHLAorCQkJCShfX3U4KShVTVBNX1VBUlQxX1BPUlQgKyBwb3J0X251bWJlciksCisJCQkJMCwKKwkJCQkoX191OCAqKWNvbmZpZywKKwkJCQlzaXplb2YoKmNvbmZpZykpOworCWlmIChzdGF0dXMpIHsKKwkJZGJnICgiJXMgLSBlcnJvciAlZCB3aGVuIHRyeWluZyB0byB3cml0ZSBjb25maWcgdG8gZGV2aWNlIiwKKwkJICAgICBfX0ZVTkNUSU9OX18sIHN0YXR1cyk7CisJfQorCisJa2ZyZWUgKGNvbmZpZyk7CisJCisJcmV0dXJuOworfQorCitzdGF0aWMgdm9pZCBlZGdlX3NldF90ZXJtaW9zIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgdGVybWlvcyAqb2xkX3Rlcm1pb3MpCit7CisJc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKmVkZ2VfcG9ydCA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5ID0gcG9ydC0+dHR5OworCXVuc2lnbmVkIGludCBjZmxhZzsKKworCWlmICghcG9ydC0+dHR5IHx8ICFwb3J0LT50dHktPnRlcm1pb3MpIHsKKwkJZGJnICgiJXMgLSBubyB0dHkgb3IgdGVybWlvcyIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybjsKKwl9CisKKwljZmxhZyA9IHR0eS0+dGVybWlvcy0+Y19jZmxhZzsKKwkvKiBjaGVjayB0aGF0IHRoZXkgcmVhbGx5IHdhbnQgdXMgdG8gY2hhbmdlIHNvbWV0aGluZyAqLworCWlmIChvbGRfdGVybWlvcykgeworCQlpZiAoY2ZsYWcgPT0gb2xkX3Rlcm1pb3MtPmNfY2ZsYWcgJiYKKwkJICAgIHR0eS0+dGVybWlvcy0+Y19pZmxhZyA9PSBvbGRfdGVybWlvcy0+Y19pZmxhZykgeworCQkJZGJnICgiJXMgLSBub3RoaW5nIHRvIGNoYW5nZSIsIF9fRlVOQ1RJT05fXyk7CisJCQlyZXR1cm47CisJCX0KKwl9CisKKwlkYmcoIiVzIC0gY2xmYWcgJTA4eCBpZmxhZyAlMDh4IiwgX19GVU5DVElPTl9fLCAKKwkgICAgdHR5LT50ZXJtaW9zLT5jX2NmbGFnLCB0dHktPnRlcm1pb3MtPmNfaWZsYWcpOworCWlmIChvbGRfdGVybWlvcykgeworCQlkYmcoIiVzIC0gb2xkIGNsZmFnICUwOHggb2xkIGlmbGFnICUwOHgiLCBfX0ZVTkNUSU9OX18sCisJCSAgICBvbGRfdGVybWlvcy0+Y19jZmxhZywgb2xkX3Rlcm1pb3MtPmNfaWZsYWcpOworCX0KKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJaWYgKGVkZ2VfcG9ydCA9PSBOVUxMKQorCQlyZXR1cm47CisKKwkvKiBjaGFuZ2UgdGhlIHBvcnQgc2V0dGluZ3MgdG8gdGhlIG5ldyBvbmVzIHNwZWNpZmllZCAqLworCWNoYW5nZV9wb3J0X3NldHRpbmdzIChlZGdlX3BvcnQsIG9sZF90ZXJtaW9zKTsKKworCXJldHVybjsKK30KKworc3RhdGljIGludCBlZGdlX3Rpb2Ntc2V0IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IHNldCwgdW5zaWduZWQgaW50IGNsZWFyKQoreworCXN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJdW5zaWduZWQgaW50IG1jcjsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJbWNyID0gZWRnZV9wb3J0LT5zaGFkb3dfbWNyOworCWlmIChzZXQgJiBUSU9DTV9SVFMpCisJCW1jciB8PSBNQ1JfUlRTOworCWlmIChzZXQgJiBUSU9DTV9EVFIpCisJCW1jciB8PSBNQ1JfRFRSOworCWlmIChzZXQgJiBUSU9DTV9MT09QKQorCQltY3IgfD0gTUNSX0xPT1BCQUNLOworCisJaWYgKGNsZWFyICYgVElPQ01fUlRTKQorCQltY3IgJj0gfk1DUl9SVFM7CisJaWYgKGNsZWFyICYgVElPQ01fRFRSKQorCQltY3IgJj0gfk1DUl9EVFI7CisJaWYgKGNsZWFyICYgVElPQ01fTE9PUCkKKwkJbWNyICY9IH5NQ1JfTE9PUEJBQ0s7CisKKwllZGdlX3BvcnQtPnNoYWRvd19tY3IgPSBtY3I7CisKKwlUSVJlc3RvcmVNQ1IgKGVkZ2VfcG9ydCwgbWNyKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGVkZ2VfdGlvY21nZXQoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKmVkZ2VfcG9ydCA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwl1bnNpZ25lZCBpbnQgcmVzdWx0ID0gMDsKKwl1bnNpZ25lZCBpbnQgbXNyOworCXVuc2lnbmVkIGludCBtY3I7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCW1zciA9IGVkZ2VfcG9ydC0+c2hhZG93X21zcjsKKwltY3IgPSBlZGdlX3BvcnQtPnNoYWRvd19tY3I7CisJcmVzdWx0ID0gKChtY3IgJiBNQ1JfRFRSKQk/IFRJT0NNX0RUUjogMCkJICAvKiAweDAwMiAqLworCQkgIHwgKChtY3IgJiBNQ1JfUlRTKQk/IFRJT0NNX1JUUzogMCkgICAvKiAweDAwNCAqLworCQkgIHwgKChtc3IgJiBFREdFUE9SVF9NU1JfQ1RTKQk/IFRJT0NNX0NUUzogMCkgICAvKiAweDAyMCAqLworCQkgIHwgKChtc3IgJiBFREdFUE9SVF9NU1JfQ0QpCT8gVElPQ01fQ0FSOiAwKSAgIC8qIDB4MDQwICovCisJCSAgfCAoKG1zciAmIEVER0VQT1JUX01TUl9SSSkJPyBUSU9DTV9SSTogIDApICAgLyogMHgwODAgKi8KKwkJICB8ICgobXNyICYgRURHRVBPUlRfTVNSX0RTUikJPyBUSU9DTV9EU1I6IDApOyAgLyogMHgxMDAgKi8KKworCisJZGJnKCIlcyAtLSAleCIsIF9fRlVOQ1RJT05fXywgcmVzdWx0KTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBpbnQgZ2V0X3NlcmlhbF9pbmZvIChzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqZWRnZV9wb3J0LCBzdHJ1Y3Qgc2VyaWFsX3N0cnVjdCBfX3VzZXIgKnJldGluZm8pCit7CisJc3RydWN0IHNlcmlhbF9zdHJ1Y3QgdG1wOworCisJaWYgKCFyZXRpbmZvKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCW1lbXNldCgmdG1wLCAwLCBzaXplb2YodG1wKSk7CisKKwl0bXAudHlwZQkJPSBQT1JUXzE2NTUwQTsKKwl0bXAubGluZQkJPSBlZGdlX3BvcnQtPnBvcnQtPnNlcmlhbC0+bWlub3I7CisJdG1wLnBvcnQJCT0gZWRnZV9wb3J0LT5wb3J0LT5udW1iZXI7CisJdG1wLmlycQkJCT0gMDsKKwl0bXAuZmxhZ3MJCT0gQVNZTkNfU0tJUF9URVNUIHwgQVNZTkNfQVVUT19JUlE7CisJdG1wLnhtaXRfZmlmb19zaXplCT0gZWRnZV9wb3J0LT5wb3J0LT5idWxrX291dF9zaXplOworCXRtcC5iYXVkX2Jhc2UJCT0gOTYwMDsKKwl0bXAuY2xvc2VfZGVsYXkJCT0gNSpIWjsKKwl0bXAuY2xvc2luZ193YWl0CT0gY2xvc2luZ193YWl0OworLy8JdG1wLmN1c3RvbV9kaXZpc29yCT0gc3RhdGUtPmN1c3RvbV9kaXZpc29yOworLy8JdG1wLmh1YjYJCT0gc3RhdGUtPmh1YjY7CisvLwl0bXAuaW9fdHlwZQkJPSBzdGF0ZS0+aW9fdHlwZTsKKworCisJaWYgKGNvcHlfdG9fdXNlcihyZXRpbmZvLCAmdG1wLCBzaXplb2YoKnJldGluZm8pKSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZWRnZV9pb2N0bCAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQoreworCXN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJc3RydWN0IGFzeW5jX2ljb3VudCBjbm93OworCXN0cnVjdCBhc3luY19pY291bnQgY3ByZXY7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCwgY21kID0gMHgleCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyLCBjbWQpOworCisJc3dpdGNoIChjbWQpIHsKKwkJY2FzZSBUSU9DSU5ROgorCQkJZGJnKCIlcyAtICglZCkgVElPQ0lOUSIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKy8vCQkJcmV0dXJuIGdldF9udW1iZXJfYnl0ZXNfYXZhaWwoZWRnZV9wb3J0LCAodW5zaWduZWQgaW50ICopIGFyZyk7CisJCQlicmVhazsKKworCQljYXNlIFRJT0NTRVJHRVRMU1I6CisJCQlkYmcoIiVzIC0gKCVkKSBUSU9DU0VSR0VUTFNSIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworLy8JCQlyZXR1cm4gZ2V0X2xzcl9pbmZvKGVkZ2VfcG9ydCwgKHVuc2lnbmVkIGludCAqKSBhcmcpOworCQkJYnJlYWs7CisKKwkJY2FzZSBUSU9DR1NFUklBTDoKKwkJCWRiZygiJXMgLSAoJWQpIFRJT0NHU0VSSUFMIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCQkJcmV0dXJuIGdldF9zZXJpYWxfaW5mbyhlZGdlX3BvcnQsIChzdHJ1Y3Qgc2VyaWFsX3N0cnVjdCBfX3VzZXIgKikgYXJnKTsKKwkJCWJyZWFrOworCisJCWNhc2UgVElPQ1NTRVJJQUw6CisJCQlkYmcoIiVzIC0gKCVkKSBUSU9DU1NFUklBTCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKwkJCWJyZWFrOworCisJCWNhc2UgVElPQ01JV0FJVDoKKwkJCWRiZygiJXMgLSAoJWQpIFRJT0NNSVdBSVQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisJCQljcHJldiA9IGVkZ2VfcG9ydC0+aWNvdW50OworCQkJd2hpbGUgKDEpIHsKKwkJCQlpbnRlcnJ1cHRpYmxlX3NsZWVwX29uKCZlZGdlX3BvcnQtPmRlbHRhX21zcl93YWl0KTsKKwkJCQkvKiBzZWUgaWYgYSBzaWduYWwgZGlkIGl0ICovCisJCQkJaWYgKHNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKQorCQkJCQlyZXR1cm4gLUVSRVNUQVJUU1lTOworCQkJCWNub3cgPSBlZGdlX3BvcnQtPmljb3VudDsKKwkJCQlpZiAoY25vdy5ybmcgPT0gY3ByZXYucm5nICYmIGNub3cuZHNyID09IGNwcmV2LmRzciAmJgorCQkJCSAgICBjbm93LmRjZCA9PSBjcHJldi5kY2QgJiYgY25vdy5jdHMgPT0gY3ByZXYuY3RzKQorCQkJCQlyZXR1cm4gLUVJTzsgLyogbm8gY2hhbmdlID0+IGVycm9yICovCisJCQkJaWYgKCgoYXJnICYgVElPQ01fUk5HKSAmJiAoY25vdy5ybmcgIT0gY3ByZXYucm5nKSkgfHwKKwkJCQkgICAgKChhcmcgJiBUSU9DTV9EU1IpICYmIChjbm93LmRzciAhPSBjcHJldi5kc3IpKSB8fAorCQkJCSAgICAoKGFyZyAmIFRJT0NNX0NEKSAgJiYgKGNub3cuZGNkICE9IGNwcmV2LmRjZCkpIHx8CisJCQkJICAgICgoYXJnICYgVElPQ01fQ1RTKSAmJiAoY25vdy5jdHMgIT0gY3ByZXYuY3RzKSkgKSB7CisJCQkJCXJldHVybiAwOworCQkJCX0KKwkJCQljcHJldiA9IGNub3c7CisJCQl9CisJCQkvKiBub3QgcmVhY2hlZCAqLworCQkJYnJlYWs7CisKKwkJY2FzZSBUSU9DR0lDT1VOVDoKKwkJCWRiZyAoIiVzIC0gKCVkKSBUSU9DR0lDT1VOVCBSWD0lZCwgVFg9JWQiLCBfX0ZVTkNUSU9OX18sCisJCQkgICAgIHBvcnQtPm51bWJlciwgZWRnZV9wb3J0LT5pY291bnQucngsIGVkZ2VfcG9ydC0+aWNvdW50LnR4KTsKKwkJCWlmIChjb3B5X3RvX3VzZXIoKHZvaWQgX191c2VyICopYXJnLCAmZWRnZV9wb3J0LT5pY291bnQsIHNpemVvZihlZGdlX3BvcnQtPmljb3VudCkpKQorCQkJCXJldHVybiAtRUZBVUxUOworCQkJcmV0dXJuIDA7CisJfQorCisJcmV0dXJuIC1FTk9JT0NUTENNRDsKK30KKworc3RhdGljIHZvaWQgZWRnZV9icmVhayAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgaW50IGJyZWFrX3N0YXRlKQoreworCXN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJaW50IHN0YXR1czsKKworCWRiZyAoIiVzIC0gc3RhdGUgPSAlZCIsIF9fRlVOQ1RJT05fXywgYnJlYWtfc3RhdGUpOworCisJLyogY2hhc2UgdGhlIHBvcnQgY2xvc2UgKi8KKwlUSUNoYXNlUG9ydCAoZWRnZV9wb3J0LCAwLCAwKTsKKworCWlmIChicmVha19zdGF0ZSA9PSAtMSkgeworCQlzdGF0dXMgPSBUSVNldEJyZWFrIChlZGdlX3BvcnQpOworCX0gZWxzZSB7CisJCXN0YXR1cyA9IFRJQ2xlYXJCcmVhayAoZWRnZV9wb3J0KTsKKwl9CisJaWYgKHN0YXR1cykgeworCQlkYmcgKCIlcyAtIGVycm9yICVkIHNlbmRpbmcgYnJlYWsgc2V0L2NsZWFyIGNvbW1hbmQuIiwKKwkJICAgICBfX0ZVTkNUSU9OX18sIHN0YXR1cyk7CisJfQorfQorCitzdGF0aWMgaW50IGVkZ2Vfc3RhcnR1cCAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkKK3sKKwlzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsICplZGdlX3NlcmlhbDsKKwlzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqZWRnZV9wb3J0OworCXN0cnVjdCB1c2JfZGV2aWNlICpkZXY7CisJaW50IHN0YXR1czsKKwlpbnQgaTsKKworCWRldiA9IHNlcmlhbC0+ZGV2OworCisJLyogY3JlYXRlIG91ciBwcml2YXRlIHNlcmlhbCBzdHJ1Y3R1cmUgKi8KKwllZGdlX3NlcmlhbCA9IGttYWxsb2MgKHNpemVvZihzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsKSwgR0ZQX0tFUk5FTCk7CisJaWYgKGVkZ2Vfc2VyaWFsID09IE5VTEwpIHsKKwkJZGV2X2Vycigmc2VyaWFsLT5kZXYtPmRldiwgIiVzIC0gT3V0IG9mIG1lbW9yeVxuIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCW1lbXNldCAoZWRnZV9zZXJpYWwsIDAsIHNpemVvZihzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsKSk7CisJc2VtYV9pbml0KCZlZGdlX3NlcmlhbC0+ZXNfc2VtLCAxKTsKKwllZGdlX3NlcmlhbC0+c2VyaWFsID0gc2VyaWFsOworCXVzYl9zZXRfc2VyaWFsX2RhdGEoc2VyaWFsLCBlZGdlX3NlcmlhbCk7CisKKwlzdGF0dXMgPSBUSURvd25sb2FkRmlybXdhcmUgKGVkZ2Vfc2VyaWFsKTsKKwlpZiAoc3RhdHVzKSB7CisJCWtmcmVlIChlZGdlX3NlcmlhbCk7CisJCXJldHVybiBzdGF0dXM7CisJfQorCisJLyogc2V0IHVwIG91ciBwb3J0IHByaXZhdGUgc3RydWN0dXJlcyAqLworCWZvciAoaSA9IDA7IGkgPCBzZXJpYWwtPm51bV9wb3J0czsgKytpKSB7CisJCWVkZ2VfcG9ydCA9IGttYWxsb2MgKHNpemVvZihzdHJ1Y3QgZWRnZXBvcnRfcG9ydCksIEdGUF9LRVJORUwpOworCQlpZiAoZWRnZV9wb3J0ID09IE5VTEwpIHsKKwkJCWRldl9lcnIoJnNlcmlhbC0+ZGV2LT5kZXYsICIlcyAtIE91dCBvZiBtZW1vcnlcbiIsIF9fRlVOQ1RJT05fXyk7CisJCQlnb3RvIGNsZWFudXA7CisJCX0KKwkJbWVtc2V0IChlZGdlX3BvcnQsIDAsIHNpemVvZihzdHJ1Y3QgZWRnZXBvcnRfcG9ydCkpOworCQlzcGluX2xvY2tfaW5pdCgmZWRnZV9wb3J0LT5lcF9sb2NrKTsKKwkJZWRnZV9wb3J0LT5lcF9vdXRfYnVmID0gZWRnZV9idWZfYWxsb2MoRURHRV9PVVRfQlVGX1NJWkUpOworCQlpZiAoZWRnZV9wb3J0LT5lcF9vdXRfYnVmID09IE5VTEwpIHsKKwkJCWRldl9lcnIoJnNlcmlhbC0+ZGV2LT5kZXYsICIlcyAtIE91dCBvZiBtZW1vcnlcbiIsIF9fRlVOQ1RJT05fXyk7CisJCQlrZnJlZShlZGdlX3BvcnQpOworCQkJZ290byBjbGVhbnVwOworCQl9CisJCWVkZ2VfcG9ydC0+cG9ydCA9IHNlcmlhbC0+cG9ydFtpXTsKKwkJZWRnZV9wb3J0LT5lZGdlX3NlcmlhbCA9IGVkZ2Vfc2VyaWFsOworCQl1c2Jfc2V0X3NlcmlhbF9wb3J0X2RhdGEoc2VyaWFsLT5wb3J0W2ldLCBlZGdlX3BvcnQpOworCQllZGdlX3BvcnQtPmJVYXJ0TW9kZSA9IDA7CS8qIERlZmF1bHQgaXMgUlMyMzIgKi8KKwl9CisJCisJcmV0dXJuIDA7CisKK2NsZWFudXA6CisJZm9yICgtLWk7IGk+PTA7IC0taSkgeworCQllZGdlX3BvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEoc2VyaWFsLT5wb3J0W2ldKTsKKwkJZWRnZV9idWZfZnJlZShlZGdlX3BvcnQtPmVwX291dF9idWYpOworCQlrZnJlZShlZGdlX3BvcnQpOworCQl1c2Jfc2V0X3NlcmlhbF9wb3J0X2RhdGEoc2VyaWFsLT5wb3J0W2ldLCBOVUxMKTsKKwl9CisJa2ZyZWUgKGVkZ2Vfc2VyaWFsKTsKKwl1c2Jfc2V0X3NlcmlhbF9kYXRhKHNlcmlhbCwgTlVMTCk7CisJcmV0dXJuIC1FTk9NRU07Cit9CisKK3N0YXRpYyB2b2lkIGVkZ2Vfc2h1dGRvd24gKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7CisJaW50IGk7CisJc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKmVkZ2VfcG9ydDsKKworCWRiZyAoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCWZvciAoaT0wOyBpIDwgc2VyaWFsLT5udW1fcG9ydHM7ICsraSkgeworCQllZGdlX3BvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEoc2VyaWFsLT5wb3J0W2ldKTsKKwkJaWYgKGVkZ2VfcG9ydCkgeworCQkJZWRnZV9idWZfZnJlZShlZGdlX3BvcnQtPmVwX291dF9idWYpOworCQkJa2ZyZWUoZWRnZV9wb3J0KTsKKwkJfQorCQl1c2Jfc2V0X3NlcmlhbF9wb3J0X2RhdGEoc2VyaWFsLT5wb3J0W2ldLCBOVUxMKTsKKwl9CisJa2ZyZWUgKHVzYl9nZXRfc2VyaWFsX2RhdGEoc2VyaWFsKSk7CisJdXNiX3NldF9zZXJpYWxfZGF0YShzZXJpYWwsIE5VTEwpOworfQorCisKKy8qIENpcmN1bGFyIEJ1ZmZlciAqLworCisvKgorICogZWRnZV9idWZfYWxsb2MKKyAqCisgKiBBbGxvY2F0ZSBhIGNpcmN1bGFyIGJ1ZmZlciBhbmQgYWxsIGFzc29jaWF0ZWQgbWVtb3J5LgorICovCisKK3N0YXRpYyBzdHJ1Y3QgZWRnZV9idWYgKmVkZ2VfYnVmX2FsbG9jKHVuc2lnbmVkIGludCBzaXplKQoreworCXN0cnVjdCBlZGdlX2J1ZiAqZWI7CisKKworCWlmIChzaXplID09IDApCisJCXJldHVybiBOVUxMOworCisJZWIgPSAoc3RydWN0IGVkZ2VfYnVmICopa21hbGxvYyhzaXplb2Yoc3RydWN0IGVkZ2VfYnVmKSwgR0ZQX0tFUk5FTCk7CisJaWYgKGViID09IE5VTEwpCisJCXJldHVybiBOVUxMOworCisJZWItPmJ1Zl9idWYgPSBrbWFsbG9jKHNpemUsIEdGUF9LRVJORUwpOworCWlmIChlYi0+YnVmX2J1ZiA9PSBOVUxMKSB7CisJCWtmcmVlKGViKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJZWItPmJ1Zl9zaXplID0gc2l6ZTsKKwllYi0+YnVmX2dldCA9IGViLT5idWZfcHV0ID0gZWItPmJ1Zl9idWY7CisKKwlyZXR1cm4gZWI7Cit9CisKKworLyoKKyAqIGVkZ2VfYnVmX2ZyZWUKKyAqCisgKiBGcmVlIHRoZSBidWZmZXIgYW5kIGFsbCBhc3NvY2lhdGVkIG1lbW9yeS4KKyAqLworCit2b2lkIGVkZ2VfYnVmX2ZyZWUoc3RydWN0IGVkZ2VfYnVmICplYikKK3sKKwlpZiAoZWIgIT0gTlVMTCkgeworCQlpZiAoZWItPmJ1Zl9idWYgIT0gTlVMTCkKKwkJCWtmcmVlKGViLT5idWZfYnVmKTsKKwkJa2ZyZWUoZWIpOworCX0KK30KKworCisvKgorICogZWRnZV9idWZfY2xlYXIKKyAqCisgKiBDbGVhciBvdXQgYWxsIGRhdGEgaW4gdGhlIGNpcmN1bGFyIGJ1ZmZlci4KKyAqLworCitzdGF0aWMgdm9pZCBlZGdlX2J1Zl9jbGVhcihzdHJ1Y3QgZWRnZV9idWYgKmViKQoreworICAgICAgICBpZiAoZWIgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICBlYi0+YnVmX2dldCA9IGViLT5idWZfcHV0OworICAgICAgICAgICAgICAgIC8qIGVxdWl2YWxlbnQgdG8gYSBnZXQgb2YgYWxsIGRhdGEgYXZhaWxhYmxlICovCit9CisKKworLyoKKyAqIGVkZ2VfYnVmX2RhdGFfYXZhaWwKKyAqCisgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcyBvZiBkYXRhIGF2YWlsYWJsZSBpbiB0aGUgY2lyY3VsYXIKKyAqIGJ1ZmZlci4KKyAqLworCitzdGF0aWMgdW5zaWduZWQgaW50IGVkZ2VfYnVmX2RhdGFfYXZhaWwoc3RydWN0IGVkZ2VfYnVmICplYikKK3sKKwlpZiAoZWIgIT0gTlVMTCkKKwkJcmV0dXJuICgoZWItPmJ1Zl9zaXplICsgZWItPmJ1Zl9wdXQgLSBlYi0+YnVmX2dldCkgJSBlYi0+YnVmX3NpemUpOworCWVsc2UKKwkJcmV0dXJuIDA7Cit9CisKKworLyoKKyAqIGVkZ2VfYnVmX3NwYWNlX2F2YWlsCisgKgorICogUmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0ZXMgb2Ygc3BhY2UgYXZhaWxhYmxlIGluIHRoZSBjaXJjdWxhcgorICogYnVmZmVyLgorICovCisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgZWRnZV9idWZfc3BhY2VfYXZhaWwoc3RydWN0IGVkZ2VfYnVmICplYikKK3sKKwlpZiAoZWIgIT0gTlVMTCkKKwkJcmV0dXJuICgoZWItPmJ1Zl9zaXplICsgZWItPmJ1Zl9nZXQgLSBlYi0+YnVmX3B1dCAtIDEpICUgZWItPmJ1Zl9zaXplKTsKKwllbHNlCisJCXJldHVybiAwOworfQorCisKKy8qCisgKiBlZGdlX2J1Zl9wdXQKKyAqCisgKiBDb3B5IGRhdGEgZGF0YSBmcm9tIGEgdXNlciBidWZmZXIgYW5kIHB1dCBpdCBpbnRvIHRoZSBjaXJjdWxhciBidWZmZXIuCisgKiBSZXN0cmljdCB0byB0aGUgYW1vdW50IG9mIHNwYWNlIGF2YWlsYWJsZS4KKyAqCisgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcyBjb3BpZWQuCisgKi8KKworc3RhdGljIHVuc2lnbmVkIGludCBlZGdlX2J1Zl9wdXQoc3RydWN0IGVkZ2VfYnVmICplYiwgY29uc3QgY2hhciAqYnVmLAorCXVuc2lnbmVkIGludCBjb3VudCkKK3sKKwl1bnNpZ25lZCBpbnQgbGVuOworCisKKwlpZiAoZWIgPT0gTlVMTCkKKwkJcmV0dXJuIDA7CisKKwlsZW4gID0gZWRnZV9idWZfc3BhY2VfYXZhaWwoZWIpOworCWlmIChjb3VudCA+IGxlbikKKwkJY291bnQgPSBsZW47CisKKwlpZiAoY291bnQgPT0gMCkKKwkJcmV0dXJuIDA7CisKKwlsZW4gPSBlYi0+YnVmX2J1ZiArIGViLT5idWZfc2l6ZSAtIGViLT5idWZfcHV0OworCWlmIChjb3VudCA+IGxlbikgeworCQltZW1jcHkoZWItPmJ1Zl9wdXQsIGJ1ZiwgbGVuKTsKKwkJbWVtY3B5KGViLT5idWZfYnVmLCBidWYrbGVuLCBjb3VudCAtIGxlbik7CisJCWViLT5idWZfcHV0ID0gZWItPmJ1Zl9idWYgKyBjb3VudCAtIGxlbjsKKwl9IGVsc2UgeworCQltZW1jcHkoZWItPmJ1Zl9wdXQsIGJ1ZiwgY291bnQpOworCQlpZiAoY291bnQgPCBsZW4pCisJCQllYi0+YnVmX3B1dCArPSBjb3VudDsKKwkJZWxzZSAvKiBjb3VudCA9PSBsZW4gKi8KKwkJCWViLT5idWZfcHV0ID0gZWItPmJ1Zl9idWY7CisJfQorCisJcmV0dXJuIGNvdW50OworfQorCisKKy8qCisgKiBlZGdlX2J1Zl9nZXQKKyAqCisgKiBHZXQgZGF0YSBmcm9tIHRoZSBjaXJjdWxhciBidWZmZXIgYW5kIGNvcHkgdG8gdGhlIGdpdmVuIGJ1ZmZlci4KKyAqIFJlc3RyaWN0IHRvIHRoZSBhbW91bnQgb2YgZGF0YSBhdmFpbGFibGUuCisgKgorICogUmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0ZXMgY29waWVkLgorICovCisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgZWRnZV9idWZfZ2V0KHN0cnVjdCBlZGdlX2J1ZiAqZWIsIGNoYXIgKmJ1ZiwKKwl1bnNpZ25lZCBpbnQgY291bnQpCit7CisJdW5zaWduZWQgaW50IGxlbjsKKworCisJaWYgKGViID09IE5VTEwpCisJCXJldHVybiAwOworCisJbGVuID0gZWRnZV9idWZfZGF0YV9hdmFpbChlYik7CisJaWYgKGNvdW50ID4gbGVuKQorCQljb3VudCA9IGxlbjsKKworCWlmIChjb3VudCA9PSAwKQorCQlyZXR1cm4gMDsKKworCWxlbiA9IGViLT5idWZfYnVmICsgZWItPmJ1Zl9zaXplIC0gZWItPmJ1Zl9nZXQ7CisJaWYgKGNvdW50ID4gbGVuKSB7CisJCW1lbWNweShidWYsIGViLT5idWZfZ2V0LCBsZW4pOworCQltZW1jcHkoYnVmK2xlbiwgZWItPmJ1Zl9idWYsIGNvdW50IC0gbGVuKTsKKwkJZWItPmJ1Zl9nZXQgPSBlYi0+YnVmX2J1ZiArIGNvdW50IC0gbGVuOworCX0gZWxzZSB7CisJCW1lbWNweShidWYsIGViLT5idWZfZ2V0LCBjb3VudCk7CisJCWlmIChjb3VudCA8IGxlbikKKwkJCWViLT5idWZfZ2V0ICs9IGNvdW50OworCQllbHNlIC8qIGNvdW50ID09IGxlbiAqLworCQkJZWItPmJ1Zl9nZXQgPSBlYi0+YnVmX2J1ZjsKKwl9CisKKwlyZXR1cm4gY291bnQ7Cit9CisKKworc3RhdGljIHN0cnVjdCB1c2Jfc2VyaWFsX2RldmljZV90eXBlIGVkZ2Vwb3J0XzFwb3J0X2RldmljZSA9IHsKKwkub3duZXIJCQk9IFRISVNfTU9EVUxFLAorCS5uYW1lCQkJPSAiRWRnZXBvcnQgVEkgMSBwb3J0IGFkYXB0ZXIiLAorCS5zaG9ydF9uYW1lCQk9ICJlZGdlcG9ydF90aV8xIiwKKwkuaWRfdGFibGUJCT0gZWRnZXBvcnRfMXBvcnRfaWRfdGFibGUsCisJLm51bV9pbnRlcnJ1cHRfaW4JPSAxLAorCS5udW1fYnVsa19pbgkJPSAxLAorCS5udW1fYnVsa19vdXQJCT0gMSwKKwkubnVtX3BvcnRzCQk9IDEsCisJLm9wZW4JCQk9IGVkZ2Vfb3BlbiwKKwkuY2xvc2UJCQk9IGVkZ2VfY2xvc2UsCisJLnRocm90dGxlCQk9IGVkZ2VfdGhyb3R0bGUsCisJLnVudGhyb3R0bGUJCT0gZWRnZV91bnRocm90dGxlLAorCS5hdHRhY2gJCQk9IGVkZ2Vfc3RhcnR1cCwKKwkuc2h1dGRvd24JCT0gZWRnZV9zaHV0ZG93biwKKwkuaW9jdGwJCQk9IGVkZ2VfaW9jdGwsCisJLnNldF90ZXJtaW9zCQk9IGVkZ2Vfc2V0X3Rlcm1pb3MsCisJLnRpb2NtZ2V0CQk9IGVkZ2VfdGlvY21nZXQsCisJLnRpb2Ntc2V0CQk9IGVkZ2VfdGlvY21zZXQsCisJLndyaXRlCQkJPSBlZGdlX3dyaXRlLAorCS53cml0ZV9yb29tCQk9IGVkZ2Vfd3JpdGVfcm9vbSwKKwkuY2hhcnNfaW5fYnVmZmVyCT0gZWRnZV9jaGFyc19pbl9idWZmZXIsCisJLmJyZWFrX2N0bAkJPSBlZGdlX2JyZWFrLAorCS5yZWFkX2ludF9jYWxsYmFjawk9IGVkZ2VfaW50ZXJydXB0X2NhbGxiYWNrLAorCS5yZWFkX2J1bGtfY2FsbGJhY2sJPSBlZGdlX2J1bGtfaW5fY2FsbGJhY2ssCisJLndyaXRlX2J1bGtfY2FsbGJhY2sJPSBlZGdlX2J1bGtfb3V0X2NhbGxiYWNrLAorfTsKKworc3RhdGljIHN0cnVjdCB1c2Jfc2VyaWFsX2RldmljZV90eXBlIGVkZ2Vwb3J0XzJwb3J0X2RldmljZSA9IHsKKwkub3duZXIJCQk9IFRISVNfTU9EVUxFLAorCS5uYW1lCQkJPSAiRWRnZXBvcnQgVEkgMiBwb3J0IGFkYXB0ZXIiLAorCS5zaG9ydF9uYW1lCQk9ICJlZGdlcG9ydF90aV8yIiwKKwkuaWRfdGFibGUJCT0gZWRnZXBvcnRfMnBvcnRfaWRfdGFibGUsCisJLm51bV9pbnRlcnJ1cHRfaW4JPSAxLAorCS5udW1fYnVsa19pbgkJPSAyLAorCS5udW1fYnVsa19vdXQJCT0gMiwKKwkubnVtX3BvcnRzCQk9IDIsCisJLm9wZW4JCQk9IGVkZ2Vfb3BlbiwKKwkuY2xvc2UJCQk9IGVkZ2VfY2xvc2UsCisJLnRocm90dGxlCQk9IGVkZ2VfdGhyb3R0bGUsCisJLnVudGhyb3R0bGUJCT0gZWRnZV91bnRocm90dGxlLAorCS5hdHRhY2gJCQk9IGVkZ2Vfc3RhcnR1cCwKKwkuc2h1dGRvd24JCT0gZWRnZV9zaHV0ZG93biwKKwkuaW9jdGwJCQk9IGVkZ2VfaW9jdGwsCisJLnNldF90ZXJtaW9zCQk9IGVkZ2Vfc2V0X3Rlcm1pb3MsCisJLnRpb2NtZ2V0CQk9IGVkZ2VfdGlvY21nZXQsCisJLnRpb2Ntc2V0CQk9IGVkZ2VfdGlvY21zZXQsCisJLndyaXRlCQkJPSBlZGdlX3dyaXRlLAorCS53cml0ZV9yb29tCQk9IGVkZ2Vfd3JpdGVfcm9vbSwKKwkuY2hhcnNfaW5fYnVmZmVyCT0gZWRnZV9jaGFyc19pbl9idWZmZXIsCisJLmJyZWFrX2N0bAkJPSBlZGdlX2JyZWFrLAorCS5yZWFkX2ludF9jYWxsYmFjawk9IGVkZ2VfaW50ZXJydXB0X2NhbGxiYWNrLAorCS5yZWFkX2J1bGtfY2FsbGJhY2sJPSBlZGdlX2J1bGtfaW5fY2FsbGJhY2ssCisJLndyaXRlX2J1bGtfY2FsbGJhY2sJPSBlZGdlX2J1bGtfb3V0X2NhbGxiYWNrLAorfTsKKworCitzdGF0aWMgaW50IF9faW5pdCBlZGdlcG9ydF9pbml0KHZvaWQpCit7CisJaW50IHJldHZhbDsKKwlyZXR2YWwgPSB1c2Jfc2VyaWFsX3JlZ2lzdGVyKCZlZGdlcG9ydF8xcG9ydF9kZXZpY2UpOworCWlmIChyZXR2YWwpCisJCWdvdG8gZmFpbGVkXzFwb3J0X2RldmljZV9yZWdpc3RlcjsKKwlyZXR2YWwgPSB1c2Jfc2VyaWFsX3JlZ2lzdGVyKCZlZGdlcG9ydF8ycG9ydF9kZXZpY2UpOworCWlmIChyZXR2YWwpCisJCWdvdG8gZmFpbGVkXzJwb3J0X2RldmljZV9yZWdpc3RlcjsKKwlyZXR2YWwgPSB1c2JfcmVnaXN0ZXIoJmlvX2RyaXZlcik7CisJaWYgKHJldHZhbCkgCisJCWdvdG8gZmFpbGVkX3VzYl9yZWdpc3RlcjsKKwlpbmZvKERSSVZFUl9ERVNDICIgIiBEUklWRVJfVkVSU0lPTik7CisJcmV0dXJuIDA7CitmYWlsZWRfdXNiX3JlZ2lzdGVyOgorCXVzYl9zZXJpYWxfZGVyZWdpc3RlcigmZWRnZXBvcnRfMnBvcnRfZGV2aWNlKTsKK2ZhaWxlZF8ycG9ydF9kZXZpY2VfcmVnaXN0ZXI6CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyKCZlZGdlcG9ydF8xcG9ydF9kZXZpY2UpOworZmFpbGVkXzFwb3J0X2RldmljZV9yZWdpc3RlcjoKKwlyZXR1cm4gcmV0dmFsOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgZWRnZXBvcnRfZXhpdCAodm9pZCkKK3sKKwl1c2JfZGVyZWdpc3RlciAoJmlvX2RyaXZlcik7CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyICgmZWRnZXBvcnRfMXBvcnRfZGV2aWNlKTsKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIgKCZlZGdlcG9ydF8ycG9ydF9kZXZpY2UpOworfQorCittb2R1bGVfaW5pdChlZGdlcG9ydF9pbml0KTsKK21vZHVsZV9leGl0KGVkZ2Vwb3J0X2V4aXQpOworCisvKiBNb2R1bGUgaW5mb3JtYXRpb24gKi8KK01PRFVMRV9BVVRIT1IoRFJJVkVSX0FVVEhPUik7CitNT0RVTEVfREVTQ1JJUFRJT04oRFJJVkVSX0RFU0MpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworCittb2R1bGVfcGFyYW0oZGVidWcsIGJvb2wsIFNfSVJVR08gfCBTX0lXVVNSKTsKK01PRFVMRV9QQVJNX0RFU0MoZGVidWcsICJEZWJ1ZyBlbmFibGVkIG9yIG5vdCIpOworCittb2R1bGVfcGFyYW0obG93X2xhdGVuY3ksIGJvb2wsIFNfSVJVR08gfCBTX0lXVVNSKTsKK01PRFVMRV9QQVJNX0RFU0MobG93X2xhdGVuY3ksICJMb3cgbGF0ZW5jeSBlbmFibGVkIG9yIG5vdCIpOworCittb2R1bGVfcGFyYW0oY2xvc2luZ193YWl0LCBpbnQsIFNfSVJVR08gfCBTX0lXVVNSKTsKK01PRFVMRV9QQVJNX0RFU0MoY2xvc2luZ193YWl0LCAiTWF4aW11bSB3YWl0IGZvciBkYXRhIHRvIGRyYWluLCBpbiAuMDEgc2VjcyIpOworCittb2R1bGVfcGFyYW0oaWdub3JlX2NwdV9yZXYsIGJvb2wsIFNfSVJVR08gfCBTX0lXVVNSKTsKK01PRFVMRV9QQVJNX0RFU0MoaWdub3JlX2NwdV9yZXYsICJJZ25vcmUgdGhlIGNwdSByZXZpc2lvbiB3aGVuIGNvbm5lY3RpbmcgdG8gYSBkZXZpY2UiKTsKKwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX3RpLmggYi9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fdGkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYWI4NGYyCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lvX3RpLmgKQEAgLTAsMCArMSwxODAgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgCisgKgorICoJQ29weXJpZ2h0IChDKSAxOTk3LTIwMDIgSW5zaWRlIE91dCBOZXR3b3JrcywgSW5jLgorICoKKyAqCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKglpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICoJdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqCShhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICoKKyAqCUZlYi0xNi0yMDAxCURNSQlBZGRlZCBJMkMgc3RydWN0dXJlIGRlZmluaXRpb25zCisgKglNYXktMjktMjAwMglna2gJUG9ydGVkIHRvIExpbnV4CisgKgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX0lPX1RJX0hfCisjZGVmaW5lIF9JT19USV9IXworCisvKiBBZGRyZXNzIFNwYWNlICovCisjZGVmaW5lIERUS19BRERSX1NQQUNFX1hEQVRBCQkweDAzCS8qIEFkZHIgaXMgcGxhY2VkIGluIFhEQVRBIHNwYWNlICovCisjZGVmaW5lIERUS19BRERSX1NQQUNFX0kyQ19UWVBFX0lJCTB4ODIJLyogQWRkciBpcyBwbGFjZWQgaW4gSTJDIGFyZWEgKi8KKyNkZWZpbmUgRFRLX0FERFJfU1BBQ0VfSTJDX1RZUEVfSUlJCTB4ODMJLyogQWRkciBpcyBwbGFjZWQgaW4gSTJDIGFyZWEgKi8KKworLy8gVUFSVCBEZWZpbmVzCisjZGVmaW5lIFVNUE1FTV9CQVNFX1VBUlQxCQkweEZGQTAgIC8qIFVNUCBVQVJUMSBiYXNlIGFkZHJlc3MgICAgICAgICAgKi8KKyNkZWZpbmUgVU1QTUVNX0JBU0VfVUFSVDIJCTB4RkZCMCAgLyogVU1QIFVBUlQyIGJhc2UgYWRkcmVzcyAgICAgICAgICAqLworI2RlZmluZSBVTVBNRU1fT0ZGU19VQVJUX0xTUgkJMHgwNSAgICAvKiBVTVAgVUFSVCBMU1IgcmVnaXN0ZXIgb2Zmc2V0ICAgICovCisKKy8qIEJpdHMgcGVyIGNoYXJhY3RlciAqLworI2RlZmluZSBVTVBfVUFSVF9DSEFSNUJJVFMJCTB4MDAKKyNkZWZpbmUgVU1QX1VBUlRfQ0hBUjZCSVRTCQkweDAxCisjZGVmaW5lIFVNUF9VQVJUX0NIQVI3QklUUwkJMHgwMgorI2RlZmluZSBVTVBfVUFSVF9DSEFSOEJJVFMJCTB4MDMKKworLyogUGFyaXR5ICovCisjZGVmaW5lIFVNUF9VQVJUX05PUEFSSVRZCQkweDAwCisjZGVmaW5lIFVNUF9VQVJUX09ERFBBUklUWQkJMHgwMQorI2RlZmluZSBVTVBfVUFSVF9FVkVOUEFSSVRZCQkweDAyCisjZGVmaW5lIFVNUF9VQVJUX01BUktQQVJJVFkJCTB4MDMKKyNkZWZpbmUgVU1QX1VBUlRfU1BBQ0VQQVJJVFkJCTB4MDQKKworLyogU3RvcCBiaXRzICovCisjZGVmaW5lIFVNUF9VQVJUX1NUT1BCSVQxCQkweDAwCisjZGVmaW5lIFVNUF9VQVJUX1NUT1BCSVQxNQkJMHgwMQorI2RlZmluZSBVTVBfVUFSVF9TVE9QQklUMgkJMHgwMgorCisvKiBMaW5lIHN0YXR1cyByZWdpc3RlciBtYXNrcyAqLworI2RlZmluZSBVTVBfVUFSVF9MU1JfT1ZfTUFTSwkJMHgwMQorI2RlZmluZSBVTVBfVUFSVF9MU1JfUEVfTUFTSwkJMHgwMgorI2RlZmluZSBVTVBfVUFSVF9MU1JfRkVfTUFTSwkJMHgwNAorI2RlZmluZSBVTVBfVUFSVF9MU1JfQlJfTUFTSwkJMHgwOAorI2RlZmluZSBVTVBfVUFSVF9MU1JfRVJfTUFTSwkJMHgwRgorI2RlZmluZSBVTVBfVUFSVF9MU1JfUlhfTUFTSwkJMHgxMAorI2RlZmluZSBVTVBfVUFSVF9MU1JfVFhfTUFTSwkJMHgyMAorCisjZGVmaW5lIFVNUF9VQVJUX0xTUl9EQVRBX01BU0sJCSggTFNSX1BBUl9FUlIgfCBMU1JfRlJNX0VSUiB8IExTUl9CUkVBSyApCisKKy8qIFBvcnQgU2V0dGluZ3MgQ29uc3RhbnRzKSAqLworI2RlZmluZSBVTVBfTUFTS19VQVJUX0ZMQUdTX1JUU19GTE9XCQkweDAwMDEKKyNkZWZpbmUgVU1QX01BU0tfVUFSVF9GTEFHU19SVFNfRElTQUJMRQkJMHgwMDAyCisjZGVmaW5lIFVNUF9NQVNLX1VBUlRfRkxBR1NfUEFSSVRZCQkweDAwMDgKKyNkZWZpbmUgVU1QX01BU0tfVUFSVF9GTEFHU19PVVRfWF9EU1JfRkxPVwkweDAwMTAKKyNkZWZpbmUgVU1QX01BU0tfVUFSVF9GTEFHU19PVVRfWF9DVFNfRkxPVwkweDAwMjAKKyNkZWZpbmUgVU1QX01BU0tfVUFSVF9GTEFHU19PVVRfWAkJMHgwMDQwCisjZGVmaW5lIFVNUF9NQVNLX1VBUlRfRkxBR1NfT1VUX1hBCQkweDAwODAKKyNkZWZpbmUgVU1QX01BU0tfVUFSVF9GTEFHU19JTl9YCQkweDAxMDAKKyNkZWZpbmUgVU1QX01BU0tfVUFSVF9GTEFHU19EVFJfRkxPVwkJMHgwODAwCisjZGVmaW5lIFVNUF9NQVNLX1VBUlRfRkxBR1NfRFRSX0RJU0FCTEUJCTB4MTAwMAorI2RlZmluZSBVTVBfTUFTS19VQVJUX0ZMQUdTX1JFQ0VJVkVfTVNfSU5UCTB4MjAwMAorI2RlZmluZSBVTVBfTUFTS19VQVJUX0ZMQUdTX0FVVE9fU1RBUlRfT05fRVJSCTB4NDAwMAorCisjZGVmaW5lIFVNUF9ETUFfTU9ERV9DT05USU5PVVMJCQkweDAxCisjZGVmaW5lIFVNUF9QSVBFX1RSQU5TX1RJTUVPVVRfRU5BCQkweDgwCisjZGVmaW5lIFVNUF9QSVBFX1RSQU5TRkVSX01PREVfTUFTSwkJMHgwMworI2RlZmluZSBVTVBfUElQRV9UUkFOU19USU1FT1VUX01BU0sJCTB4N0MKKworLyogUHVyZ2UgcG9ydCBEaXJlY3Rpb24gTWFzayBCaXRzICovCisjZGVmaW5lIFVNUF9QT1JUX0RJUl9PVVQJCQkweDAxCisjZGVmaW5lIFVNUF9QT1JUX0RJUl9JTgkJCQkweDAyCisKKy8vIEFkZHJlc3Mgb2YgUG9ydCAwCisjZGVmaW5lIFVNUE1fVUFSVDFfUE9SVCAgCQkJMHgwMworCisvLyBDb21tYW5kcworI2RlZmluZQlVTVBDX1NFVF9DT05GSUcgCQkweDA1CisjZGVmaW5lCVVNUENfT1BFTl9QT1JUICAJCTB4MDYKKyNkZWZpbmUJVU1QQ19DTE9TRV9QT1JUIAkJMHgwNworI2RlZmluZQlVTVBDX1NUQVJUX1BPUlQgCQkweDA4CisjZGVmaW5lCVVNUENfU1RPUF9QT1JUICAJCTB4MDkKKyNkZWZpbmUJVU1QQ19URVNUX1BPUlQgIAkJMHgwQQorI2RlZmluZQlVTVBDX1BVUkdFX1BPUlQgCQkweDBCCisKKyNkZWZpbmUJVU1QQ19DT01QTEVURV9SRUFECQkweDgwCS8vIEZvcmNlIHRoZSBGaXJtd2FyZSB0byBjb21wbGV0ZSB0aGUgY3VycmVudCBSZWFkCisjZGVmaW5lCVVNUENfSEFSRFdBUkVfUkVTRVQJCTB4ODEJLy8gRm9yY2UgVU1QIGJhY2sgaW50byBCT09UIE1vZGUKKyNkZWZpbmUJVU1QQ19DT1BZX0ROTERfVE9fSTJDCQkweDgyCS8vIENvcHkgY3VycmVudCBkb3dubG9hZCBpbWFnZSB0byB0eXBlIDB4ZjIgcmVjb3JkIGluIDE2ayBJMkMKKwkJCQkJCS8vIGZpcm13YXJlIHdpbGwgY2hhbmdlIDB4ZmYgcmVjb3JkIHRvIHR5cGUgMiByZWNvcmQgd2hlbiBjb21wbGV0ZQorCisJLy8gU3BlY2lhbCBmdW5jdGlvbiByZWdpc3RlciBjb21tYW5kcworCS8vIHdJbmRleCBpcyByZWdpc3RlciBhZGRyZXNzCisJLy8gd1ZhbHVlIGlzIE1TQi9MU0IgbWFzay9kYXRhCisjZGVmaW5lCVVNUENfV1JJVEVfU0ZSCSAgCQkweDgzCS8vIFdyaXRlIFNGUiBSZWdpc3RlcgorCisJLy8gd0luZGV4IGlzIHJlZ2lzdGVyIGFkZHJlc3MKKyNkZWZpbmUJVU1QQ19SRUFEX1NGUgkgIAkJMHg4NAkvLyBSZWFkIFNSRiBSZWdpc3RlcgorCisJLy8gU2V0IG9yIENsZWFyIERUUiAod1ZhbHVlIGJpdCAwIFNldC9DbGVhcikJCXdJbmRleCBNb2R1bGVJRCAocG9ydCkKKyNkZWZpbmUJVU1QQ19TRVRfQ0xSX0RUUgkJMHg4NQorCisJLy8gU2V0IG9yIENsZWFyIFJUUyAod1ZhbHVlIGJpdCAwIFNldC9DbGVhcikJCXdJbmRleCBNb2R1bGVJRCAocG9ydCkKKyNkZWZpbmUJVU1QQ19TRVRfQ0xSX1JUUwkJMHg4NgorCisJLy8gU2V0IG9yIENsZWFyIExPT1BCQUNLICh3VmFsdWUgYml0IDAgU2V0L0NsZWFyKQl3SW5kZXggTW9kdWxlSUQgKHBvcnQpCisjZGVmaW5lCVVNUENfU0VUX0NMUl9MT09QQkFDSwkJMHg4NworCisJLy8gU2V0IG9yIENsZWFyIEJSRUFLICh3VmFsdWUgYml0IDAgU2V0L0NsZWFyKQkJd0luZGV4IE1vZHVsZUlEIChwb3J0KQorI2RlZmluZQlVTVBDX1NFVF9DTFJfQlJFQUsJCTB4ODgKKworCS8vIFJlYWQgTVNSIHdJbmRleCBNb2R1bGVJRCAocG9ydCkKKyNkZWZpbmUJVU1QQ19SRUFEX01TUgkJCTB4ODkKKworCS8qIFRvb2xraXQgY29tbWFuZHMgKi8KKwkvKiBSZWFkLXdyaXRlIGdyb3VwICovCisjZGVmaW5lCVVNUENfTUVNT1JZX1JFQUQgICAJCTB4OTIKKyNkZWZpbmUJVU1QQ19NRU1PUllfV1JJVEUgIAkJMHg5MworCisvKgorICoJVU1QIERNQSBEZWZpbml0aW9ucworICovCisjZGVmaW5lIFVNUERfT0VEQjFfQUREUkVTUwkJMHhGRjA4CisjZGVmaW5lIFVNUERfT0VEQjJfQUREUkVTUwkJMHhGRjEwCisKK3N0cnVjdCBvdXRfZW5kcG9pbnRfZGVzY19ibG9jaworeworCV9fdTggQ29uZmlndXJhdGlvbjsKKwlfX3U4IFhCdWZBZGRyOworCV9fdTggWEJ5dGVDb3VudDsKKwlfX3U4IFVudXNlZDE7CisJX191OCBVbnVzZWQyOworCV9fdTggWUJ1ZkFkZHI7CisJX191OCBZQnl0ZUNvdW50OworCV9fdTggQnVmZmVyU2l6ZTsKK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKKworLyoKKyAqIFRZUEUgREVGSU5JVElPTlMKKyAqIFN0cnVjdHVyZXMgZm9yIEZpcm13YXJlIGNvbW1hbmRzCisgKi8KK3N0cnVjdCB1bXBfdWFydF9jb25maWcJCS8qIFVBUlQgc2V0dGluZ3MgICAgICAgICAgICAgICAgICAgICovCit7CisJX191MTYgd0JhdWRSYXRlOwkvKiBCYXVkIHJhdGUgICAgICAgICAgICAgICAgICAgICAgICAqLworCV9fdTE2IHdGbGFnczsJCS8qIEJpdG1hcCBtYXNrIG9mIGZsYWdzICAgICAgICAgICAgICovCisJX191OCBiRGF0YUJpdHM7CQkvKiA1Li44IC0gZGF0YSBiaXRzIHBlciBjaGFyYWN0ZXIgICAqLworCV9fdTggYlBhcml0eTsJCS8qIFBhcml0eSBzZXR0aW5ncyAgICAgICAgICAgICAgICAgICovCisJX191OCBiU3RvcEJpdHM7CQkvKiBTdG9wIGJpdHMgc2V0dGluZ3MgICAgICAgICAgICAgICAqLworCWNoYXIgY1hvbjsJCS8qIFhPTiBjaGFyYWN0ZXIgICAgICAgICAgICAgICAgICAgICovCisJY2hhciBjWG9mZjsJCS8qIFhPRkYgY2hhcmFjdGVyICAgICAgICAgICAgICAgICAgICovCisJX191OCBiVWFydE1vZGU7CQkvKiBXaWxsIGJlIHVwZGF0ZWQgd2hlbiBhIHVzZXIgICAgICAqLworCQkJCS8qIGludGVyZmFjZSBpcyBkZWZpbmVkICAgICAgICAgICAgICovCit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCisKKy8qCisgKiBUWVBFIERFRklOSVRJT05TCisgKiBTdHJ1Y3R1cmVzIGZvciBVU0IgaW50ZXJydXB0cworICovCitzdHJ1Y3QgdW1wX2ludGVycnVwdAkJCS8qIEludGVycnVwdCBwYWNrZXQgc3RydWN0dXJlICAgICAgICovCit7CisJX191OCBiSUNvZGU7CQkJLyogSW50ZXJydXB0IGNvZGUgKGludGVycnVwdCBudW0pICAgKi8KKwlfX3U4IGJJSW5mbzsJCQkvKiBJbnRlcnJ1cHQgaW5mb3JtYXRpb24gICAgICAgICAgICAqLworfSAgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKKworI2RlZmluZSBUSVVNUF9HRVRfUE9SVF9GUk9NX0NPREUoYykJKCgoYykgPj4gNCkgLSAzKQorI2RlZmluZSBUSVVNUF9HRVRfRlVOQ19GUk9NX0NPREUoYykJKChjKSAmIDB4MGYpCisjZGVmaW5lIFRJVU1QX0lOVEVSUlVQVF9DT0RFX0xTUgkweDAzCisjZGVmaW5lIFRJVU1QX0lOVEVSUlVQVF9DT0RFX01TUgkweDA0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX3VzYnZlbmQuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pb191c2J2ZW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGMxZmE1ZQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pb191c2J2ZW5kLmgKQEAgLTAsMCArMSw2ODcgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKglVU0JWRU5ELkgJCVZlbmRvci1zcGVjaWZpYyBVU0IgZGVmaW5pdGlvbnMKKyAqCisgKglOT1RFOiBUaGlzIG11c3QgYmUga2VwdCBpbiBzeW5jIHdpdGggdGhlIEVkZ2Vwb3J0IGZpcm13YXJlIGFuZAorICoJbXVzdCBiZSBrZXB0IGJhY2t3YXJkLWNvbXBhdGlibGUgd2l0aCBvbGRlciBmaXJtd2FyZS4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICoJQ29weXJpZ2h0IChDKSAxOTk4IEluc2lkZSBPdXQgTmV0d29ya3MsIEluYy4KKyAqCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKglpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICoJdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqCShhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmICFkZWZpbmVkKF9VU0JWRU5EX0gpCisjZGVmaW5lCV9VU0JWRU5EX0gKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqCQlEIGUgZiBpIG4gZSBzICAgLyAgIFQgeSBwIGUgZCBlIGYgcworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8vCisvLyBEZWZpbml0aW9ucyBvZiBVU0IgcHJvZHVjdCBJRHMKKy8vIAorCisjZGVmaW5lCVVTQl9WRU5ET1JfSURfSU9OCTB4MTYwOAkJLy8gT3VyIFZJRAorI2RlZmluZQlVU0JfVkVORE9SX0lEX1RJCTB4MDQ1MQkJLy8gVEkgVklECisKKy8vCisvLyBEZWZpbml0aW9ucyBvZiBVU0IgcHJvZHVjdCBJRHMgKFBJRCkKKy8vIFdlIGJyZWFrIHRoZSBVU0ItZGVmaW5lZCBQSUQgaW50byBhbiBPRU0gSWQgZmllbGQgKHVwcGVyIDYgYml0cykKKy8vIGFuZCBhIERldmljZSBJZCAoYm90dG9tIDEwIGJpdHMpLiBUaGUgRGV2aWNlIElkIGRlZmluZXMgd2hhdAorLy8gZGV2aWNlIHRoaXMgYWN0dWFsbHkgaXMgcmVnYXJkbGVzcyBvZiB3aGF0IHRoZSBPRU0gd2FudHMgdG8KKy8vIGNhbGwgaXQuCisvLworCisvLyBJT04tZGV2aWNlIE9FTSBJRHMKKyNkZWZpbmUJSU9OX09FTV9JRF9JT04JCTAJCS8vIDAwaCBJbnNpZGUgT3V0IE5ldHdvcmtzCisjZGVmaW5lCUlPTl9PRU1fSURfTkxZTlgJMQkJLy8gMDFoIE5MeW54IFN5c3RlbXMKKyNkZWZpbmUJSU9OX09FTV9JRF9HRU5FUklDCTIJCS8vIDAyaCBHZW5lcmljIE9FTQorI2RlZmluZQlJT05fT0VNX0lEX01BQwkJMwkJLy8gMDNoIE1hYyBWZXJzaW9uCisjZGVmaW5lCUlPTl9PRU1fSURfTUVHQVdPTEYJNAkJLy8gMDRoIEx1cHVzYiBPRU0gTWFjIHZlcnNpb24gKE1lZ2FXb2xmKQorI2RlZmluZQlJT05fT0VNX0lEX01VTFRJVEVDSAk1CQkvLyAwNWggTXVsdGl0ZWNoIFJhcGlkcG9ydHMKKyNkZWZpbmUJSU9OX09FTV9JRF9BR0lMRU5UCTYJCS8vIDA2aCBBR0lMRU5UIGJvYXJkCisKKworLy8gSU9OLWRldmljZSBEZXZpY2UgSURzCisvLyBQcm9kdWN0IElEcyAtIGFzc2lnbmVkIHRvIG1hdGNoIG1pZGRsZSBkaWdpdCBvZiBzZXJpYWwgbnVtYmVyIChObyBsb25nZXIgdHJ1ZSkKKworI2RlZmluZSBJT05fREVWSUNFX0lEXzgwMjUxX05FVENISVAJMHgwMjAJLy8gVGhpcyBiaXQgaXMgc2V0IGluIHRoZSBQSUQgaWYgdGhpcyBlZGdlcG9ydCBoYXJkd2FyZSQKKwkJCQkJCS8vIGlzIGJhc2VkIG9uIHRoZSA4MDI1MStOZXRjaGlwLiAgCisKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9HRU5FUkFUSU9OXzEJMHgwMAkvLyBWYWx1ZSBmb3IgOTMwIGJhc2VkIGVkZ2Vwb3J0cworI2RlZmluZSBJT05fREVWSUNFX0lEX0dFTkVSQVRJT05fMgkweDAxCS8vIFZhbHVlIGZvciA4MDI1MStOZXRjaGlwLgorI2RlZmluZSBJT05fREVWSUNFX0lEX0dFTkVSQVRJT05fMwkweDAyCS8vIFZhbHVlIGZvciBUZXhhcyBJbnN0cnVtZW50cyBUVVNCNTA1MiBjaGlwCisjZGVmaW5lIElPTl9ERVZJQ0VfSURfR0VORVJBVElPTl80CTB4MDMJLy8gV2F0Y2hwb3J0IEZhbWlseSBvZiBwcm9kdWN0cworI2RlZmluZSBJT05fR0VORVJBVElPTl9NQVNLCQkweDAzCisKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9IVUJfTUFTSwkJMHgwMDgwCS8vIFRoaXMgYml0IGluIHRoZSBQSUQgZGVzaWduYXRlcyBhIEhVQiBkZXZpY2UKKwkJCQkJCS8vIGZvciBleGFtcGxlIDhDIHdvdWxkIGJlIGEgNDIxIDQgcG9ydCBodWIKKwkJCQkJCS8vIGFuZCA4RCB3b3VsZCBiZSBhIDIgcG9ydCBlbWJlZGRlZCBodWIKKworI2RlZmluZSBFREdFUE9SVF9ERVZJQ0VfSURfTUFTSwkJCTB4MGZmCS8vIE5vdCBpbmNsdWRpbmcgT0VNIG9yIEdFTkVSQVRJT04gZmllbGRzCisKKyNkZWZpbmUJSU9OX0RFVklDRV9JRF9VTkNPTkZJR1VSRURfRURHRV9ERVZJQ0UJMHgwMDAJLy8gSW4gbWFudWZhY3R1cmluZyBvbmx5CisjZGVmaW5lIElPTl9ERVZJQ0VfSURfRURHRVBPUlRfNAkJMHgwMDEJLy8gRWRnZXBvcnQvNCBSUzIzMgorI2RlZmluZQlJT05fREVWSUNFX0lEX0VER0VQT1JUXzhSCQkweDAwMgkvLyBFZGdlcG9ydCB3aXRoIFJKNDUgbm8gUmluZworI2RlZmluZSBJT05fREVWSUNFX0lEX1JBUElEUE9SVF80CQkweDAwMwkvLyBSYXBpZHBvcnQvNAorI2RlZmluZSBJT05fREVWSUNFX0lEX0VER0VQT1JUXzRUCQkweDAwNAkvLyBFZGdlcG9ydC80IFJTMjMyIGZvciBUZWx4b24gKGFrYSAiRmxlZXRwb3J0IikKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9FREdFUE9SVF8yCQkweDAwNQkvLyBFZGdlcG9ydC8yIFJTMjMyCisjZGVmaW5lIElPTl9ERVZJQ0VfSURfRURHRVBPUlRfNEkJCTB4MDA2CS8vIEVkZ2Vwb3J0LzQgUlM0MjIKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9FREdFUE9SVF8ySQkJMHgwMDcJLy8gRWRnZXBvcnQvMiBSUzQyMi9SUzQ4NQorI2RlZmluZQlJT05fREVWSUNFX0lEX0VER0VQT1JUXzhSUgkJMHgwMDgJLy8gRWRnZXBvcnQgd2l0aCBSSjQ1IHdpdGggRGF0YSBhbmQgUlRTL0NUUyBvbmx5CisvLwlJT05fREVWSUNFX0lEX0VER0VQT1JUXzhfSEFOREJVSUxUCTB4MDA5CS8vIEhhbmQtYnVpbHQgRWRnZXBvcnQvOCAoUGxhY2Vob2xkZXIsIHVzZWQgaW4gbWlkZGxlIGRpZ2l0IG9mIHNlcmlhbCBudW1iZXIgb25seSEpCisvLwlJT05fREVWSUNFX0lEX01VTFRJTU9ERU1fNFg1NgkJMHgwMEEJLy8gTXVsdGlUZWNoIHZlcnNpb24gb2YgUlAvNCAoUGxhY2Vob2xkZXIsIHVzZWQgaW4gbWlkZGxlIGRpZ2l0IG9mIHNlcmlhbCBudW1iZXIgb25seSEpCisjZGVmaW5lCUlPTl9ERVZJQ0VfSURfRURHRVBPUlRfUEFSQUxMRUxfUE9SVAkweDAwQgkvLyBFZGdlcG9ydC8oNCkyMSBQYXJhbGxlbCBwb3J0IChVU1M3MjApCisjZGVmaW5lCUlPTl9ERVZJQ0VfSURfRURHRVBPUlRfNDIxCQkweDAwQwkvLyBFZGdlcG9ydC80MjEgSHViK1JTMjMyK1BhcmFsbGVsCisjZGVmaW5lCUlPTl9ERVZJQ0VfSURfRURHRVBPUlRfMjEJCTB4MDBECS8vIEVkZ2Vwb3J0LzIxICBSUzIzMitQYXJhbGxlbAorI2RlZmluZSBJT05fREVWSUNFX0lEX0VER0VQT1JUXzhfRFVBTF9DUFUJMHgwMEUJLy8gSGFsZiBvZiBhbiBFZGdlcG9ydC84ICh0aGUga2luZCB3aXRoIDIgRVAvNHMgb24gMSBQQ0IpCisjZGVmaW5lIElPTl9ERVZJQ0VfSURfRURHRVBPUlRfOAkJMHgwMEYJLy8gRWRnZXBvcnQvOCAoc2luZ2xlLUNQVSkKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9FREdFUE9SVF8yX0RJTgkJMHgwMTAJLy8gRWRnZXBvcnQvMiBSUzIzMiB3aXRoIEFwcGxlIERJTiBjb25uZWN0b3IKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9FREdFUE9SVF80X0RJTgkJMHgwMTEJLy8gRWRnZXBvcnQvNCBSUzIzMiB3aXRoIEFwcGxlIERJTiBjb25uZWN0b3IKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9FREdFUE9SVF8xNl9EVUFMX0NQVQkweDAxMgkvLyBIYWxmIG9mIGFuIEVkZ2Vwb3J0LzE2ICh0aGUga2luZCB3aXRoIDIgRVAvOHMpCisjZGVmaW5lIElPTl9ERVZJQ0VfSURfRURHRVBPUlRfQ09NUEFUSUJMRQkweDAxMwkvLyBFZGdlcG9ydCBDb21wYXRpYmxlLCBmb3IgTkNSLCBBeGlvaG0gZXRjLiB0ZXN0aW5nCisjZGVmaW5lIElPTl9ERVZJQ0VfSURfRURHRVBPUlRfOEkJCTB4MDE0CS8vIEVkZ2Vwb3J0LzggUlM0MjIgKHNpbmdsZS1DUFUpCisjZGVmaW5lIElPTl9ERVZJQ0VfSURfRURHRVBPUlRfMQkJMHgwMTUJLy8gRWRnZXBvcnQvMSBSUzIzMgorI2RlZmluZSBJT05fREVWSUNFX0lEX0VQT1M0NAkJCTB4MDE2CS8vIEhhbGYgb2YgYW4gRVBPUy80NCAoVElVTVAgQkFTRUQpCisjZGVmaW5lIElPTl9ERVZJQ0VfSURfRURHRVBPUlRfNDIJCTB4MDE3CS8vIEVkZ2Vwb3J0LzQyCisjZGVmaW5lIElPTl9ERVZJQ0VfSURfRURHRVBPUlRfNDEyXzgJCTB4MDE4CS8vIEVkZ2Vwb3J0LzQxMiA4IHBvcnQgcGFydAorI2RlZmluZSBJT05fREVWSUNFX0lEX0VER0VQT1JUXzQxMl80CQkweDAxOQkvLyBFZGdlcG9ydC80MTIJNCBwb3J0IHBhcnQKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9FREdFUE9SVF8yMkkJCTB4MDFBCS8vIEVkZ2Vwb3J0LzIySSBpcyBhbiBFZGdlcG9ydC80IHdpdGggcG9ydHMgMSYyIFJTNDIyIGFuZCBwb3J0cyAzJjQgUlMyMzIKKworLy8gQ29tcGFjdCBGb3JtIGZhY3RvciBUSSBiYXNlZCBkZXZpY2VzICAyYywgMjFjLCAyMmMsIDIyMWMKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9FREdFUE9SVF8yQwkJMHgwMUIJLy8gRWRnZXBvcnQvMmMgaXMgYSBUSSBiYXNlZCBFZGdlcG9ydC8yIC0gU21hbGwgSTJjCisjZGVmaW5lIElPTl9ERVZJQ0VfSURfRURHRVBPUlRfMjIxQwkJMHgwMUMJLy8gRWRnZXBvcnQvMjIxYyBpcyBhIFRJIGJhc2VkIEVkZ2Vwb3J0LzIgd2l0aCBsdWNlbnQgY2hpcCBhbmQKKwkJCQkJCQkvLyAyIGV4dGVybmFsIGh1YiBwb3J0cyAtIExhcmdlIEkyQworI2RlZmluZSBJT05fREVWSUNFX0lEX0VER0VQT1JUXzIyQwkJMHgwMUQJLy8gRWRnZXBvcnQvMjJjIGlzIGEgVEkgYmFzZWQgRWRnZXBvcnQvMiB3aXRoCisJCQkJCQkJLy8gMiBleHRlcm5hbCBodWIgcG9ydHMgLSBMYXJnZSBJMkMKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9FREdFUE9SVF8yMUMJCTB4MDFFCS8vIEVkZ2Vwb3J0LzIxYyBpcyBhIFRJIGJhc2VkIEVkZ2Vwb3J0LzIgd2l0aCBsdWNlbnQgY2hpcAorCQkJCQkJCS8vIFNtYWxsIEkyQworCisKKy8qCisgKiAgREFOR0VSIERBTkdFUiBUaGUgMHgyMCBiaXQgd2FzIHVzZWQgdG8gaW5kaWNhdGUgYSA4MjUxL25ldGNoaXAgR0VOIDIgZGV2aWNlLgorICogIFNpbmNlIHRoZSBNQUMsIExpbnV4LCBhbmQgT3B0aW1hbCBkcml2ZXJzIHN0aWxsIHVzZWQgdGhlIG9sZCBjb2RlCisgKiAgSSBzdWdnZXN0IHRoYXQgeW91IHNraXAgdGhlIDB4MjAgYml0IHdoZW4gY3JlYXRpbmcgbmV3IFBJRHMKKyAqLworCisKKy8vIEdlbmVyYXRpb24gMyBkZXZpY2VzIC0tIDM0MTAgYmFzZWQgZWRncG9ydC8xICgyNTYgYnl0ZSBJMkMpCisjZGVmaW5lIElPTl9ERVZJQ0VfSURfVEkzNDEwX0VER0VQT1JUXzEJCTB4MDQwCS8vIEVkZ2Vwb3J0LzEgUlMyMzIKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9USTM0MTBfRURHRVBPUlRfMUkJMHgwNDEJLy8gRWRnZXBvcnQvMWktIFJTNDIyIG1vZGVsCisKKy8vIFRpIGJhc2VkIHNvZnR3YXJlIHN3aXRjaGFibGUgUlMyMzIvUlM0MjIvUlM0ODUgZGV2aWNlcworI2RlZmluZSBJT05fREVWSUNFX0lEX0VER0VQT1JUXzRTCQkweDA0MgkvLyBFZGdlcG9ydC80cyAtIHNvZnR3YXJlIHN3aXRjaGFibGUgbW9kZWwKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9FREdFUE9SVF84UwkJMHgwNDMJLy8gRWRnZXBvcnQvOHMgLSBzb2Z0d2FyZSBzd2l0Y2hhYmxlIG1vZGVsCisKKy8vIFVzYiB0byBFdGhlcm5ldCBkb25nbGUKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9FREdFUE9SVF9FCQkweDBFMAkvLyBFZGdlcG9ydC9FIFVzYiB0byBFdGhlcm5ldAorCisvLyBFZGdlcG9ydCBUSSBiYXNlZCBkZXZpY2VzCisjZGVmaW5lIElPTl9ERVZJQ0VfSURfVElfRURHRVBPUlRfNAkJMHgwMjAxCS8vIEVkZ2Vwb3J0LzQgUlMyMzIKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9USV9FREdFUE9SVF8yCQkweDAyMDUJLy8gRWRnZXBvcnQvMiBSUzIzMgorI2RlZmluZSBJT05fREVWSUNFX0lEX1RJX0VER0VQT1JUXzRJCQkweDAyMDYJLy8gRWRnZXBvcnQvNGkgUlM0MjIKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9USV9FREdFUE9SVF8ySQkJMHgwMjA3CS8vIEVkZ2Vwb3J0LzJpIFJTNDIyL1JTNDg1CisjZGVmaW5lIElPTl9ERVZJQ0VfSURfVElfRURHRVBPUlRfNDIxCQkweDAyMEMJLy8gRWRnZXBvcnQvNDIxIDQgaHViIDIgUlMyMzIgKyBQYXJhbGxlbCAobHVjZW50IG9uIGEgZGlmZmVyZW50IGh1YiBwb3J0KQorI2RlZmluZSBJT05fREVWSUNFX0lEX1RJX0VER0VQT1JUXzIxCQkweDAyMEQJLy8gRWRnZXBvcnQvMjEgMiBSUzIzMiArIFBhcmFsbGVsIChsdWNlbnQgb24gYSBkaWZmZXJlbnQgaHViIHBvcnQpCisjZGVmaW5lIElPTl9ERVZJQ0VfSURfVElfRURHRVBPUlRfOAkJMHgwMjBGCS8vIEVkZ2Vwb3J0LzggKHNpbmdsZS1DUFUpCisjZGVmaW5lIElPTl9ERVZJQ0VfSURfVElfRURHRVBPUlRfMQkJMHgwMjE1CS8vIEVkZ2Vwb3J0LzEgUlMyMzIKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9USV9FREdFUE9SVF80MgkJMHgwMjE3CS8vIEVkZ2Vwb3J0LzQyIDQgaHViIDIgUlMyMzIKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9USV9FREdFUE9SVF8yMkkgIAkJMHgwMjFBCS8vIEVkZ2Vwb3J0LzIySSBpcyBhbiBFZGdlcG9ydC80IHdpdGggcG9ydHMgMSYyIFJTNDIyIGFuZCBwb3J0cyAzJjQgUlMyMzIKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9USV9FREdFUE9SVF8yQwkJMHgwMjFCCS8vIEVkZ2Vwb3J0LzJjIFJTMjMyCisjZGVmaW5lIElPTl9ERVZJQ0VfSURfVElfRURHRVBPUlRfMjIxQwkJMHgwMjFDCS8vIEVkZ2Vwb3J0LzIyMWMgaXMgYSBUSSBiYXNlZCBFZGdlcG9ydC8yIHdpdGggbHVjZW50IGNoaXAgYW5kCisJCQkJCQkJLy8gMiBleHRlcm5hbCBodWIgcG9ydHMgLSBMYXJnZSBJMkMKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9USV9FREdFUE9SVF8yMkMJCTB4MDIxRAkvLyBFZGdlcG9ydC8yMmMgaXMgYSBUSSBiYXNlZCBFZGdlcG9ydC8yIHdpdGgKKwkJCQkJCQkvLyAyIGV4dGVybmFsIGh1YiBwb3J0cyAtIExhcmdlIEkyQworI2RlZmluZSBJT05fREVWSUNFX0lEX1RJX0VER0VQT1JUXzIxQwkJMHgwMjFFCS8vIEVkZ2Vwb3J0LzIxYyBpcyBhIFRJIGJhc2VkIEVkZ2Vwb3J0LzIgd2l0aCBsdWNlbnQgY2hpcAorCisvLyBHZW5lcmF0aW9uIDMgZGV2aWNlcyAtLSAzNDEwIGJhc2VkIGVkZ3BvcnQvMSAoMjU2IGJ5dGUgSTJDKSAKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9USV9USTM0MTBfRURHRVBPUlRfMQkweDI0MAkvLyBFZGdlcG9ydC8xIFJTMjMyCisjZGVmaW5lIElPTl9ERVZJQ0VfSURfVElfVEkzNDEwX0VER0VQT1JUXzFJCTB4MjQxCS8vIEVkZ2Vwb3J0LzFpLSBSUzQyMiBtb2RlbAorCisvLyBUaSBiYXNlZCBzb2Z0d2FyZSBzd2l0Y2hhYmxlIFJTMjMyL1JTNDIyL1JTNDg1IGRldmljZXMKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9USV9FREdFUE9SVF80UwkJMHgyNDIJLy8gRWRnZXBvcnQvNHMgLSBzb2Z0d2FyZSBzd2l0Y2hhYmxlIG1vZGVsCisjZGVmaW5lIElPTl9ERVZJQ0VfSURfSVRfRURHRVBPUlRfOFMJCTB4MjQzCS8vIEVkZ2Vwb3J0LzhzIC0gc29mdHdhcmUgc3dpdGNoYWJsZSBtb2RlbAorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRpb24gNCBkZXZpY2VzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLy8gV2F0Y2hwb3J0IGJhc2VkIG9uIDM0MTAgYm90aCAxLXdpcmUgYW5kIGJpbmFyeSBwcm9kdWN0cyAoMTZLIEkyQykKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9XUF9VTlNFUklBTElaRUQJCTB4MzAwCS8vIFdhdGNocG9ydCBiYXNlZCBvbiAzNDEwIGJvdGggMS13aXJlIGFuZCBiaW5hcnkgcHJvZHVjdHMKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9XUF9QUk9YSU1JVFkJCTB4MzAxCS8vIFdhdGNocG9ydC9QIERpc2NvbnRpbnVlZAorI2RlZmluZSBJT05fREVWSUNFX0lEX1dQX01PVElPTgkJCTB4MzAyCS8vIFdhdGNocG9ydC9NCisjZGVmaW5lIElPTl9ERVZJQ0VfSURfV1BfTU9JU1RVUkUJCTB4MzAzCS8vIFdhdGNocG9ydC9XCisjZGVmaW5lIElPTl9ERVZJQ0VfSURfV1BfVEVNUEVSQVRVUkUJCTB4MzA0CS8vIFdhdGNocG9ydC9UCisjZGVmaW5lIElPTl9ERVZJQ0VfSURfV1BfSFVNSURJVFkJCTB4MzA1CS8vIFdhdGNocG9ydC9ICisKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9XUF9QT1dFUgkJCTB4MzA2CS8vIFdhdGNocG9ydAorI2RlZmluZSBJT05fREVWSUNFX0lEX1dQX0xJR0hUCQkJMHgzMDcJLy8gV2F0Y2hwb3J0CisjZGVmaW5lIElPTl9ERVZJQ0VfSURfV1BfUkFESUFUSU9OCQkweDMwOAkvLyBXYXRjaHBvcnQKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9XUF9BQ0NFTEVSQVRJT04JCTB4MzA5CS8vIFdhdGNocG9ydC9BCisjZGVmaW5lIElPTl9ERVZJQ0VfSURfV1BfRElTVEFOQ0UJCTB4MzBBCS8vIFdhdGNocG9ydC9EIERpc2NvbnRpbnVlZAorI2RlZmluZSBJT05fREVWSUNFX0lEX1dQX1BST1hfRElTVAkJMHgzMEIJLy8gV2F0Y2hwb3J0L0QgdXNlcyBkaXN0YW5jZSBzZW5zb3IKKwkJCQkJCQkvLyBEZWZhdWx0IHRvIC9QIGZ1bmN0aW9uCisKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9QTFVTX1BXUl9IUDRDRAkJMHgzMEMJLy8gNTA1MiBQbHVzIFBvd2VyIEh1YlBvcnQvNENEKyAoZm9yIERlbGwpCisjZGVmaW5lIElPTl9ERVZJQ0VfSURfUExVU19QV1JfSFA0QwkJMHgzMEQJLy8gNTA1MiBQbHVzIFBvd2VyIEh1YlBvcnQvNEMrIAorI2RlZmluZSBJT05fREVWSUNFX0lEX1BMVVNfUFdSX1BDSQkJMHgzMEUJLy8gMzQxMCBQbHVzIFBvd2VyIFBDSSBIb3N0IENvbnRyb2xsZXIgNCBwb3J0CisKKworLy8KKy8vIERlZmluaXRpb25zIGZvciBBWElPSE0gVVNCIHByb2R1Y3QgSURzCisvLworI2RlZmluZQlVU0JfVkVORE9SX0lEX0FYSU9ITQkJCTB4MDVEOQkvLyBBeGlvaG0gVklECisKKyNkZWZpbmUgQVhJT0hNX0RFVklDRV9JRF9NQVNLCQkJMHhmZmZmCisjZGVmaW5lIEFYSU9ITV9ERVZJQ0VfSURfRVBJQ19BNzU4CQkweEE3NTgKKyNkZWZpbmUgQVhJT0hNX0RFVklDRV9JRF9FUElDX0E3OTQJCTB4QTc5NAorI2RlZmluZSBBWElPSE1fREVWSUNFX0lEX0VQSUNfQTIyNQkJMHhBMjI1CisKKworLy8KKy8vIERlZmluaXRpb25zIGZvciBOQ1IgVVNCIHByb2R1Y3QgSURzCisvLworI2RlZmluZQlVU0JfVkVORE9SX0lEX05DUgkJCTB4MDQwNAkvLyBOQ1IgVklECisKKyNkZWZpbmUgTkNSX0RFVklDRV9JRF9NQVNLCQkJMHhmZmZmCisjZGVmaW5lIE5DUl9ERVZJQ0VfSURfRVBJQ18wMjAyCQkJMHgwMjAyCisjZGVmaW5lIE5DUl9ERVZJQ0VfSURfRVBJQ18wMjAzCQkJMHgwMjAzCisjZGVmaW5lIE5DUl9ERVZJQ0VfSURfRVBJQ18wMzEwCQkJMHgwMzEwCisjZGVmaW5lIE5DUl9ERVZJQ0VfSURfRVBJQ18wMzExCQkJMHgwMzExCisjZGVmaW5lIE5DUl9ERVZJQ0VfSURfRVBJQ18wMzEyCQkJMHgwMzEyCisKKworLy8KKy8vIERlZmluaXRpb25zIGZvciBTWU1CT0wgVVNCIHByb2R1Y3QgSURzCisvLworI2RlZmluZSBVU0JfVkVORE9SX0lEX1NZTUJPTAkJCTB4MDVFMAkvLyBTeW1ib2wgVklECisjZGVmaW5lIFNZTUJPTF9ERVZJQ0VfSURfTUFTSwkJCTB4ZmZmZgorI2RlZmluZSBTWU1CT0xfREVWSUNFX0lEX0tFWUZPQgkJCTB4MDcwMAorCisKKy8vCisvLyBEZWZpbml0aW9ucyBmb3Igb3RoZXIgcHJvZHVjdCBJRHMKKyNkZWZpbmUgSU9OX0RFVklDRV9JRF9NVDRYNTZVU0IJCQkweDE0MDMJLy8gT0VNIGRldmljZQorCisKKyNkZWZpbmUJR0VORVJBVElPTl9JRF9GUk9NX1VTQl9QUk9EVUNUX0lEKCBQcm9kdWN0SWQgKQkJCQlcCisJCQkoIChfX3UxNikgKChQcm9kdWN0SWQgPj4gOCkgJiAoSU9OX0dFTkVSQVRJT05fTUFTSykpICkKKworI2RlZmluZQlNQUtFX1VTQl9QUk9EVUNUX0lEKCBPZW1JZCwgRGV2aWNlSWQgKQkJCQkJXAorCQkJKCAoX191MTYpICgoKE9lbUlkKSA8PCAxMCkgfHwgKERldmljZUlkKSkgKQorCisjZGVmaW5lCURFVklDRV9JRF9GUk9NX1VTQl9QUk9EVUNUX0lEKCBQcm9kdWN0SWQgKQkJCQlcCisJCQkoIChfX3UxNikgKChQcm9kdWN0SWQpICYgKEVER0VQT1JUX0RFVklDRV9JRF9NQVNLKSkgKQorCisjZGVmaW5lCU9FTV9JRF9GUk9NX1VTQl9QUk9EVUNUX0lEKCBQcm9kdWN0SWQgKQkJCQkJXAorCQkJKCAoX191MTYpICgoKFByb2R1Y3RJZCkgPj4gMTApICYgMHgzRikgKQorCisvLworLy8gRGVmaW5pdGlvbnMgb2YgcGFyYW1ldGVycyBmb3IgZG93bmxvYWQgY29kZS4gTm90ZSB0aGF0IHRoZXNlIGFyZQorLy8gc3BlY2lmaWMgdG8gYSBnaXZlbiB2ZXJzaW9uIG9mIGRvd25sb2FkIGNvZGUgYW5kIG11c3QgY2hhbmdlIGlmIHRoZQorLy8gY29ycmVzcG9uZGluZyBkb3dubG9hZCBjb2RlIGNoYW5nZXMuCisvLworCisvLyBUeENyZWRpdHMgdmFsdWUgYmVsb3cgd2hpY2ggZHJpdmVyIHdvbid0IGJvdGhlciBzZW5kaW5nICh0byBwcmV2ZW50IHRvbyBtYW55IHNtYWxsIHdyaXRlcykuCisvLyBTZW5kIG9ubHkgaWYgYWJvdmUgMjUlCisjZGVmaW5lIEVER0VfRldfR0VUX1RYX0NSRURJVFNfU0VORF9USFJFU0hPTEQoSW5pdGlhbENyZWRpdCwgTWF4UGFja2V0U2l6ZSkgKG1heCggKChJbml0aWFsQ3JlZGl0KSAvIDQpLCAoTWF4UGFja2V0U2l6ZSkgKSkKKworI2RlZmluZQlFREdFX0ZXX0JVTEtfTUFYX1BBQ0tFVF9TSVpFCQk2NAkvLyBNYXggUGFja2V0IFNpemUgZm9yIEJ1bGsgSW4gRW5kcG9pbnQgKEVQMSkKKyNkZWZpbmUgRURHRV9GV19CVUxLX1JFQURfQlVGRkVSX1NJWkUJCTEwMjQJLy8gU2l6ZSB0byB1c2UgZm9yIEJ1bGsgcmVhZHMKKworI2RlZmluZQlFREdFX0ZXX0lOVF9NQVhfUEFDS0VUX1NJWkUJCTMyCS8vIE1heCBQYWNrZXQgU2l6ZSBmb3IgSW50ZXJydXB0IEluIEVuZHBvaW50CisJCQkJCQkJLy8gTm90ZSB0aGF0IG1hbnkgdW5pdHMgd2VyZSBzaGlwcGVkIHdpdGggTVBTPTE2LCB3ZQorCQkJCQkJCS8vIGZvcmNlIGFuIHVwZ3JhZGUgdG8gdGhpcyB2YWx1ZSkuCisjZGVmaW5lIEVER0VfRldfSU5UX0lOVEVSVkFMCQkJMgkvLyAybXMgcG9sbGluZyBvbiBJbnRQaXBlCisKKworLy8KKy8vIERlZmluaXRpb25zIG9mIEkvTyBOZXR3b3JrcyB2ZW5kb3Itc3BlY2lmaWMgcmVxdWVzdHMKKy8vIGZvciBkZWZhdWx0IGVuZHBvaW50CisvLworLy8JYm1SZXF1ZXN0VHlwZSA9IDAxMDAwMDAwCVNldCB2ZW5kb3Itc3BlY2lmaWMsIHRvIGRldmljZQorLy8JYm1SZXF1ZXN0VHlwZSA9IDExMDAwMDAwCUdldCB2ZW5kb3Itc3BlY2lmaWMsIHRvIGRldmljZQorLy8KKy8vIFRoZXNlIGFyZSB0aGUgZGVmaW5pdGlvbnMgZm9yIHRoZSBiUmVxdWVzdCBmaWVsZCBmb3IgdGhlCisvLyBhYm92ZSBibVJlcXVlc3RUeXBlcy4KKy8vCisvLyBGb3IgdGhlIHJlYWQvd3JpdGUgRWRnZXBvcnQgbWVtb3J5IGNvbW1hbmRzLCB0aGUgcGFyYW1ldGVycworLy8gYXJlIGFzIGZvbGxvd3M6CisvLwkJd1ZhbHVlID0gMTYtYml0IGFkZHJlc3MKKy8vCQl3SW5kZXggPSB1bnVzZWQgKHRob3VnaCB3ZSBjb3VsZCBwdXQgc2VnbWVudCAwMDogb3IgRkY6IGhlcmUpCisvLwkJd0xlbmd0aCA9ICMgYnl0ZXMgdG8gcmVhZC93cml0ZSAobWF4IDY0KQorLy8JCQkJCQkJCisKKyNkZWZpbmUgVVNCX1JFUVVFU1RfSU9OX1JFU0VUX0RFVklDRQkwCS8vIFdhcm0gcmVib290IEVkZ2Vwb3J0LCByZXRhaW5pbmcgVVNCIGFkZHJlc3MKKyNkZWZpbmUgVVNCX1JFUVVFU1RfSU9OX0dFVF9FUElDX0RFU0MJMQkvLyBHZXQgRWRnZXBvcnQgQ29tcGF0aWJpbGl0eSBEZXNjcmlwdG9yCisvLyB1bnVzZWQJCQkJMgkvLyBVbnVzZWQsIGF2YWlsYWJsZQorI2RlZmluZSBVU0JfUkVRVUVTVF9JT05fUkVBRF9SQU0JMwkvLyBSZWFkICBFZGdlUG9ydCBSQU0gYXQgc3BlY2lmaWVkIGFkZHIKKyNkZWZpbmUgVVNCX1JFUVVFU1RfSU9OX1dSSVRFX1JBTQk0CS8vIFdyaXRlIEVkZ2VQb3J0IFJBTSBhdCBzcGVjaWZpZWQgYWRkcgorI2RlZmluZSBVU0JfUkVRVUVTVF9JT05fUkVBRF9ST00JNQkvLyBSZWFkICBFZGdlUG9ydCBST00gYXQgc3BlY2lmaWVkIGFkZHIKKyNkZWZpbmUgVVNCX1JFUVVFU1RfSU9OX1dSSVRFX1JPTQk2CS8vIFdyaXRlIEVkZ2VQb3J0IFJPTSBhdCBzcGVjaWZpZWQgYWRkcgorI2RlZmluZSBVU0JfUkVRVUVTVF9JT05fRVhFQ19ETF9DT0RFCTcJLy8gQmVnaW4gZXhlY3V0aW9uIG9mIFJBTS1iYXNlZCBkb3dubG9hZAorCQkJCQkJLy8gY29kZSBieSBqdW1waW5nIHRvIGFkZHJlc3MgaW4gd0luZGV4OndWYWx1ZQorLy8JCQkJCTgJLy8gVW51c2VkLCBhdmFpbGFibGUKKyNkZWZpbmUgVVNCX1JFUVVFU1RfSU9OX0VOQUJMRV9TVVNQRU5ECTkJLy8gRW5hYmxlL0Rpc2FibGUgc3VzcGVuZCBmZWF0dXJlCisJCQkJCQkvLyAod1ZhbHVlICE9IDA6IEVuYWJsZTsgd1ZhbHVlID0gMDogRGlzYWJsZSkKKworI2RlZmluZSBVU0JfUkVRVUVTVF9JT05fU0VORF9JT1NQCTEwCS8vIFNlbmQgYW4gSU9TUCBjb21tYW5kIHRvIHRoZSBlZGdlcG9ydCBvdmVyIHRoZSBjb250cm9sIHBpcGUJCisjZGVmaW5lIFVTQl9SRVFVRVNUX0lPTl9SRUNWX0lPU1AJMTEJLy8gUmVjZWl2ZSBhbiBJT1NQIGNvbW1hbmQgZnJvbSB0aGUgZWRnZXBvcnQgb3ZlciB0aGUgY29udHJvbCBwaXBlCisKKworI2RlZmluZSBVU0JfUkVRVUVTVF9JT05fRElTX0lOVF9USU1FUgkweDgwCS8vIFNlbnQgdG8gQXhpb2htIHRvIGVuYWJsZS8gZGlzYWJsZQorCQkJCQkJLy8gaW50ZXJydXB0IHRva2VuIHRpbWVyCisJCQkJCQkvLyB3VmFsdWUgPSAxLCBlbmFibGUgKGRlZmF1bHQpCisJCQkJCQkvLyB3VmFsdWUgPSAwLCBkaXNhYmxlCisKKy8vCisvLyBEZWZpbmUgcGFyYW1ldGVyIHZhbHVlcyBmb3Igb3VyIHZlbmRvci1zcGVjaWZpYyBjb21tYW5kcworLy8KKworLy8KKy8vIEVkZ2Vwb3J0IENvbXBhdGlibGl0eSBEZXNjcmlwdG9yCisvLworLy8gVGhpcyBkZXNjcmlwdG9yIGlzIG9ubHkgcmV0dXJuZWQgYnkgRWRnZXBvcnQtY29tcGF0aWJsZSBkZXZpY2VzCisvLyBzdXBwb3J0aW5nIHRoZSBFUGlDIHNwZWMuIFRydWUgSU9OIGRldmljZXMgZG8gbm90IHJldHVybiB0aGlzCisvLyBkZXNjcmlwdG9yLCBidXQgaW5zdGVhZCByZXR1cm4gU1RBTEwgb24gcmVjZWlwdCBvZiB0aGUKKy8vIEdFVF9FUElDX0RFU0MgY29tbWFuZC4gVGhlIGRyaXZlciBpbnRlcnByZXRzIGEgU1RBTEwgdG8gbWVhbiB0aGF0CisvLyB0aGlzIGlzIGEgInJlYWwiIEVkZ2Vwb3J0LgorLy8KKworc3RydWN0IGVkZ2VfY29tcGF0aWJpbGl0eV9iaXRzCit7CisJLy8gVGhpcyBfX3UzMiBkZWZpbmVzIHdoaWNoIFZlbmRvci1zcGVjaWZpYyBjb21tYW5kcy9mdW5jdGlvbmFsaXR5CisJLy8gdGhlIGRldmljZSBzdXBwb3J0cyBvbiB0aGUgZGVmYXVsdCBFUDAgcGlwZS4KKworCV9fdTMyCVZlbmRFbmFibGVTdXNwZW5kCTogIDE7CS8vIDAwMDEgU2V0IGlmIGRldmljZSBzdXBwb3J0cyBJT05fRU5BQkxFX1NVU1BFTkQKKwlfX3UzMglWZW5kVW51c2VkCQk6IDMxOwkvLyBBdmFpbGFibGUgZm9yIGZ1dHVyZSBleHBhbnNpb24sIG11c3QgYmUgMAorCisJLy8gVGhpcyBfX3UzMiBkZWZpbmVzIHdoaWNoIElPU1AgY29tbWFuZHMgYXJlIHN1cHBvcnRlZCBvdmVyIHRoZQorCS8vIGJ1bGsgcGlwZSBFUDEuCisKKwkJCQkJCQkJCQkJLy8geHh4eCBTZXQgaWYgZGV2aWNlIHN1cHBvcnRzOgorCV9fdTMyCUlPU1BPcGVuCQk6ICAxOwkvLyAwMDAxCU9QRU4gLyBPUEVOX1JTUCAoQ3VycmVudGx5IG11c3QgYmUgMSkKKwlfX3UzMglJT1NQQ2xvc2UJCTogIDE7CS8vIDAwMDIJQ0xPU0UKKwlfX3UzMglJT1NQQ2hhc2UJCTogIDE7CS8vIDAwMDQJQ0hBU0UgLyBDSEFTRV9SU1AKKwlfX3UzMglJT1NQU2V0UnhGbG93CQk6ICAxOwkvLyAwMDA4CVNFVF9SWF9GTE9XCisJX191MzIJSU9TUFNldFR4RmxvdwkJOiAgMTsJLy8gMDAxMAlTRVRfVFhfRkxPVworCV9fdTMyCUlPU1BTZXRYQ2hhcgkJOiAgMTsJLy8gMDAyMAlTRVRfWE9OX0NIQVIvU0VUX1hPRkZfQ0hBUgorCV9fdTMyCUlPU1BSeENoZWNrCQk6ICAxOwkvLyAwMDQwCVJYX0NIRUNLX1JFUS9SWF9DSEVDS19SU1AKKwlfX3UzMglJT1NQU2V0Q2xyQnJlYWsJCTogIDE7CS8vIDAwODAJU0VUX0JSRUFLL0NMRUFSX0JSRUFLCisJX191MzIJSU9TUFdyaXRlTUNSCQk6ICAxOwkvLyAwMTAwCU1DUiByZWdpc3RlciB3cml0ZXMgKHNldC9jbHIgRFRSL1JUUykKKwlfX3UzMglJT1NQV3JpdGVMQ1IJCTogIDE7CS8vIDAyMDAJTENSIHJlZ2lzdGVyIHdyaXRlcyAod29yZGxlbi9zdG9wL3Bhcml0eSkKKwlfX3UzMglJT1NQU2V0QmF1ZFJhdGUJCTogIDE7CS8vIDA0MDAJc2V0dGluZyBCYXVkIHJhdGUgKHdyaXRlcyB0byBMQ1IuODBoIGFuZCBETEwvRExNIHJlZ2lzdGVyKQorCV9fdTMyCUlPU1BEaXNhYmxlSW50UGlwZQk6ICAxOwkvLyAwODAwIERvIG5vdCB1c2UgdGhlIGludGVycnVwdCBwaXBlIGZvciBUeENyZWRpdHMgb3IgUnhCdXRlc0F2YWlsYWJsZQorCV9fdTMyCUlPU1BSeERhdGFBdmFpbAkJOiAgMTsgICAvLyAxMDAwIFJldHVybiBzdGF0dXMgb2YgUlggRmlmbyAoRGF0YSBhdmFpbGFibGUgaW4gRmlmbykKKwlfX3UzMglJT1NQVHhQdXJnZQkJOiAgMTsJLy8gMjAwMCBQdXJnZSBUWEJ1ZmZlciBhbmQvb3IgRmlmbyBpbiBFZGdlcG9ydCBoYXJkd2FyZQorCV9fdTMyCUlPU1BVbnVzZWQJCTogMTg7CS8vIEF2YWlsYWJsZSBmb3IgZnV0dXJlIGV4cGFuc2lvbiwgbXVzdCBiZSAwCisKKwkvLyBUaGlzIF9fdTMyIGRlZmluZXMgd2hpY2ggJ2dlbmVyYWwnIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQKKworCV9fdTMyCVRydWVFZGdlcG9ydAkJOiAgMTsJLy8gMDAwMQlTZXQgaWYgZGV2aWNlIGlzIGEgJ3JlYWwnIEVkZ2Vwb3J0CisJCQkJCQkJCQkJCS8vIChVc2VkIG9ubHkgYnkgZHJpdmVyLCBORVZFUiBzZXQgYnkgYW4gRVBpQyBkZXZpY2UpCisJX191MzIJR2VuVW51c2VkCQk6IDMxOwkvLyBBdmFpbGFibGUgZm9yIGZ1dHVyZSBleHBhbnNpb24sIG11c3QgYmUgMAorCit9OworCitzdHJ1Y3QgZWRnZV9jb21wYXRpYmlsaXR5X2Rlc2NyaXB0b3IKK3sKKwlfX3U4CUxlbmd0aDsJCQkJLy8gRGVzY3JpcHRvciBMZW5ndGggKHBlciBVU0Igc3BlYykKKwlfX3U4CURlc2NUeXBlOwkJCS8vIERlc2NyaXB0b3IgVHlwZSAocGVyIFVTQiBzcGVjLCA9REVWSUNFIHR5cGUpCisJX191OAlFcGljVmVyOwkJCS8vIFZlcnNpb24gb2YgRVBpQyBzcGVjIHN1cHBvcnRlZAorCQkJCQkJCQkJCQkvLyAoQ3VycmVudGx5IG11c3QgYmUgMSkKKwlfX3U4CU51bVBvcnRzOwkJCS8vIE51bWJlciBvZiBzZXJpYWwgcG9ydHMgc3VwcG9ydGVkCisJX191OAlpRG93bmxvYWRGaWxlOwkJCS8vIEluZGV4IG9mIHN0cmluZyBjb250YWluaW5nIGRvd25sb2FkIGNvZGUgZmlsZW5hbWUKKwkJCQkJCQkJCQkJLy8gMD1ubyBkb3dubG9hZCwgRkY9ZG93bmxvYWQgY29tcGlsZWQgaW50byBkcml2ZXIuCisJX191OAlVbnVzZWRbIDMgXTsJCQkvLyBBdmFpbGFibGUgZm9yIGZ1dHVyZSBleHBhbnNpb24sIG11c3QgYmUgMAorCQkJCQkJCQkJCQkvLyAoQ3VycmVudGx5IG11c3QgYmUgMCkuCisJX191OAlNYWpvclZlcnNpb247CQkJLy8gRmlybXdhcmUgdmVyc2lvbjogeHguCisJX191OAlNaW5vclZlcnNpb247CQkJLy8gIHl5LgorCV9fbGUxNglCdWlsZE51bWJlcjsJCQkvLyAgenp6eiAoTEUgZm9ybWF0KQorCisJLy8gVGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmUgY29udGFpbnMgX191MzJzLCB3aXRoIGVhY2ggYml0CisJLy8gc3BlY2lmeWluZyB3aGV0aGVyIHRoZSBFUGlDIGRldmljZSBzdXBwb3J0cyB0aGUgZ2l2ZW4KKwkvLyBjb21tYW5kIG9yIGZ1bmN0aW9uYWxpdHkuCisKKwlzdHJ1Y3QgZWRnZV9jb21wYXRpYmlsaXR5X2JpdHMJU3VwcG9ydHM7CisKK307CisKKy8vIFZhbHVlcyBmb3IgaURvd25sb2FkRmlsZQorI2RlZmluZQlFREdFX0RPV05MT0FEX0ZJTEVfTk9ORQkJMAkvLyBObyBkb3dubG9hZCByZXF1ZXN0ZWQKKyNkZWZpbmUJRURHRV9ET1dOTE9BRF9GSUxFX0lOVEVSTkFMCTB4RkYJLy8gRG93bmxvYWQgdGhlIGZpbGUgY29tcGlsZWQgaW50byBkcml2ZXIgKDkzMCB2ZXJzaW9uKQorI2RlZmluZQlFREdFX0RPV05MT0FEX0ZJTEVfSTkzMAkJMHhGRgkvLyBEb3dubG9hZCB0aGUgZmlsZSBjb21waWxlZCBpbnRvIGRyaXZlciAoOTMwIHZlcnNpb24pCisjZGVmaW5lCUVER0VfRE9XTkxPQURfRklMRV84MDI1MQkweEZFCS8vIERvd25sb2FkIHRoZSBmaWxlIGNvbXBpbGVkIGludG8gZHJpdmVyICg4MDI1MSB2ZXJzaW9uKQorCisKKworLyoKKyAqCVNwZWNpYWwgYWRkcmVzc2VzIGZvciBSRUFEL1dSSVRFX1JBTS9ST00KKyAqLworCisvLyBWZXJzaW9uIDEgKG9yaWdpbmFsKSBmb3JtYXQgb2YgRGV2aWNlUGFyYW1zCisjZGVmaW5lCUVER0VfTUFOVUZfREVTQ19BRERSX1YxCQkweDAwRkY3RjAwCisjZGVmaW5lCUVER0VfTUFOVUZfREVTQ19MRU5fVjEJCXNpemVvZihFREdFX01BTlVGX0RFU0NSSVBUT1JfVjEpCisKKy8vIFZlcnNpb24gMiBmb3JtYXQgb2YgRGV2aWNlUGFyYW1zLiBUaGlzIGZvcm1hdCBpcyBsb25nZXIgKDNDMGgpCisvLyBhbmQgc3RhcnRzIGxvd2VyIGluIG1lbW9yeSwgYXQgdGhlIHVwcGVybW9zdCAxSyBpbiBST00uCisjZGVmaW5lCUVER0VfTUFOVUZfREVTQ19BRERSCQkweDAwRkY3QzAwCisjZGVmaW5lCUVER0VfTUFOVUZfREVTQ19MRU4JCXNpemVvZihzdHJ1Y3QgZWRnZV9tYW51Zl9kZXNjcmlwdG9yKQorCisvLyBCb290IHBhcmFtcyBkZXNjcmlwdG9yCisjZGVmaW5lCUVER0VfQk9PVF9ERVNDX0FERFIJCTB4MDBGRjdGQzAKKyNkZWZpbmUJRURHRV9CT09UX0RFU0NfTEVOCQlzaXplb2Yoc3RydWN0IGVkZ2VfYm9vdF9kZXNjcmlwdG9yKQorCisvLyBEZWZpbmUgdGhlIG1heCBibG9jayBzaXplIHRoYXQgbWF5IGJlIHJlYWQgb3Igd3JpdHRlbgorLy8gaW4gYSByZWFkL3dyaXRlIFJBTS9ST00gY29tbWFuZC4KKyNkZWZpbmUJTUFYX1NJWkVfUkVRX0lPTl9SRUFEX01FTQkoIChfX3UxNikgNjQgKQorI2RlZmluZQlNQVhfU0laRV9SRVFfSU9OX1dSSVRFX01FTQkoIChfX3UxNikgNjQgKQorCisKKy8vCisvLyBOb3RlcyBmb3IgdGhlIGZvbGxvd2luZyB0d28gSU9OIHZlbmRvci1zcGVjaWZpYyBwYXJhbSBkZXNjcmlwdG9yczoKKy8vCisvLwkxLglUaGVzZSBoYXZlIGEgc3RhbmRhcmQgVVNCIGRlc2NyaXB0b3IgaGVhZGVyIHNvIHRoZXkgbG9vayBsaWtlIGEKKy8vCQlub3JtYWwgZGVzY3JpcHRvci4KKy8vCTIuCUFueSBzdHJpbmdzIGluIHRoZSBzdHJ1Y3R1cmVzIGFyZSBpbiBVU0ItZGVmaW5lZCBzdHJpbmcKKy8vCQlkZXNjcmlwdG9yIGZvcm1hdCwgc28gdGhhdCB0aGV5IG1heSBiZSBzZXBhcmF0ZWx5IHJldHJpZXZlZCwKKy8vCQlpZiBuZWNlc3NhcnksIHdpdGggYSBtaW5pbXVtIG9mIHdvcmsgb24gdGhlIDkzMC4gVGhpcyBhbHNvCisvLwkJcmVxdWlyZXMgdGhlbSB0byBiZSBpbiBVTklDT0RFIGZvcm1hdCwgd2hpY2gsIGZvciBFbmdsaXNoIGF0CisvLwkJbGVhc3QsIHNpbXBseSBtZWFucyBleHRlbmRpbmcgZWFjaCBfX3U4IGludG8gYSBfX3UxNi4KKy8vCTMuCUZvciBhbGwgZmllbGRzLCAwMCBtZWFucyAndW5pbml0aWFsaXplZCcuCisvLwk0LglBbGwgdW51c2VkIGFyZWFzIHNob3VsZCBiZSBzZXQgdG8gMDAgZm9yIGZ1dHVyZSBleHBhbnNpb24uCisvLworCisvLyBUaGlzIHN0cnVjdHVyZSBpcyB2ZXIgMiBmb3JtYXQuIEl0IGNvbnRhaW5zIEFMTCBVU0IgZGVzY3JpcHRvcnMgYXMKKy8vIHdlbGwgYXMgdGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyB0aGF0IHdlcmUgaW4gdGhlIG9yaWdpbmFsIFYxCisvLyBzdHJ1Y3R1cmUuIEl0IGlzIE5PVCBtb2RpZmllZCB3aGVuIG5ldyBib290IGNvZGUgaXMgZG93bmxvYWRlZDsgcmF0aGVyLAorLy8gdGhlc2UgdmFsdWVzIGFyZSBzZXQgb3IgbW9kaWZpZWQgYnkgbWFudWZhY3R1cmluZy4gSXQgaXMgbG9jYXRlZCBhdAorLy8geEMwMC14RkJGIChsZW5ndGggM0MwaCkgaW4gdGhlIFJPTS4KKy8vIFRoaXMgc3RydWN0dXJlIGlzIGEgc3VwZXJzZXQgb2YgdGhlIHYxIHN0cnVjdHVyZSBhbmQgaXMgYXJyYW5nZWQgc28KKy8vIHRoYXQgYWxsIG9mIHRoZSB2MSBmaWVsZHMgcmVtYWluIGF0IHRoZSBzYW1lIGFkZHJlc3MuIFdlIGFyZSBqdXN0CisvLyBhZGRpbmcgbW9yZSByb29tIHRvIHRoZSBmcm9udCBvZiB0aGUgc3RydWN0dXJlIHRvIGhvbGQgdGhlIGRlc2NyaXB0b3JzLgorLy8KKy8vIFRoZSBhY3R1YWwgY29udGVudHMgb2YgdGhpcyBzdHJ1Y3R1cmUgYXJlIGRlZmluZWQgaW4gYSA5MzAgYXNzZW1ibHkKKy8vIGZpbGUsIGNvbnZlcnRlZCB0byBhIGJpbmFyeSBpbWFnZSwgYW5kIHRoZW4gd3JpdHRlbiBieSB0aGUgc2VyaWFsaXphdGlvbgorLy8gcHJvZ3JhbS4gVGhlIEMgZGVmaW5pdGlvbiBvZiB0aGlzIHN0cnVjdHVyZSBqdXN0IGRlZmluZXMgYSBkdW1teQorLy8gYXJlYSBmb3IgZ2VuZXJhbCBVU0IgZGVzY3JpcHRvcnMgYW5kIHRoZSBkZXNjcmlwdG9yIHRhYmxlcyAodGhlIHJvb3QKKy8vIGRlc2NyaXB0b3Igc3RhcnRzIGF0IHhDMDApLiBBdCB0aGUgYm90dG9tIG9mIHRoZSBzdHJ1Y3R1cmUgYXJlIHRoZQorLy8gZmllbGRzIGluaGVyaXRlZCBmcm9tIHRoZSB2MSBzdHJ1Y3R1cmUuCisKKyNkZWZpbmUgTUFYX1NFUklBTE5VTUJFUl9MRU4JMTIKKyNkZWZpbmUgTUFYX0FTU0VNQkxZTlVNQkVSX0xFTgkxNAorCitzdHJ1Y3QgZWRnZV9tYW51Zl9kZXNjcmlwdG9yIHsKKworCV9fdTE2CVJvb3REZXNjVGFibGVbMHgxMF07CQkJLy8gQzAwIFJvb3Qgb2YgZGVzY3JpcHRvciB0YWJsZXMgKGp1c3QgYSBwbGFjZWhvbGRlcikKKwlfX3U4CURlc2NyaXB0b3JBcmVhWzB4MkUwXTsJCQkvLyBDMjAgRGVzY3JpcHRvcnMgZ28gaGVyZSwgdXAgdG8gMkUwaCAoanVzdCBhIHBsYWNlaG9sZGVyKQorCisJCQkJCQkJLy8gICAgIFN0YXJ0IG9mIHYxLWNvbXBhdGlibGUgc2VjdGlvbgorCV9fdTgJTGVuZ3RoOwkJCQkJLy8gRjAwIERlc2MgbGVuZ3RoIGZvciB3aGF0IGZvbGxvd3MsIHBlciBVU0IgKD0gQzBoICkKKwlfX3U4CURlc2NUeXBlOwkJCQkvLyBGMDEgRGVzYyB0eXBlLCBwZXIgVVNCICg9REVWSUNFIHR5cGUpCisJX191OAlEZXNjVmVyOwkJCQkvLyBGMDIgRGVzYyB2ZXJzaW9uL2Zvcm1hdCAoY3VycmVudGx5IDIpCisJX191OAlOdW1Sb290RGVzY0VudHJpZXM7CQkJLy8gRjAzICMgZW50cmllcyBpbiBSb290RGVzY1RhYmxlCisKKwlfX3U4CVJvbVNpemU7CQkJCS8vIEYwNCBTaXplIG9mIFJPTS9FMlBST00gaW4gSworCV9fdTgJUmFtU2l6ZTsJCQkJLy8gRjA1IFNpemUgb2YgZXh0ZXJuYWwgUkFNIGluIEsKKwlfX3U4CUNwdVJldjsJCQkJCS8vIEYwNiBDUFUgcmV2aXNpb24gbGV2ZWwgKGNoZyBvbmx5IGlmIHMvdyB2aXNpYmxlKQorCV9fdTgJQm9hcmRSZXY7CQkJCS8vIEYwNyBQQ0IgcmV2aXNpb24gbGV2ZWwgKGNoZyBvbmx5IGlmIHMvdyB2aXNpYmxlKQorCisJX191OAlOdW1Qb3J0czsJCQkJLy8gRjA4IE51bWJlciBvZiBwb3J0cworCV9fdTgJRGVzY0RhdGVbM107CQkJCS8vIEYwOSBNTS9ERC9ZWSB3aGVuIGRlc2NyaXB0b3IgdGVtcGxhdGUgd2FzIGNvbXBpbGVyLAorCQkJCQkJCS8vICAgICBzbyBob3N0IGNhbiB0cmFjayBjaGFuZ2VzIHRvIFVTQi1vbmx5IGRlc2NyaXB0b3JzLgorCisJX191OAlTZXJOdW1MZW5ndGg7CQkJCS8vIEYwQyBVU0Igc3RyaW5nIGRlc2NyaXB0b3IgbGVuCisJX191OAlTZXJOdW1EZXNjVHlwZTsJCQkJLy8gRjBEIFVTQiBkZXNjcmlwdG9yIHR5cGUgKD1TVFJJTkcgdHlwZSkKKwlfX2xlMTYJU2VyaWFsTnVtYmVyW01BWF9TRVJJQUxOVU1CRVJfTEVOXTsJLy8gRjBFICIwMS0wMS0wMDAxMDAiIFVuaWNvZGUgU2VyaWFsIE51bWJlcgorCisJX191OAlBc3NlbWJseU51bUxlbmd0aDsJCQkvLyBGMjYgVVNCIHN0cmluZyBkZXNjcmlwdG9yIGxlbgorCV9fdTgJQXNzZW1ibHlOdW1EZXNjVHlwZTsJCQkvLyBGMjcgVVNCIGRlc2NyaXB0b3IgdHlwZSAoPVNUUklORyB0eXBlKQorCV9fbGUxNglBc3NlbWJseU51bWJlcltNQVhfQVNTRU1CTFlOVU1CRVJfTEVOXTsJLy8gRjI4ICIzNTAtMTAwMC0wMS1BICIgYXNzZW1ibHkgbnVtYmVyCisKKwlfX3U4CU9lbUFzc3lOdW1MZW5ndGg7CQkJLy8gRjQ0IFVTQiBzdHJpbmcgZGVzY3JpcHRvciBsZW4KKwlfX3U4CU9lbUFzc3lOdW1EZXNjVHlwZTsJCQkvLyBGNDUgVVNCIGRlc2NyaXB0b3IgdHlwZSAoPVNUUklORyB0eXBlKQorCV9fbGUxNglPZW1Bc3N5TnVtYmVyW01BWF9BU1NFTUJMWU5VTUJFUl9MRU5dOwkvLyBGNDYgInh4eHh4eHh4eHh4eHh4IiBPRU0gYXNzZW1ibHkgbnVtYmVyCisKKwlfX3U4CU1hbnVmRGF0ZUxlbmd0aDsJCQkvLyBGNjIgVVNCIHN0cmluZyBkZXNjcmlwdG9yIGxlbgorCV9fdTgJTWFudWZEYXRlRGVzY1R5cGU7CQkJLy8gRjYzIFVTQiBkZXNjcmlwdG9yIHR5cGUgKD1TVFJJTkcgdHlwZSkKKwlfX2xlMTYJTWFudWZEYXRlWzZdOwkJCQkvLyBGNjQgIk1NRERZWSIgbWFudWZhY3R1cmluZyBkYXRlCisKKwlfX3U4CVJlc2VydmVkM1sweDREXTsJCQkvLyBGNzAgLS0gdW51c2VkLCBzZXQgdG8gMCAtLQorCisJX191OAlVYXJ0VHlwZTsJCQkJLy8gRkJEIFVhcnQgVHlwZQorCV9fdTgJSW9uUGlkOwkJCQkJLy8gRkJFIFByb2R1Y3QgSUQsID09IExTQiBvZiBVU0IgRGV2RGVzYy5QSUQKKwkJCQkJCQkvLyAgICAgIChOb3RlOiBFZGdlcG9ydC80cyBiZWZvcmUgMTEvOTggd2lsbCBoYXZlCisJCQkJCQkJLy8gICAgICAgMDAgaGVyZSBpbnN0ZWFkIG9mIDAxKQorCV9fdTgJSW9uQ29uZmlnOwkJCQkvLyBGQkYgQ29uZmlnIGJ5dGUgZm9yIElPTiBtYW51ZmFjdHVyaW5nIHVzZQorCQkJCQkJCS8vIEZCRiBlbmQgb2Ygc3RydWN0dXJlLCB0b3RhbCBsZW4gPSAzQzBoCisKK307CisKKworI2RlZmluZSBNQU5VRl9ERVNDX1ZFUl8xCTEJLy8gT3JpZ2luYWwgZGVmaW5pdGlvbiBvZiBNQU5VRl9ERVNDCisjZGVmaW5lIE1BTlVGX0RFU0NfVkVSXzIJMgkvLyBWZXIgMiwgc3RhcnRzIGF0IHhDMDBoIGxlbiAzQzBoCisKKworLy8gVWFydCBUeXBlcworLy8gTm90ZTogU2luY2UgdGhpcyBmaWVsZCB3YXMgYWRkZWQgb25seSByZWNlbnRseSwgYWxsIEVkZ2Vwb3J0LzQgdW5pdHMKKy8vIHNoaXBwZWQgYmVmb3JlIDExLzk4IHdpbGwgaGF2ZSAwMCBpbiB0aGlzIGZpZWxkLiBUaGVyZWZvcmUsCisvLyBib3RoIDAwIGFuZCAwMSB2YWx1ZXMgbWVhbiAnNjU0LgorI2RlZmluZSBNQU5VRl9VQVJUX0VYQVJfNjU0X0VBUkxZCTAJLy8gRXhhciAxNkM2NTQgaW4gRWRnZXBvcnQvNHMgYmVmb3JlIDExLzk4CisjZGVmaW5lIE1BTlVGX1VBUlRfRVhBUl82NTQJCTEJLy8gRXhhciAxNkM2NTQKKyNkZWZpbmUgTUFOVUZfVUFSVF9FWEFSXzI4NTIJCTIJLy8gRXhhciAxNkMyODUyCisKKy8vCisvLyBOb3RlOiBUaGUgQ3B1UmV2IGFuZCBCb2FyZFJldiB2YWx1ZXMgZG8gbm90IGNvbmZvcm0gdG8gbWFudWZhY3R1cmluZworLy8gcmV2aXNpb25zOyB0aGV5IGFyZSB0byBiZSBpbmNyZW1lbnRlZCBvbmx5IHdoZW4gdGhlIENQVSBvciBoYXJkd2FyZQorLy8gY2hhbmdlcyBpbiBhIHNvZnR3YXJlLXZpc2libGUgd2F5LCBzdWNoIHRoYXQgdGhlIDkzMCBzb2Z0d2FyZSBvcgorLy8gdGhlIGhvc3QgZHJpdmVyIG5lZWRzIHRvIGhhbmRsZSB0aGUgaGFyZHdhcmUgZGlmZmVyZW50bHkuCisvLworCisvLyBWYWx1ZXMgb2YgYm90dG9tIDUgYml0cyBvZiBDcHVSZXYgJiBCb2FyZFJldiBmb3IKKy8vIEltcGxlbWVudGF0aW9uIDAgKGllLCA5MzAtYmFzZWQpCisjZGVmaW5lCU1BTlVGX0NQVV9SRVZfQUQ0CQkxCS8vIDkzMCBBRDQsIHdpdGggRVAxIFJ4IGJ1ZyAobmVlZHMgUlhTUE0pCisjZGVmaW5lCU1BTlVGX0NQVV9SRVZfQUQ1CQkyCS8vIDkzMCBBRDUsIHdpdGggYWJvdmUgYnVnIChzdXBwb3NlZGx5KSBmaXhlZAorI2RlZmluZQlNQU5VRl9DUFVfODAyNTEJCQkweDIwCS8vIEludGVsIDgwMjUxCisKKworI2RlZmluZSBNQU5VRl9CT0FSRF9SRVZfQQkJMQkvLyBPcmlnaW5hbCB2ZXJzaW9uLCA9PSBNYW51ZiBSZXYgQQorI2RlZmluZSBNQU5VRl9CT0FSRF9SRVZfQgkJMgkvLyBNYW51ZiBSZXYgQiwgd2FrZXVwIGludGVycnVwdCB3b3JrcworI2RlZmluZSBNQU5VRl9CT0FSRF9SRVZfQwkJMwkvLyBNYW51ZiBSZXYgQywgMi80IHBvcnRzLCByczIzMi9yczQyMgorI2RlZmluZSBNQU5VRl9CT0FSRF9SRVZfR0VORVJBVElPTl8yCTB4MjAJLy8gU2Vjb25kIGdlbmVyYWl0b24gZWRnZXBvcnQKKworCisvLyBWYWx1ZXMgb2YgYm90dG9tIDUgYml0cyBvZiBDcHVSZXYgJiBCb2FyZFJldiBmb3IKKy8vIEltcGxlbWVudGF0aW9uIDEgKGllLCAyNTErTmV0Y2hpcC1iYXNlZCkKKyNkZWZpbmUJTUFOVUZfQ1BVX1JFVl8xCQkJMQkvLyBDMjUxVEIgUmV2IDEgKE5lZWQgYWN0dWFsIEludGVsIHJldiBoZXJlKQorCisjZGVmaW5lIE1BTlVGX0JPQVJEX1JFVl9BCQkxCS8vIEZpcnN0IHJldiBvZiAyNTErTmV0Y2hpcCBkZXNpZ24KKworI2RlZmluZQlNQU5VRl9TRVJOVU1fTEVOR1RICQlzaXplb2YoKChzdHJ1Y3QgZWRnZV9tYW51Zl9kZXNjcmlwdG9yICopMCktPlNlcmlhbE51bWJlcikKKyNkZWZpbmUJTUFOVUZfQVNTWU5VTV9MRU5HVEgJCXNpemVvZigoKHN0cnVjdCBlZGdlX21hbnVmX2Rlc2NyaXB0b3IgKikwKS0+QXNzZW1ibHlOdW1iZXIpCisjZGVmaW5lCU1BTlVGX09FTUFTU1lOVU1fTEVOR1RICQlzaXplb2YoKChzdHJ1Y3QgZWRnZV9tYW51Zl9kZXNjcmlwdG9yICopMCktPk9lbUFzc3lOdW1iZXIpCisjZGVmaW5lCU1BTlVGX01BTlVGREFURV9MRU5HVEgJCXNpemVvZigoKHN0cnVjdCBlZGdlX21hbnVmX2Rlc2NyaXB0b3IgKikwKS0+TWFudWZEYXRlKQorCisjZGVmaW5lCU1BTlVGX0lPTl9DT05GSUdfRElBR19OT19MT09QCTB4MjAJLy8gQXMgYmVsb3cgYnV0IG5vIGV4dCBsb29wYmFjayB0ZXN0CisjZGVmaW5lCU1BTlVGX0lPTl9DT05GSUdfRElBRwkJMHg0MAkvLyA5MzAgYmFzZWQgZGV2aWNlOiAxPVJ1biBoL3cgZGlhZ3MsIDA9bm9ybQorCQkJCQkJLy8gVElVTVAgRGV2aWNlICAgIDogMT1JT05TRVJJQUwgbmVlZHMgdG8gcnVuIEZpbmFsIFRlc3QKKyNkZWZpbmUJTUFOVUZfSU9OX0NPTkZJR19NQVNURVIJCTB4ODAJLy8gOTMwIGJhc2VkIGRldmljZTogIDE9TWFzdGVyIG1vZGUsIDA9Tm9ybWFsCisJCQkJCQkvLyBUSVVNUCBEZXZpY2UgICAgOiAgMT1GaXJzdCBkZXZpY2Ugb24gYSBtdWx0aSBUSVVNUCBEZXZpY2UKKworLy8KKy8vIFRoaXMgc3RydWN0dXJlIGRlc2NyaWJlcyBwYXJhbWV0ZXJzIGZvciB0aGUgYm9vdCBjb2RlLCBhbmQKKy8vIGlzIHByb2dyYW1tZWQgYWxvbmcgd2l0aCBuZXcgYm9vdCBjb2RlLiBUaGVzZSBhcmUgdmFsdWVzCisvLyB3aGljaCBhcmUgc3BlY2lmaWMgdG8gYSBnaXZlbiBidWlsZCBvZiB0aGUgYm9vdCBjb2RlLiBJdAorLy8gaXMgZXhhY3RseSA2NCBieXRlcyBsb25nIGFuZCBpcyBmaXhlZCBhdCBhZGRyZXNzIEZGOnhGQzAKKy8vIC0gRkY6eEZGRi4gTm90ZSB0aGF0IHRoZSA5MzAtbWFuZGF0ZWQgVUNPTkZJRyBieXRlcyBhcmUKKy8vIGluY2x1ZGVkIGluIHRoaXMgc3RydWN0dXJlLgorLy8KK3N0cnVjdCBlZGdlX2Jvb3RfZGVzY3JpcHRvciB7CisJX191OAkJTGVuZ3RoOwkJCS8vIEMwIERlc2MgbGVuZ3RoLCBwZXIgVVNCICg9IDQwaCkKKwlfX3U4CQlEZXNjVHlwZTsJCS8vIEMxIERlc2MgdHlwZSwgcGVyIFVTQiAoPSBERVZJQ0UgdHlwZSkKKwlfX3U4CQlEZXNjVmVyOwkJLy8gQzIgRGVzYyB2ZXJzaW9uL2Zvcm1hdAorCV9fdTgJCVJlc2VydmVkMTsJCS8vIEMzIC0tIHVudXNlZCwgc2V0IHRvIDAgLS0KKworCV9fbGUxNgkJQm9vdENvZGVMZW5ndGg7CQkvLyBDNCBCb290IGNvZGUgZ29lcyBmcm9tIEZGOjAwMDAgdG8gRkY6KGxlbi0xKQorCQkJCQkJLy8JICAoTEUgZm9ybWF0KQorCisJX191OAkJTWFqb3JWZXJzaW9uOwkJLy8gQzYgRmlybXdhcmUgdmVyc2lvbjogeHguCisJX191OAkJTWlub3JWZXJzaW9uOwkJLy8gQzcJCQl5eS4KKwlfX2xlMTYJCUJ1aWxkTnVtYmVyOwkJLy8gQzgJCQl6enp6IChMRSBmb3JtYXQpCisJCisJX191MTYJCUVudW1Sb290RGVzY1RhYmxlOwkvLyBDQSBSb290IG9mIFJPTS1iYXNlZCBkZXNjcmlwdG9yIHRhYmxlCisJX191OAkJTnVtRGVzY1R5cGVzOwkJLy8gQ0MgTnVtYmVyIG9mIHN1cHBvcnRlZCBkZXNjcmlwdG9yIHR5cGVzCisKKwlfX3U4CQlSZXNlcnZlZDQ7CQkvLyBDRCBGaXggQ29tcGlsZXIgUGFja2luZworCisJX19sZTE2CQlDYXBhYmlsaXRpZXM7CQkvLyBDRS1DRiBDYXBhYmlsaXRpZXMgZmxhZ3MgKExFIGZvcm1hdCkKKwlfX3U4CQlSZXNlcnZlZDJbMHgyOF07CS8vIEQwIC0tIHVudXNlZCwgc2V0IHRvIDAgLS0KKwlfX3U4CQlVQ29uZmlnMDsJCS8vIEY4IDkzMC1kZWZpbmVkIENQVSBjb25maWd1cmF0aW9uIGJ5dGUgMAorCV9fdTgJCVVDb25maWcxOwkJLy8gRjkgOTMwLWRlZmluZWQgQ1BVIGNvbmZpZ3VyYXRpb24gYnl0ZSAxCisJX191OAkJUmVzZXJ2ZWQzWzZdOwkJLy8gRkEgLS0gdW51c2VkLCBzZXQgdG8gMCAtLQorCQkJCQkJLy8gRkYgZW5kIG9mIHN0cnVjdHVyZSwgdG90YWwgbGVuID0gODAKK307CisKKworI2RlZmluZSBCT09UX0RFU0NfVkVSXzEJCTEJLy8gT3JpZ2luYWwgZGVmaW5pdGlvbiBvZiBCT09UX1BBUkFNUworI2RlZmluZSBCT09UX0RFU0NfVkVSXzIJCTIJLy8gMm5kIGRlZmluaXRpb24sIGRlc2NyaXB0b3JzIG5vdCBpbmNsdWRlZCBpbiBib290CisKKworCS8vIENhcGFiaWxpdGllcyBmbGFncworCisjZGVmaW5lCUJPT1RfQ0FQX1JFU0VUX0NNRAkweDAwMDEJLy8gSWYgc2V0LCBib290IGNvcnJlY3RseSBzdXBwb3J0cyBJT05fUkVTRVRfREVWSUNFCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAgICAgICAgICAgICAgICBUIEkgICBVIE0gUCAgIEQgRSBGIEkgTiBJIFQgSSBPIE4gUworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvLyBDaGlwIGRlZmluaXRpb25zIGluIEkyQworI2RlZmluZSBVTVA1MTUyCQkJMHg1MgorI2RlZmluZSBVTVAzNDEwCQkJMHgxMAorCisKKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisvLwlUSSBJMkMgRm9ybWF0IERlZmluaXRpb25zCisvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorI2RlZmluZSBJMkNfREVTQ19UWVBFX0lORk9fQkFTSUMJMHgwMQorI2RlZmluZSBJMkNfREVTQ19UWVBFX0ZJUk1XQVJFX0JBU0lDCTB4MDIKKyNkZWZpbmUgSTJDX0RFU0NfVFlQRV9ERVZJQ0UJCTB4MDMKKyNkZWZpbmUgSTJDX0RFU0NfVFlQRV9DT05GSUcJCTB4MDQKKyNkZWZpbmUgSTJDX0RFU0NfVFlQRV9TVFJJTkcJCTB4MDUKKyNkZWZpbmUgSTJDX0RFU0NfVFlQRV9GSVJNV0FSRV9BVVRPCTB4MDcJLy8gZm9yIDM0MTAgZG93bmxvYWQKKyNkZWZpbmUgSTJDX0RFU0NfVFlQRV9DT05GSUdfS0xVREdFCTB4MTQJLy8gZm9yIDM0MTAKKyNkZWZpbmUgSTJDX0RFU0NfVFlQRV9XQVRDSFBPUlRfVkVSU0lPTgkweDE1CS8vIGZpcm13YXJlIHZlcnNpb24gbnVtYmVyIGZvciB3YXRjaHBvcnQKKyNkZWZpbmUgSTJDX0RFU0NfVFlQRV9XQVRDSFBPUlRfQ0FMSUJSQVRJT05fREFUQSAweDE2CS8vIFdhdGNocG9ydCBDYWxpYnJhdGlvbiBEYXRhCisKKyNkZWZpbmUgSTJDX0RFU0NfVFlQRV9GSVJNV0FSRV9CTEFOSwkweGYyCisKKy8vIFNwZWNpYWwgc2VjdGlvbiBkZWZpbmVkIGJ5IElPTgorI2RlZmluZSBJMkNfREVTQ19UWVBFX0lPTgkJMAkvLyBOb3QgZGVmaW5lZCBieSBUSQorCisKK3N0cnVjdCB0aV9pMmNfZGVzYworeworCV9fdTgJVHlwZTsJCQkvLyBUeXBlIG9mIGRlc2NyaXB0b3IKKwlfX3UxNglTaXplOwkJCS8vIFNpemUgb2YgZGF0YSBvbmx5IG5vdCBpbmNsdWRpbmcgaGVhZGVyCisJX191OAlDaGVja1N1bTsJCS8vIENoZWNrc3VtICg4IGJpdCBzdW0gb2YgZGF0YSBvbmx5KQorCV9fdTgJRGF0YVswXTsJCS8vIERhdGEgc3RhcnRzIGhlcmUKK31fX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworLy8gZm9yIDUxNTIgZGV2aWNlcyBvbmx5ICh0eXBlIDIgcmVjb3JkKQorLy8gZm9yIDM0MTAgdGhlIHZlcnNpb24gaXMgc3RvcmVkIGluIHRoZSBXQVRDSFBPUlRfRklSTVdBUkVfVkVSU0lPTiBkZXNjcmlwdG9yCitzdHJ1Y3QgdGlfaTJjX2Zpcm13YXJlX3JlYworeworCV9fdTgJVmVyX01ham9yOwkJLy8gRmlybXdhcmUgTWFqb3IgdmVyc2lvbiBudW1iZXIKKwlfX3U4CVZlcl9NaW5vcjsJCS8vIEZpcm13YXJlIE1pbm9yIHZlcnNpb24gbnVtYmVyCisJX191OAlEYXRhWzBdOwkJLy8gRG93bmxvYWQgc3RhcnRzIGhlcmUKK31fX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworCitzdHJ1Y3Qgd2F0Y2hwb3J0X2Zpcm13YXJlX3ZlcnNpb24KK3sKKy8vIEFkZGVkIDIgYnl0ZXMgZm9yIHZlcnNpb24gbnVtYmVyCisJX191OAlWZXJzaW9uX01ham9yOwkJLy8gIERvd25sb2FkIFZlcnNpb24gKGZvciBXYXRjaHBvcnQpCisJX191OAlWZXJzaW9uX01pbm9yOworfV9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCisKKy8vIFN0cnVjdHVyZSBvZiBoZWFkZXIgb2YgZG93bmxvYWQgaW1hZ2UgaW4gZndfZG93bi5oCitzdHJ1Y3QgdGlfaTJjX2ltYWdlX2hlYWRlcgoreworCV9fbGUxNglMZW5ndGg7CisJX191OAlDaGVja1N1bTsKK31fX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworc3RydWN0IHRpX2Jhc2ljX2Rlc2NyaXB0b3IKK3sKKwlfX3U4CVBvd2VyOwkJLy8gU2VsZiBwb3dlcmVkCisJCQkJLy8gYml0IDc6IDEgLSBwb3dlciBzd2l0Y2hpbmcgc3VwcG9ydGVkCisJCQkJLy8gICAgICAgIDAgLSBwb3dlciBzd2l0Y2hpbmcgbm90IHN1cHBvcnRlZAorCQkJCS8vCisJCQkJLy8gYml0IDA6IDEgLSBzZWxmIHBvd2VyZWQKKwkJCQkvLyAgICAgICAgMCAtIGJ1cyBwb3dlcmVkCisJCQkJLy8KKwkJCQkvLworCV9fdTE2CUh1YlZpZDsJCS8vIFZJRCBIVUIKKwlfX3UxNglIdWJQaWQ7CQkvLyBQSUQgSFVCCisJX191MTYJRGV2UGlkOwkJLy8gUElEIEVkZ2Vwb3J0CisJX191OAlIdWJUaW1lOwkvLyBUaW1lIGZvciBwb3dlciBvbiB0byBwb3dlciBnb29kCisJX191OAlIdWJDdXJyZW50OwkvLyBIVUIgQ3VycmVudCA9IDEwMG1hCit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCisKKy8vIENQVSAvIEJvYXJkIFJldiBEZWZpbml0aW9ucworI2RlZmluZSBUSV9DUFVfUkVWXzUwNTIJCQkyCS8vIDUwNTIgYmFzZWQgZWRnZXBvcnRzCisjZGVmaW5lIFRJX0NQVV9SRVZfMzQxMAkJCTMJLy8gMzQxMCBiYXNlZCBlZGdlcG9ydHMKKworI2RlZmluZSBUSV9CT0FSRF9SRVZfVElfRVAJCTAJLy8gQmFzaWMgdGkgYmFzZWQgZWRnZXBvcnQKKyNkZWZpbmUgVElfQk9BUkRfUkVWX0NPTVBBQ1QJCTEJLy8gQ29tcGFjdCBib2FyZAorI2RlZmluZSBUSV9CT0FSRF9SRVZfV0FUQ0hQT1JUCQkyCS8vIFdhdGNocG9ydAorCisKKyNkZWZpbmUgVElfR0VUX0NQVV9SRVZJU0lPTih4KQkJKF9fdTgpKCgoKHgpPj40KSYweDBmKSkKKyNkZWZpbmUgVElfR0VUX0JPQVJEX1JFVklTSU9OKHgpCShfX3U4KSgoKHgpJjB4MGYpKQorCisjZGVmaW5lIFRJX0kyQ19TSVpFX01BU0sJCTB4MWYgIC8vIDUgYml0cworI2RlZmluZSBUSV9HRVRfSTJDX1NJWkUoeCkJCSgoKCh4KSAmIFRJX0kyQ19TSVpFX01BU0spKzEpKjI1NikKKworI2RlZmluZSBUSV9NQVhfSTJDX1NJWkUJCQkoIDE2ICogMTAyNCApCisKKyNkZWZpbmUgVElfTUFOVUZfVkVSU0lPTl8wCQkwCQorCisvLyBJb25Db25pZzIgZmxhZ3MKKyNkZWZpbmUgVElfQ09ORklHMl9SUzIzMgkJMHgwMQorI2RlZmluZSBUSV9DT05GSUcyX1JTNDIyCQkweDAyCisjZGVmaW5lIFRJX0NPTkZJRzJfUlM0ODUJCTB4MDQKKyNkZWZpbmUgVElfQ09ORklHMl9TV0lUQ0hBQkxFCQkweDA4CisKKyNkZWZpbmUgVElfQ09ORklHMl9XQVRDSFBPUlQJCTB4MTAKKworCitzdHJ1Y3QgZWRnZV90aV9tYW51Zl9kZXNjcmlwdG9yCit7CisJX191OCBJb25Db25maWc7CQkvLyAgQ29uZmlnIGJ5dGUgZm9yIElPTiBtYW51ZmFjdHVyaW5nIHVzZQorCV9fdTggSW9uQ29uZmlnMjsJLy8gIEV4cGFuc2lvbgorCV9fdTggVmVyc2lvbjsJCS8vICBWZXJzaW9uCisJX191OCBDcHVSZXZfQm9hcmRSZXY7CS8vICBDUFUgcmV2aXNpb24gbGV2ZWwgKDB4RjApIGFuZCBCb2FyZCBSZXYgTGV2ZWwgKDB4MEYpCisJX191OCBOdW1Qb3J0czsJCS8vICBOdW1iZXIgb2YgcG9ydHMJZm9yIHRoaXMgVU1QCisJX191OCBOdW1WaXJ0dWFsUG9ydHM7CS8vICBOdW1iZXIgb2YgVmlydHVhbCBwb3J0cworCV9fdTggSHViQ29uZmlnMTsJLy8gIFVzZWQgdG8gY29uZmlndXJlIHRoZSBIdWIKKwlfX3U4IEh1YkNvbmZpZzI7CS8vICBVc2VkIHRvIGNvbmZpZ3VyZSB0aGUgSHViCisJX191OCBUb3RhbFBvcnRzOwkvLyAgVG90YWwgTnVtYmVyIG9mIENvbSBQb3J0cyBmb3IgdGhlIGVudGlyZSBkZXZpY2UgKEFsbCBVTVBzKQorCV9fdTggUmVzZXJ2ZWQ7CQkvLyAgUmVzZXJ2ZWQKK31fX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworCisjZW5kaWYJCS8vIGlmICFkZWZpbmVkKF9VU0JWRU5EX0gpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvaXBhcS5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lwYXEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYmQ2OWM0Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lwYXEuYwpAQCAtMCwwICsxLDk3MyBAQAorLyoKKyAqIFVTQiBDb21wYXEgaVBBUSBkcml2ZXIKKyAqCisgKglDb3B5cmlnaHQgKEMpIDIwMDEgLSAyMDAyCisgKgkgICAgR2FuZXNoIFZhcmFkYXJhamFuIDxnYW5lc2hAdmVyaXRhcy5jb20+CisgKgorICoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqCWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKgl0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICoJKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAoMTIvMTIvMjAwMikgZ2FuZXNoCisgKiAJQWRkZWQgc3VwcG9ydCBmb3IgcHJhY3RpY2FsbHkgYWxsIGRldmljZXMgc3VwcG9ydGVkIGJ5IEFjdGl2ZVN5bmMKKyAqIAlvbiBXaW5kb3dzLiBUaGFua3MgdG8gV2VzIENpbGxkaGFpcmUgPGJpbGx5Ym9iam9laGVucnlib2JAaG90bWFpbC5jb20+LgorICoKKyAqICgyNi8xMS8yMDAyKSBnYW5lc2gKKyAqIAlBZGRlZCBpbnNtb2Qgb3B0aW9ucyB0byBzcGVjaWZ5IHByb2R1Y3QgYW5kIHZlbmRvciBpZC4KKyAqIAlVc2UgbW9kcHJvYmUgaXBhcSB2ZW5kb3I9MHhmb28gcHJvZHVjdD0weGJhcgorICoKKyAqICgyNi83LzIwMDIpIGdhbmVzaAorICogCUZpeGVkIHVwIGJyb2tlbiBlcnJvciBoYW5kbGluZyBpbiBpcGFxX29wZW4uIFJldHJ5IHRoZSAia2lja3N0YXJ0IgorICogCXBhY2tldCBtdWNoIGhhcmRlciAtIHRoaXMgZHJhc3RpY2FsbHkgcmVkdWNlcyBjb25uZWN0aW9uIGZhaWx1cmVzLgorICoKKyAqICgzMC80LzIwMDIpIGdhbmVzaAorICogCUFkZGVkIHN1cHBvcnQgZm9yIHRoZSBDYXNpbyBFTTUwMC4gQ29tcGxldGVseSB1bnRlc3RlZC4gVGhhbmtzCisgKiAJdG8gaW5mbyBmcm9tIE5hdGhhbiA8d2ZpbGFyZG9AZnVzZS5uZXQ+CisgKgorICogKDE5LzMvMjAwMikgZ2FuZXNoCisgKglEb24ndCBzdWJtaXQgdXJicyB3aGlsZSBob2xkaW5nIHNwaW5sb2Nrcy4gTm90IHN0cmljdGx5IG5lY2Vzc2FyeQorICoJaW4gMi41LnguCisgKgorICogKDgvMy8yMDAyKSBnYW5lc2gKKyAqIAlUaGUgaXBhcSBzb21ldGltZXMgZW1pdHMgYSAnXDAnIGJlZm9yZSB0aGUgQ0xJRU5UIHN0cmluZy4gQXQgdGhpcworICogCXBvaW50IG9mIHRpbWUsIHRoZSBwcHAgbGRpc2MgaXMgbm90IHlldCBhdHRhY2hlZCB0byB0aGUgdHR5LCBzbworICogCW5fdHR5IGVjaG9lcyAiXiAiIHRvIHRoZSBpcGFxLCB3aGljaCBtZXNzZXMgdXAgdGhlIGNoYXQuIEluIDIuNS42LXByZTIKKyAqIAl0aGlzIGNhdXNlcyBhIHBhbmljIGJlY2F1c2UgZWNob19jaGFyKCkgdHJpZXMgdG8gc2xlZXAgaW4gaW50ZXJydXB0CisgKiAJY29udGV4dC4KKyAqIAlUaGUgZml4IGlzIHRvIHRlbGwgdGhlIHVwcGVyIGxheWVycyB0aGF0IHRoaXMgaXMgYSByYXcgZGV2aWNlIHNvIHRoYXQKKyAqIAllY2hvaW5nIGlzIHN1cHByZXNzZWQuIFRoYW5rcyB0byBMeWxlIExpbmRob2xtIGZvciBhIGRldGFpbGVkIGJ1ZworICogCXJlcG9ydC4KKyAqCisgKiAoMjUvMi8yMDAyKSBnYW5lc2gKKyAqIAlBZGRlZCBzdXBwb3J0IGZvciB0aGUgSFAgSm9ybmFkYSA1NDggYW5kIDU2OC4gQ29tcGxldGVseSB1bnRlc3RlZC4KKyAqIAlUaGFua3MgdG8gaW5mbyBmcm9tIEhlYXRoIFJvYmluc29uIGFuZCBBcmllaCBEYXZpZG9mZi4KKyAqLworCisjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eS5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eV9kcml2ZXIuaD4KKyNpbmNsdWRlIDxsaW51eC90dHlfZmxpcC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC91c2IuaD4KKyNpbmNsdWRlICJ1c2Itc2VyaWFsLmgiCisjaW5jbHVkZSAiaXBhcS5oIgorCisjZGVmaW5lIEtQX1JFVFJJRVMJMTAwCisKKy8qCisgKiBWZXJzaW9uIEluZm9ybWF0aW9uCisgKi8KKworI2RlZmluZSBEUklWRVJfVkVSU0lPTiAidjAuNSIKKyNkZWZpbmUgRFJJVkVSX0FVVEhPUiAiR2FuZXNoIFZhcmFkYXJhamFuIDxnYW5lc2hAdmVyaXRhcy5jb20+IgorI2RlZmluZSBEUklWRVJfREVTQyAiVVNCIFBvY2tldFBDIFBEQSBkcml2ZXIiCisKK3N0YXRpYyBfX3UxNiBwcm9kdWN0LCB2ZW5kb3I7CitzdGF0aWMgaW50IGRlYnVnOworCisvKiBGdW5jdGlvbiBwcm90b3R5cGVzIGZvciBhbiBpcGFxICovCitzdGF0aWMgaW50ICBpcGFxX29wZW4gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKTsKK3N0YXRpYyB2b2lkIGlwYXFfY2xvc2UgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKTsKK3N0YXRpYyBpbnQgIGlwYXFfc3RhcnR1cCAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCk7CitzdGF0aWMgdm9pZCBpcGFxX3NodXRkb3duIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKTsKK3N0YXRpYyBpbnQgaXBhcV93cml0ZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsCisJCSAgICAgICBpbnQgY291bnQpOworc3RhdGljIGludCBpcGFxX3dyaXRlX2J1bGsoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLAorCQkJICAgaW50IGNvdW50KTsKK3N0YXRpYyB2b2lkIGlwYXFfd3JpdGVfZ2F0aGVyKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworc3RhdGljIHZvaWQgaXBhcV9yZWFkX2J1bGtfY2FsbGJhY2sgKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOworc3RhdGljIHZvaWQgaXBhcV93cml0ZV9idWxrX2NhbGxiYWNrKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOworc3RhdGljIGludCBpcGFxX3dyaXRlX3Jvb20oc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCk7CitzdGF0aWMgaW50IGlwYXFfY2hhcnNfaW5fYnVmZmVyKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworc3RhdGljIHZvaWQgaXBhcV9kZXN0cm95X2xpc3RzKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworCisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpcGFxX2lkX3RhYmxlIFtdID0geworCS8qIFRoZSBmaXJzdCBlbnRyeSBpcyBhIHBsYWNlaG9sZGVyIGZvciB0aGUgaW5zbW9kLXNwZWNpZmllZCBkZXZpY2UgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDlGLCAweDAwMDMpIH0sCisJeyBVU0JfREVWSUNFKDB4MTY5MCwgMHgwNjAxKSB9LCAvKiBBc2tleSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDA5NjAsIDB4MDA2NSkgfSwgLyogQkNPTSBVU0IgU3luYyAwMDY1ICovCisJeyBVU0JfREVWSUNFKDB4MDk2MCwgMHgwMDY2KSB9LCAvKiBCQ09NIFVTQiBTeW5jIDAwNjYgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwOTYwLCAweDAwNjcpIH0sIC8qIEJDT00gVVNCIFN5bmMgMDA2NyAqLworCXsgVVNCX0RFVklDRSgweDA3Q0YsIDB4MjAwMSkgfSwgLyogQ0FTSU8gVVNCIFN5bmMgMjAwMSAqLworCXsgVVNCX0RFVklDRSgweDA3Q0YsIDB4MjAwMikgfSwgLyogQ0FTSU8gVVNCIFN5bmMgMjAwMiAqLworCXsgVVNCX0RFVklDRSgweDA3Q0YsIDB4MjAwMykgfSwgLyogQ0FTSU8gVVNCIFN5bmMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0OUYsIDB4MDAwMykgfSwgLyogQ29tcGFxIGlQQVEgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDlGLCAweDAwMzIpIH0sIC8qIENvbXBhcSBpUEFRIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4NDEzQywgMHg0MDAxKSB9LCAvKiBEZWxsIEF4aW0gVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHg0MTNDLCAweDQwMDIpIH0sIC8qIERlbGwgQXhpbSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDQxM0MsIDB4NDAwMykgfSwgLyogRGVsbCBBeGltIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4NDEzQywgMHg0MDA0KSB9LCAvKiBEZWxsIEF4aW0gVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHg0MTNDLCAweDQwMDUpIH0sIC8qIERlbGwgQXhpbSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDQxM0MsIDB4NDAwNikgfSwgLyogRGVsbCBBeGltIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4NDEzQywgMHg0MDA3KSB9LCAvKiBEZWxsIEF4aW0gVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHg0MTNDLCAweDQwMDgpIH0sIC8qIERlbGwgQXhpbSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDQxM0MsIDB4NDAwOSkgfSwgLyogRGVsbCBBeGltIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MDNGMCwgMHgxMDE2KSB9LCAvKiBIUCBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDAzRjAsIDB4MTExNikgfSwgLyogSFAgVVNCIFN5bmMgMTYxMSAqLworCXsgVVNCX0RFVklDRSgweDAzRjAsIDB4MTIxNikgfSwgLyogSFAgVVNCIFN5bmMgMTYxMiAqLworCXsgVVNCX0RFVklDRSgweDAzRjAsIDB4MjAxNikgfSwgLyogSFAgVVNCIFN5bmMgMTYyMCAqLworCXsgVVNCX0RFVklDRSgweDAzRjAsIDB4MjExNikgfSwgLyogSFAgVVNCIFN5bmMgMTYyMSAqLworCXsgVVNCX0RFVklDRSgweDAzRjAsIDB4MjIxNikgfSwgLyogSFAgVVNCIFN5bmMgMTYyMiAqLworCXsgVVNCX0RFVklDRSgweDAzRjAsIDB4MzAxNikgfSwgLyogSFAgVVNCIFN5bmMgMTYzMCAqLworCXsgVVNCX0RFVklDRSgweDAzRjAsIDB4MzExNikgfSwgLyogSFAgVVNCIFN5bmMgMTYzMSAqLworCXsgVVNCX0RFVklDRSgweDAzRjAsIDB4MzIxNikgfSwgLyogSFAgVVNCIFN5bmMgMTYzMiAqLworCXsgVVNCX0RFVklDRSgweDAzRjAsIDB4NDAxNikgfSwgLyogSFAgVVNCIFN5bmMgMTY0MCAqLworCXsgVVNCX0RFVklDRSgweDAzRjAsIDB4NDExNikgfSwgLyogSFAgVVNCIFN5bmMgMTY0MSAqLworCXsgVVNCX0RFVklDRSgweDAzRjAsIDB4NDIxNikgfSwgLyogSFAgVVNCIFN5bmMgMTY0MiAqLworCXsgVVNCX0RFVklDRSgweDAzRjAsIDB4NTAxNikgfSwgLyogSFAgVVNCIFN5bmMgMTY1MCAqLworCXsgVVNCX0RFVklDRSgweDAzRjAsIDB4NTExNikgfSwgLyogSFAgVVNCIFN5bmMgMTY1MSAqLworCXsgVVNCX0RFVklDRSgweDAzRjAsIDB4NTIxNikgfSwgLyogSFAgVVNCIFN5bmMgMTY1MiAqLworCXsgVVNCX0RFVklDRSgweDA5NEIsIDB4MDAwMSkgfSwgLyogTGlua3VwIFN5c3RlbXMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0MDApIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMiAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQwMSkgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAyICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDAyKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDIgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0MDMpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMiAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQwNCkgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAyICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDA1KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDIgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0MDYpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMiAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQwNykgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAyICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDA4KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDIgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0MDkpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMiAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQwQSkgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAyICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDBCKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDIgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0MEMpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMiAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQwRCkgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAyICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDBFKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDIgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0MEYpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMiAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQxMCkgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAyICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDExKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDIgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0MTIpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMiAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQxMykgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAyICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDE0KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDIgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0MTUpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMiAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQxNikgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAyICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDE3KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDIgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0MzIpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQzMykgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDM0KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0MzUpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQzNikgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDM3KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0MzgpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQzOSkgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDNBKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0M0IpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQzQykgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDNEKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0M0UpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQzRikgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDQwKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0NDEpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQ0MikgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDQzKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0NDQpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQ0NSkgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDQ2KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0NDcpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQ0OCkgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDQ5KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0NEEpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQ0QikgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDRDKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0NEQpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQ0RSkgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDRGKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0NTApIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQ1MSkgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDUyKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0NTMpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQ1NCkgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDU1KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0NTYpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQ1NykgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDU4KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0NTkpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQ1QSkgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDVCKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0NUMpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQ1RCkgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDVFKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0NUYpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQ2MCkgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDYxKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0NjIpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQ2MykgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDY0KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0NjUpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQ2NikgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDY3KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0NjgpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQ2OSkgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDZBKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0NkIpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQ2QykgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDZEKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0NkUpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQ2RikgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDcwKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0NzEpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQ3MikgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDczKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0NzQpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQ3NSkgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDc2KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0NzcpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQ3OCkgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNDc5KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDVFLCAweDA0N0EpIH0sIC8qIFdpbmRvd3MgUG93ZXJlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA0NUUsIDB4MDQ3QikgfSwgLyogV2luZG93cyBQb3dlcmVkIFBvY2tldCBQQyAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNEM4KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAyICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNEM5KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAyICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNENBKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAyICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNENCKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAyICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNENDKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAyICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNENEKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAyICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNENFKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAyICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNEQ3KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNEQ4KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNEQ5KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNERBKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNERCKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNERDKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNEREKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNERFKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNERGKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNEUwKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNEUxKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNEUyKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNEUzKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNEU0KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNEU1KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNEU2KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNEU3KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNEU4KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNEU5KSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDQ1RSwgMHgwNEVBKSB9LCAvKiBXaW5kb3dzIFBvd2VyZWQgU21hcnRwaG9uZSAyMDAzICovCisJeyBVU0JfREVWSUNFKDB4MDk2MSwgMHgwMDEwKSB9LCAvKiBQb3J0YXRlYyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDVFMDQsIDB4Q0UwMCkgfSwgLyogU0FHRU0gV2lyZWxlc3MgQXNzaXN0YW50ICovCisJeyBVU0JfREVWSUNFKDB4MDEwNCwgMHgwMEJFKSB9LCAvKiBTb2NrZXQgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwOTMwLCAweDA3MDApIH0sIC8qIFRPU0hJQkEgVVNCIFN5bmMgMDcwMCAqLworCXsgVVNCX0RFVklDRSgweDA5MzAsIDB4MDcwNSkgfSwgLyogVE9TSElCQSBQb2NrZXQgUEMgZTMxMCAqLworCXsgVVNCX0RFVklDRSgweDA5MzAsIDB4MDcwNykgfSwgLyogVE9TSElCQSBQb2NrZXQgUEMgZTMzMCBTZXJpZXMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwOTMwLCAweDA3MDgpIH0sIC8qIFRPU0hJQkEgUG9ja2V0IFBDIGUzNTCgU2VyaWVzICovCisJeyBVU0JfREVWSUNFKDB4MDkzMCwgMHgwNzA2KSB9LCAvKiBUT1NISUJBIFBvY2tldCBQQyBlNzQwICovCisJeyBVU0JfREVWSUNFKDB4MDkzMCwgMHgwNzA5KSB9LCAvKiBUT1NISUJBIFBvY2tldCBQQyBlNzUwIFNlcmllcyAqLworCXsgVVNCX0RFVklDRSgweDA5MzAsIDB4MDcwQSkgfSwgLyogVE9TSElCQSBQb2NrZXQgUEMgZTQwMCBTZXJpZXMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwOTMwLCAweDA3MEIpIH0sIC8qIFRPU0hJQkEgUG9ja2V0IFBDIGU4MDAgU2VyaWVzICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwMENFKSB9LCAvKiBIVEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBMDEpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTAyKSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEEwMykgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBMDQpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTA1KSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEEwNikgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBMDcpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTA4KSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEEwOSkgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBMEEpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTBCKSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEEwQykgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBMEQpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTBFKSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEEwRikgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBMTApIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTExKSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEExMikgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBMTMpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTE0KSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEExNSkgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBMTYpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTE3KSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEExOCkgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBMTkpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTFBKSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEExQikgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBMUMpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTFEKSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEExRSkgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBMUYpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTIwKSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEEyMSkgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBMjIpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTIzKSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEEyNCkgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBMjUpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTI2KSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEEyNykgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBMjgpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTI5KSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEEyQSkgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBMkIpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTJDKSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEEyRCkgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBMkUpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTJGKSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEEzMCkgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBMzEpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTMyKSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEEzMykgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBMzQpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTM1KSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEEzNikgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBMzcpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTM4KSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEEzOSkgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBM0EpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTNCKSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEEzQykgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBM0QpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTNFKSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEEzRikgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBNDApIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTQxKSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE0MikgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBNDMpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTQ0KSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE0NSkgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBNDYpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTQ3KSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE0OCkgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBNDkpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTRBKSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE0QikgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBNEMpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTREKSB9LCAvKiBQb2NrZXRQQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE0RSkgfSwgLyogUG9ja2V0UEMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkI0LCAweDBBNEYpIH0sIC8qIFBvY2tldFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEJCNCwgMHgwQTUwKSB9LCAvKiBIVEMgU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE1MSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE1MikgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE1MykgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE1NCkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE1NSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE1NikgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE1NykgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE1OCkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE1OSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE1QSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE1QikgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE1QykgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE1RCkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE1RSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE1RikgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE2MCkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE2MSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE2MikgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE2MykgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE2NCkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE2NSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE2NikgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE2NykgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE2OCkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE2OSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE2QSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE2QikgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE2QykgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE2RCkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE2RSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE2RikgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE3MCkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE3MSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE3MikgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE3MykgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE3NCkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE3NSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE3NikgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE3NykgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE3OCkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE3OSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE3QSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE3QikgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE3QykgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE3RCkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE3RSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE3RikgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE4MCkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE4MSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE4MikgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE4MykgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE4NCkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE4NSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE4NikgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE4NykgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE4OCkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE4OSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE4QSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE4QikgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE4QykgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE4RCkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE4RSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE4RikgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE5MCkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE5MSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE5MikgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE5MykgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE5NCkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE5NSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE5NikgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE5NykgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE5OCkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE5OSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE5QSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE5QikgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE5QykgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE5RCkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE5RSkgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCQjQsIDB4MEE5RikgfSwgLyogU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDA0MDksIDB4MDBENSkgfSwgLyogTkVDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MDQwOSwgMHgwMEQ2KSB9LCAvKiBORUMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDA5LCAweDAwRDcpIH0sIC8qIE5FQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDA0MDksIDB4ODAyNCkgfSwgLyogTkVDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MDQwOSwgMHg4MDI1KSB9LCAvKiBORUMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNEE0LCAweDAwMTQpIH0sIC8qIEhpdGFjaGkgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwQkY4LCAweDEwMDEpIH0sIC8qIEZ1aml0c3UgU2llbWVucyBDb21wdXRlcnMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwRjk4LCAweDAyMDEpIH0sIC8qIEN5YmVyYmFuayBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDA1MDIsIDB4MTZFMSkgfSwgLyogQWNlciBuMTAgSGFuZGhlbGQgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNTAyLCAweDE2RTMpIH0sIC8qIEFjZXIgbjMwIEhhbmRoZWxkIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MDUwMiwgMHgxNkUyKSB9LCAvKiBBY2VyIG4yMCBIYW5kaGVsZCBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDA1MDIsIDB4MTYzMSkgfSwgLyogYzEwIFNlcmllcyAqLworCXsgVVNCX0RFVklDRSgweDA1MDIsIDB4MTYzMikgfSwgLyogYzIwIFNlcmllcyAqLworCXsgVVNCX0RFVklDRSgweDBCMDUsIDB4OTIwMikgfSwgLyogQVNVUyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCMDUsIDB4NDIwRikgfSwgLyogQVNVUyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCMDUsIDB4NDIwMCkgfSwgLyogQVNVUyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCMDUsIDB4NDIwMSkgfSwgLyogQVNVUyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCMDUsIDB4NDIwMikgfSwgLyogQVNVUyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBCMDUsIDB4OTIwMCkgfSwgLyogQVNVUyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDBDOEUsIDB4NjAwMCkgfSwgLyogQ2Vzc2NvbSBMdXhpYW4gU2VyaWVzICovCisJeyBVU0JfREVWSUNFKDB4MDRBRCwgMHgwMzAxKSB9LCAvKiBVU0IgU3luYyAwMzAxICovCisJeyBVU0JfREVWSUNFKDB4MDRBRCwgMHgwMzAyKSB9LCAvKiBVU0IgU3luYyAwMzAyICovCisJeyBVU0JfREVWSUNFKDB4MDRBRCwgMHgwMzAzKSB9LCAvKiBVU0IgU3luYyAwMzAzICovCisJeyBVU0JfREVWSUNFKDB4MTA2NiwgMHgwMzAwKSB9LCAvKiBFLVRFTiBQM1hYIFBvY2tldCBQQyAqLworCXsgVVNCX0RFVklDRSgweDEwNjYsIDB4MDUwMCkgfSwgLyogRS1URU4gUDVYWCBQb2NrZXQgUEMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgxMDY2LCAweDA2MDApIH0sIC8qIEUtVEVOIFA2WFggUG9ja2V0IFBDICovCisJeyBVU0JfREVWSUNFKDB4MTA2NiwgMHgwNzAwKSB9LCAvKiBFLVRFTiBQN1hYIFBvY2tldCBQQyAqLworCXsgVVNCX0RFVklDRSgweDEwNjYsIDB4MDBDRSkgfSwgLyogRS1URU4gVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwRjRFLCAweDAyMDApIH0sIC8qIEZyZWVkb20gU2NpZW50aWZpYyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDA0QzUsIDB4MTA1OCkgfSwgLyogRlVKSVRTVSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDA0QzUsIDB4MTA3OSkgfSwgLyogRlVKSVRTVSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDA2N0UsIDB4MTAwMSkgfSwgLyogSW50ZXJtZWMgTW9iaWxlIENvbXB1dGVyICovCisJeyBVU0JfREVWSUNFKDB4MDRmMSwgMHgzMDExKSB9LCAvKiBKVkMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNEYxLCAweDMwMTIpIH0sIC8qIEpWQyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDM3MDgsIDB4MjBDRSkgfSwgLyogTGVnZW5kIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MzcwOCwgMHgyMUNFKSB9LCAvKiBMZW5vdm8gVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDNFLCAweDlDMDEpIH0sIC8qIExHRSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDA0REEsIDB4MjUwMCkgfSwgLyogUGFuYXNvbmljIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MzM0MCwgMHgwQjFDKSB9LCAvKiBHZW5lcmljIFBQQyBTdHJvbmdBUk0gKi8KKwl7IFVTQl9ERVZJQ0UoMHgzMzQwLCAweDBFM0EpIH0sIC8qIEdlbmVyaWMgUFBDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MzM0MCwgMHgwRjNBKSB9LCAvKiBHZW5lcmljIFNtYXJ0UGhvbmUgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgzMzQwLCAweDBGMUMpIH0sIC8qIEl0YXV0ZWMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgzMzQwLCAweDEzMjYpIH0sIC8qIEl0YXV0ZWMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgzMzQwLCAweDMzMjYpIH0sIC8qIE1FRElPTiBXaW5vZHdzIE1vYmxlIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MzM0MCwgMHgwMzI2KSB9LCAvKiBNaW8gRGlnaVdhbGtlciAzMzggKi8KKwl7IFVTQl9ERVZJQ0UoMHgzMzQwLCAweDA0MjYpIH0sIC8qIE1pbyBEaWdpV2Fsa2VyIDMzOCAqLworCXsgVVNCX0RFVklDRSgweDMzNDAsIDB4MDExQykgfSwgLyogTWlvIERpZ2lXYWxrZXIgUFBDIFN0cm9uZ0FSTSAqLworCXsgVVNCX0RFVklDRSgweDMzNDAsIDB4MDUzQSkgfSwgLyogTWlvIERpZ2lXYWxrZXIgU21hcnRQaG9uZSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDMzNDAsIDB4MDQzQSkgfSwgLyogTWlvIERpZ2lXYWxrZXIgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgzMzQwLCAweDA3MUMpIH0sIC8qIE1pVEFDIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MzM0MCwgMHgwNTFDKSB9LCAvKiBNaVRBQyBVU0IgU3luYyA1MjggKi8KKwl7IFVTQl9ERVZJQ0UoMHgzMzQwLCAweDIzMjYpIH0sIC8qIFZvYmlzIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MzM0MCwgMHgxOTFDKSB9LCAvKiBZQUtVTU8gVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHg0MTEzLCAweDAyMTApIH0sIC8qIE1vYmlsZSBNZWRpYSBUZWNobm9sb2d5IFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4NDExMywgMHgwMjExKSB9LCAvKiBNb2JpbGUgTWVkaWEgVGVjaG5vbG9neSBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDQxMTMsIDB4MDQwMCkgfSwgLyogTW9iaWxlIE1lZGlhIFRlY2hub2xvZ3kgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHg0MTEzLCAweDA0MTApIH0sIC8qIE1vYmlsZSBNZWRpYSBUZWNobm9sb2d5IFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MENBRCwgMHg5MDAxKSB9LCAvKiBNb3Rvcm9sYSBQb3dlclBhZCBQb2NrZXQgUEOgRGV2aWNlICovCisJeyBVU0JfREVWSUNFKDB4MEM0NCwgMHgwM0EyKSB9LCAvKiBNb3Rvcm9sYSBpREVOIFNtYXJ0cGhvbmUgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNEU4LCAweDY2MTEpIH0sIC8qIFNhbXN1bmcgTUlUcyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDA0RTgsIDB4NjYxMykgfSwgLyogU2Ftc3VuZyBNSVRzIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MDRFOCwgMHg2NjE1KSB9LCAvKiBTYW1zdW5nIE1JVHMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNEU4LCAweDY2MTcpIH0sIC8qIFNhbXN1bmcgTUlUcyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDA0RTgsIDB4NjYxOSkgfSwgLyogU2Ftc3VuZyBNSVRzIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MDRFOCwgMHg2NjFCKSB9LCAvKiBTYW1zdW5nIE1JVHMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNEU4LCAweDVGMDApIH0sIC8qIFNhbXN1bmcgTkVYaU8gVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNEU4LCAweDVGMDEpIH0sIC8qIFNhbXN1bmcgTkVYaU8gVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNEU4LCAweDVGMDIpIH0sIC8qIFNhbXN1bmcgTkVYaU8gVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNEU4LCAweDVGMDMpIH0sIC8qIFNhbXN1bmcgTkVYaU8gVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNEU4LCAweDVGMDQpIH0sIC8qIFNhbXN1bmcgTkVYaU8gVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNEU4LCAweDY2MkUpIH0sIC8qIFNhbXN1bmcgTUlUcyBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDA0RTgsIDB4NjYzMCkgfSwgLyogU2Ftc3VuZyBNSVRzIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MDRFOCwgMHg2NjMyKSB9LCAvKiBTYW1zdW5nIE1JVHMgVVNCIFN5bmMgKi8KKwl7IFVTQl9ERVZJQ0UoMHg0NTA1LCAweDAwMTApIH0sIC8qIFNtYXJ0cGhvbmUgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNUUwLCAweDIwMDApIH0sIC8qIFN5bWJvbCBVU0IgU3luYyAqLworCXsgVVNCX0RFVklDRSgweDA1RTAsIDB4MjAwMSkgfSwgLyogU3ltYm9sIFVTQiBTeW5jIDB4MjAwMSAqLworCXsgVVNCX0RFVklDRSgweDA1RTAsIDB4MjAwMikgfSwgLyogU3ltYm9sIFVTQiBTeW5jIDB4MjAwMiAqLworCXsgVVNCX0RFVklDRSgweDA1RTAsIDB4MjAwMykgfSwgLyogU3ltYm9sIFVTQiBTeW5jIDB4MjAwMyAqLworCXsgVVNCX0RFVklDRSgweDA1RTAsIDB4MjAwNCkgfSwgLyogU3ltYm9sIFVTQiBTeW5jIDB4MjAwNCAqLworCXsgVVNCX0RFVklDRSgweDA1RTAsIDB4MjAwNSkgfSwgLyogU3ltYm9sIFVTQiBTeW5jIDB4MjAwNSAqLworCXsgVVNCX0RFVklDRSgweDA1RTAsIDB4MjAwNikgfSwgLyogU3ltYm9sIFVTQiBTeW5jIDB4MjAwNiAqLworCXsgVVNCX0RFVklDRSgweDA1RTAsIDB4MjAwNykgfSwgLyogU3ltYm9sIFVTQiBTeW5jIDB4MjAwNyAqLworCXsgVVNCX0RFVklDRSgweDA1RTAsIDB4MjAwOCkgfSwgLyogU3ltYm9sIFVTQiBTeW5jIDB4MjAwOCAqLworCXsgVVNCX0RFVklDRSgweDA1RTAsIDB4MjAwOSkgfSwgLyogU3ltYm9sIFVTQiBTeW5jIDB4MjAwOSAqLworCXsgVVNCX0RFVklDRSgweDA1RTAsIDB4MjAwQSkgfSwgLyogU3ltYm9sIFVTQiBTeW5jIDB4MjAwQSAqLworCXsgVVNCX0RFVklDRSgweDExODIsIDB4MTM4OCkgfSwgLyogVkVTIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MDU0MywgMHgwRUQ5KSB9LCAvKiBWaWV3U29uaWMgQ29sb3IgUG9ja2V0IFBDIFYzNSAqLworCXsgVVNCX0RFVklDRSgweDA1NDMsIDB4MTUyNykgfSwgLyogVmlld1NvbmljIENvbG9yIFBvY2tldCBQQyBWMzYgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNTQzLCAweDE1MjkpIH0sIC8qIFZpZXdTb25pYyBDb2xvciBQb2NrZXQgUEMgVjM3ICovCisJeyBVU0JfREVWSUNFKDB4MDU0MywgMHgxNTJCKSB9LCAvKiBWaWV3U29uaWMgQ29sb3IgUG9ja2V0IFBDIFYzOCAqLworCXsgVVNCX0RFVklDRSgweDA1NDMsIDB4MTUyRSkgfSwgLyogVmlld1NvbmljIFBvY2tldCBQQyAqLworCXsgVVNCX0RFVklDRSgweDA1NDMsIDB4MTkyMSkgfSwgLyogVmlld1NvbmljIENvbW11bmljYXRvciBQb2NrZXQgUEMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNTQzLCAweDE5MjIpIH0sIC8qIFZpZXdTb25pYyBTbWFydHBob25lICovCisJeyBVU0JfREVWSUNFKDB4MDU0MywgMHgxOTIzKSB9LCAvKiBWaWV3U29uaWMgUG9ja2V0IFBDIFYzMCAqLworCXsgVVNCX0RFVklDRSgweDA1MzYsIDB4MDFBMCkgfSwgLyogSEhQIFBEVCAqLworCXsgVVNCX0RFVklDRSgweDA5OUUsIDB4MDA1MikgfSwgLyogVHJpbWJsZSBHZW9FeHBsb3JlciAqLworCXsgVVNCX0RFVklDRSgweDA5OUUsIDB4NDAwMCkgfSwgLyogVERTIERhdGEgQ29sbGVjdG9yICovCisJeyBVU0JfREVWSUNFKDB4MEZCOCwgMHgzMDAxKSB9LCAvKiBXaXN0cm9uIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEZCOCwgMHgzMDAyKSB9LCAvKiBXaXN0cm9uIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEZCOCwgMHgzMDAzKSB9LCAvKiBXaXN0cm9uIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MEZCOCwgMHg0MDAxKSB9LCAvKiBXaXN0cm9uIFVTQiBTeW5jICovCisJeyBVU0JfREVWSUNFKDB4MTFEOSwgMHgxMDAzKSB9LCAvKiBSdWdnZWQgUG9ja2V0IFBDIDIwMDMgKi8KKwl7IFVTQl9ERVZJQ0UoMHgxMUQ5LCAweDEwMDIpIH0sIC8qIFJ1Z2dlZCBQb2NrZXQgUEMgMjAwMyAqLworCXsgVVNCX0RFVklDRSgweDIyQjgsIDB4NDIwNCkgfSwgLyogTW90b3JvbGEgTVB4MjAwIFNtYXJ0cGhvbmUgKi8KKwl7IFVTQl9ERVZJQ0UoMHgyMkI4LCAweDQyMTQpIH0sIC8qIE1vdG9yb2xhIE1QYyBHU00gKi8KKwl7IFVTQl9ERVZJQ0UoMHgyMkI4LCAweDQyMjQpIH0sIC8qIE1vdG9yb2xhIE1QeDIyMCBTbWFydHBob25lICovCisJeyBVU0JfREVWSUNFKDB4MjJCOCwgMHg0MjM0KSB9LCAvKiBNb3Rvcm9sYSBNUGMgQ0RNQSAqLworCXsgVVNCX0RFVklDRSgweDIyQjgsIDB4NDI0NCkgfSwgLyogTW90b3JvbGEgTVB4MTAwIFNtYXJ0cGhvbmUgKi8KKwl7IFVTQl9ERVZJQ0UoMHgxMjMxLCAweENFMDEpIH0sIC8qIFVTQiBTeW5jIDAzICovCisJeyBVU0JfREVWSUNFKDB4MTIzMSwgMHhDRTAyKSB9LCAvKiBVU0IgU3luYyAwMyAqLworCXsgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGVybWluYXRpbmcgZW50cnkgKi8KK307CisKK01PRFVMRV9ERVZJQ0VfVEFCTEUgKHVzYiwgaXBhcV9pZF90YWJsZSk7CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBpcGFxX2RyaXZlciA9IHsKKwkub3duZXIgPQlUSElTX01PRFVMRSwKKwkubmFtZSA9CQkiaXBhcSIsCisJLnByb2JlID0JdXNiX3NlcmlhbF9wcm9iZSwKKwkuZGlzY29ubmVjdCA9CXVzYl9zZXJpYWxfZGlzY29ubmVjdCwKKwkuaWRfdGFibGUgPQlpcGFxX2lkX3RhYmxlLAorfTsKKworCisvKiBBbGwgb2YgdGhlIGRldmljZSBpbmZvIG5lZWRlZCBmb3IgdGhlIENvbXBhcSBpUEFRICovCitzdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUgaXBhcV9kZXZpY2UgPSB7CisJLm93bmVyID0JCVRISVNfTU9EVUxFLAorCS5uYW1lID0JCQkiUG9ja2V0UEMgUERBIiwKKwkuaWRfdGFibGUgPQkJaXBhcV9pZF90YWJsZSwKKwkubnVtX2ludGVycnVwdF9pbiA9CU5VTV9ET05UX0NBUkUsCisJLm51bV9idWxrX2luID0JCTEsCisJLm51bV9idWxrX291dCA9CQkxLAorCS5udW1fcG9ydHMgPQkJMSwKKwkub3BlbiA9CQkJaXBhcV9vcGVuLAorCS5jbG9zZSA9CQlpcGFxX2Nsb3NlLAorCS5hdHRhY2ggPQkJaXBhcV9zdGFydHVwLAorCS5zaHV0ZG93biA9CQlpcGFxX3NodXRkb3duLAorCS53cml0ZSA9CQlpcGFxX3dyaXRlLAorCS53cml0ZV9yb29tID0JCWlwYXFfd3JpdGVfcm9vbSwKKwkuY2hhcnNfaW5fYnVmZmVyID0JaXBhcV9jaGFyc19pbl9idWZmZXIsCisJLnJlYWRfYnVsa19jYWxsYmFjayA9CWlwYXFfcmVhZF9idWxrX2NhbGxiYWNrLAorCS53cml0ZV9idWxrX2NhbGxiYWNrID0JaXBhcV93cml0ZV9idWxrX2NhbGxiYWNrLAorfTsKKworc3RhdGljIHNwaW5sb2NrX3QJd3JpdGVfbGlzdF9sb2NrOworc3RhdGljIGludAkJYnl0ZXNfaW47CitzdGF0aWMgaW50CQlieXRlc19vdXQ7CisKK3N0YXRpYyBpbnQgaXBhcV9vcGVuKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsCSpzZXJpYWwgPSBwb3J0LT5zZXJpYWw7CisJc3RydWN0IGlwYXFfcHJpdmF0ZQkqcHJpdjsKKwlzdHJ1Y3QgaXBhcV9wYWNrZXQJKnBrdDsKKwlpbnQJCQlpLCByZXN1bHQgPSAwOworCWludAkJCXJldHJpZXMgPSBLUF9SRVRSSUVTOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlieXRlc19pbiA9IDA7CisJYnl0ZXNfb3V0ID0gMDsKKwlwcml2ID0gKHN0cnVjdCBpcGFxX3ByaXZhdGUgKilrbWFsbG9jKHNpemVvZihzdHJ1Y3QgaXBhcV9wcml2YXRlKSwgR0ZQX0tFUk5FTCk7CisJaWYgKHByaXYgPT0gTlVMTCkgeworCQllcnIoIiVzIC0gT3V0IG9mIG1lbW9yeSIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKwl1c2Jfc2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCwgcHJpdik7CisJcHJpdi0+YWN0aXZlID0gMDsKKwlwcml2LT5xdWV1ZV9sZW4gPSAwOworCXByaXYtPmZyZWVfbGVuID0gMDsKKwlJTklUX0xJU1RfSEVBRCgmcHJpdi0+cXVldWUpOworCUlOSVRfTElTVF9IRUFEKCZwcml2LT5mcmVlbGlzdCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgVVJCREFUQV9RVUVVRV9NQVggLyBQQUNLRVRfU0laRTsgaSsrKSB7CisJCXBrdCA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBpcGFxX3BhY2tldCksIEdGUF9LRVJORUwpOworCQlpZiAocGt0ID09IE5VTEwpIHsKKwkJCWdvdG8gZW5vbWVtOworCQl9CisJCXBrdC0+ZGF0YSA9IGttYWxsb2MoUEFDS0VUX1NJWkUsIEdGUF9LRVJORUwpOworCQlpZiAocGt0LT5kYXRhID09IE5VTEwpIHsKKwkJCWtmcmVlKHBrdCk7CisJCQlnb3RvIGVub21lbTsKKwkJfQorCQlwa3QtPmxlbiA9IDA7CisJCXBrdC0+d3JpdHRlbiA9IDA7CisJCUlOSVRfTElTVF9IRUFEKCZwa3QtPmxpc3QpOworCQlsaXN0X2FkZCgmcGt0LT5saXN0LCAmcHJpdi0+ZnJlZWxpc3QpOworCQlwcml2LT5mcmVlX2xlbiArPSBQQUNLRVRfU0laRTsKKwl9CisKKwkvKgorCSAqIEZvcmNlIGxvdyBsYXRlbmN5IG9uLiBUaGlzIHdpbGwgaW1tZWRpYXRlbHkgcHVzaCBkYXRhIHRvIHRoZSBsaW5lCisJICogZGlzY2lwbGluZSBpbnN0ZWFkIG9mIHF1ZXVlaW5nLgorCSAqLworCisJcG9ydC0+dHR5LT5sb3dfbGF0ZW5jeSA9IDE7CisJcG9ydC0+dHR5LT5yYXcgPSAxOworCXBvcnQtPnR0eS0+cmVhbF9yYXcgPSAxOworCisJLyoKKwkgKiBMb3NlIHRoZSBzbWFsbCBidWZmZXJzIHVzYnNlcmlhbCBwcm92aWRlcy4gTWFrZSBsYXJnZXIgb25lcy4KKwkgKi8KKworCWtmcmVlKHBvcnQtPmJ1bGtfaW5fYnVmZmVyKTsKKwlrZnJlZShwb3J0LT5idWxrX291dF9idWZmZXIpOworCXBvcnQtPmJ1bGtfaW5fYnVmZmVyID0ga21hbGxvYyhVUkJEQVRBX1NJWkUsIEdGUF9LRVJORUwpOworCWlmIChwb3J0LT5idWxrX2luX2J1ZmZlciA9PSBOVUxMKSB7CisJCWdvdG8gZW5vbWVtOworCX0KKwlwb3J0LT5idWxrX291dF9idWZmZXIgPSBrbWFsbG9jKFVSQkRBVEFfU0laRSwgR0ZQX0tFUk5FTCk7CisJaWYgKHBvcnQtPmJ1bGtfb3V0X2J1ZmZlciA9PSBOVUxMKSB7CisJCWtmcmVlKHBvcnQtPmJ1bGtfaW5fYnVmZmVyKTsKKwkJZ290byBlbm9tZW07CisJfQorCXBvcnQtPnJlYWRfdXJiLT50cmFuc2Zlcl9idWZmZXIgPSBwb3J0LT5idWxrX2luX2J1ZmZlcjsKKwlwb3J0LT53cml0ZV91cmItPnRyYW5zZmVyX2J1ZmZlciA9IHBvcnQtPmJ1bGtfb3V0X2J1ZmZlcjsKKwlwb3J0LT5yZWFkX3VyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCA9IFVSQkRBVEFfU0laRTsKKwlwb3J0LT5idWxrX291dF9zaXplID0gcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoID0gVVJCREFUQV9TSVpFOworCQorCS8qIFN0YXJ0IHJlYWRpbmcgZnJvbSB0aGUgZGV2aWNlICovCisJdXNiX2ZpbGxfYnVsa191cmIocG9ydC0+cmVhZF91cmIsIHNlcmlhbC0+ZGV2LCAKKwkJICAgICAgdXNiX3JjdmJ1bGtwaXBlKHNlcmlhbC0+ZGV2LCBwb3J0LT5idWxrX2luX2VuZHBvaW50QWRkcmVzcyksCisJCSAgICAgIHBvcnQtPnJlYWRfdXJiLT50cmFuc2Zlcl9idWZmZXIsIHBvcnQtPnJlYWRfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoLAorCQkgICAgICBpcGFxX3JlYWRfYnVsa19jYWxsYmFjaywgcG9ydCk7CisJcmVzdWx0ID0gdXNiX3N1Ym1pdF91cmIocG9ydC0+cmVhZF91cmIsIEdGUF9LRVJORUwpOworCWlmIChyZXN1bHQpIHsKKwkJZXJyKCIlcyAtIGZhaWxlZCBzdWJtaXR0aW5nIHJlYWQgdXJiLCBlcnJvciAlZCIsIF9fRlVOQ1RJT05fXywgcmVzdWx0KTsKKwkJZ290byBlcnJvcjsKKwl9CisKKwkvKgorCSAqIFNlbmQgb3V0IGNvbnRyb2wgbWVzc2FnZSBvYnNlcnZlZCBpbiB3aW45OCBzbmlmZnMuIE5vdCBzdXJlIHdoYXQKKwkgKiBpdCBkb2VzLCBidXQgZnJvbSBlbXBpcmljYWwgb2JzZXJ2YXRpb25zLCBpdCBzZWVtcyB0aGF0IHRoZSBkZXZpY2UKKwkgKiB3aWxsIHN0YXJ0IHRoZSBjaGF0IHNlcXVlbmNlIG9uY2Ugb25lIG9mIHRoZXNlIG1lc3NhZ2VzIGdldHMKKwkgKiB0aHJvdWdoLiBTaW5jZSB0aGlzIGhhcyBhIHJlYXNvbmFibHkgaGlnaCBmYWlsdXJlIHJhdGUsIHdlIHJldHJ5CisJICogc2V2ZXJhbCB0aW1lcy4KKwkgKi8KKworCXdoaWxlIChyZXRyaWVzLS0pIHsKKwkJcmVzdWx0ID0gdXNiX2NvbnRyb2xfbXNnKHNlcmlhbC0+ZGV2LAorCQkJCXVzYl9zbmRjdHJscGlwZShzZXJpYWwtPmRldiwgMCksIDB4MjIsIDB4MjEsCisJCQkJMHgxLCAwLCBOVUxMLCAwLCAxMDApOworCQlpZiAocmVzdWx0ID09IDApIHsKKwkJCXJldHVybiAwOworCQl9CisJfQorCWVycigiJXMgLSBmYWlsZWQgZG9pbmcgY29udHJvbCB1cmIsIGVycm9yICVkIiwgX19GVU5DVElPTl9fLCByZXN1bHQpOworCWdvdG8gZXJyb3I7CisKK2Vub21lbToKKwlyZXN1bHQgPSAtRU5PTUVNOworCWVycigiJXMgLSBPdXQgb2YgbWVtb3J5IiwgX19GVU5DVElPTl9fKTsKK2Vycm9yOgorCWlwYXFfZGVzdHJveV9saXN0cyhwb3J0KTsKKwlrZnJlZShwcml2KTsKKwlyZXR1cm4gcmVzdWx0OworfQorCisKK3N0YXRpYyB2b2lkIGlwYXFfY2xvc2Uoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbHApCit7CisJc3RydWN0IGlwYXFfcHJpdmF0ZQkqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCQkJIAorCS8qCisJICogc2h1dCBkb3duIGJ1bGsgcmVhZCBhbmQgd3JpdGUKKwkgKi8KKwl1c2Jfa2lsbF91cmIocG9ydC0+d3JpdGVfdXJiKTsKKwl1c2Jfa2lsbF91cmIocG9ydC0+cmVhZF91cmIpOworCWlwYXFfZGVzdHJveV9saXN0cyhwb3J0KTsKKwlrZnJlZShwcml2KTsKKwl1c2Jfc2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCwgTlVMTCk7CisKKwkvKiBVbmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIGlmIHlvdSB3YW50IHRvIHNlZSBzb21lIHN0YXRpc3RpY3MgaW4geW91ciBzeXNsb2cgKi8KKwkvKiBpbmZvICgiQnl0ZXMgSW4gPSAlZCAgQnl0ZXMgT3V0ID0gJWQiLCBieXRlc19pbiwgYnl0ZXNfb3V0KTsgKi8KK30KKworc3RhdGljIHZvaWQgaXBhcV9yZWFkX2J1bGtfY2FsbGJhY2soc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0CSpwb3J0ID0gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKil1cmItPmNvbnRleHQ7CisJc3RydWN0IHR0eV9zdHJ1Y3QJKnR0eTsKKwl1bnNpZ25lZCBjaGFyCQkqZGF0YSA9IHVyYi0+dHJhbnNmZXJfYnVmZmVyOworCWludAkJCWksIHJlc3VsdDsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJaWYgKHVyYi0+c3RhdHVzKSB7CisJCWRiZygiJXMgLSBub256ZXJvIHJlYWQgYnVsayBzdGF0dXMgcmVjZWl2ZWQ6ICVkIiwgX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyk7CisJCXJldHVybjsKKwl9CisKKwl1c2Jfc2VyaWFsX2RlYnVnX2RhdGEoZGVidWcsICZwb3J0LT5kZXYsIF9fRlVOQ1RJT05fXywgdXJiLT5hY3R1YWxfbGVuZ3RoLCBkYXRhKTsKKworCXR0eSA9IHBvcnQtPnR0eTsKKwlpZiAodHR5ICYmIHVyYi0+YWN0dWFsX2xlbmd0aCkgeworCQlmb3IgKGkgPSAwOyBpIDwgdXJiLT5hY3R1YWxfbGVuZ3RoIDsgKytpKSB7CisJCQkvKiBpZiB3ZSBpbnNlcnQgbW9yZSB0aGFuIFRUWV9GTElQQlVGX1NJWkUgY2hhcmFjdGVycywgd2UgZHJvcCB0aGVtLiAqLworCQkJaWYodHR5LT5mbGlwLmNvdW50ID49IFRUWV9GTElQQlVGX1NJWkUpIHsKKwkJCQl0dHlfZmxpcF9idWZmZXJfcHVzaCh0dHkpOworCQkJfQorCQkJLyogdGhpcyBkb2Vzbid0IGFjdHVhbGx5IHB1c2ggdGhlIGRhdGEgdGhyb3VnaCB1bmxlc3MgdHR5LT5sb3dfbGF0ZW5jeSBpcyBzZXQgKi8KKwkJCXR0eV9pbnNlcnRfZmxpcF9jaGFyKHR0eSwgZGF0YVtpXSwgMCk7CisJCX0KKwkJdHR5X2ZsaXBfYnVmZmVyX3B1c2godHR5KTsKKwkJYnl0ZXNfaW4gKz0gdXJiLT5hY3R1YWxfbGVuZ3RoOworCX0KKworCS8qIENvbnRpbnVlIHRyeWluZyB0byBhbHdheXMgcmVhZCAgKi8KKwl1c2JfZmlsbF9idWxrX3VyYihwb3J0LT5yZWFkX3VyYiwgcG9ydC0+c2VyaWFsLT5kZXYsIAorCQkgICAgICB1c2JfcmN2YnVsa3BpcGUocG9ydC0+c2VyaWFsLT5kZXYsIHBvcnQtPmJ1bGtfaW5fZW5kcG9pbnRBZGRyZXNzKSwKKwkJICAgICAgcG9ydC0+cmVhZF91cmItPnRyYW5zZmVyX2J1ZmZlciwgcG9ydC0+cmVhZF91cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGgsCisJCSAgICAgIGlwYXFfcmVhZF9idWxrX2NhbGxiYWNrLCBwb3J0KTsKKwlyZXN1bHQgPSB1c2Jfc3VibWl0X3VyYihwb3J0LT5yZWFkX3VyYiwgR0ZQX0FUT01JQyk7CisJaWYgKHJlc3VsdCkKKwkJZXJyKCIlcyAtIGZhaWxlZCByZXN1Ym1pdHRpbmcgcmVhZCB1cmIsIGVycm9yICVkIiwgX19GVU5DVElPTl9fLCByZXN1bHQpOworCXJldHVybjsKK30KKworc3RhdGljIGludCBpcGFxX3dyaXRlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZiwKKwkJICAgICAgIGludCBjb3VudCkKK3sKKwljb25zdCB1bnNpZ25lZCBjaGFyCSpjdXJyZW50X3Bvc2l0aW9uID0gYnVmOworCWludAkJCWJ5dGVzX3NlbnQgPSAwOworCWludAkJCXRyYW5zZmVyX3NpemU7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCXdoaWxlIChjb3VudCA+IDApIHsKKwkJdHJhbnNmZXJfc2l6ZSA9IG1pbihjb3VudCwgUEFDS0VUX1NJWkUpOworCQlpZiAoaXBhcV93cml0ZV9idWxrKHBvcnQsIGN1cnJlbnRfcG9zaXRpb24sIHRyYW5zZmVyX3NpemUpKSB7CisJCQlicmVhazsKKwkJfQorCQljdXJyZW50X3Bvc2l0aW9uICs9IHRyYW5zZmVyX3NpemU7CisJCWJ5dGVzX3NlbnQgKz0gdHJhbnNmZXJfc2l6ZTsKKwkJY291bnQgLT0gdHJhbnNmZXJfc2l6ZTsKKwkJYnl0ZXNfb3V0ICs9IHRyYW5zZmVyX3NpemU7CisJfQorCisJcmV0dXJuIGJ5dGVzX3NlbnQ7Cit9IAorCitzdGF0aWMgaW50IGlwYXFfd3JpdGVfYnVsayhzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsCisJCQkgICBpbnQgY291bnQpCit7CisJc3RydWN0IGlwYXFfcHJpdmF0ZQkqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlzdHJ1Y3QgaXBhcV9wYWNrZXQJKnBrdCA9IE5VTEw7CisJaW50CQkJcmVzdWx0ID0gMDsKKwl1bnNpZ25lZCBsb25nCQlmbGFnczsKKworCWlmIChwcml2LT5mcmVlX2xlbiA8PSAwKSB7CisJCWRiZygiJXMgLSB3ZSdyZSBzdHVmZmVkIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuIC1FQUdBSU47CisJfQorCisJc3Bpbl9sb2NrX2lycXNhdmUoJndyaXRlX2xpc3RfbG9jaywgZmxhZ3MpOworCWlmICghbGlzdF9lbXB0eSgmcHJpdi0+ZnJlZWxpc3QpKSB7CisJCXBrdCA9IGxpc3RfZW50cnkocHJpdi0+ZnJlZWxpc3QubmV4dCwgc3RydWN0IGlwYXFfcGFja2V0LCBsaXN0KTsKKwkJbGlzdF9kZWwoJnBrdC0+bGlzdCk7CisJCXByaXYtPmZyZWVfbGVuIC09IFBBQ0tFVF9TSVpFOworCX0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ3cml0ZV9saXN0X2xvY2ssIGZsYWdzKTsKKwlpZiAocGt0ID09IE5VTEwpIHsKKwkJZGJnKCIlcyAtIHdlJ3JlIHN0dWZmZWQiLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm4gLUVBR0FJTjsKKwl9CisKKwltZW1jcHkocGt0LT5kYXRhLCBidWYsIGNvdW50KTsKKwl1c2Jfc2VyaWFsX2RlYnVnX2RhdGEoZGVidWcsICZwb3J0LT5kZXYsIF9fRlVOQ1RJT05fXywgY291bnQsIHBrdC0+ZGF0YSk7CisKKwlwa3QtPmxlbiA9IGNvdW50OworCXBrdC0+d3JpdHRlbiA9IDA7CisJc3Bpbl9sb2NrX2lycXNhdmUoJndyaXRlX2xpc3RfbG9jaywgZmxhZ3MpOworCWxpc3RfYWRkX3RhaWwoJnBrdC0+bGlzdCwgJnByaXYtPnF1ZXVlKTsKKwlwcml2LT5xdWV1ZV9sZW4gKz0gY291bnQ7CisJaWYgKHByaXYtPmFjdGl2ZSA9PSAwKSB7CisJCXByaXYtPmFjdGl2ZSA9IDE7CisJCWlwYXFfd3JpdGVfZ2F0aGVyKHBvcnQpOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ3cml0ZV9saXN0X2xvY2ssIGZsYWdzKTsKKwkJcmVzdWx0ID0gdXNiX3N1Ym1pdF91cmIocG9ydC0+d3JpdGVfdXJiLCBHRlBfQVRPTUlDKTsKKwkJaWYgKHJlc3VsdCkgeworCQkJZXJyKCIlcyAtIGZhaWxlZCBzdWJtaXR0aW5nIHdyaXRlIHVyYiwgZXJyb3IgJWQiLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisJCX0KKwl9IGVsc2UgeworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ3cml0ZV9saXN0X2xvY2ssIGZsYWdzKTsKKwl9CisJcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIHZvaWQgaXBhcV93cml0ZV9nYXRoZXIoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKK3sKKwlzdHJ1Y3QgaXBhcV9wcml2YXRlCSpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXN0cnVjdCB1c2Jfc2VyaWFsCSpzZXJpYWwgPSBwb3J0LT5zZXJpYWw7CisJaW50CQkJY291bnQsIHJvb207CisJc3RydWN0IGlwYXFfcGFja2V0CSpwa3QsICp0bXA7CisJc3RydWN0IHVyYgkJKnVyYiA9IHBvcnQtPndyaXRlX3VyYjsKKworCWlmICh1cmItPnN0YXR1cyA9PSAtRUlOUFJPR1JFU1MpIHsKKwkJLyogU2hvdWxkIG5ldmVyIGhhcHBlbiAqLworCQllcnIoIiVzIC0gZmx1c2hpbmcgd2hpbGUgdXJiIGlzIGFjdGl2ZSAhIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuOworCX0KKwlyb29tID0gVVJCREFUQV9TSVpFOworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwa3QsIHRtcCwgJnByaXYtPnF1ZXVlLCBsaXN0KSB7CisJCWNvdW50ID0gbWluKHJvb20sIChpbnQpKHBrdC0+bGVuIC0gcGt0LT53cml0dGVuKSk7CisJCW1lbWNweSh1cmItPnRyYW5zZmVyX2J1ZmZlciArIChVUkJEQVRBX1NJWkUgLSByb29tKSwKKwkJICAgICAgIHBrdC0+ZGF0YSArIHBrdC0+d3JpdHRlbiwgY291bnQpOworCQlyb29tIC09IGNvdW50OworCQlwa3QtPndyaXR0ZW4gKz0gY291bnQ7CisJCXByaXYtPnF1ZXVlX2xlbiAtPSBjb3VudDsKKwkJaWYgKHBrdC0+d3JpdHRlbiA9PSBwa3QtPmxlbikgeworCQkJbGlzdF9tb3ZlKCZwa3QtPmxpc3QsICZwcml2LT5mcmVlbGlzdCk7CisJCQlwcml2LT5mcmVlX2xlbiArPSBQQUNLRVRfU0laRTsKKwkJfQorCQlpZiAocm9vbSA9PSAwKSB7CisJCQlicmVhazsKKwkJfQorCX0KKworCWNvdW50ID0gVVJCREFUQV9TSVpFIC0gcm9vbTsKKwl1c2JfZmlsbF9idWxrX3VyYihwb3J0LT53cml0ZV91cmIsIHNlcmlhbC0+ZGV2LCAKKwkJICAgICAgdXNiX3NuZGJ1bGtwaXBlKHNlcmlhbC0+ZGV2LCBwb3J0LT5idWxrX291dF9lbmRwb2ludEFkZHJlc3MpLAorCQkgICAgICBwb3J0LT53cml0ZV91cmItPnRyYW5zZmVyX2J1ZmZlciwgY291bnQsIGlwYXFfd3JpdGVfYnVsa19jYWxsYmFjaywKKwkJICAgICAgcG9ydCk7CisJcmV0dXJuOworfQorCitzdGF0aWMgdm9pZCBpcGFxX3dyaXRlX2J1bGtfY2FsbGJhY2soc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0CSpwb3J0ID0gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKil1cmItPmNvbnRleHQ7CisJc3RydWN0IGlwYXFfcHJpdmF0ZQkqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwl1bnNpZ25lZCBsb25nCQlmbGFnczsKKwlpbnQJCQlyZXN1bHQ7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKwkKKwlpZiAodXJiLT5zdGF0dXMpIHsKKwkJZGJnKCIlcyAtIG5vbnplcm8gd3JpdGUgYnVsayBzdGF0dXMgcmVjZWl2ZWQ6ICVkIiwgX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyk7CisJfQorCisJc3Bpbl9sb2NrX2lycXNhdmUoJndyaXRlX2xpc3RfbG9jaywgZmxhZ3MpOworCWlmICghbGlzdF9lbXB0eSgmcHJpdi0+cXVldWUpKSB7CisJCWlwYXFfd3JpdGVfZ2F0aGVyKHBvcnQpOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ3cml0ZV9saXN0X2xvY2ssIGZsYWdzKTsKKwkJcmVzdWx0ID0gdXNiX3N1Ym1pdF91cmIocG9ydC0+d3JpdGVfdXJiLCBHRlBfQVRPTUlDKTsKKwkJaWYgKHJlc3VsdCkgeworCQkJZXJyKCIlcyAtIGZhaWxlZCBzdWJtaXR0aW5nIHdyaXRlIHVyYiwgZXJyb3IgJWQiLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisJCX0KKwl9IGVsc2UgeworCQlwcml2LT5hY3RpdmUgPSAwOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ3cml0ZV9saXN0X2xvY2ssIGZsYWdzKTsKKwl9CisKKwlzY2hlZHVsZV93b3JrKCZwb3J0LT53b3JrKTsKK30KKworc3RhdGljIGludCBpcGFxX3dyaXRlX3Jvb20oc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKK3sKKwlzdHJ1Y3QgaXBhcV9wcml2YXRlCSpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCisJZGJnKCIlcyAtIGZyZWVsZW4gJWQiLCBfX0ZVTkNUSU9OX18sIHByaXYtPmZyZWVfbGVuKTsKKwlyZXR1cm4gcHJpdi0+ZnJlZV9sZW47Cit9CisKK3N0YXRpYyBpbnQgaXBhcV9jaGFyc19pbl9idWZmZXIoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKK3sKKwlzdHJ1Y3QgaXBhcV9wcml2YXRlCSpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCisJZGJnKCIlcyAtIHF1ZXVlbGVuICVkIiwgX19GVU5DVElPTl9fLCBwcml2LT5xdWV1ZV9sZW4pOworCXJldHVybiBwcml2LT5xdWV1ZV9sZW47Cit9CisKK3N0YXRpYyB2b2lkIGlwYXFfZGVzdHJveV9saXN0cyhzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCBpcGFxX3ByaXZhdGUJKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJc3RydWN0IGlwYXFfcGFja2V0CSpwa3QsICp0bXA7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocGt0LCB0bXAsICZwcml2LT5xdWV1ZSwgbGlzdCkgeworCQlrZnJlZShwa3QtPmRhdGEpOworCQlrZnJlZShwa3QpOworCX0KKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocGt0LCB0bXAsICZwcml2LT5mcmVlbGlzdCwgbGlzdCkgeworCQlrZnJlZShwa3QtPmRhdGEpOworCQlrZnJlZShwa3QpOworCX0KK30KKworCitzdGF0aWMgaW50IGlwYXFfc3RhcnR1cChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQoreworCWRiZygiJXMiLCBfX0ZVTkNUSU9OX18pOworCWlmIChzZXJpYWwtPmRldi0+YWN0Y29uZmlnLT5kZXNjLmJDb25maWd1cmF0aW9uVmFsdWUgIT0gMSkgeworCQllcnIoImFjdGl2ZSBjb25maWcgIyVkICE9IDEgPz8iLAorCQkJc2VyaWFsLT5kZXYtPmFjdGNvbmZpZy0+ZGVzYy5iQ29uZmlndXJhdGlvblZhbHVlKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCXJldHVybiB1c2JfcmVzZXRfY29uZmlndXJhdGlvbiAoc2VyaWFsLT5kZXYpOworfQorCitzdGF0aWMgdm9pZCBpcGFxX3NodXRkb3duKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7CisJZGJnKCIlcyIsIF9fRlVOQ1RJT05fXyk7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGlwYXFfaW5pdCh2b2lkKQoreworCWludCByZXR2YWw7CisJc3Bpbl9sb2NrX2luaXQoJndyaXRlX2xpc3RfbG9jayk7CisJcmV0dmFsID0gdXNiX3NlcmlhbF9yZWdpc3RlcigmaXBhcV9kZXZpY2UpOworCWlmIChyZXR2YWwpIAorCQlnb3RvIGZhaWxlZF91c2Jfc2VyaWFsX3JlZ2lzdGVyOworCWluZm8oRFJJVkVSX0RFU0MgIiAiIERSSVZFUl9WRVJTSU9OKTsKKwlpZiAodmVuZG9yKSB7CisJCWlwYXFfaWRfdGFibGVbMF0uaWRWZW5kb3IgPSB2ZW5kb3I7CisJCWlwYXFfaWRfdGFibGVbMF0uaWRQcm9kdWN0ID0gcHJvZHVjdDsKKwl9CisJcmV0dmFsID0gdXNiX3JlZ2lzdGVyKCZpcGFxX2RyaXZlcik7CisJaWYgKHJldHZhbCkKKwkJZ290byBmYWlsZWRfdXNiX3JlZ2lzdGVyOworCQkgIAorCXJldHVybiAwOworZmFpbGVkX3VzYl9yZWdpc3RlcjoKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIoJmlwYXFfZGV2aWNlKTsKK2ZhaWxlZF91c2Jfc2VyaWFsX3JlZ2lzdGVyOgorCXJldHVybiByZXR2YWw7Cit9CisKKworc3RhdGljIHZvaWQgX19leGl0IGlwYXFfZXhpdCh2b2lkKQoreworCXVzYl9kZXJlZ2lzdGVyKCZpcGFxX2RyaXZlcik7CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyKCZpcGFxX2RldmljZSk7Cit9CisKKworbW9kdWxlX2luaXQoaXBhcV9pbml0KTsKK21vZHVsZV9leGl0KGlwYXFfZXhpdCk7CisKK01PRFVMRV9BVVRIT1IoIERSSVZFUl9BVVRIT1IgKTsKK01PRFVMRV9ERVNDUklQVElPTiggRFJJVkVSX0RFU0MgKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKKworbW9kdWxlX3BhcmFtKGRlYnVnLCBib29sLCBTX0lSVUdPIHwgU19JV1VTUik7CitNT0RVTEVfUEFSTV9ERVNDKGRlYnVnLCAiRGVidWcgZW5hYmxlZCBvciBub3QiKTsKKworbW9kdWxlX3BhcmFtKHZlbmRvciwgdXNob3J0LCAwKTsKK01PRFVMRV9QQVJNX0RFU0ModmVuZG9yLCAiVXNlciBzcGVjaWZpZWQgVVNCIGlkVmVuZG9yIik7CisKK21vZHVsZV9wYXJhbShwcm9kdWN0LCB1c2hvcnQsIDApOworTU9EVUxFX1BBUk1fREVTQyhwcm9kdWN0LCAiVXNlciBzcGVjaWZpZWQgVVNCIGlkUHJvZHVjdCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2lwYXEuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pcGFxLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmI5MDM1OQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pcGFxLmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIFVTQiBDb21wYXEgaVBBUSBkcml2ZXIKKyAqCisgKglDb3B5cmlnaHQgKEMpIDIwMDEgLSAyMDAyCisgKgkgICAgR2FuZXNoIFZhcmFkYXJhamFuIDxnYW5lc2hAdmVyaXRhcy5jb20+CisgKgorICoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqCWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKgl0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICoJKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKi8KKworI2lmbmRlZiBfX0xJTlVYX1VTQl9TRVJJQUxfSVBBUV9ICisjZGVmaW5lIF9fTElOVVhfVVNCX1NFUklBTF9JUEFRX0gKKworLyoKKyAqIFNpbmNlIHdlIGNhbid0IHF1ZXVlIG91ciBidWxrIHdyaXRlIHVyYnMgKGRvbid0IGtub3cgd2h5IC0gaXQganVzdAorICogZG9lc24ndCB3b3JrKSwgd2UgY2FuIHNlbmQgZG93biBvbmx5IG9uZSB3cml0ZSB1cmIgYXQgYSB0aW1lLiBUaGUgc2ltcGxpc3RpYworICogYXBwcm9hY2ggdGFrZW4gYnkgdGhlIGdlbmVyaWMgdXNic2VyaWFsIGRyaXZlciB3aWxsIHdvcmssIGJ1dCBpdCdzIG5vdCBnb29kCisgKiBmb3IgcGVyZm9ybWFuY2UuIFRoZXJlZm9yZSwgd2UgYnVmZmVyIHVwdG8gVVJCREFUQV9RVUVVRV9NQVggYnl0ZXMgb2Ygd3JpdGUKKyAqIHJlcXVlc3RzIGNvbWluZyBmcm9tIHRoZSBsaW5lIGRpc2NpcGxpbmUuIFRoaXMgaXMgZG9uZSBieSBjaGFpbmluZyB0aGVtCisgKiBpbiBsaXN0cyBvZiBzdHJ1Y3QgaXBhcV9wYWNrZXQsIGVhY2ggcGFja2V0IGhvbGRpbmcgYSBtYXhpbXVtIG9mCisgKiBQQUNLRVRfU0laRSBieXRlcy4KKyAqCisgKiBpcGFxX3dyaXRlKCkgY2FuIGJlIGNhbGxlZCBmcm9tIGJvdHRvbSBoYWxmIGNvbnRleHQ7IGhlbmNlIHdlIGNhbid0CisgKiBhbGxvY2F0ZSBtZW1vcnkgZm9yIHBhY2tldHMgdGhlcmUuIFNvIHdlIGluaXRpYWxpemUgYSBwb29sIG9mIHBhY2tldHMgYXQKKyAqIHRoZSBmaXJzdCBvcGVuIGFuZCBtYWludGFpbiBhIGZyZWVsaXN0LgorICoKKyAqIFRoZSB2YWx1ZSBvZiBQQUNLRVRfU0laRSB3YXMgZW1waXJpY2FsbHkgZGV0ZXJtaW5lZCBieQorICogY2hlY2tpbmcgdGhlIG1heGltdW0gd3JpdGUgc2l6ZXMgc2VudCBkb3duIGJ5IHRoZSBwcHAgbGRpc2MuCisgKiBVUkJEQVRBX1FVRVVFX01BWCBpcyBzZXQgdG8gNjRLLCB3aGljaCBpcyB0aGUgbWF4aW11bSBUQ1Agd2luZG93IHNpemUuCisgKi8KKworc3RydWN0IGlwYXFfcGFja2V0IHsKKwljaGFyCQkJKmRhdGE7CisJc2l6ZV90CQkJbGVuOworCXNpemVfdAkJCXdyaXR0ZW47CisJc3RydWN0IGxpc3RfaGVhZAlsaXN0OworfTsKKworc3RydWN0IGlwYXFfcHJpdmF0ZSB7CisJaW50CQkJYWN0aXZlOworCWludAkJCXF1ZXVlX2xlbjsKKwlpbnQJCQlmcmVlX2xlbjsKKwlzdHJ1Y3QgbGlzdF9oZWFkCXF1ZXVlOworCXN0cnVjdCBsaXN0X2hlYWQJZnJlZWxpc3Q7Cit9OworCisjZGVmaW5lIFVSQkRBVEFfU0laRQkJNDA5NgorI2RlZmluZSBVUkJEQVRBX1FVRVVFX01BWAkoNjQgKiAxMDI0KQorI2RlZmluZSBQQUNLRVRfU0laRQkJMjU2CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2lwdy5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lwdy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExMTA1ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvaXB3LmMKQEAgLTAsMCArMSw0OTEgQEAKKy8qCisgKiBJUFdpcmVsZXNzIDNHIFVNVFMgVEREIE1vZGVtIGRyaXZlciAoVVNCIGNvbm5lY3RlZCkKKyAqCisgKiAgIENvcHlyaWdodCAoQykgMjAwNCBSb2VsZiBEaWVkZXJpY2tzIDxyb2VsZmRAaW5ldC5jby56YT4KKyAqICAgQ29weXJpZ2h0IChDKSAyMDA0IEdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ0Brcm9haC5jb20+CisgKgorICogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIEFsbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZGV2aWNlIHdhcyBhY3F1aXJlZCB1c2luZyBTbm9vcHlQcm8KKyAqIG9uIE1TRlQncyBPL1MsIGFuZCBleGFtaW5nIHRoZSBNU0ZUIGRyaXZlcnMnIGRlYnVnIG91dHB1dCAKKyAqIChpbnNhbmVseSBsZWZ0IF9vbl8gaW4gdGhlIGVuZHVzZXIgdmVyc2lvbikKKyAqCisgKiBJdCB3YXMgd3JpdHRlbiBvdXQgb2YgZnJ1c3RyYXRpb24gd2l0aCB0aGUgSVBXaXJlbGVzcyBVU0IgbW9kZW0KKyAqIHN1cHBsaWVkIGJ5IEF4aXR5M0cvU2VudGVjaCBTb3V0aCBBZnJpY2Egbm90IHN1cHBvcnRpbmcKKyAqIExpbnV4IHdoYXRzb2V2ZXIuCisgKgorICogTm9ib2R5IHByb3ZpZGVkIGFueSBwcm9wcmlldGFyeSBpbmZvcm1hdGlvbiB0aGF0IHdhcyBub3QgYWxyZWFkeSAKKyAqIGF2YWlsYWJsZSBmb3IgdGhpcyBkZXZpY2UuCisgKiAKKyAqIFRoZSBtb2RlbSBhZGhlcmVzIHRvIHRoZSAiM0dQUCBUUyAgMjcuMDA3IEFUIGNvbW1hbmQgc2V0IGZvciAzRyAKKyAqIFVzZXIgRXF1aXBtZW50IChVRSkiIHN0YW5kYXJkLCBhdmFpbGFibGUgZnJvbSAKKyAqIGh0dHA6Ly93d3cuM2dwcC5vcmcvZnRwL1NwZWNzL2h0bWwtaW5mby8yNzAwNy5odG0KKyAqCisgKiBUaGUgY29kZSB3YXMgb25seSB0ZXN0ZWQgdGhlIElQV2lyZWxlc3MgaGFuZGhlbGQgbW9kZW0gZGlzdHJpYnV0ZWQKKyAqIGluIFNvdXRoIEFmcmljYSBieSBTZW50ZWNoLgorICogCisgKiBJdCBtYXkgd29yayBmb3IgV29vc2ggSW5jIGluIC5ueiB0b28sIGFzIGl0IGFwcGVhcnMgdGhleSB1c2UgdGhlCisgKiBzYW1lIGtpdC4KKyAqCisgKiBUaGVyZSBpcyBzdGlsbCBzb21lIHdvcmsgdG8gYmUgZG9uZSBpbiB0ZXJtcyBvZiBoYW5kbGluZyAKKyAqIERDRCwgRFRSLCBSVFMsIENUUyB3aGljaCBhcmUgY3VycmVudGx5IGZha2VkLgorICogSXQncyBnb29kIGVub3VnaCBmb3IgUFBQIGF0IHRoaXMgcG9pbnQuIEl0J3MgYmFzZWQgb2ZmIGFsbCBraW5kcyBvZgorICogY29kZSBmb3VuZCBpbiB1c2Ivc2VyaWFsIGFuZCB1c2IvY2xhc3MKKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC90dHkuaD4KKyNpbmNsdWRlIDxsaW51eC90dHlfZmxpcC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvdXNiLmg+CisjaW5jbHVkZSA8bGludXgvdXNiLmg+CisjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KKyNpbmNsdWRlICJ1c2Itc2VyaWFsLmgiCisKKy8qCisgKiBWZXJzaW9uIEluZm9ybWF0aW9uCisgKi8KKyNkZWZpbmUgRFJJVkVSX1ZFUlNJT04JInYwLjMiCisjZGVmaW5lIERSSVZFUl9BVVRIT1IJIlJvZWxmIERpZWRlcmlja3MiCisjZGVmaW5lIERSSVZFUl9ERVNDCSJJUFdpcmVsZXNzIHR0eSBkcml2ZXIiCisKKyNkZWZpbmUgSVBXX1RUWV9NQUpPUgkyNDAJLyogcmVhbCBkZXZpY2Ugbm9kZSBtYWpvciBpZCwgZXhwZXJpbWVudGFsIHJhbmdlICovCisjZGVmaW5lIElQV19UVFlfTUlOT1JTCTI1NgkvKiB3ZSBzdXBwb3J0IDI1NiBkZXZpY2VzLCBkdW5ubyB3aHksIGl0J2QgYmUgaW5zYW5lIDopICovCisKKyNkZWZpbmUgVVNCX0lQV19NQUdJQwkweDZkMDIJLyogbWFnaWMgbnVtYmVyIGZvciBpcHcgc3RydWN0ICovCisKKworLyogTWVzc2FnZSBzaXplcyAqLworI2RlZmluZSBFVkVOVF9CVUZGRVJfU0laRQkweEZGCisjZGVmaW5lIENIQVIySU5UMTYoYzEsYzApCSgoKHUzMikoKGMxKSAmIDB4ZmYpIDw8IDgpICsgKHUzMikoKGMwKSAmIDB4ZmYpKQorI2RlZmluZSBOVU1fQlVMS19VUkJTCQkyNAorI2RlZmluZSBOVU1fQ09OVFJPTF9VUkJTCTE2CisKKy8qIHZlbmRvci9wcm9kdWN0IHBhaXJzIHRoYXQgYXJlIGtub3duIHdvcmsgd2l0aCB0aGlzIGRyaXZlciovCisjZGVmaW5lIElQV19WSUQJCTB4MGJjMworI2RlZmluZSBJUFdfUElECQkweDAwMDEKKworCisvKiBWZW5kb3IgY29tbWFuZHM6ICovCisKKy8qIGJhdWQgcmF0ZXMgKi8KK2VudW0geworCWlwd19zaW9fYjI1NjAwMCA9IDB4MDAwZSwKKwlpcHdfc2lvX2IxMjgwMDAgPSAweDAwMWQsCisJaXB3X3Npb19iMTE1MjAwID0gMHgwMDIwLAorCWlwd19zaW9fYjU3NjAwICA9IDB4MDA0MCwKKwlpcHdfc2lvX2I1NjAwMCAgPSAweDAwNDIsCisJaXB3X3Npb19iMzg0MDAgID0gMHgwMDYwLAorCWlwd19zaW9fYjE5MjAwICA9IDB4MDBjMCwKKwlpcHdfc2lvX2IxNDQwMCAgPSAweDAxMDAsCisJaXB3X3Npb19iOTYwMCAgID0gMHgwMTgwLAorCWlwd19zaW9fYjQ4MDAgICA9IDB4MDMwMCwKKwlpcHdfc2lvX2IyNDAwICAgPSAweDA2MDAsCisJaXB3X3Npb19iMTIwMCAgID0gMHgwYzAwLAorCWlwd19zaW9fYjYwMCAgICA9IDB4MTgwMAorfTsKKworLyogZGF0YSBiaXRzICovCisjZGVmaW5lIGlwd19kdGJfNwkJMHg3MDAKKyNkZWZpbmUgaXB3X2R0Yl84CQkweDgxMAkvLyBvayBzbyB0aGUgZGVmaW5lIGlzIG1pc2xlYWRpbmcsIEkga25vdywgYnV0IGZvcmNlcyA4LG4sMQorCQkJCQkvLyBJIG1lYW4sIGlzIHRoZXJlIGEgcG9pbnQgdG8gYW55IG90aGVyIHNldHRpbmcgdGhlc2UgZGF5cz8gOikJCisKKy8qIHVzYiBjb250cm9sIHJlcXVlc3QgdHlwZXMgOiAqLworI2RlZmluZSBJUFdfU0lPX1JYQ1RMCQkweDAwCS8vIGNvbnRyb2wgYnVsayByeCBjaGFubmVsIHRyYW5zbWlzc2lvbnMsIHZhbHVlPTEvMCAob24vb2ZmKQorI2RlZmluZSBJUFdfU0lPX1NFVF9CQVVECTB4MDEJLy8gc2V0IGJhdWQsIHZhbHVlPXJlcXVlc3RlZCBpcHdfc2lvX2J4eHh4CisjZGVmaW5lIElQV19TSU9fU0VUX0xJTkUJMHgwMwkvLyBzZXQgZGF0YWJpdHMsIHBhcml0eS4gdmFsdWU9aXB3X2R0Yl94CisjZGVmaW5lIElQV19TSU9fU0VUX1BJTgkJMHgwMwkvLyBzZXQvY2xlYXIgZHRyL3J0cyB2YWx1ZT1pcHdfcGluX3h4eAorI2RlZmluZSBJUFdfU0lPX1BPTEwJCTB4MDgJLy8gZ2V0IHNlcmlhbCBwb3J0IHN0YXR1cyBieXRlLCBjYWxsIHdpdGggdmFsdWU9MAorI2RlZmluZSBJUFdfU0lPX0lOSVQJCTB4MTEJLy8gaW5pdGlhbGl6ZXMgPyB2YWx1ZT0wIChhcHBlYXJzIGFzIGZpcnN0IHRoaW5nIHRvZG8gb24gb3BlbikKKyNkZWZpbmUgSVBXX1NJT19QVVJHRQkJMHgxMgkvLyBwdXJnZSBhbGwgdHJhbnNtaXNzaW9ucz8sIGNhbGwgd2l0aCB2YWx1ZT1udW1jaGFyX3RvX3B1cmdlCisjZGVmaW5lIElQV19TSU9fSEFOREZMT1cJMHgxMwkvLyBzZXQgeG9uL3hvZmYgbGltaXRzIHZhbHVlPTAsIGFuZCBhIGJ1ZmZlciBvZiAweDEwIGJ5dGVzCisjZGVmaW5lIElQV19TSU9fU0VUQ0hBUlMJMHgxMwkvLyBzZXQgdGhlIGZsb3djb250cm9sIHNwZWNpYWwgY2hhcnMsIHZhbHVlPTAsIGJ1Zj02IGJ5dGVzLCAKKwkJCQkJLy8gbGFzdCAyIGJ5dGVzIGNvbnRhaW4gZmxvd2NvbnRyb2wgY2hhcnMgZS5nLiAwMCAwMCAwMCAwMCAxMSAxMworCisvKiB2YWx1ZXMgdXNlZCBmb3IgcmVxdWVzdCBJUFdfU0lPX1NFVF9QSU4gKi8KKyNkZWZpbmUgSVBXX1BJTl9TRVREVFIJCTB4MTAxCisjZGVmaW5lIElQV19QSU5fU0VUUlRTCQkweDIwMgorI2RlZmluZSBJUFdfUElOX0NMUkRUUgkJMHgxMDAKKyNkZWZpbmUgSVBXX1BJTl9DTFJSVFMJCTB4MjAwIC8vIHVuY29uZmlybWVkCisKKy8qIHZhbHVlcyB1c2VkIGZvciByZXF1ZXN0IElQV19TSU9fUlhDVEwgKi8KKyNkZWZpbmUgSVBXX1JYQlVMS19PTgkJMQorI2RlZmluZSBJUFdfUlhCVUxLX09GRgkJMAorCisvKiB2YXJpb3VzIDE2IGJ5dGUgaGFyZGNvZGVkIHRyYW5zZmVyYnVmZmVycyB1c2VkIGJ5IGZsb3cgY29udHJvbCAqLworI2RlZmluZSBJUFdfQllURVNfRkxPV0lOSVQJeyAweDAxLCAwLCAwLCAwLCAweDQwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwIH0KKworLyogSW50ZXJwcmV0YXRpb24gb2YgbW9kZW0gc3RhdHVzIGxpbmVzICovCisvKiBUaGVzZSBuZWVkIHNvcnRpbmcgb3V0IGJ5IGluZGl2aWR1YWxseSBjb25uZWN0aW5nIHBpbnMgYW5kIGNoZWNraW5nCisgKiByZXN1bHRzLiBGSVhNRSEKKyAqIFdoZW4gZGF0YSBpcyBiZWluZyBzZW50IHdlIHNlZSAweDMwIGluIHRoZSBsb3dlciBieXRlOyB0aGlzIG11c3QKKyAqIGNvbnRhaW4gRFNSIGFuZCBDVFMgLi4uCisgKi8KKyNkZWZpbmUgSVBXX0RTUgkJCSgoMTw8NCkgfCAoMTw8NSkpCisjZGVmaW5lIElQV19DVFMJCQkoKDE8PDUpIHwgKDE8PDQpKQorCisjZGVmaW5lIElQV19XQU5UU19UT19TRU5ECTB4MzAKKy8vI2RlZmluZSBJUFdfRFRSCQkJLyogRGF0YSBUZXJtaW5hbCBSZWFkeSAqLworLy8jZGVmaW5lIElQV19DVFMJCQkvKiBDbGVhciBUbyBTZW5kICovCisvLyNkZWZpbmUgSVBXX0NECQkJLyogQ2FycmllciBEZXRlY3QgKi8KKy8vI2RlZmluZSBJUFdfRFNSCQkJLyogRGF0YSBTZXQgUmVhZHkgKi8KKy8vI2RlZmluZSBJUFdfUnhECQkJLyogUmVjZWl2ZSBwaW4gKi8KKworLy8jZGVmaW5lIElQV19MRQorLy8jZGVmaW5lIElQV19SVFMJCQorLy8jZGVmaW5lIElQV19TVAkJCisvLyNkZWZpbmUgSVBXX1NSCQkKKy8vI2RlZmluZSBJUFdfUkkJCQkvKiBSaW5nIEluZGljYXRvciAqLworCitzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgdXNiX2lwd19pZHNbXSA9IHsKKwl7IFVTQl9ERVZJQ0UoSVBXX1ZJRCwgSVBXX1BJRCkgfSwKKwl7IH0sCit9OworCitNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgdXNiX2lwd19pZHMpOworCitzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgdXNiX2lwd19kcml2ZXIgPSB7CisJLm93bmVyID0JVEhJU19NT0RVTEUsCisJLm5hbWUgPQkJImlwd3R0eSIsCisJLnByb2JlID0JdXNiX3NlcmlhbF9wcm9iZSwKKwkuZGlzY29ubmVjdCA9CXVzYl9zZXJpYWxfZGlzY29ubmVjdCwKKwkuaWRfdGFibGUgPQl1c2JfaXB3X2lkcywKK307CisKK3N0YXRpYyBpbnQgZGVidWc7CisKK3N0YXRpYyB2b2lkIGlwd19yZWFkX2J1bGtfY2FsbGJhY2soc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ID0gdXJiLT5jb250ZXh0OworCXVuc2lnbmVkIGNoYXIgKmRhdGEgPSB1cmItPnRyYW5zZmVyX2J1ZmZlcjsKKwlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5OworCWludCBpOworCWludCByZXN1bHQ7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCWlmICh1cmItPnN0YXR1cykgeworCQlkYmcoIiVzIC0gbm9uemVybyByZWFkIGJ1bGsgc3RhdHVzIHJlY2VpdmVkOiAlZCIsIF9fRlVOQ1RJT05fXywgdXJiLT5zdGF0dXMpOworCQlyZXR1cm47CisJfQorCisJdXNiX3NlcmlhbF9kZWJ1Z19kYXRhKGRlYnVnLCAmcG9ydC0+ZGV2LCBfX0ZVTkNUSU9OX18sIHVyYi0+YWN0dWFsX2xlbmd0aCwgZGF0YSk7CisKKwl0dHkgPSBwb3J0LT50dHk7CisJaWYgKHR0eSAmJiB1cmItPmFjdHVhbF9sZW5ndGgpIHsKKwkJZm9yIChpID0gMDsgaSA8IHVyYi0+YWN0dWFsX2xlbmd0aCA7ICsraSkgeworCQkJLyogaWYgd2UgaW5zZXJ0IG1vcmUgdGhhbiBUVFlfRkxJUEJVRl9TSVpFIGNoYXJhY3RlcnMsIHdlIGRyb3AgdGhlbS4gKi8KKwkJCWlmKHR0eS0+ZmxpcC5jb3VudCA+PSBUVFlfRkxJUEJVRl9TSVpFKSB7CisJCQkJdHR5X2ZsaXBfYnVmZmVyX3B1c2godHR5KTsKKwkJCX0KKwkJCS8qIHRoaXMgZG9lc24ndCBhY3R1YWxseSBwdXNoIHRoZSBkYXRhIHRocm91Z2ggdW5sZXNzIHR0eS0+bG93X2xhdGVuY3kgaXMgc2V0ICovCisJCQl0dHlfaW5zZXJ0X2ZsaXBfY2hhcih0dHksIGRhdGFbaV0sIDApOworCQl9CisJCXR0eV9mbGlwX2J1ZmZlcl9wdXNoKHR0eSk7CisJfQorCisJLyogQ29udGludWUgdHJ5aW5nIHRvIGFsd2F5cyByZWFkICAqLworCXVzYl9maWxsX2J1bGtfdXJiIChwb3J0LT5yZWFkX3VyYiwgcG9ydC0+c2VyaWFsLT5kZXYsCisJCQkgICB1c2JfcmN2YnVsa3BpcGUocG9ydC0+c2VyaWFsLT5kZXYsCisJCQkJCSAgIHBvcnQtPmJ1bGtfaW5fZW5kcG9pbnRBZGRyZXNzKSwKKwkJCSAgIHBvcnQtPnJlYWRfdXJiLT50cmFuc2Zlcl9idWZmZXIsCisJCQkgICBwb3J0LT5yZWFkX3VyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCwKKwkJCSAgIGlwd19yZWFkX2J1bGtfY2FsbGJhY2ssIHBvcnQpOworCXJlc3VsdCA9IHVzYl9zdWJtaXRfdXJiKHBvcnQtPnJlYWRfdXJiLCBHRlBfQVRPTUlDKTsKKwlpZiAocmVzdWx0KQorCQlkZXZfZXJyKCZwb3J0LT5kZXYsICIlcyAtIGZhaWxlZCByZXN1Ym1pdHRpbmcgcmVhZCB1cmIsIGVycm9yICVkXG4iLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisJcmV0dXJuOworfQorCitzdGF0aWMgaW50IGlwd19vcGVuKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKQoreworCXN0cnVjdCB1c2JfZGV2aWNlICpkZXYgPSBwb3J0LT5zZXJpYWwtPmRldjsKKwl1OCBidWZfZmxvd19zdGF0aWNbMTZdID0gSVBXX0JZVEVTX0ZMT1dJTklUOworCXU4ICpidWZfZmxvd19pbml0OworCWludCByZXN1bHQ7CisKKwlkYmcoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCWJ1Zl9mbG93X2luaXQgPSBrbWFsbG9jKDE2LCBHRlBfS0VSTkVMKTsKKwlpZiAoIWJ1Zl9mbG93X2luaXQpCisJCXJldHVybiAtRU5PTUVNOworCW1lbWNweShidWZfZmxvd19pbml0LCBidWZfZmxvd19zdGF0aWMsIDE2KTsKKworCWlmIChwb3J0LT50dHkpCisJCXBvcnQtPnR0eS0+bG93X2xhdGVuY3kgPSAxOworCisJLyogLS0xOiBUZWxsIHRoZSBtb2RlbSB0byBpbml0aWFsaXplICh3ZSB0aGluaykgRnJvbSBzbmlmZnMgdGhpcyBpcyBhbHdheXMgdGhlCisJICogZmlyc3QgdGhpbmcgdGhhdCBnZXRzIHNlbnQgdG8gdGhlIG1vZGVtIGR1cmluZyBvcGVuaW5nIG9mIHRoZSBkZXZpY2UgKi8KKwlkYmcoIiVzOiBTZW5kaW5nIFNJT19JTklUICh3ZSBndWVzcykiLF9fRlVOQ1RJT05fXyk7CisJcmVzdWx0ID0gdXNiX2NvbnRyb2xfbXNnKGRldiwgdXNiX3NuZGN0cmxwaXBlKGRldiwwKSwKKwkJCQkgSVBXX1NJT19JTklULAorCQkJCSBVU0JfVFlQRV9WRU5ET1IgfCBVU0JfUkVDSVBfSU5URVJGQUNFIHwgVVNCX0RJUl9PVVQsCisJCQkJIDAsCisJCQkJIDAsIC8qIGluZGV4ICovCisJCQkJIE5VTEwsCisJCQkJIDAsCisJCQkJIDEwMDAwMCk7CisJaWYgKHJlc3VsdCA8IDApCisJCWRldl9lcnIoJnBvcnQtPmRldiwgIkluaXQgb2YgbW9kZW0gZmFpbGVkIChlcnJvciA9ICVkKSIsIHJlc3VsdCk7CisKKwkvKiByZXNldCB0aGUgYnVsayBwaXBlcyAqLworCXVzYl9jbGVhcl9oYWx0KGRldiwgdXNiX3JjdmJ1bGtwaXBlKGRldiwgcG9ydC0+YnVsa19pbl9lbmRwb2ludEFkZHJlc3MpKTsKKwl1c2JfY2xlYXJfaGFsdChkZXYsIHVzYl9zbmRidWxrcGlwZShkZXYsIHBvcnQtPmJ1bGtfb3V0X2VuZHBvaW50QWRkcmVzcykpOworCisJLyotLTI6IFN0YXJ0IHJlYWRpbmcgZnJvbSB0aGUgZGV2aWNlICovCQorCWRiZygiJXM6IHNldHRpbmcgdXAgYnVsayByZWFkIGNhbGxiYWNrIixfX0ZVTkNUSU9OX18pOworCXVzYl9maWxsX2J1bGtfdXJiKHBvcnQtPnJlYWRfdXJiLCBkZXYsCisJCQkgIHVzYl9yY3ZidWxrcGlwZShkZXYsIHBvcnQtPmJ1bGtfaW5fZW5kcG9pbnRBZGRyZXNzKSwKKwkJCSAgcG9ydC0+YnVsa19pbl9idWZmZXIsCisJCQkgIHBvcnQtPmJ1bGtfaW5fc2l6ZSwKKwkJCSAgaXB3X3JlYWRfYnVsa19jYWxsYmFjaywgcG9ydCk7CisJcmVzdWx0ID0gdXNiX3N1Ym1pdF91cmIocG9ydC0+cmVhZF91cmIsIEdGUF9LRVJORUwpOworCWlmIChyZXN1bHQgPCAwKQorCQlkYmcoIiVzIC0gdXNiX3N1Ym1pdF91cmIocmVhZCBidWxrKSBmYWlsZWQgd2l0aCBzdGF0dXMgJWQiLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisKKwkvKi0tMzogVGVsbCB0aGUgbW9kZW0gdG8gb3BlbiB0aGUgZmxvb2RnYXRlcyBvbiB0aGUgcnggYnVsayBjaGFubmVsICovCisJZGJnKCIlczphc2tpbmcgbW9kZW0gZm9yIFJ4UmVhZCAoUlhCVUxLX09OKSIsX19GVU5DVElPTl9fKTsKKwlyZXN1bHQgPSB1c2JfY29udHJvbF9tc2coZGV2LCB1c2Jfc25kY3RybHBpcGUoZGV2LCAwKSwKKwkJCQkgSVBXX1NJT19SWENUTCwKKwkJCQkgVVNCX1RZUEVfVkVORE9SIHwgVVNCX1JFQ0lQX0lOVEVSRkFDRSB8IFVTQl9ESVJfT1VULAorCQkJCSBJUFdfUlhCVUxLX09OLAorCQkJCSAwLCAvKiBpbmRleCAqLworCQkJCSBOVUxMLAorCQkJCSAwLAorCQkJCSAxMDAwMDApOworCWlmIChyZXN1bHQgPCAwKSAKKwkJZGV2X2VycigmcG9ydC0+ZGV2LCAiRW5hYmxpbmcgYnVsayBSeFJlYWQgZmFpbGVkIChlcnJvciA9ICVkKSIsIHJlc3VsdCk7CisKKwkvKi0tNDogc2V0dXAgdGhlIGluaXRpYWwgZmxvd2NvbnRyb2wgKi8KKwlkYmcoIiVzOnNldHRpbmcgaW5pdCBmbG93Y29udHJvbCAoJXMpIixfX0ZVTkNUSU9OX18sYnVmX2Zsb3dfaW5pdCk7CisJcmVzdWx0ID0gdXNiX2NvbnRyb2xfbXNnKGRldiwgdXNiX3NuZGN0cmxwaXBlKGRldiwgMCksCisJCQkJIElQV19TSU9fSEFOREZMT1csCisJCQkJIFVTQl9UWVBFX1ZFTkRPUiB8IFVTQl9SRUNJUF9JTlRFUkZBQ0UgfCBVU0JfRElSX09VVCwKKwkJCQkgMCwKKwkJCQkgMCwKKwkJCQkgYnVmX2Zsb3dfaW5pdCwKKwkJCQkgMHgxMCwKKwkJCQkgMjAwMDAwKTsKKwlpZiAocmVzdWx0IDwgMCkKKwkJZGV2X2VycigmcG9ydC0+ZGV2LCAiaW5pdGlhbCBmbG93Y29udHJvbCBmYWlsZWQgKGVycm9yID0gJWQpIiwgcmVzdWx0KTsKKworCisJLyotLTU6IHJhaXNlIHRoZSBkdHIgKi8KKwlkYmcoIiVzOnJhaXNpbmcgZHRyIixfX0ZVTkNUSU9OX18pOworCXJlc3VsdCA9IHVzYl9jb250cm9sX21zZyhkZXYsIHVzYl9zbmRjdHJscGlwZShkZXYsIDApLAorCQkJCSBJUFdfU0lPX1NFVF9QSU4sCisJCQkJIFVTQl9UWVBFX1ZFTkRPUiB8IFVTQl9SRUNJUF9JTlRFUkZBQ0UgfCBVU0JfRElSX09VVCwKKwkJCQkgSVBXX1BJTl9TRVREVFIsCisJCQkJIDAsCisJCQkJIE5VTEwsCisJCQkJIDAsCisJCQkJIDIwMDAwMCk7CisJaWYgKHJlc3VsdCA8IDApCisJCWRldl9lcnIoJnBvcnQtPmRldiwgInNldHRpbmcgZHRyIGZhaWxlZCAoZXJyb3IgPSAlZCkiLCByZXN1bHQpOworCisJLyotLTY6IHJhaXNlIHRoZSBydHMgKi8KKwlkYmcoIiVzOnJhaXNpbmcgcnRzIixfX0ZVTkNUSU9OX18pOworCXJlc3VsdCA9IHVzYl9jb250cm9sX21zZyhkZXYsIHVzYl9zbmRjdHJscGlwZShkZXYsIDApLAorCQkJCSBJUFdfU0lPX1NFVF9QSU4sCisJCQkJIFVTQl9UWVBFX1ZFTkRPUiB8IFVTQl9SRUNJUF9JTlRFUkZBQ0UgfCBVU0JfRElSX09VVCwKKwkJCQkgSVBXX1BJTl9TRVRSVFMsCisJCQkJIDAsCisJCQkJIE5VTEwsCisJCQkJIDAsCisJCQkJIDIwMDAwMCk7CisJaWYgKHJlc3VsdCA8IDApCisJCWRldl9lcnIoJnBvcnQtPmRldiwgInNldHRpbmcgZHRyIGZhaWxlZCAoZXJyb3IgPSAlZCkiLCByZXN1bHQpOworCQorCWtmcmVlKGJ1Zl9mbG93X2luaXQpOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBpcHdfY2xvc2Uoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKiBmaWxwKQoreworCXN0cnVjdCB1c2JfZGV2aWNlICpkZXYgPSBwb3J0LT5zZXJpYWwtPmRldjsKKwlpbnQgcmVzdWx0OworCisJaWYgKHR0eV9odW5nX3VwX3AoZmlscCkpIHsKKwkJZGJnKCIlczogdHR5X2h1bmdfdXBfcCAuLi4iLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm47CisJfQorCisJLyotLTE6IGRyb3AgdGhlIGR0ciAqLworCWRiZygiJXM6ZHJvcHBpbmcgZHRyIixfX0ZVTkNUSU9OX18pOworCXJlc3VsdCA9IHVzYl9jb250cm9sX21zZyhkZXYsIHVzYl9zbmRjdHJscGlwZShkZXYsIDApLAorCQkJCSBJUFdfU0lPX1NFVF9QSU4sCisJCQkJIFVTQl9UWVBFX1ZFTkRPUiB8IFVTQl9SRUNJUF9JTlRFUkZBQ0UgfCBVU0JfRElSX09VVCwKKwkJCQkgSVBXX1BJTl9DTFJEVFIsCisJCQkJIDAsCisJCQkJIE5VTEwsCisJCQkJIDAsCisJCQkJIDIwMDAwMCk7CisJaWYgKHJlc3VsdCA8IDApCisJCWRldl9lcnIoJnBvcnQtPmRldiwgImRyb3BwaW5nIGR0ciBmYWlsZWQgKGVycm9yID0gJWQpIiwgcmVzdWx0KTsKKworCS8qLS0yOiBkcm9wIHRoZSBydHMgKi8KKwlkYmcoIiVzOmRyb3BwaW5nIHJ0cyIsX19GVU5DVElPTl9fKTsKKwlyZXN1bHQgPSB1c2JfY29udHJvbF9tc2coZGV2LCB1c2Jfc25kY3RybHBpcGUoZGV2LCAwKSwKKwkJCQkgSVBXX1NJT19TRVRfUElOLCBVU0JfVFlQRV9WRU5ET1IgfCBVU0JfUkVDSVBfSU5URVJGQUNFIHwgVVNCX0RJUl9PVVQsCisJCQkJIElQV19QSU5fQ0xSUlRTLAorCQkJCSAwLAorCQkJCSBOVUxMLAorCQkJCSAwLAorCQkJCSAyMDAwMDApOworCWlmIChyZXN1bHQgPCAwKQorCQlkZXZfZXJyKCZwb3J0LT5kZXYsICJkcm9wcGluZyBydHMgZmFpbGVkIChlcnJvciA9ICVkKSIsIHJlc3VsdCk7CisKKworCS8qLS0zOiBwdXJnZSAqLworCWRiZygiJXM6c2VuZGluZyBwdXJnZSIsX19GVU5DVElPTl9fKTsKKwlyZXN1bHQgPSB1c2JfY29udHJvbF9tc2coZGV2LCB1c2Jfc25kY3RybHBpcGUoZGV2LCAwKSwKKwkJCQkgSVBXX1NJT19QVVJHRSwgVVNCX1RZUEVfVkVORE9SIHwgVVNCX1JFQ0lQX0lOVEVSRkFDRSB8IFVTQl9ESVJfT1VULAorCQkJCSAweDAzLAorCQkJCSAwLAorCQkJCSBOVUxMLAorCQkJCSAwLAorCQkJCSAyMDAwMDApOworCWlmIChyZXN1bHQgPCAwKQorCQlkZXZfZXJyKCZwb3J0LT5kZXYsICJwdXJnZSBmYWlsZWQgKGVycm9yID0gJWQpIiwgcmVzdWx0KTsKKworCisJLyogc2VuZCBSWEJVTEtfb2ZmICh0ZWxsIG1vZGVtIHRvIHN0b3AgdHJhbnNtaXR0aW5nIGJ1bGsgZGF0YSBvbiByeCBjaGFuKSAqLworCXJlc3VsdCA9IHVzYl9jb250cm9sX21zZyhkZXYsIHVzYl9zbmRjdHJscGlwZShkZXYsIDApLAorCQkJCSBJUFdfU0lPX1JYQ1RMLAorCQkJCSBVU0JfVFlQRV9WRU5ET1IgfCBVU0JfUkVDSVBfSU5URVJGQUNFIHwgVVNCX0RJUl9PVVQsCisJCQkJIElQV19SWEJVTEtfT0ZGLAorCQkJCSAwLCAvKiBpbmRleCAqLworCQkJCSBOVUxMLAorCQkJCSAwLAorCQkJCSAxMDAwMDApOworCisJaWYgKHJlc3VsdCA8IDApCisJCWRldl9lcnIoJnBvcnQtPmRldiwgIkRpc2FibGluZyBidWxrIFJ4UmVhZCBmYWlsZWQgKGVycm9yID0gJWQpIiwgcmVzdWx0KTsKKworCS8qIHNodXRkb3duIGFueSBpbi1mbGlnaHQgdXJicyB0aGF0IHdlIGtub3cgYWJvdXQgKi8KKwl1c2Jfa2lsbF91cmIocG9ydC0+cmVhZF91cmIpOworCXVzYl9raWxsX3VyYihwb3J0LT53cml0ZV91cmIpOworfQorCitzdGF0aWMgdm9pZCBpcHdfd3JpdGVfYnVsa19jYWxsYmFjayhzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSB1cmItPmNvbnRleHQ7CisKKwlkYmcoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCWlmICh1cmItPnN0YXR1cykKKwkJZGJnKCIlcyAtIG5vbnplcm8gd3JpdGUgYnVsayBzdGF0dXMgcmVjZWl2ZWQ6ICVkIiwgX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyk7CisKKwlzY2hlZHVsZV93b3JrKCZwb3J0LT53b3JrKTsKK30KKworc3RhdGljIGludCBpcHdfd3JpdGUoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpCit7CisJc3RydWN0IHVzYl9kZXZpY2UgKmRldiA9IHBvcnQtPnNlcmlhbC0+ZGV2OworCWludCByZXQ7CisKKwlkYmcoIiVzOiBUT1A6IGNvdW50PSVkLCBpbl9pbnRlcnJ1cHQ9JWxkIiwgX19GVU5DVElPTl9fLAorCQljb3VudCwgaW5faW50ZXJydXB0KCkgKTsKKworCWlmIChjb3VudCA9PSAwKSB7CisJCWRiZygiJXMgLSB3cml0ZSByZXF1ZXN0IG9mIDAgYnl0ZXMiLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm4gMDsKKwl9CisJCisJLyogUmFjeSBhbmQgYnJva2VuLCBGSVhNRSBwcm9wZXJseSEgKi8KKwlpZiAocG9ydC0+d3JpdGVfdXJiLT5zdGF0dXMgPT0gLUVJTlBST0dSRVNTKQorCQlyZXR1cm4gMDsKKworCWNvdW50ID0gbWluKGNvdW50LCBwb3J0LT5idWxrX291dF9zaXplKTsKKwltZW1jcHkocG9ydC0+YnVsa19vdXRfYnVmZmVyLCBidWYsIGNvdW50KTsKKworCWRiZygiJXMgY291bnQgbm93OiVkIiwgX19GVU5DVElPTl9fLCBjb3VudCk7CisJCisJdXNiX2ZpbGxfYnVsa191cmIocG9ydC0+d3JpdGVfdXJiLCBkZXYsCisJCQkgIHVzYl9zbmRidWxrcGlwZShkZXYsIHBvcnQtPmJ1bGtfb3V0X2VuZHBvaW50QWRkcmVzcyksCisJCQkgIHBvcnQtPndyaXRlX3VyYi0+dHJhbnNmZXJfYnVmZmVyLAorCQkJICBjb3VudCwKKwkJCSAgaXB3X3dyaXRlX2J1bGtfY2FsbGJhY2ssCisJCQkgIHBvcnQpOworCisJcmV0ID0gdXNiX3N1Ym1pdF91cmIocG9ydC0+d3JpdGVfdXJiLCBHRlBfQVRPTUlDKTsKKwlpZiAocmV0ICE9IDApIHsKKwkJZGJnKCIlcyAtIHVzYl9zdWJtaXRfdXJiKHdyaXRlIGJ1bGspIGZhaWxlZCB3aXRoIGVycm9yID0gJWQiLCBfX0ZVTkNUSU9OX18sIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJZGJnKCIlcyByZXR1cm5pbmcgJWQiLCBfX0ZVTkNUSU9OX18sIGNvdW50KTsKKwlyZXR1cm4gY291bnQ7Cit9IAorCitzdGF0aWMgaW50IGlwd19wcm9iZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGlwd19kaXNjb25uZWN0KHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpCit7CisJdXNiX3NldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQsIE5VTEwpOworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUgaXB3X2RldmljZSA9IHsKKwkub3duZXIgPQkJVEhJU19NT0RVTEUsCisJLm5hbWUgPQkJCSJJUFdpcmVsZXNzIGNvbnZlcnRlciIsCisJLnNob3J0X25hbWUgPQkJImlwdyIsCisJLmlkX3RhYmxlID0JCXVzYl9pcHdfaWRzLAorCS5udW1faW50ZXJydXB0X2luID0JTlVNX0RPTlRfQ0FSRSwKKwkubnVtX2J1bGtfaW4gPQkJMSwKKwkubnVtX2J1bGtfb3V0ID0JCTEsCisJLm51bV9wb3J0cyA9CQkxLAorCS5vcGVuID0JCQlpcHdfb3BlbiwKKwkuY2xvc2UgPQkJaXB3X2Nsb3NlLAorCS5wb3J0X3Byb2JlID0gCQlpcHdfcHJvYmUsCisJLnBvcnRfcmVtb3ZlID0JCWlwd19kaXNjb25uZWN0LAorCS53cml0ZSA9CQlpcHdfd3JpdGUsCisJLndyaXRlX2J1bGtfY2FsbGJhY2sgPQlpcHdfd3JpdGVfYnVsa19jYWxsYmFjaywKKwkucmVhZF9idWxrX2NhbGxiYWNrID0JaXB3X3JlYWRfYnVsa19jYWxsYmFjaywKK307CisKKworCitzdGF0aWMgaW50IHVzYl9pcHdfaW5pdCh2b2lkKQoreworCWludCByZXR2YWw7CisKKwlyZXR2YWwgPSB1c2Jfc2VyaWFsX3JlZ2lzdGVyKCZpcHdfZGV2aWNlKTsKKwlpZiAocmV0dmFsKQorCQlyZXR1cm4gcmV0dmFsOworCXJldHZhbCA9IHVzYl9yZWdpc3RlcigmdXNiX2lwd19kcml2ZXIpOworCWlmIChyZXR2YWwpIHsKKwkJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyKCZpcHdfZGV2aWNlKTsKKwkJcmV0dXJuIHJldHZhbDsKKwl9CisJaW5mbyhEUklWRVJfREVTQyAiICIgRFJJVkVSX1ZFUlNJT04pOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCB1c2JfaXB3X2V4aXQodm9pZCkKK3sKKwl1c2JfZGVyZWdpc3RlcigmdXNiX2lwd19kcml2ZXIpOworCXVzYl9zZXJpYWxfZGVyZWdpc3RlcigmaXB3X2RldmljZSk7Cit9CisKK21vZHVsZV9pbml0KHVzYl9pcHdfaW5pdCk7Cittb2R1bGVfZXhpdCh1c2JfaXB3X2V4aXQpOworCisvKiBNb2R1bGUgaW5mb3JtYXRpb24gKi8KK01PRFVMRV9BVVRIT1IoIERSSVZFUl9BVVRIT1IgKTsKK01PRFVMRV9ERVNDUklQVElPTiggRFJJVkVSX0RFU0MgKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKKworbW9kdWxlX3BhcmFtKGRlYnVnLCBib29sLCBTX0lSVUdPIHwgU19JV1VTUik7CitNT0RVTEVfUEFSTV9ERVNDKGRlYnVnLCAiRGVidWcgZW5hYmxlZCBvciBub3QiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9pci11c2IuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pci11c2IuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OWYyMzRkCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lyLXVzYi5jCkBAIC0wLDAgKzEsNjE5IEBACisvKgorICogVVNCIElSIERvbmdsZSBkcml2ZXIKKyAqCisgKglDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMglHcmVnIEtyb2FoLUhhcnRtYW4gKGdyZWdAa3JvYWguY29tKQorICoJQ29weXJpZ2h0IChDKSAyMDAyCUdhcnkgQnJ1YmFrZXIgKHhhdnllckBpeC5uZXRjb20uY29tKQorICoKKyAqCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKglpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICoJdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqCShhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBkcml2ZXIgYWxsb3dzIGEgVVNCIElyREEgZGV2aWNlIHRvIGJlIHVzZWQgYXMgYSAiZHVtYiIgc2VyaWFsIGRldmljZS4KKyAqIFRoaXMgY2FuIGJlIHVzZWZ1bCBpZiB5b3UgZG8gbm90IGhhdmUgYWNjZXNzIHRvIGEgZnVsbCBJckRBIHN0YWNrIG9uIHRoZQorICogb3RoZXIgc2lkZSBvZiB0aGUgY29ubmVjdGlvbi4gIElmIHlvdSBkbyBoYXZlIGFuIElyREEgc3RhY2sgb24gYm90aCBkZXZpY2VzLAorICogcGxlYXNlIHVzZSB0aGUgdXNiLWlyZGEgZHJpdmVyLCBhcyBpdCBjb250YWlucyB0aGUgcHJvcGVyIGVycm9yIGNoZWNraW5nIGFuZAorICogb3RoZXIgZ29vZG5lc3Mgb2YgYSBmdWxsIElyREEgc3RhY2suCisgKgorICogUG9ydGlvbnMgb2YgdGhpcyBkcml2ZXIgd2VyZSB0YWtlbiBmcm9tIGRyaXZlcnMvbmV0L2lyZGEvaXJkYS11c2IuYywgd2hpY2gKKyAqIHdhcyB3cml0dGVuIGJ5IFJvbWFuIFdlaXNzZ2FlcmJlciA8d2Vpc3NnQHZpZW5uYS5hdD4sIERhZyBCcmF0dGxpCisgKiA8ZGFnQGJyYXR0bGkubmV0PiwgYW5kIEplYW4gVG91cnJpbGhlcyA8anRAaHBsLmhwLmNvbT4KKyAqCisgKiBTZWUgRG9jdW1lbnRhdGlvbi91c2IvdXNiLXNlcmlhbC50eHQgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdXNpbmcgdGhpcyBkcml2ZXIKKyAqCisgKiAyMDAyX01hcl8wNwlncmVnIGtoCisgKgltb3ZlZCBzb21lIG5lZWRlZCBzdHJ1Y3R1cmVzIGFuZCAjZGVmaW5lIHZhbHVlcyBmcm9tIHRoZQorICoJbmV0L2lyZGEvaXJkYS11c2IuaCBmaWxlIGludG8gb3VyIGZpbGUsIGFzIHdlIGRvbid0IHdhbnQgdG8gZGVwZW5kIG9uCisgKgl0aGF0IGNvZGViYXNlIGNvbXBpbGluZyBjb3JyZWN0bHkgOikKKyAqCisgKiAyMDAyX0phbl8xNCAgZ2IKKyAqCUFkZGVkIG1vZHVsZSBwYXJhbWV0ZXIgdG8gZm9yY2Ugc3BlY2lmaWMgbnVtYmVyIG9mIFhCT0ZzLgorICoJQWRkZWQgaXJfeGJvZl9jaGFuZ2UoKS4KKyAqCVJlb3JnYW5pemVkIHJlYWRfYnVsa19jYWxsYmFjayBlcnJvciBoYW5kbGluZy4KKyAqCVN3aXRjaGVkIGZyb20gRklMTF9CVUxLX1VSQigpIHRvIHVzYl9maWxsX2J1bGtfdXJiKCkuCisgKgorICogMjAwMV9Ob3ZfMDggIGdyZWcga2gKKyAqCUNoYW5nZWQgdGhlIGlyZGFfdXNiX2ZpbmRfY2xhc3NfZGVzYygpIGZ1bmN0aW9uIGJhc2VkIG9uIGNvbW1lbnRzIGFuZAorICoJY29kZSBmcm9tIE1hcnRpbiBEaWVobC4KKyAqCisgKiAyMDAxX05vdl8wMQlncmVnIGtoCisgKglBZGRlZCBzdXBwb3J0IGZvciBtb3JlIElyREEgVVNCIGRldmljZXMuCisgKglBZGRlZCBzdXBwb3J0IGZvciB6ZXJvIHBhY2tldC4gIEFkZGVkIGJ1ZmZlciBvdmVycmlkZSBwYXJhbWF0ZXIsIHNvCisgKgl1c2VycyBjYW4gdHJhbnNmZXIgbGFyZ2VyIHBhY2tldHMgYXQgb25jZSBpZiB0aGV5IHdpc2guICBCb3RoIHBhdGNoZXMKKyAqCWNhbWUgZnJvbSBEYWcgQnJhdHRsaSA8ZGFnQG9iZXhjb2RlLmNvbT4uCisgKgorICogMjAwMV9PY3RfMDcJZ3JlZyBraAorICoJaW5pdGlhbCB2ZXJzaW9uIHJlbGVhc2VkLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9jb25maWcuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvdHR5Lmg+CisjaW5jbHVkZSA8bGludXgvdHR5X2RyaXZlci5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eV9mbGlwLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgorI2luY2x1ZGUgInVzYi1zZXJpYWwuaCIKKworLyoKKyAqIFZlcnNpb24gSW5mb3JtYXRpb24KKyAqLworI2RlZmluZSBEUklWRVJfVkVSU0lPTiAidjAuNCIKKyNkZWZpbmUgRFJJVkVSX0FVVEhPUiAiR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVnQGtyb2FoLmNvbT4iCisjZGVmaW5lIERSSVZFUl9ERVNDICJVU0IgSVIgRG9uZ2xlIGRyaXZlciIKKworLyogVVNCIElyREEgY2xhc3Mgc3BlYyBpbmZvcm1hdGlvbiAqLworI2RlZmluZSBVU0JfQ0xBU1NfSVJEQQkJMHgwMgorI2RlZmluZSBVU0JfRFRfSVJEQQkJMHgyMQorI2RlZmluZSBJVV9SRVFfR0VUX0NMQVNTX0RFU0MJMHgwNgorI2RlZmluZSBTUEVFRF8yNDAwCQkweDAxCisjZGVmaW5lIFNQRUVEXzk2MDAJCTB4MDIKKyNkZWZpbmUgU1BFRURfMTkyMDAJCTB4MDMKKyNkZWZpbmUgU1BFRURfMzg0MDAJCTB4MDQKKyNkZWZpbmUgU1BFRURfNTc2MDAJCTB4MDUKKyNkZWZpbmUgU1BFRURfMTE1MjAwCQkweDA2CisjZGVmaW5lIFNQRUVEXzU3NjAwMAkJMHgwNworI2RlZmluZSBTUEVFRF8xMTUyMDAwCQkweDA4CisjZGVmaW5lIFNQRUVEXzQwMDAwMDAJCTB4MDkKKworc3RydWN0IGlyZGFfY2xhc3NfZGVzYyB7CisJdTgJYkxlbmd0aDsKKwl1OAliRGVzY3JpcHRvclR5cGU7CisJdTE2CWJjZFNwZWNSZXZpc2lvbjsKKwl1OAlibURhdGFTaXplOworCXU4CWJtV2luZG93U2l6ZTsKKwl1OAlibU1pblR1cm5hcm91bmRUaW1lOworCXUxNgl3QmF1ZFJhdGU7CisJdTgJYm1BZGRpdGlvbmFsQk9GczsKKwl1OAliSXJkYVJhdGVTbmlmZjsKKwl1OAliTWF4VW5pY2FzdExpc3Q7Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKworc3RhdGljIGludCBkZWJ1ZzsKKworLyogaWYgb3ZlcnJpZGRlbiBieSB0aGUgdXNlciwgdGhlbiB1c2UgdGhlaXIgdmFsdWUgZm9yIHRoZSBzaXplIG9mIHRoZSByZWFkIGFuZAorICogd3JpdGUgdXJicyAqLworc3RhdGljIGludCBidWZmZXJfc2l6ZTsKKy8qIGlmIG92ZXJyaWRkZW4gYnkgdGhlIHVzZXIsIHRoZW4gdXNlIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIFhCT0ZzICovCitzdGF0aWMgaW50IHhib2YgPSAtMTsKKworc3RhdGljIGludCAgaXJfc3RhcnR1cCAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCk7CitzdGF0aWMgaW50ICBpcl9vcGVuIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlsZXApOworc3RhdGljIHZvaWQgaXJfY2xvc2UgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxlcCk7CitzdGF0aWMgaW50ICBpcl93cml0ZSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpOworc3RhdGljIHZvaWQgaXJfd3JpdGVfYnVsa19jYWxsYmFjayAoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CitzdGF0aWMgdm9pZCBpcl9yZWFkX2J1bGtfY2FsbGJhY2sgKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOworc3RhdGljIHZvaWQgaXJfc2V0X3Rlcm1pb3MgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCB0ZXJtaW9zICpvbGRfdGVybWlvcyk7CisKK3N0YXRpYyB1OCBpcl9iYXVkID0gMDsKK3N0YXRpYyB1OCBpcl94Ym9mID0gMDsKK3N0YXRpYyB1OCBpcl9hZGRfYm9mID0gMDsKKworc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlIFtdID0geworCXsgVVNCX0RFVklDRSgweDA1MGYsIDB4MDE4MCkgfSwJCS8qIEtDIFRlY2hub2xvZ3ksIEtDLTE4MCAqLworCXsgVVNCX0RFVklDRSgweDA4ZTksIDB4MDEwMCkgfSwJCS8qIFhUTkRBY2Nlc3MgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwOWM0LCAweDAwMTEpIH0sCQkvKiBBQ1RpU3lzIEFDVC1JUjIwMDBVICovCisJeyBVU0JfSU5URVJGQUNFX0lORk8gKFVTQl9DTEFTU19BUFBfU1BFQywgVVNCX0NMQVNTX0lSREEsIDApIH0sCisJeyB9CQkJCQkvKiBUZXJtaW5hdGluZyBlbnRyeSAqLworfTsKKworTU9EVUxFX0RFVklDRV9UQUJMRSAodXNiLCBpZF90YWJsZSk7CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBpcl9kcml2ZXIgPSB7CisJLm93bmVyID0JVEhJU19NT0RVTEUsCisJLm5hbWUgPQkJImlyLXVzYiIsCisJLnByb2JlID0JdXNiX3NlcmlhbF9wcm9iZSwKKwkuZGlzY29ubmVjdCA9CXVzYl9zZXJpYWxfZGlzY29ubmVjdCwKKwkuaWRfdGFibGUgPQlpZF90YWJsZSwKK307CisKKworc3RhdGljIHN0cnVjdCB1c2Jfc2VyaWFsX2RldmljZV90eXBlIGlyX2RldmljZSA9IHsKKwkub3duZXIgPQkJVEhJU19NT0RVTEUsCisJLm5hbWUgPQkJCSJJUiBEb25nbGUiLAorCS5pZF90YWJsZSA9CQlpZF90YWJsZSwKKwkubnVtX2ludGVycnVwdF9pbiA9CTEsCisJLm51bV9idWxrX2luID0JCTEsCisJLm51bV9idWxrX291dCA9CQkxLAorCS5udW1fcG9ydHMgPQkJMSwKKwkuc2V0X3Rlcm1pb3MgPQkJaXJfc2V0X3Rlcm1pb3MsCisJLmF0dGFjaCA9CQlpcl9zdGFydHVwLAorCS5vcGVuID0JCQlpcl9vcGVuLAorCS5jbG9zZSA9CQlpcl9jbG9zZSwKKwkud3JpdGUgPQkJaXJfd3JpdGUsCisJLndyaXRlX2J1bGtfY2FsbGJhY2sgPQlpcl93cml0ZV9idWxrX2NhbGxiYWNrLAorCS5yZWFkX2J1bGtfY2FsbGJhY2sgPQlpcl9yZWFkX2J1bGtfY2FsbGJhY2ssCit9OworCitzdGF0aWMgaW5saW5lIHZvaWQgaXJkYV91c2JfZHVtcF9jbGFzc19kZXNjKHN0cnVjdCBpcmRhX2NsYXNzX2Rlc2MgKmRlc2MpCit7CisJZGJnKCJiTGVuZ3RoPSV4IiwgZGVzYy0+Ykxlbmd0aCk7CisJZGJnKCJiRGVzY3JpcHRvclR5cGU9JXgiLCBkZXNjLT5iRGVzY3JpcHRvclR5cGUpOworCWRiZygiYmNkU3BlY1JldmlzaW9uPSV4IiwgZGVzYy0+YmNkU3BlY1JldmlzaW9uKTsgCisJZGJnKCJibURhdGFTaXplPSV4IiwgZGVzYy0+Ym1EYXRhU2l6ZSk7CisJZGJnKCJibVdpbmRvd1NpemU9JXgiLCBkZXNjLT5ibVdpbmRvd1NpemUpOworCWRiZygiYm1NaW5UdXJuYXJvdW5kVGltZT0lZCIsIGRlc2MtPmJtTWluVHVybmFyb3VuZFRpbWUpOworCWRiZygid0JhdWRSYXRlPSV4IiwgZGVzYy0+d0JhdWRSYXRlKTsKKwlkYmcoImJtQWRkaXRpb25hbEJPRnM9JXgiLCBkZXNjLT5ibUFkZGl0aW9uYWxCT0ZzKTsKKwlkYmcoImJJcmRhUmF0ZVNuaWZmPSV4IiwgZGVzYy0+YklyZGFSYXRlU25pZmYpOworCWRiZygiYk1heFVuaWNhc3RMaXN0PSV4IiwgZGVzYy0+Yk1heFVuaWNhc3RMaXN0KTsKK30KKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyoKKyAqIEZ1bmN0aW9uIGlyZGFfdXNiX2ZpbmRfY2xhc3NfZGVzYyhkZXYsIGlmbnVtKQorICoKKyAqICAgIFJldHVybnMgaW5zdGFuY2Ugb2YgSXJEQSBjbGFzcyBkZXNjcmlwdG9yLCBvciBOVUxMIGlmIG5vdCBmb3VuZAorICoKKyAqIFRoZSBjbGFzcyBkZXNjcmlwdG9yIGlzIHNvbWUgZXh0cmEgaW5mbyB0aGF0IElyREEgVVNCIGRldmljZXMgd2lsbAorICogb2ZmZXIgdG8gdXMsIGRlc2NyaWJpbmcgdGhlaXIgSXJEQSBjaGFyYWN0ZXJpc3RpY3MuIFdlIHdpbGwgdXNlIHRoYXQgaW4KKyAqIGlyZGFfdXNiX2luaXRfcW9zKCkKKyAqCisgKiBCYXNlZCBvbiB0aGUgc2FtZSBmdW5jdGlvbiBpbiBkcml2ZXJzL25ldC9pcmRhL2lyZGEtdXNiLmMKKyAqLworc3RhdGljIHN0cnVjdCBpcmRhX2NsYXNzX2Rlc2MgKmlyZGFfdXNiX2ZpbmRfY2xhc3NfZGVzYyhzdHJ1Y3QgdXNiX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgaWZudW0pCit7CisJc3RydWN0IGlyZGFfY2xhc3NfZGVzYyAqZGVzYzsKKwlpbnQgcmV0OworCQkKKwlkZXNjID0ga21hbGxvYyhzaXplb2YgKHN0cnVjdCBpcmRhX2NsYXNzX2Rlc2MpLCBHRlBfS0VSTkVMKTsKKwlpZiAoZGVzYyA9PSBOVUxMKSAKKwkJcmV0dXJuIE5VTEw7CisJbWVtc2V0KGRlc2MsIDAsIHNpemVvZihzdHJ1Y3QgaXJkYV9jbGFzc19kZXNjKSk7CisJCisJcmV0ID0gdXNiX2NvbnRyb2xfbXNnKGRldiwgdXNiX3JjdmN0cmxwaXBlKGRldiwwKSwKKwkJCUlVX1JFUV9HRVRfQ0xBU1NfREVTQywKKwkJCVVTQl9ESVJfSU4gfCBVU0JfVFlQRV9DTEFTUyB8IFVTQl9SRUNJUF9JTlRFUkZBQ0UsCisJCQkwLCBpZm51bSwgZGVzYywgc2l6ZW9mKCpkZXNjKSwgMTAwMCk7CisJCisJZGJnKCIlcyAtICByZXQ9JWQiLCBfX0ZVTkNUSU9OX18sIHJldCk7CisJaWYgKHJldCA8IHNpemVvZigqZGVzYykpIHsKKwkJZGJnKCIlcyAtIGNsYXNzIGRlc2NyaXB0b3IgcmVhZCAlcyAoJWQpIiwKKwkJCQlfX0ZVTkNUSU9OX18sIAorCQkJCShyZXQ8MCkgPyAiZmFpbGVkIiA6ICJ0b28gc2hvcnQiLAorCQkJCXJldCk7CisJCWdvdG8gZXJyb3I7CisJfQorCWlmIChkZXNjLT5iRGVzY3JpcHRvclR5cGUgIT0gVVNCX0RUX0lSREEpIHsKKwkJZGJnKCIlcyAtIGJhZCBjbGFzcyBkZXNjcmlwdG9yIHR5cGUiLCBfX0ZVTkNUSU9OX18pOworCQlnb3RvIGVycm9yOworCX0KKwkKKwlpcmRhX3VzYl9kdW1wX2NsYXNzX2Rlc2MoZGVzYyk7CisJcmV0dXJuIGRlc2M7CitlcnJvcjoKKwlrZnJlZShkZXNjKTsKKwlyZXR1cm4gTlVMTDsKK30KKworCitzdGF0aWMgdTggaXJfeGJvZl9jaGFuZ2UodTggeGJvZikKK3sKKwl1OCByZXN1bHQ7CisJLyogcmVmZXJlbmNlIGlyZGEtdXNiLmMgKi8KKwlzd2l0Y2goeGJvZikgeworCQljYXNlIDQ4OiByZXN1bHQgPSAweDEwOyBicmVhazsKKwkJY2FzZSAyODoKKwkJY2FzZSAyNDogcmVzdWx0ID0gMHgyMDsgYnJlYWs7CisJCWRlZmF1bHQ6CisJCWNhc2UgMTI6IHJlc3VsdCA9IDB4MzA7IGJyZWFrOworCQljYXNlICA1OgorCQljYXNlICA2OiByZXN1bHQgPSAweDQwOyBicmVhazsKKwkJY2FzZSAgMzogcmVzdWx0ID0gMHg1MDsgYnJlYWs7CisJCWNhc2UgIDI6IHJlc3VsdCA9IDB4NjA7IGJyZWFrOworCQljYXNlICAxOiByZXN1bHQgPSAweDcwOyBicmVhazsKKwkJY2FzZSAgMDogcmVzdWx0ID0gMHg4MDsgYnJlYWs7CisJfQorCXJldHVybihyZXN1bHQpOworfQorCisKK3N0YXRpYyBpbnQgaXJfc3RhcnR1cCAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkKK3sKKwlzdHJ1Y3QgaXJkYV9jbGFzc19kZXNjICppcmRhX2Rlc2M7CisKKwlpcmRhX2Rlc2MgPSBpcmRhX3VzYl9maW5kX2NsYXNzX2Rlc2MgKHNlcmlhbC0+ZGV2LCAwKTsKKwlpZiAoaXJkYV9kZXNjID09IE5VTEwpIHsKKwkJZGV2X2VyciAoJnNlcmlhbC0+ZGV2LT5kZXYsICJJUkRBIGNsYXNzIGRlc2NyaXB0b3Igbm90IGZvdW5kLCBkZXZpY2Ugbm90IGJvdW5kXG4iKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJZGJnICgiJXMgLSBCYXVkIHJhdGVzIHN1cHBvcnRlZDolcyVzJXMlcyVzJXMlcyVzJXMiLAorCQlfX0ZVTkNUSU9OX18sCisJCShpcmRhX2Rlc2MtPndCYXVkUmF0ZSAmIDB4MDAwMSkgPyAiIDI0MDAiICAgIDogIiIsCisJCShpcmRhX2Rlc2MtPndCYXVkUmF0ZSAmIDB4MDAwMikgPyAiIDk2MDAiICAgIDogIiIsCisJCShpcmRhX2Rlc2MtPndCYXVkUmF0ZSAmIDB4MDAwNCkgPyAiIDE5MjAwIiAgIDogIiIsCisJCShpcmRhX2Rlc2MtPndCYXVkUmF0ZSAmIDB4MDAwOCkgPyAiIDM4NDAwIiAgIDogIiIsCisJCShpcmRhX2Rlc2MtPndCYXVkUmF0ZSAmIDB4MDAxMCkgPyAiIDU3NjAwIiAgIDogIiIsCisJCShpcmRhX2Rlc2MtPndCYXVkUmF0ZSAmIDB4MDAyMCkgPyAiIDExNTIwMCIgIDogIiIsCisJCShpcmRhX2Rlc2MtPndCYXVkUmF0ZSAmIDB4MDA0MCkgPyAiIDU3NjAwMCIgIDogIiIsCisJCShpcmRhX2Rlc2MtPndCYXVkUmF0ZSAmIDB4MDA4MCkgPyAiIDExNTIwMDAiIDogIiIsCisJCShpcmRhX2Rlc2MtPndCYXVkUmF0ZSAmIDB4MDEwMCkgPyAiIDQwMDAwMDAiIDogIiIpOworCisJc3dpdGNoKCBpcmRhX2Rlc2MtPmJtQWRkaXRpb25hbEJPRnMgKSB7CisJCWNhc2UgMHgwMTogaXJfYWRkX2JvZiA9IDQ4OyBicmVhazsKKwkJY2FzZSAweDAyOiBpcl9hZGRfYm9mID0gMjQ7IGJyZWFrOworCQljYXNlIDB4MDQ6IGlyX2FkZF9ib2YgPSAxMjsgYnJlYWs7CisJCWNhc2UgMHgwODogaXJfYWRkX2JvZiA9ICA2OyBicmVhazsKKwkJY2FzZSAweDEwOiBpcl9hZGRfYm9mID0gIDM7IGJyZWFrOworCQljYXNlIDB4MjA6IGlyX2FkZF9ib2YgPSAgMjsgYnJlYWs7CisJCWNhc2UgMHg0MDogaXJfYWRkX2JvZiA9ICAxOyBicmVhazsKKwkJY2FzZSAweDgwOiBpcl9hZGRfYm9mID0gIDA7IGJyZWFrOworCQlkZWZhdWx0OjsKKwl9CisKKwlrZnJlZSAoaXJkYV9kZXNjKTsKKworCXJldHVybiAwOwkJCit9CisKK3N0YXRpYyBpbnQgaXJfb3BlbiAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbHApCit7CisJY2hhciAqYnVmZmVyOworCWludCByZXN1bHQgPSAwOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAoYnVmZmVyX3NpemUpIHsKKwkJLyogb3ZlcnJpZGUgdGhlIGRlZmF1bHQgYnVmZmVyIHNpemVzICovCisJCWJ1ZmZlciA9IGttYWxsb2MgKGJ1ZmZlcl9zaXplLCBHRlBfS0VSTkVMKTsKKwkJaWYgKCFidWZmZXIpIHsKKwkJCWRldl9lcnIgKCZwb3J0LT5kZXYsICIlcyAtIG91dCBvZiBtZW1vcnkuXG4iLCBfX0ZVTkNUSU9OX18pOworCQkJcmV0dXJuIC1FTk9NRU07CisJCX0KKwkJa2ZyZWUgKHBvcnQtPnJlYWRfdXJiLT50cmFuc2Zlcl9idWZmZXIpOworCQlwb3J0LT5yZWFkX3VyYi0+dHJhbnNmZXJfYnVmZmVyID0gYnVmZmVyOworCQlwb3J0LT5yZWFkX3VyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCA9IGJ1ZmZlcl9zaXplOworCisJCWJ1ZmZlciA9IGttYWxsb2MgKGJ1ZmZlcl9zaXplLCBHRlBfS0VSTkVMKTsKKwkJaWYgKCFidWZmZXIpIHsKKwkJCWRldl9lcnIgKCZwb3J0LT5kZXYsICIlcyAtIG91dCBvZiBtZW1vcnkuXG4iLCBfX0ZVTkNUSU9OX18pOworCQkJcmV0dXJuIC1FTk9NRU07CisJCX0KKwkJa2ZyZWUgKHBvcnQtPndyaXRlX3VyYi0+dHJhbnNmZXJfYnVmZmVyKTsKKwkJcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXIgPSBidWZmZXI7CisJCXBvcnQtPndyaXRlX3VyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCA9IGJ1ZmZlcl9zaXplOworCQlwb3J0LT5idWxrX291dF9zaXplID0gYnVmZmVyX3NpemU7CisJfQorCisJLyogU3RhcnQgcmVhZGluZyBmcm9tIHRoZSBkZXZpY2UgKi8KKwl1c2JfZmlsbF9idWxrX3VyYiAoCisJCXBvcnQtPnJlYWRfdXJiLAorCQlwb3J0LT5zZXJpYWwtPmRldiwgCisJCXVzYl9yY3ZidWxrcGlwZShwb3J0LT5zZXJpYWwtPmRldiwgcG9ydC0+YnVsa19pbl9lbmRwb2ludEFkZHJlc3MpLAorCQlwb3J0LT5yZWFkX3VyYi0+dHJhbnNmZXJfYnVmZmVyLAorCQlwb3J0LT5yZWFkX3VyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCwKKwkJaXJfcmVhZF9idWxrX2NhbGxiYWNrLAorCQlwb3J0KTsKKwlyZXN1bHQgPSB1c2Jfc3VibWl0X3VyYihwb3J0LT5yZWFkX3VyYiwgR0ZQX0tFUk5FTCk7CisJaWYgKHJlc3VsdCkKKwkJZGV2X2VycigmcG9ydC0+ZGV2LCAiJXMgLSBmYWlsZWQgc3VibWl0dGluZyByZWFkIHVyYiwgZXJyb3IgJWRcbiIsIF9fRlVOQ1RJT05fXywgcmVzdWx0KTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyB2b2lkIGlyX2Nsb3NlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqIGZpbHApCit7CisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisJCQkgCisJLyogc2h1dGRvd24gb3VyIGJ1bGsgcmVhZCAqLworCXVzYl9raWxsX3VyYihwb3J0LT5yZWFkX3VyYik7Cit9CisKK3N0YXRpYyBpbnQgaXJfd3JpdGUgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGNvdW50KQoreworCXVuc2lnbmVkIGNoYXIgKnRyYW5zZmVyX2J1ZmZlcjsKKwlpbnQgcmVzdWx0OworCWludCB0cmFuc2Zlcl9zaXplOworCisJZGJnKCIlcyAtIHBvcnQgPSAlZCwgY291bnQgPSAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyLCBjb3VudCk7CisKKwlpZiAoIXBvcnQtPnR0eSkgeworCQlkZXZfZXJyICgmcG9ydC0+ZGV2LCAiJXMgLSBubyB0dHk/Pz9cbiIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybiAwOworCX0KKworCWlmIChjb3VudCA9PSAwKQorCQlyZXR1cm4gMDsKKworCWlmIChwb3J0LT53cml0ZV91cmItPnN0YXR1cyA9PSAtRUlOUFJPR1JFU1MpIHsKKwkJZGJnICgiJXMgLSBhbHJlYWR5IHdyaXRpbmciLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm4gMDsKKwl9CisKKwl0cmFuc2Zlcl9idWZmZXIgPSBwb3J0LT53cml0ZV91cmItPnRyYW5zZmVyX2J1ZmZlcjsKKwl0cmFuc2Zlcl9zaXplID0gbWluKGNvdW50LCBwb3J0LT5idWxrX291dF9zaXplIC0gMSk7CisKKwkvKgorCSAqIFRoZSBmaXJzdCBieXRlIG9mIHRoZSBwYWNrZXQgd2Ugc2VuZCB0byB0aGUgZGV2aWNlIGNvbnRhaW5zIGFuCisJICogaW5iYW5kIGhlYWRlciB3aGljaCBpbmRpY2F0ZXMgYW4gYWRkaXRpb25hbCBudW1iZXIgb2YgQk9GcyBhbmQKKwkgKiBhIGJhdWQgcmF0ZSBjaGFuZ2UuCisJICoKKwkgKiBTZWUgc2VjdGlvbiA1LjQuMi4yIG9mIHRoZSBVU0IgSXJEQSBzcGVjLgorCSAqLworCSp0cmFuc2Zlcl9idWZmZXIgPSBpcl94Ym9mIHwgaXJfYmF1ZDsKKwkrK3RyYW5zZmVyX2J1ZmZlcjsKKworCW1lbWNweSAodHJhbnNmZXJfYnVmZmVyLCBidWYsIHRyYW5zZmVyX3NpemUpOworCisJdXNiX2ZpbGxfYnVsa191cmIgKAorCQlwb3J0LT53cml0ZV91cmIsCisJCXBvcnQtPnNlcmlhbC0+ZGV2LAorCQl1c2Jfc25kYnVsa3BpcGUocG9ydC0+c2VyaWFsLT5kZXYsCisJCQlwb3J0LT5idWxrX291dF9lbmRwb2ludEFkZHJlc3MpLAorCQlwb3J0LT53cml0ZV91cmItPnRyYW5zZmVyX2J1ZmZlciwKKwkJdHJhbnNmZXJfc2l6ZSArIDEsCisJCWlyX3dyaXRlX2J1bGtfY2FsbGJhY2ssCisJCXBvcnQpOworCisJcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9mbGFncyA9IFVSQl9aRVJPX1BBQ0tFVDsKKworCXJlc3VsdCA9IHVzYl9zdWJtaXRfdXJiIChwb3J0LT53cml0ZV91cmIsIEdGUF9BVE9NSUMpOworCWlmIChyZXN1bHQpCisJCWRldl9lcnIoJnBvcnQtPmRldiwgIiVzIC0gZmFpbGVkIHN1Ym1pdHRpbmcgd3JpdGUgdXJiLCBlcnJvciAlZFxuIiwgX19GVU5DVElPTl9fLCByZXN1bHQpOworCWVsc2UKKwkJcmVzdWx0ID0gdHJhbnNmZXJfc2l6ZTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyB2b2lkIGlyX3dyaXRlX2J1bGtfY2FsbGJhY2sgKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopdXJiLT5jb250ZXh0OworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisJCisJaWYgKHVyYi0+c3RhdHVzKSB7CisJCWRiZygiJXMgLSBub256ZXJvIHdyaXRlIGJ1bGsgc3RhdHVzIHJlY2VpdmVkOiAlZCIsIF9fRlVOQ1RJT05fXywgdXJiLT5zdGF0dXMpOworCQlyZXR1cm47CisJfQorCisJdXNiX3NlcmlhbF9kZWJ1Z19kYXRhICgKKwkJZGVidWcsCisJCSZwb3J0LT5kZXYsCisJCV9fRlVOQ1RJT05fXywKKwkJdXJiLT5hY3R1YWxfbGVuZ3RoLAorCQl1cmItPnRyYW5zZmVyX2J1ZmZlcik7CisKKwlzY2hlZHVsZV93b3JrKCZwb3J0LT53b3JrKTsKK30KKworc3RhdGljIHZvaWQgaXJfcmVhZF9idWxrX2NhbGxiYWNrIChzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqKXVyYi0+Y29udGV4dDsKKwlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5OworCXVuc2lnbmVkIGNoYXIgKmRhdGEgPSB1cmItPnRyYW5zZmVyX2J1ZmZlcjsKKwlpbnQgcmVzdWx0OworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAoIXBvcnQtPm9wZW5fY291bnQpIHsKKwkJZGJnKCIlcyAtIHBvcnQgY2xvc2VkLiIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybjsKKwl9CisKKwlzd2l0Y2ggKHVyYi0+c3RhdHVzKSB7CisKKwkJY2FzZSAwOiAvKiBTdWNjZXNzZnVsICovCisKKwkJCS8qCisJCQkgKiBUaGUgZmlyc3QgYnl0ZSBvZiB0aGUgcGFja2V0IHdlIGdldCBmcm9tIHRoZSBkZXZpY2UKKwkJCSAqIGNvbnRhaW5zIGEgYnVzeSBpbmRpY2F0b3IgYW5kIGJhdWQgcmF0ZSBjaGFuZ2UuCisJCQkgKiBTZWUgc2VjdGlvbiA1LjQuMS4yIG9mIHRoZSBVU0IgSXJEQSBzcGVjLgorCQkJICovCisJCQlpZiAoKCpkYXRhICYgMHgwZikgPiAwKQorCQkJCWlyX2JhdWQgPSAqZGF0YSAmIDB4MGY7CisKKwkJCXVzYl9zZXJpYWxfZGVidWdfZGF0YSAoCisJCQkJZGVidWcsCisJCQkJJnBvcnQtPmRldiwKKwkJCQlfX0ZVTkNUSU9OX18sCisJCQkJdXJiLT5hY3R1YWxfbGVuZ3RoLAorCQkJCWRhdGEpOworCisJCQkvKgorCQkJICogQnlwYXNzIGZsaXAtYnVmZmVycywgYW5kIGZlZWQgdGhlIGxkaXNjIGRpcmVjdGx5CisJCQkgKiBkdWUgdG8gb3VyIHBvdGVudGlhbGx5IGxhcmdlIGJ1ZmZlciBzaXplLiAgU2luY2Ugd2UKKwkJCSAqIHVzZWQgdG8gc2V0IGxvd19sYXRlbmN5LCB0aGlzIGlzIGV4YWN0bHkgd2hhdCB0aGUKKwkJCSAqIHR0eSBsYXllciBkaWQgYW55d2F5IDopCisJCQkgKi8KKwkJCXR0eSA9IHBvcnQtPnR0eTsKKworCQkJLyoKKwkJCSAqCUZJWE1FOiBtdXN0IG5vdCBkbyB0aGlzIGluIElSUSBjb250ZXh0LAorCQkJICoJbXVzdCBob25vdXIgVFRZX0RPTlRfRkxJUAorCQkJICovCisJCQl0dHktPmxkaXNjLnJlY2VpdmVfYnVmKAorCQkJCXR0eSwKKwkJCQlkYXRhKzEsCisJCQkJTlVMTCwKKwkJCQl1cmItPmFjdHVhbF9sZW5ndGgtMSk7CisKKwkJCS8qCisJCQkgKiBObyBicmVhayBoZXJlLgorCQkJICogV2Ugd2FudCB0byByZXN1Ym1pdCB0aGUgdXJiIHNvIHdlIGNhbiByZWFkCisJCQkgKiBhZ2Fpbi4KKwkJCSAqLworCisJCWNhc2UgLUVQUk9UTzogLyogdGFraW5nIGluc3BpcmF0aW9uIGZyb20gcGwyMzAzLmMgKi8KKworCQkJLyogQ29udGludWUgdHJ5aW5nIHRvIGFsd2F5cyByZWFkICovCisJCQl1c2JfZmlsbF9idWxrX3VyYiAoCisJCQkJcG9ydC0+cmVhZF91cmIsCisJCQkJcG9ydC0+c2VyaWFsLT5kZXYsIAorCQkJCXVzYl9yY3ZidWxrcGlwZShwb3J0LT5zZXJpYWwtPmRldiwKKwkJCQkJcG9ydC0+YnVsa19pbl9lbmRwb2ludEFkZHJlc3MpLAorCQkJCXBvcnQtPnJlYWRfdXJiLT50cmFuc2Zlcl9idWZmZXIsCisJCQkJcG9ydC0+cmVhZF91cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGgsCisJCQkJaXJfcmVhZF9idWxrX2NhbGxiYWNrLAorCQkJCXBvcnQpOworCisJCQlyZXN1bHQgPSB1c2Jfc3VibWl0X3VyYihwb3J0LT5yZWFkX3VyYiwgR0ZQX0FUT01JQyk7CisJCQlpZiAocmVzdWx0KQorCQkJCWRldl9lcnIoJnBvcnQtPmRldiwgIiVzIC0gZmFpbGVkIHJlc3VibWl0dGluZyByZWFkIHVyYiwgZXJyb3IgJWRcbiIsCisJCQkJCV9fRlVOQ1RJT05fXywgcmVzdWx0KTsKKworCQkJYnJlYWsgOworCisJCWRlZmF1bHQ6CisJCQlkYmcoIiVzIC0gbm9uemVybyByZWFkIGJ1bGsgc3RhdHVzIHJlY2VpdmVkOiAlZCIsCisJCQkJX19GVU5DVElPTl9fLCAKKwkJCQl1cmItPnN0YXR1cyk7CisJCQlicmVhayA7CisKKwl9CisKKwlyZXR1cm47Cit9CisKK3N0YXRpYyB2b2lkIGlyX3NldF90ZXJtaW9zIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgdGVybWlvcyAqb2xkX3Rlcm1pb3MpCit7CisJdW5zaWduZWQgY2hhciAqdHJhbnNmZXJfYnVmZmVyOworCXVuc2lnbmVkIGludCBjZmxhZzsKKwlpbnQgcmVzdWx0OworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAoKCFwb3J0LT50dHkpIHx8ICghcG9ydC0+dHR5LT50ZXJtaW9zKSkgeworCQlkYmcoIiVzIC0gbm8gdHR5IHN0cnVjdHVyZXMiLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm47CisJfQorCisJY2ZsYWcgPSBwb3J0LT50dHktPnRlcm1pb3MtPmNfY2ZsYWc7CisJLyogY2hlY2sgdGhhdCB0aGV5IHJlYWxseSB3YW50IHVzIHRvIGNoYW5nZSBzb21ldGhpbmcgKi8KKwlpZiAob2xkX3Rlcm1pb3MpIHsKKwkJaWYgKChjZmxhZyA9PSBvbGRfdGVybWlvcy0+Y19jZmxhZykgJiYKKwkJICAgIChSRUxFVkFOVF9JRkxBRyhwb3J0LT50dHktPnRlcm1pb3MtPmNfaWZsYWcpID09IFJFTEVWQU5UX0lGTEFHKG9sZF90ZXJtaW9zLT5jX2lmbGFnKSkpIHsKKwkJCWRiZygiJXMgLSBub3RoaW5nIHRvIGNoYW5nZS4uLiIsIF9fRlVOQ1RJT05fXyk7CisJCQlyZXR1cm47CisJCX0KKwl9CisKKwkvKiBBbGwgd2UgY2FuIGNoYW5nZSBpcyB0aGUgYmF1ZCByYXRlICovCisJaWYgKGNmbGFnICYgQ0JBVUQpIHsKKworCQlkYmcgKCIlcyAtIGFza2luZyBmb3IgYmF1ZCAlZCIsCisJCQlfX0ZVTkNUSU9OX18sCisJCQl0dHlfZ2V0X2JhdWRfcmF0ZShwb3J0LT50dHkpKTsKKworCQkvKiAKKwkJICogRklYTUUsIHdlIHNob3VsZCBjb21wYXJlIHRoZSBiYXVkIHJlcXVlc3QgYWdhaW5zdCB0aGUKKwkJICogY2FwYWJpbGl0eSBzdGF0ZWQgaW4gdGhlIElSIGhlYWRlciB0aGF0IHdlIGdvdCBpbiB0aGUKKwkJICogc3RhcnR1cCBmdW5jdGlvbi4KKwkJICovCisJCXN3aXRjaCAoY2ZsYWcgJiBDQkFVRCkgeworCQkJY2FzZSBCMjQwMDogICAgaXJfYmF1ZCA9IFNQRUVEXzI0MDA7ICAgIGJyZWFrOworCQkJZGVmYXVsdDoKKwkJCWNhc2UgQjk2MDA6ICAgIGlyX2JhdWQgPSBTUEVFRF85NjAwOyAgICBicmVhazsKKwkJCWNhc2UgQjE5MjAwOiAgIGlyX2JhdWQgPSBTUEVFRF8xOTIwMDsgICBicmVhazsKKwkJCWNhc2UgQjM4NDAwOiAgIGlyX2JhdWQgPSBTUEVFRF8zODQwMDsgICBicmVhazsKKwkJCWNhc2UgQjU3NjAwOiAgIGlyX2JhdWQgPSBTUEVFRF81NzYwMDsgICBicmVhazsKKwkJCWNhc2UgQjExNTIwMDogIGlyX2JhdWQgPSBTUEVFRF8xMTUyMDA7ICBicmVhazsKKwkJCWNhc2UgQjU3NjAwMDogIGlyX2JhdWQgPSBTUEVFRF81NzYwMDA7ICBicmVhazsKKwkJCWNhc2UgQjExNTIwMDA6IGlyX2JhdWQgPSBTUEVFRF8xMTUyMDAwOyBicmVhazsKKyNpZmRlZiBCNDAwMDAwMAorCQkJY2FzZSBCNDAwMDAwMDogaXJfYmF1ZCA9IFNQRUVEXzQwMDAwMDA7IGJyZWFrOworI2VuZGlmCisJCX0KKworCQlpZiAoeGJvZiA9PSAtMSkgeworCQkJaXJfeGJvZiA9IGlyX3hib2ZfY2hhbmdlKGlyX2FkZF9ib2YpOworCQl9IGVsc2UgeworCQkJaXJfeGJvZiA9IGlyX3hib2ZfY2hhbmdlKHhib2YpIDsKKwkJfQorCisJCS8qIE5vdGlmeSB0aGUgdHR5IGRyaXZlciB0aGF0IHRoZSB0ZXJtaW9zIGhhdmUgY2hhbmdlZC4gKi8KKwkJcG9ydC0+dHR5LT5sZGlzYy5zZXRfdGVybWlvcyhwb3J0LT50dHksIE5VTEwpOworCisJCS8qIEZJWE1FIG5lZWQgdG8gY2hlY2sgdG8gc2VlIGlmIG91ciB3cml0ZSB1cmIgaXMgYnVzeSByaWdodAorCQkgKiBub3csIG9yIHVzZSBhIHVyYiBwb29sLgorCQkgKgorCQkgKiBzZW5kIHRoZSBiYXVkIGNoYW5nZSBvdXQgb24gYW4gImVtcHR5IiBkYXRhIHBhY2tldAorCQkgKi8KKwkJdHJhbnNmZXJfYnVmZmVyID0gcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXI7CisJCSp0cmFuc2Zlcl9idWZmZXIgPSBpcl94Ym9mIHwgaXJfYmF1ZDsKKworCQl1c2JfZmlsbF9idWxrX3VyYiAoCisJCQlwb3J0LT53cml0ZV91cmIsCisJCQlwb3J0LT5zZXJpYWwtPmRldiwKKwkJCXVzYl9zbmRidWxrcGlwZShwb3J0LT5zZXJpYWwtPmRldiwKKwkJCQlwb3J0LT5idWxrX291dF9lbmRwb2ludEFkZHJlc3MpLAorCQkJcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXIsCisJCQkxLAorCQkJaXJfd3JpdGVfYnVsa19jYWxsYmFjaywKKwkJCXBvcnQpOworCisJCXBvcnQtPndyaXRlX3VyYi0+dHJhbnNmZXJfZmxhZ3MgPSBVUkJfWkVST19QQUNLRVQ7CisKKwkJcmVzdWx0ID0gdXNiX3N1Ym1pdF91cmIgKHBvcnQtPndyaXRlX3VyYiwgR0ZQX0tFUk5FTCk7CisJCWlmIChyZXN1bHQpCisJCQlkZXZfZXJyKCZwb3J0LT5kZXYsICIlcyAtIGZhaWxlZCBzdWJtaXR0aW5nIHdyaXRlIHVyYiwgZXJyb3IgJWRcbiIsIF9fRlVOQ1RJT05fXywgcmVzdWx0KTsKKwl9CisJcmV0dXJuOworfQorCisKK3N0YXRpYyBpbnQgX19pbml0IGlyX2luaXQgKHZvaWQpCit7CisJaW50IHJldHZhbDsKKwlyZXR2YWwgPSB1c2Jfc2VyaWFsX3JlZ2lzdGVyKCZpcl9kZXZpY2UpOworCWlmIChyZXR2YWwpCisJCWdvdG8gZmFpbGVkX3VzYl9zZXJpYWxfcmVnaXN0ZXI7CisJcmV0dmFsID0gdXNiX3JlZ2lzdGVyKCZpcl9kcml2ZXIpOworCWlmIChyZXR2YWwpIAorCQlnb3RvIGZhaWxlZF91c2JfcmVnaXN0ZXI7CisJaW5mbyhEUklWRVJfREVTQyAiICIgRFJJVkVSX1ZFUlNJT04pOworCXJldHVybiAwOworZmFpbGVkX3VzYl9yZWdpc3RlcjoKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIoJmlyX2RldmljZSk7CitmYWlsZWRfdXNiX3NlcmlhbF9yZWdpc3RlcjoKKwlyZXR1cm4gcmV0dmFsOworfQorCisKK3N0YXRpYyB2b2lkIF9fZXhpdCBpcl9leGl0ICh2b2lkKQoreworCXVzYl9kZXJlZ2lzdGVyICgmaXJfZHJpdmVyKTsKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIgKCZpcl9kZXZpY2UpOworfQorCisKK21vZHVsZV9pbml0KGlyX2luaXQpOworbW9kdWxlX2V4aXQoaXJfZXhpdCk7CisKK01PRFVMRV9BVVRIT1IoRFJJVkVSX0FVVEhPUik7CitNT0RVTEVfREVTQ1JJUFRJT04oRFJJVkVSX0RFU0MpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworCittb2R1bGVfcGFyYW0oZGVidWcsIGJvb2wsIFNfSVJVR08gfCBTX0lXVVNSKTsKK01PRFVMRV9QQVJNX0RFU0MoZGVidWcsICJEZWJ1ZyBlbmFibGVkIG9yIG5vdCIpOworbW9kdWxlX3BhcmFtKHhib2YsIGludCwgMCk7CitNT0RVTEVfUEFSTV9ERVNDKHhib2YsICJGb3JjZSBzcGVjaWZpYyBudW1iZXIgb2YgWEJPRnMiKTsKK21vZHVsZV9wYXJhbShidWZmZXJfc2l6ZSwgaW50LCAwKTsKK01PRFVMRV9QQVJNX0RFU0MoYnVmZmVyX3NpemUsICJTaXplIG9mIHRoZSB0cmFuc2ZlciBidWZmZXJzIik7CisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiMDkyNjIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbi5jCkBAIC0wLDAgKzEsMjM1NCBAQAorLyoKKyAgS2V5c3BhbiBVU0IgdG8gU2VyaWFsIENvbnZlcnRlciBkcml2ZXIKKyAKKyAgKEMpIENvcHlyaWdodCAoQykgMjAwMC0yMDAxCUh1Z2ggQmxlbWluZ3MgPGh1Z2hAYmxlbWluZ3Mub3JnPgorICAoQykgQ29weXJpZ2h0IChDKSAyMDAyCUdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ0Brcm9haC5jb20+CisgICAKKyAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICBTZWUgaHR0cDovL21pc2MubnUvaHVnaC9rZXlzcGFuLmh0bWwgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgIAorICBDb2RlIGluIHRoaXMgZHJpdmVyIGluc3BpcmVkIGJ5IGFuZCBpbiBhIG51bWJlciBvZiBwbGFjZXMgdGFrZW4KKyAgZnJvbSBCcmlhbiBXYXJuZXIncyBvcmlnaW5hbCBLZXlzcGFuLVBEQSBkcml2ZXIuCisKKyAgVGhpcyBkcml2ZXIgaGFzIGJlZW4gcHV0IHRvZ2V0aGVyIHdpdGggdGhlIHN1cHBvcnQgb2YgSW5ub3N5cywgSW5jLgorICBhbmQgS2V5c3BhbiwgSW5jIHRoZSBtYW51ZmFjdHVyZXJzIG9mIHRoZSBLZXlzcGFuIFVTQi1zZXJpYWwgcHJvZHVjdHMuCisgIFRoYW5rcyBHdXlzIDopCisgIAorICBUaGFua3MgdG8gUGF1bHVzIGZvciBtaXNjZWxsYW5lb3VzIHRpZHkgdXBzLCBzb21lIGxhcmdpc2ggY2h1bmtzCisgIG9mIG11Y2ggbmljZXIgYW5kL29yIGNvbXBsZXRlbHkgbmV3IGNvZGUgYW5kIChwZXJoYXBzIG1vc3QgdW5pcXVlbHkpCisgIGhhdmluZyB0aGUgcGF0aWVuY2UgdG8gc2l0IGRvd24gYW5kIGV4cGxhaW4gd2h5IGFuZCB3aGVyZSBoZSdkIGNoYW5nZWQKKyAgc3R1ZmYuIAorICAKKyAgVGlwICdvIHRoZSBoYXQgdG8gSUJNIChhbmQgcHJldmlvdXNseSBMaW51eGNhcmUgOikgZm9yIHN1cHBvcnRpbmcgCisgIHN0YWZmIGluIHRoZWlyIHdvcmsgb24gb3BlbiBzb3VyY2UgcHJvamVjdHMuCisKKyAgQ2hhbmdlIEhpc3RvcnkKKworICAgIDIwMDNzZXAwNAlMUE0gKEtleXNwYW4pIGFkZCBzdXBwb3J0IGZvciBuZXcgc2luZ2xlIHBvcnQgcHJvZHVjdCBVU0ExOUhTLgorCQkJCUltcHJvdmUgc2V0dXAgbWVzc2FnZSBoYW5kbGluZyBmb3IgYWxsIGRldmljZXMuCisKKyAgICBXZWQgRmViIDE5IDIyOjAwOjAwIFBTVCAyMDAzIChKZWZmcmV5IFMuIExhaW5nIDxrZXlzcGFuQGpzbC5jb20+KQorICAgICAgTWVyZ2VkIHRoZSBjdXJyZW50ICgxLzMxLzAzKSBLZXlzcGFuIGNvZGUgd2l0aCB0aGUgY3VycmVudCAoMi40LjIxLXByZTQpCisgICAgICBMaW51eCBzb3VyY2UgdHJlZS4gIFRoZSBMaW51eCB0cmVlIGxhY2tlZCBzdXBwb3J0IGZvciB0aGUgNDlXTEMgYW5kCisgICAgICBvdGhlcnMuICBUaGUgS2V5c3BhbiBwYXRjaGVzIGRpZG4ndCB3b3JrIHdpdGggdGhlIGN1cnJlbnQga2VybmVsLgorCisgICAgMjAwM2phbjMwCUxQTQlhZGQgc3VwcG9ydCBmb3IgdGhlIDQ5V0xDIGFuZCBNUFIKKworICAgIFdlZCBBcHIgMjUgMTI6MDA6MDAgUFNUIDIwMDIgKEtleXNwYW4pCisgICAgICBTdGFydGVkIHdpdGggSHVnaCBCbGVtaW5ncycgY29kZSBkYXRlZCBKYW4gMTcsIDIwMDIuICBBbGwgYWRhcHRlcnMKKyAgICAgIG5vdyBzdXBwb3J0ZWQgKGluY2x1ZGluZyBRSSBhbmQgUVcpLiAgTW9kaWZpZWQgcG9ydCBvcGVuLCBwb3J0CisgICAgICBjbG9zZSwgYW5kIHNlbmQgc2V0dXAoKSBsb2dpYyB0byBmaXggdmFyaW91cyBkYXRhIGFuZCBlbmRwb2ludAorICAgICAgc3luY2hyb25pemF0aW9uIGJ1Z3MgYW5kIGRldmljZSBMRUQgc3RhdHVzIGJ1Z3MuICBDaGFuZ2VkIGtleXNwYW5fCisgICAgICB3cml0ZV9yb29tKCkgdG8gYWNjdXJhdGVseSByZXR1cm4gdHJhbnNtaXQgYnVmZmVyIGF2YWlsYWJpbGl0eS4KKyAgICAgIENoYW5nZWQgZm9yd2FyZGluZ0xlbmd0aCBmcm9tIDEgdG8gMTYgZm9yIGFsbCBhZGFwdGVycy4KKworICAgIEZyaSBPY3QgMTIgMTY6NDU6MDAgRVNUIDIwMDEKKyAgICAgIFByZWxpbWluYXJ5IFVTQS0xOVFJIGFuZCBVU0EtMjggc3VwcG9ydCAoYm90aCB0ZXN0IE9LIGZvciBtZSwgWU1NVikKKworICAgIFdlZCBBcHIgMjUgMTI6MDA6MDAgUFNUIDIwMDIgKEtleXNwYW4pCisgICAgICBTdGFydGVkIHdpdGggSHVnaCBCbGVtaW5ncycgY29kZSBkYXRlZCBKYW4gMTcsIDIwMDIuICBBbGwgYWRhcHRlcnMKKyAgICAgIG5vdyBzdXBwb3J0ZWQgKGluY2x1ZGluZyBRSSBhbmQgUVcpLiAgTW9kaWZpZWQgcG9ydCBvcGVuLCBwb3J0CisgICAgICBjbG9zZSwgYW5kIHNlbmQgc2V0dXAoKSBsb2dpYyB0byBmaXggdmFyaW91cyBkYXRhIGFuZCBlbmRwb2ludAorICAgICAgc3luY2hyb25pemF0aW9uIGJ1Z3MgYW5kIGRldmljZSBMRUQgc3RhdHVzIGJ1Z3MuICBDaGFuZ2VkIGtleXNwYW5fCisgICAgICB3cml0ZV9yb29tKCkgdG8gYWNjdXJhdGVseSByZXR1cm4gdHJhbnNtaXQgYnVmZmVyIGF2YWlsYWJpbGl0eS4KKyAgICAgIENoYW5nZWQgZm9yd2FyZGluZ0xlbmd0aCBmcm9tIDEgdG8gMTYgZm9yIGFsbCBhZGFwdGVycy4KKworICAgIEZyaSBPY3QgMTIgMTY6NDU6MDAgRVNUIDIwMDEKKyAgICAgIFByZWxpbWluYXJ5IFVTQS0xOVFJIGFuZCBVU0EtMjggc3VwcG9ydCAoYm90aCB0ZXN0IE9LIGZvciBtZSwgWU1NVikKKworICAgIE1vbiBPY3QgIDggMTQ6Mjk6MDAgRVNUIDIwMDEgaHVnaAorICAgICAgRml4ZWQgYnVnIHRoYXQgcHJldmVudGVkIG11bGl0cG9ydCBkZXZpY2VzIG9wZXJhdGluZyBjb3JyZWN0bHkKKyAgICAgIGlmIHRoZXkgd2VyZW4ndCB0aGUgZmlyc3QgdW5pdCBhdHRhY2hlZC4KKworICAgIFNhdCBPY3QgIDYgMTI6MzE6MjEgRVNUIDIwMDEgaHVnaAorICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgVVNBLTI4WEEgYW5kIC0yOFhCLCBtaXNjIGNsZWFudXBzLCBicmVhayBzdXBwb3J0CisgICAgICBmb3IgdXNhMjYgYmFzZWQgbW9kZWxzIHRoYW5rcyB0byBEYXZpZCBHaWJzb24uCisKKyAgICBUaHUgTWF5IDMxIDExOjU2OjQyIFBEVCAyMDAxIGdraAorICAgICAgc3dpdGNoZWQgZnJvbSB1c2luZyBzcGlubG9jayB0byBhIHNlbWFwaG9yZQorICAgCisgICAgKDA0LzA4LzIwMDEpIGdiCisJSWRlbnRpZnkgdmVyc2lvbiBvbiBtb2R1bGUgbG9hZC4KKyAgIAorICAgICgxMS8wMS8yMDAwKSBBZGFtIEouIFJpY2h0ZXIKKwl1c2JfZGV2aWNlX2lkIHRhYmxlIHN1cHBvcnQuCisgICAKKyAgICBUdWUgT2N0IDEwIDIzOjE1OjMzIEVTVCAyMDAwIEh1Z2gKKyAgICAgIE1lcmdlZCBQYXVsJ3MgY2hhbmdlcyB3aXRoIG15IFVTQS00OVcgbW9kcy4gIFdvcmsgaW4gcHJvZ3Jlc3MKKyAgICAgIHN0aWxsLi4uCisgIAorICAgIFdlZCBKdWwgMTkgMTQ6MDA6NDIgRVNUIDIwMDAgZ2toCisgICAgICBBZGRlZCBtb2R1bGVfaW5pdCBhbmQgbW9kdWxlX2V4aXQgZnVuY3Rpb25zIHRvIGhhbmRsZSB0aGUgZmFjdCB0aGF0CisgICAgICB0aGlzIGRyaXZlciBpcyBhIGxvYWRhYmxlIG1vZHVsZSBub3cuCisgCisgICAgVHVlIEp1bCAxOCAxNjoxNDo1MiBFU1QgMjAwMCBIdWdoCisgICAgICBCYXNpYyBjaGFyYWN0ZXIgaW5wdXQvb3V0cHV0IGZvciBVU0EtMTkgbm93IG1vc3RseSB3b3JrcywKKyAgICAgIGZpeGVkIGF0IDk2MDAgYmF1ZCBmb3IgdGhlIG1vbWVudC4KKworICAgIFNhdCBKdWwgIDggMTE6MTE6NDggRVNUIDIwMDAgSHVnaAorICAgICAgRmlyc3QgcHVibGljIHJlbGVhc2UgLSBub3RoaW5nIHdvcmtzIGV4Y2VwdCB0aGUgZmlybXdhcmUgdXBsb2FkLgorICAgICAgVGVzdGVkIG9uIFBQQyBhbmQgeDg2IGFyY2hpdGVjdHVyZXMsIHNlZW1zIHRvIGJlaGF2ZS4uLgorKi8KKworCisjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC90dHkuaD4KKyNpbmNsdWRlIDxsaW51eC90dHlfZHJpdmVyLmg+CisjaW5jbHVkZSA8bGludXgvdHR5X2ZsaXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvdXNiLmg+CisjaW5jbHVkZSAidXNiLXNlcmlhbC5oIgorI2luY2x1ZGUgImtleXNwYW4uaCIKKworc3RhdGljIGludCBkZWJ1ZzsKKworLyoKKyAqIFZlcnNpb24gSW5mb3JtYXRpb24KKyAqLworI2RlZmluZSBEUklWRVJfVkVSU0lPTiAidjEuMS40IgorI2RlZmluZSBEUklWRVJfQVVUSE9SICJIdWdoIEJsZW1pbmdzIDxodWdoQG1pc2MubnUiCisjZGVmaW5lIERSSVZFUl9ERVNDICJLZXlzcGFuIFVTQiB0byBTZXJpYWwgQ29udmVydGVyIERyaXZlciIKKworI2RlZmluZSBJTlNUQVRfQlVGTEVOCTMyCisjZGVmaW5lIEdMT0NPTlRfQlVGTEVOCTY0CisKKwkvKiBQZXIgZGV2aWNlIGFuZCBwZXIgcG9ydCBwcml2YXRlIGRhdGEgKi8KK3N0cnVjdCBrZXlzcGFuX3NlcmlhbF9wcml2YXRlIHsKKwljb25zdCBzdHJ1Y3Qga2V5c3Bhbl9kZXZpY2VfZGV0YWlscwkqZGV2aWNlX2RldGFpbHM7CisKKwlzdHJ1Y3QgdXJiCSppbnN0YXRfdXJiOworCWNoYXIJCWluc3RhdF9idWZbSU5TVEFUX0JVRkxFTl07CisKKwkvKiBYWFggdGhpcyBvbmUgcHJvYmFibHkgd2lsbCBuZWVkIGEgbG9jayAqLworCXN0cnVjdCB1cmIJKmdsb2NvbnRfdXJiOworCWNoYXIJCWdsb2NvbnRfYnVmW0dMT0NPTlRfQlVGTEVOXTsKK307CisKK3N0cnVjdCBrZXlzcGFuX3BvcnRfcHJpdmF0ZSB7CisJLyogS2VlcCB0cmFjayBvZiB3aGljaCBpbnB1dCAmIG91dHB1dCBlbmRwb2ludHMgdG8gdXNlICovCisJaW50CQlpbl9mbGlwOworCWludAkJb3V0X2ZsaXA7CisKKwkvKiBLZWVwIGR1cGxpY2F0ZSBvZiBkZXZpY2UgZGV0YWlscyBpbiBlYWNoIHBvcnQKKwkgICBzdHJ1Y3R1cmUgYXMgd2VsbCAtIHNpbXBsaWZpZXMgc29tZSBvZiB0aGUKKwkgICBjYWxsYmFjayBmdW5jdGlvbnMgZXRjLiAqLworCWNvbnN0IHN0cnVjdCBrZXlzcGFuX2RldmljZV9kZXRhaWxzCSpkZXZpY2VfZGV0YWlsczsKKworCS8qIElucHV0IGVuZHBvaW50cyBhbmQgYnVmZmVyIGZvciB0aGlzIHBvcnQgKi8KKwlzdHJ1Y3QgdXJiCSppbl91cmJzWzJdOworCWNoYXIJCWluX2J1ZmZlclsyXVs2NF07CisJLyogT3V0cHV0IGVuZHBvaW50cyBhbmQgYnVmZmVyIGZvciB0aGlzIHBvcnQgKi8KKwlzdHJ1Y3QgdXJiCSpvdXRfdXJic1syXTsKKwljaGFyCQlvdXRfYnVmZmVyWzJdWzY0XTsKKworCS8qIElucHV0IGFjayBlbmRwb2ludCAqLworCXN0cnVjdCB1cmIJKmluYWNrX3VyYjsKKwljaGFyCQlpbmFja19idWZmZXJbMV07CisKKwkvKiBPdXRwdXQgY29udHJvbCBlbmRwb2ludCAqLworCXN0cnVjdCB1cmIJKm91dGNvbnRfdXJiOworCWNoYXIJCW91dGNvbnRfYnVmZmVyWzY0XTsKKworCS8qIFNldHRpbmdzIGZvciB0aGUgcG9ydCAqLworCWludAkJYmF1ZDsKKwlpbnQJCW9sZF9iYXVkOworCXVuc2lnbmVkIGludAljZmxhZzsKKwl1bnNpZ25lZCBpbnQJb2xkX2NmbGFnOworCWVudW0JCXtmbG93X25vbmUsIGZsb3dfY3RzLCBmbG93X3hvbn0gZmxvd19jb250cm9sOworCWludAkJcnRzX3N0YXRlOwkvKiBIYW5kc2hha2luZyBwaW5zIChvdXRwdXRzKSAqLworCWludAkJZHRyX3N0YXRlOworCWludAkJY3RzX3N0YXRlOwkvKiBIYW5kc2hha2luZyBwaW5zIChpbnB1dHMpICovCisJaW50CQlkc3Jfc3RhdGU7CisJaW50CQlkY2Rfc3RhdGU7CisJaW50CQlyaV9zdGF0ZTsKKwlpbnQJCWJyZWFrX29uOworCisJdW5zaWduZWQgbG9uZwl0eF9zdGFydF90aW1lWzJdOworCWludAkJcmVzZW5kX2NvbnQ7CS8qIG5lZWQgdG8gcmVzZW5kIGNvbnRyb2wgcGFja2V0ICovCit9OworCisJCisvKiBJbmNsdWRlIEtleXNwYW4gbWVzc2FnZSBoZWFkZXJzLiAgQWxsIGN1cnJlbnQgS2V5c3BhbiBBZGFwdGVycworICAgbWFrZSB1c2Ugb2Ygb25lIG9mIGZvdXIgbWVzc2FnZSBmb3JtYXRzIHdoaWNoIGFyZSByZWZlcnJlZAorICAgdG8gYXMgVVNBLTI2LCBVU0EtMjggYW5kIFVTQS00OSwgVVNBLTkwIGJ5IEtleXNwYW4gYW5kIHdpdGhpbiB0aGlzIGRyaXZlci4gKi8KKyNpbmNsdWRlICJrZXlzcGFuX3VzYTI2bXNnLmgiCisjaW5jbHVkZSAia2V5c3Bhbl91c2EyOG1zZy5oIgorI2luY2x1ZGUgImtleXNwYW5fdXNhNDltc2cuaCIKKyNpbmNsdWRlICJrZXlzcGFuX3VzYTkwbXNnLmgiCisJCisKKy8qIEZ1bmN0aW9ucyB1c2VkIGJ5IG5ldyB1c2Itc2VyaWFsIGNvZGUuICovCitzdGF0aWMgaW50IF9faW5pdCBrZXlzcGFuX2luaXQgKHZvaWQpCit7CisJaW50IHJldHZhbDsKKwlyZXR2YWwgPSB1c2Jfc2VyaWFsX3JlZ2lzdGVyKCZrZXlzcGFuX3ByZV9kZXZpY2UpOworCWlmIChyZXR2YWwpCisJCWdvdG8gZmFpbGVkX3ByZV9kZXZpY2VfcmVnaXN0ZXI7CisJcmV0dmFsID0gdXNiX3NlcmlhbF9yZWdpc3Rlcigma2V5c3Bhbl8xcG9ydF9kZXZpY2UpOworCWlmIChyZXR2YWwpCisJCWdvdG8gZmFpbGVkXzFwb3J0X2RldmljZV9yZWdpc3RlcjsKKwlyZXR2YWwgPSB1c2Jfc2VyaWFsX3JlZ2lzdGVyKCZrZXlzcGFuXzJwb3J0X2RldmljZSk7CisJaWYgKHJldHZhbCkKKwkJZ290byBmYWlsZWRfMnBvcnRfZGV2aWNlX3JlZ2lzdGVyOworCXJldHZhbCA9IHVzYl9zZXJpYWxfcmVnaXN0ZXIoJmtleXNwYW5fNHBvcnRfZGV2aWNlKTsKKwlpZiAocmV0dmFsKQorCQlnb3RvIGZhaWxlZF80cG9ydF9kZXZpY2VfcmVnaXN0ZXI7CisJcmV0dmFsID0gdXNiX3JlZ2lzdGVyKCZrZXlzcGFuX2RyaXZlcik7CisJaWYgKHJldHZhbCkgCisJCWdvdG8gZmFpbGVkX3VzYl9yZWdpc3RlcjsKKworCWluZm8oRFJJVkVSX1ZFUlNJT04gIjoiIERSSVZFUl9ERVNDKTsKKworCXJldHVybiAwOworZmFpbGVkX3VzYl9yZWdpc3RlcjoKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIoJmtleXNwYW5fNHBvcnRfZGV2aWNlKTsKK2ZhaWxlZF80cG9ydF9kZXZpY2VfcmVnaXN0ZXI6CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyKCZrZXlzcGFuXzJwb3J0X2RldmljZSk7CitmYWlsZWRfMnBvcnRfZGV2aWNlX3JlZ2lzdGVyOgorCXVzYl9zZXJpYWxfZGVyZWdpc3Rlcigma2V5c3Bhbl8xcG9ydF9kZXZpY2UpOworZmFpbGVkXzFwb3J0X2RldmljZV9yZWdpc3RlcjoKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIoJmtleXNwYW5fcHJlX2RldmljZSk7CitmYWlsZWRfcHJlX2RldmljZV9yZWdpc3RlcjoKKwlyZXR1cm4gcmV0dmFsOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQga2V5c3Bhbl9leGl0ICh2b2lkKQoreworCXVzYl9kZXJlZ2lzdGVyICgma2V5c3Bhbl9kcml2ZXIpOworCXVzYl9zZXJpYWxfZGVyZWdpc3RlciAoJmtleXNwYW5fcHJlX2RldmljZSk7CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyICgma2V5c3Bhbl8xcG9ydF9kZXZpY2UpOworCXVzYl9zZXJpYWxfZGVyZWdpc3RlciAoJmtleXNwYW5fMnBvcnRfZGV2aWNlKTsKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIgKCZrZXlzcGFuXzRwb3J0X2RldmljZSk7Cit9CisKK21vZHVsZV9pbml0KGtleXNwYW5faW5pdCk7Cittb2R1bGVfZXhpdChrZXlzcGFuX2V4aXQpOworCitzdGF0aWMgdm9pZCBrZXlzcGFuX3J4X3Rocm90dGxlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworfQorCisKK3N0YXRpYyB2b2lkIGtleXNwYW5fcnhfdW50aHJvdHRsZSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKK3sKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKK30KKworCitzdGF0aWMgdm9pZCBrZXlzcGFuX2JyZWFrX2N0bCAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgaW50IGJyZWFrX3N0YXRlKQoreworCXN0cnVjdCBrZXlzcGFuX3BvcnRfcHJpdmF0ZSAJKnBfcHJpdjsKKworIAlkYmcoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCXBfcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKworCWlmIChicmVha19zdGF0ZSA9PSAtMSkKKwkJcF9wcml2LT5icmVha19vbiA9IDE7CisJZWxzZQorCQlwX3ByaXYtPmJyZWFrX29uID0gMDsKKworCWtleXNwYW5fc2VuZF9zZXR1cChwb3J0LCAwKTsKK30KKworCitzdGF0aWMgdm9pZCBrZXlzcGFuX3NldF90ZXJtaW9zIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCAKKwkJCQkgICAgIHN0cnVjdCB0ZXJtaW9zICpvbGRfdGVybWlvcykKK3sKKwlpbnQJCQkJYmF1ZF9yYXRlLCBkZXZpY2VfcG9ydDsKKwlzdHJ1Y3Qga2V5c3Bhbl9wb3J0X3ByaXZhdGUgCSpwX3ByaXY7CisJY29uc3Qgc3RydWN0IGtleXNwYW5fZGV2aWNlX2RldGFpbHMJKmRfZGV0YWlsczsKKwl1bnNpZ25lZCBpbnQgCQkJY2ZsYWc7CisKKwlkYmcoIiVzIiwgX19GVU5DVElPTl9fKTsgCisKKwlwX3ByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJZF9kZXRhaWxzID0gcF9wcml2LT5kZXZpY2VfZGV0YWlsczsKKwljZmxhZyA9IHBvcnQtPnR0eS0+dGVybWlvcy0+Y19jZmxhZzsKKwlkZXZpY2VfcG9ydCA9IHBvcnQtPm51bWJlciAtIHBvcnQtPnNlcmlhbC0+bWlub3I7CisKKwkvKiBCYXVkIHJhdGUgY2FsY3VsYXRpb24gdGFrZXMgYmF1ZCByYXRlIGFzIGFuIGludGVnZXIKKwkgICBzbyBvdGhlciByYXRlcyBjYW4gYmUgZ2VuZXJhdGVkIGlmIGRlc2lyZWQuICovCisJYmF1ZF9yYXRlID0gdHR5X2dldF9iYXVkX3JhdGUocG9ydC0+dHR5KTsKKwkvKiBJZiBubyBtYXRjaCBvciBpbnZhbGlkLCBkb24ndCBjaGFuZ2UgKi8JCQorCWlmIChiYXVkX3JhdGUgPj0gMAorCSAgICAmJiBkX2RldGFpbHMtPmNhbGN1bGF0ZV9iYXVkX3JhdGUoYmF1ZF9yYXRlLCBkX2RldGFpbHMtPmJhdWRjbGssCisJCQkJTlVMTCwgTlVMTCwgTlVMTCwgZGV2aWNlX3BvcnQpID09IEtFWVNQQU5fQkFVRF9SQVRFX09LKSB7CisJCS8qIEZJWE1FIC0gbW9yZSB0byBkbyBoZXJlIHRvIGVuc3VyZSByYXRlIGNoYW5nZXMgY2xlYW5seSAqLworCQlwX3ByaXYtPmJhdWQgPSBiYXVkX3JhdGU7CisJfQorCisJLyogc2V0IENUUy9SVFMgaGFuZHNoYWtlIGV0Yy4gKi8KKwlwX3ByaXYtPmNmbGFnID0gY2ZsYWc7CisJcF9wcml2LT5mbG93X2NvbnRyb2wgPSAoY2ZsYWcgJiBDUlRTQ1RTKT8gZmxvd19jdHM6IGZsb3dfbm9uZTsKKworCWtleXNwYW5fc2VuZF9zZXR1cChwb3J0LCAwKTsKK30KKworc3RhdGljIGludCBrZXlzcGFuX3Rpb2NtZ2V0KHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXVuc2lnbmVkIGludAkJCXZhbHVlOworCXN0cnVjdCBrZXlzcGFuX3BvcnRfcHJpdmF0ZSAJKnBfcHJpdjsKKworCXBfcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwkKKwl2YWx1ZSA9ICgocF9wcml2LT5ydHNfc3RhdGUpID8gVElPQ01fUlRTIDogMCkgfAorCQkoKHBfcHJpdi0+ZHRyX3N0YXRlKSA/IFRJT0NNX0RUUiA6IDApIHwKKwkJKChwX3ByaXYtPmN0c19zdGF0ZSkgPyBUSU9DTV9DVFMgOiAwKSB8CisJCSgocF9wcml2LT5kc3Jfc3RhdGUpID8gVElPQ01fRFNSIDogMCkgfAorCQkoKHBfcHJpdi0+ZGNkX3N0YXRlKSA/IFRJT0NNX0NBUiA6IDApIHwKKwkJKChwX3ByaXYtPnJpX3N0YXRlKSA/IFRJT0NNX1JORyA6IDApOyAKKworCXJldHVybiB2YWx1ZTsKK30KKworc3RhdGljIGludCBrZXlzcGFuX3Rpb2Ntc2V0KHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxlLAorCQkJICAgIHVuc2lnbmVkIGludCBzZXQsIHVuc2lnbmVkIGludCBjbGVhcikKK3sKKwlzdHJ1Y3Qga2V5c3Bhbl9wb3J0X3ByaXZhdGUgCSpwX3ByaXY7CisKKwlwX3ByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJCisJaWYgKHNldCAmIFRJT0NNX1JUUykKKwkJcF9wcml2LT5ydHNfc3RhdGUgPSAxOworCWlmIChzZXQgJiBUSU9DTV9EVFIpCisJCXBfcHJpdi0+ZHRyX3N0YXRlID0gMTsKKworCWlmIChjbGVhciAmIFRJT0NNX1JUUykKKwkJcF9wcml2LT5ydHNfc3RhdGUgPSAwOworCWlmIChjbGVhciAmIFRJT0NNX0RUUikKKwkJcF9wcml2LT5kdHJfc3RhdGUgPSAwOworCWtleXNwYW5fc2VuZF9zZXR1cChwb3J0LCAwKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBrZXlzcGFuX2lvY3RsKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxlLAorCQkJICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKK3sKKwlyZXR1cm4gLUVOT0lPQ1RMQ01EOworfQorCisJLyogV3JpdGUgZnVuY3Rpb24gaXMgc2ltaWxhciBmb3IgdGhlIGZvdXIgcHJvdG9jb2xzIHVzZWQKKwkgICB3aXRoIG9ubHkgYSBtaW5vciBjaGFuZ2UgZm9yIHVzYTkwICh1c2ExOWhzKSByZXF1aXJlZCAqLworc3RhdGljIGludCBrZXlzcGFuX3dyaXRlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIAorCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGNvdW50KQoreworCXN0cnVjdCBrZXlzcGFuX3BvcnRfcHJpdmF0ZSAJKnBfcHJpdjsKKwljb25zdCBzdHJ1Y3Qga2V5c3Bhbl9kZXZpY2VfZGV0YWlscwkqZF9kZXRhaWxzOworCWludAkJCQlmbGlwOworCWludCAJCQkJbGVmdCwgdG9kbzsKKwlzdHJ1Y3QgdXJiCQkJKnRoaXNfdXJiOworIAlpbnQgCQkJCWVyciwgbWF4RGF0YUxlbiwgZGF0YU9mZnNldDsKKworCXBfcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlkX2RldGFpbHMgPSBwX3ByaXYtPmRldmljZV9kZXRhaWxzOworCisJaWYgKGRfZGV0YWlscy0+bXNnX2Zvcm1hdCA9PSBtc2dfdXNhOTApIHsKKyAgIAkJbWF4RGF0YUxlbiA9IDY0OworCQlkYXRhT2Zmc2V0ID0gMDsKKwl9IGVsc2UgeworCQltYXhEYXRhTGVuID0gNjM7CisJCWRhdGFPZmZzZXQgPSAxOworCX0KKwkKKwlkYmcoIiVzIC0gZm9yIHBvcnQgJWQgKCVkIGNoYXJzKSwgZmxpcD0lZCIsCisJICAgIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyLCBjb3VudCwgcF9wcml2LT5vdXRfZmxpcCk7CisKKwlmb3IgKGxlZnQgPSBjb3VudDsgbGVmdCA+IDA7IGxlZnQgLT0gdG9kbykgeworCQl0b2RvID0gbGVmdDsKKwkJaWYgKHRvZG8gPiBtYXhEYXRhTGVuKQorCQkJdG9kbyA9IG1heERhdGFMZW47CisKKwkJZmxpcCA9IHBfcHJpdi0+b3V0X2ZsaXA7CisJCisJCS8qIENoZWNrIHdlIGhhdmUgYSB2YWxpZCB1cmIvZW5kcG9pbnQgYmVmb3JlIHdlIHVzZSBpdC4uLiAqLworCQlpZiAoKHRoaXNfdXJiID0gcF9wcml2LT5vdXRfdXJic1tmbGlwXSkgPT0gTlVMTCkgeworCQkJLyogbm8gYnVsayBvdXQsIHNvIHJldHVybiAwIGJ5dGVzIHdyaXR0ZW4gKi8KKwkJCWRiZygiJXMgLSBubyBvdXRwdXQgdXJiIDooIiwgX19GVU5DVElPTl9fKTsKKwkJCXJldHVybiBjb3VudDsKKwkJfQorCisJCWRiZygiJXMgLSBlbmRwb2ludCAlZCBmbGlwICVkIiwgX19GVU5DVElPTl9fLCB1c2JfcGlwZWVuZHBvaW50KHRoaXNfdXJiLT5waXBlKSwgZmxpcCk7CisKKwkJaWYgKHRoaXNfdXJiLT5zdGF0dXMgPT0gLUVJTlBST0dSRVNTKSB7CisJCQlpZiAodGhpc191cmItPnRyYW5zZmVyX2ZsYWdzICYgVVJCX0FTWU5DX1VOTElOSykKKwkJCQlicmVhazsKKwkJCWlmICh0aW1lX2JlZm9yZShqaWZmaWVzLCBwX3ByaXYtPnR4X3N0YXJ0X3RpbWVbZmxpcF0gKyAxMCAqIEhaKSkKKwkJCQlicmVhazsKKwkJCXRoaXNfdXJiLT50cmFuc2Zlcl9mbGFncyB8PSBVUkJfQVNZTkNfVU5MSU5LOworCQkJdXNiX3VubGlua191cmIodGhpc191cmIpOworCQkJYnJlYWs7CisJCX0KKworCQkvKiBGaXJzdCBieXRlIGluIGJ1ZmZlciBpcyAibGFzdCBmbGFnIiAoZXhjZXB0IGZvciB1c2ExOWh4KSAtIHVudXNlZCBzbworCQkgICBmb3Igbm93IHNvIHNldCB0byB6ZXJvICovCisJCSgoY2hhciAqKXRoaXNfdXJiLT50cmFuc2Zlcl9idWZmZXIpWzBdID0gMDsKKworCQltZW1jcHkgKHRoaXNfdXJiLT50cmFuc2Zlcl9idWZmZXIgKyBkYXRhT2Zmc2V0LCBidWYsIHRvZG8pOworCQlidWYgKz0gdG9kbzsKKworCQkvKiBzZW5kIHRoZSBkYXRhIG91dCB0aGUgYnVsayBwb3J0ICovCisJCXRoaXNfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoID0gdG9kbyArIGRhdGFPZmZzZXQ7CisKKwkJdGhpc191cmItPnRyYW5zZmVyX2ZsYWdzICY9IH5VUkJfQVNZTkNfVU5MSU5LOworCQl0aGlzX3VyYi0+ZGV2ID0gcG9ydC0+c2VyaWFsLT5kZXY7CisJCWlmICgoZXJyID0gdXNiX3N1Ym1pdF91cmIodGhpc191cmIsIEdGUF9BVE9NSUMpKSAhPSAwKSB7CisJCQlkYmcoInVzYl9zdWJtaXRfdXJiKHdyaXRlIGJ1bGspIGZhaWxlZCAoJWQpIiwgZXJyKTsKKwkJfQorCQlwX3ByaXYtPnR4X3N0YXJ0X3RpbWVbZmxpcF0gPSBqaWZmaWVzOworCisJCS8qIEZsaXAgZm9yIG5leHQgdGltZSBpZiB1c2EyNiBvciB1c2EyOCBpbnRlcmZhY2UKKwkJICAgKG5vdCB1c2VkIG9uIHVzYTQ5KSAqLworCQlwX3ByaXYtPm91dF9mbGlwID0gKGZsaXAgKyAxKSAmIGRfZGV0YWlscy0+b3V0ZGF0X2VuZHBfZmxpcDsKKwl9CisKKwlyZXR1cm4gY291bnQgLSBsZWZ0OworfQorCitzdGF0aWMgdm9pZAl1c2EyNl9pbmRhdF9jYWxsYmFjayhzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCWludAkJCWksIGVycjsKKwlpbnQJCQllbmRwb2ludDsKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0CSpwb3J0OworCXN0cnVjdCB0dHlfc3RydWN0CSp0dHk7CisJdW5zaWduZWQgY2hhciAJCSpkYXRhID0gdXJiLT50cmFuc2Zlcl9idWZmZXI7CisKKwlkYmcgKCIlcyIsIF9fRlVOQ1RJT05fXyk7IAorCisJZW5kcG9pbnQgPSB1c2JfcGlwZWVuZHBvaW50KHVyYi0+cGlwZSk7CisKKwlpZiAodXJiLT5zdGF0dXMpIHsKKwkJZGJnKCIlcyAtIG5vbnplcm8gc3RhdHVzOiAleCBvbiBlbmRwb2ludCAlZC4iLAorCQkgICAgX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cywgZW5kcG9pbnQpOworCQlyZXR1cm47CisJfQorCisJcG9ydCA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopIHVyYi0+Y29udGV4dDsKKwl0dHkgPSBwb3J0LT50dHk7CisJaWYgKHVyYi0+YWN0dWFsX2xlbmd0aCkgeworCQkvKiAweDgwIGJpdCBpcyBlcnJvciBmbGFnICovCisJCWlmICgoZGF0YVswXSAmIDB4ODApID09IDApIHsKKwkJCS8qIG5vIGVycm9ycyBvbiBpbmRpdmlkdWFsIGJ5dGVzLCBvbmx5IHBvc3NpYmxlIG92ZXJydW4gZXJyKi8KKwkJCWlmIChkYXRhWzBdICYgUlhFUlJPUl9PVkVSUlVOKQorCQkJCQllcnIgPSBUVFlfT1ZFUlJVTjsKKwkJCWVsc2UgZXJyID0gMDsKKwkJCWZvciAoaSA9IDE7IGkgPCB1cmItPmFjdHVhbF9sZW5ndGggOyArK2kpIHsKKwkJCQl0dHlfaW5zZXJ0X2ZsaXBfY2hhcih0dHksIGRhdGFbaV0sIGVycik7CisJCQl9CisJCX0gZWxzZSB7CisJCQkvKiBzb21lIGJ5dGVzIGhhZCBlcnJvcnMsIGV2ZXJ5IGJ5dGUgaGFzIHN0YXR1cyAqLworCQkJZGJnKCIlcyAtIFJYIGVycm9yISEhISIsIF9fRlVOQ1RJT05fXyk7CisJCQlmb3IgKGkgPSAwOyBpICsgMSA8IHVyYi0+YWN0dWFsX2xlbmd0aDsgaSArPSAyKSB7CisJCQkJaW50IHN0YXQgPSBkYXRhW2ldLCBmbGFnID0gMDsKKwkJCQlpZiAoc3RhdCAmIFJYRVJST1JfT1ZFUlJVTikKKwkJCQkJZmxhZyB8PSBUVFlfT1ZFUlJVTjsKKwkJCQlpZiAoc3RhdCAmIFJYRVJST1JfRlJBTUlORykKKwkJCQkJZmxhZyB8PSBUVFlfRlJBTUU7CisJCQkJaWYgKHN0YXQgJiBSWEVSUk9SX1BBUklUWSkKKwkJCQkJZmxhZyB8PSBUVFlfUEFSSVRZOworCQkJCS8qIFhYWCBzaG91bGQgaGFuZGxlIGJyZWFrICgweDEwKSAqLworCQkJCXR0eV9pbnNlcnRfZmxpcF9jaGFyKHR0eSwgZGF0YVtpKzFdLCBmbGFnKTsKKwkJCX0KKwkJfQorCQl0dHlfZmxpcF9idWZmZXJfcHVzaCh0dHkpOworCX0KKwkJCQkKKwkJLyogUmVzdWJtaXQgdXJiIHNvIHdlIGNvbnRpbnVlIHJlY2VpdmluZyAqLworCXVyYi0+ZGV2ID0gcG9ydC0+c2VyaWFsLT5kZXY7CisJaWYgKHBvcnQtPm9wZW5fY291bnQpCisJCWlmICgoZXJyID0gdXNiX3N1Ym1pdF91cmIodXJiLCBHRlBfQVRPTUlDKSkgIT0gMCkgeworCQkJZGJnKCIlcyAtIHJlc3VibWl0IHJlYWQgdXJiIGZhaWxlZC4gKCVkKSIsIF9fRlVOQ1RJT05fXywgZXJyKTsKKwkJfQorCXJldHVybjsKK30KKworIAkvKiBPdXRkYXQgaGFuZGxpbmcgaXMgY29tbW9uIGZvciBhbGwgZGV2aWNlcyAqLworc3RhdGljIHZvaWQJdXNhMnhfb3V0ZGF0X2NhbGxiYWNrKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydDsKKwlzdHJ1Y3Qga2V5c3Bhbl9wb3J0X3ByaXZhdGUgKnBfcHJpdjsKKworCXBvcnQgPSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqKSB1cmItPmNvbnRleHQ7CisJcF9wcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCWRiZyAoIiVzIC0gdXJiICVkIiwgX19GVU5DVElPTl9fLCB1cmIgPT0gcF9wcml2LT5vdXRfdXJic1sxXSk7IAorCisJaWYgKHBvcnQtPm9wZW5fY291bnQpCisJCXNjaGVkdWxlX3dvcmsoJnBvcnQtPndvcmspOworfQorCitzdGF0aWMgdm9pZAl1c2EyNl9pbmFja19jYWxsYmFjayhzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCWRiZyAoIiVzIiwgX19GVU5DVElPTl9fKTsgCisJCit9CisKK3N0YXRpYyB2b2lkCXVzYTI2X291dGNvbnRfY2FsbGJhY2soc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0OworCXN0cnVjdCBrZXlzcGFuX3BvcnRfcHJpdmF0ZSAqcF9wcml2OworCisJcG9ydCA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopIHVyYi0+Y29udGV4dDsKKwlwX3ByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisKKwlpZiAocF9wcml2LT5yZXNlbmRfY29udCkgeworCQlkYmcgKCIlcyAtIHNlbmRpbmcgc2V0dXAiLCBfX0ZVTkNUSU9OX18pOyAKKwkJa2V5c3Bhbl91c2EyNl9zZW5kX3NldHVwKHBvcnQtPnNlcmlhbCwgcG9ydCwgcF9wcml2LT5yZXNlbmRfY29udCAtIDEpOworCX0KK30KKworc3RhdGljIHZvaWQJdXNhMjZfaW5zdGF0X2NhbGxiYWNrKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJdW5zaWduZWQgY2hhciAJCQkJKmRhdGEgPSB1cmItPnRyYW5zZmVyX2J1ZmZlcjsKKwlzdHJ1Y3Qga2V5c3Bhbl91c2EyNl9wb3J0U3RhdHVzTWVzc2FnZQkqbXNnOworCXN0cnVjdCB1c2Jfc2VyaWFsCQkJKnNlcmlhbDsKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0CQkJKnBvcnQ7CisJc3RydWN0IGtleXNwYW5fcG9ydF9wcml2YXRlCSAJKnBfcHJpdjsKKwlpbnQgb2xkX2RjZF9zdGF0ZSwgZXJyOworCisJc2VyaWFsID0gKHN0cnVjdCB1c2Jfc2VyaWFsICopIHVyYi0+Y29udGV4dDsKKworCWlmICh1cmItPnN0YXR1cykgeworCQlkYmcoIiVzIC0gbm9uemVybyBzdGF0dXM6ICV4IiwgX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyk7CisJCXJldHVybjsKKwl9CisJaWYgKHVyYi0+YWN0dWFsX2xlbmd0aCAhPSA5KSB7CisJCWRiZygiJXMgLSAlZCBieXRlIHJlcG9ydD8/IiwgX19GVU5DVElPTl9fLCB1cmItPmFjdHVhbF9sZW5ndGgpOworCQlnb3RvIGV4aXQ7CisJfQorCisJbXNnID0gKHN0cnVjdCBrZXlzcGFuX3VzYTI2X3BvcnRTdGF0dXNNZXNzYWdlICopZGF0YTsKKworI2lmIDAKKwlkYmcoIiVzIC0gcG9ydCBzdGF0dXM6IHBvcnQgJWQgY3RzICVkIGRjZCAlZCBkc3IgJWQgcmkgJWQgdG9mZiAlZCB0eG9mZiAlZCByeGVuICVkIGNyICVkIiwKKwkgICAgX19GVU5DVElPTl9fLCBtc2ctPnBvcnQsIG1zZy0+aHNraWFfY3RzLCBtc2ctPmdwaWFfZGNkLCBtc2ctPmRzciwgbXNnLT5yaSwgbXNnLT5fdHhPZmYsCisJICAgIG1zZy0+X3R4WG9mZiwgbXNnLT5yeEVuYWJsZWQsIG1zZy0+Y29udHJvbFJlc3BvbnNlKTsKKyNlbmRpZgorCisJLyogTm93IGRvIHNvbWV0aGluZyB1c2VmdWwgd2l0aCB0aGUgZGF0YSAqLworCisKKwkvKiBDaGVjayBwb3J0IG51bWJlciBmcm9tIG1lc3NhZ2UgYW5kIHJldHJpZXZlIHByaXZhdGUgZGF0YSAqLwkKKwlpZiAobXNnLT5wb3J0ID49IHNlcmlhbC0+bnVtX3BvcnRzKSB7CisJCWRiZyAoIiVzIC0gVW5leHBlY3RlZCBwb3J0IG51bWJlciAlZCIsIF9fRlVOQ1RJT05fXywgbXNnLT5wb3J0KTsKKwkJZ290byBleGl0OworCX0KKwlwb3J0ID0gc2VyaWFsLT5wb3J0W21zZy0+cG9ydF07CisJcF9wcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCQorCS8qIFVwZGF0ZSBoYW5kc2hha2luZyBwaW4gc3RhdGUgaW5mb3JtYXRpb24gKi8KKwlvbGRfZGNkX3N0YXRlID0gcF9wcml2LT5kY2Rfc3RhdGU7CisJcF9wcml2LT5jdHNfc3RhdGUgPSAoKG1zZy0+aHNraWFfY3RzKSA/IDEgOiAwKTsKKwlwX3ByaXYtPmRzcl9zdGF0ZSA9ICgobXNnLT5kc3IpID8gMSA6IDApOworCXBfcHJpdi0+ZGNkX3N0YXRlID0gKChtc2ctPmdwaWFfZGNkKSA/IDEgOiAwKTsKKwlwX3ByaXYtPnJpX3N0YXRlID0gKChtc2ctPnJpKSA/IDEgOiAwKTsKKworCWlmIChwb3J0LT50dHkgJiYgIUNfQ0xPQ0FMKHBvcnQtPnR0eSkKKwkgICAgJiYgb2xkX2RjZF9zdGF0ZSAhPSBwX3ByaXYtPmRjZF9zdGF0ZSkgeworCQlpZiAob2xkX2RjZF9zdGF0ZSkKKwkJCXR0eV9oYW5ndXAocG9ydC0+dHR5KTsKKwkJLyogIGVsc2UgKi8KKwkJLyoJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCZwX3ByaXYtPm9wZW5fd2FpdCk7ICovCisJfQorCQorCS8qIFJlc3VibWl0IHVyYiBzbyB3ZSBjb250aW51ZSByZWNlaXZpbmcgKi8KKwl1cmItPmRldiA9IHNlcmlhbC0+ZGV2OworCWlmICgoZXJyID0gdXNiX3N1Ym1pdF91cmIodXJiLCBHRlBfQVRPTUlDKSkgIT0gMCkgeworCQlkYmcoIiVzIC0gcmVzdWJtaXQgcmVhZCB1cmIgZmFpbGVkLiAoJWQpIiwgX19GVU5DVElPTl9fLCBlcnIpOworCX0KK2V4aXQ6IDsKK30KKworc3RhdGljIHZvaWQJdXNhMjZfZ2xvY29udF9jYWxsYmFjayhzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCWRiZyAoIiVzIiwgX19GVU5DVElPTl9fKTsKKwkKK30KKworCitzdGF0aWMgdm9pZCB1c2EyOF9pbmRhdF9jYWxsYmFjayhzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCWludCAgICAgICAgICAgICAgICAgICAgIGksIGVycjsKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICAqcG9ydDsKKwlzdHJ1Y3QgdHR5X3N0cnVjdCAgICAgICAqdHR5OworCXVuc2lnbmVkIGNoYXIgICAgICAgICAgICpkYXRhOworCXN0cnVjdCBrZXlzcGFuX3BvcnRfcHJpdmF0ZSAgICAgICAgICAgICAqcF9wcml2OworCisJZGJnICgiJXMiLCBfX0ZVTkNUSU9OX18pOworCisJcG9ydCA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopIHVyYi0+Y29udGV4dDsKKwlwX3ByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJZGF0YSA9IHVyYi0+dHJhbnNmZXJfYnVmZmVyOworCisJaWYgKHVyYiAhPSBwX3ByaXYtPmluX3VyYnNbcF9wcml2LT5pbl9mbGlwXSkKKwkJcmV0dXJuOworCisJZG8geworCQlpZiAodXJiLT5zdGF0dXMpIHsKKwkJCWRiZygiJXMgLSBub256ZXJvIHN0YXR1czogJXggb24gZW5kcG9pbnQgJWQuIiwKKwkJCSAgICBfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzLCB1c2JfcGlwZWVuZHBvaW50KHVyYi0+cGlwZSkpOworCQkJcmV0dXJuOworCQl9CisKKwkJcG9ydCA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopIHVyYi0+Y29udGV4dDsKKwkJcF9wcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCQlkYXRhID0gdXJiLT50cmFuc2Zlcl9idWZmZXI7CisKKwkJdHR5ID0gcG9ydC0+dHR5OworCQlpZiAodXJiLT5hY3R1YWxfbGVuZ3RoKSB7CisJCQlmb3IgKGkgPSAwOyBpIDwgdXJiLT5hY3R1YWxfbGVuZ3RoIDsgKytpKSB7CisJCQkJdHR5X2luc2VydF9mbGlwX2NoYXIodHR5LCBkYXRhW2ldLCAwKTsKKwkJCX0KKwkJCXR0eV9mbGlwX2J1ZmZlcl9wdXNoKHR0eSk7CisJCX0KKworCQkvKiBSZXN1Ym1pdCB1cmIgc28gd2UgY29udGludWUgcmVjZWl2aW5nICovCisJCXVyYi0+ZGV2ID0gcG9ydC0+c2VyaWFsLT5kZXY7CisJCWlmIChwb3J0LT5vcGVuX2NvdW50KQorCQkJaWYgKChlcnIgPSB1c2Jfc3VibWl0X3VyYih1cmIsIEdGUF9BVE9NSUMpKSAhPSAwKSB7CisJCQkJZGJnKCIlcyAtIHJlc3VibWl0IHJlYWQgdXJiIGZhaWxlZC4gKCVkKSIsIF9fRlVOQ1RJT05fXywgZXJyKTsKKwkJCX0KKwkJcF9wcml2LT5pbl9mbGlwIF49IDE7CisKKwkJdXJiID0gcF9wcml2LT5pbl91cmJzW3BfcHJpdi0+aW5fZmxpcF07CisJfSB3aGlsZSAodXJiLT5zdGF0dXMgIT0gLUVJTlBST0dSRVNTKTsKK30KKworc3RhdGljIHZvaWQJdXNhMjhfaW5hY2tfY2FsbGJhY2soc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlkYmcgKCIlcyIsIF9fRlVOQ1RJT05fXyk7Cit9CisKK3N0YXRpYyB2b2lkCXVzYTI4X291dGNvbnRfY2FsbGJhY2soc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0OworCXN0cnVjdCBrZXlzcGFuX3BvcnRfcHJpdmF0ZSAqcF9wcml2OworCisJcG9ydCA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopIHVyYi0+Y29udGV4dDsKKwlwX3ByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisKKwlpZiAocF9wcml2LT5yZXNlbmRfY29udCkgeworCQlkYmcgKCIlcyAtIHNlbmRpbmcgc2V0dXAiLCBfX0ZVTkNUSU9OX18pOworCQlrZXlzcGFuX3VzYTI4X3NlbmRfc2V0dXAocG9ydC0+c2VyaWFsLCBwb3J0LCBwX3ByaXYtPnJlc2VuZF9jb250IC0gMSk7CisJfQorfQorCitzdGF0aWMgdm9pZAl1c2EyOF9pbnN0YXRfY2FsbGJhY2soc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlpbnQJCQkJCWVycjsKKwl1bnNpZ25lZCBjaGFyIAkJCQkqZGF0YSA9IHVyYi0+dHJhbnNmZXJfYnVmZmVyOworCXN0cnVjdCBrZXlzcGFuX3VzYTI4X3BvcnRTdGF0dXNNZXNzYWdlCSptc2c7CisJc3RydWN0IHVzYl9zZXJpYWwJCQkqc2VyaWFsOworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQJCQkqcG9ydDsKKwlzdHJ1Y3Qga2V5c3Bhbl9wb3J0X3ByaXZhdGUJIAkqcF9wcml2OworCWludCBvbGRfZGNkX3N0YXRlOworCisJc2VyaWFsID0gKHN0cnVjdCB1c2Jfc2VyaWFsICopIHVyYi0+Y29udGV4dDsKKworCWlmICh1cmItPnN0YXR1cykgeworCQlkYmcoIiVzIC0gbm9uemVybyBzdGF0dXM6ICV4IiwgX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyk7CisJCXJldHVybjsKKwl9CisKKwlpZiAodXJiLT5hY3R1YWxfbGVuZ3RoICE9IHNpemVvZihzdHJ1Y3Qga2V5c3Bhbl91c2EyOF9wb3J0U3RhdHVzTWVzc2FnZSkpIHsKKwkJZGJnKCIlcyAtIGJhZCBsZW5ndGggJWQiLCBfX0ZVTkNUSU9OX18sIHVyYi0+YWN0dWFsX2xlbmd0aCk7CisJCWdvdG8gZXhpdDsKKwl9CisKKwkvKmRiZygiJXMgJXggJXggJXggJXggJXggJXggJXggJXggJXggJXggJXggJXgiLCBfX0ZVTkNUSU9OX18KKwkgICAgZGF0YVswXSwgZGF0YVsxXSwgZGF0YVsyXSwgZGF0YVszXSwgZGF0YVs0XSwgZGF0YVs1XSwKKwkgICAgZGF0YVs2XSwgZGF0YVs3XSwgZGF0YVs4XSwgZGF0YVs5XSwgZGF0YVsxMF0sIGRhdGFbMTFdKTsqLworCQorCQkvKiBOb3cgZG8gc29tZXRoaW5nIHVzZWZ1bCB3aXRoIHRoZSBkYXRhICovCisJbXNnID0gKHN0cnVjdCBrZXlzcGFuX3VzYTI4X3BvcnRTdGF0dXNNZXNzYWdlICopZGF0YTsKKworCisJCS8qIENoZWNrIHBvcnQgbnVtYmVyIGZyb20gbWVzc2FnZSBhbmQgcmV0cmlldmUgcHJpdmF0ZSBkYXRhICovCQorCWlmIChtc2ctPnBvcnQgPj0gc2VyaWFsLT5udW1fcG9ydHMpIHsKKwkJZGJnICgiJXMgLSBVbmV4cGVjdGVkIHBvcnQgbnVtYmVyICVkIiwgX19GVU5DVElPTl9fLCBtc2ctPnBvcnQpOworCQlnb3RvIGV4aXQ7CisJfQorCXBvcnQgPSBzZXJpYWwtPnBvcnRbbXNnLT5wb3J0XTsKKwlwX3ByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJCisJLyogVXBkYXRlIGhhbmRzaGFraW5nIHBpbiBzdGF0ZSBpbmZvcm1hdGlvbiAqLworCW9sZF9kY2Rfc3RhdGUgPSBwX3ByaXYtPmRjZF9zdGF0ZTsKKwlwX3ByaXYtPmN0c19zdGF0ZSA9ICgobXNnLT5jdHMpID8gMSA6IDApOworCXBfcHJpdi0+ZHNyX3N0YXRlID0gKChtc2ctPmRzcikgPyAxIDogMCk7CisJcF9wcml2LT5kY2Rfc3RhdGUgPSAoKG1zZy0+ZGNkKSA/IDEgOiAwKTsKKwlwX3ByaXYtPnJpX3N0YXRlID0gKChtc2ctPnJpKSA/IDEgOiAwKTsKKworCWlmIChwb3J0LT50dHkgJiYgIUNfQ0xPQ0FMKHBvcnQtPnR0eSkKKwkgICAgJiYgb2xkX2RjZF9zdGF0ZSAhPSBwX3ByaXYtPmRjZF9zdGF0ZSkgeworCQlpZiAob2xkX2RjZF9zdGF0ZSkKKwkJCXR0eV9oYW5ndXAocG9ydC0+dHR5KTsKKwkJLyogIGVsc2UgKi8KKwkJLyoJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCZwX3ByaXYtPm9wZW5fd2FpdCk7ICovCisJfQorCisJCS8qIFJlc3VibWl0IHVyYiBzbyB3ZSBjb250aW51ZSByZWNlaXZpbmcgKi8KKwl1cmItPmRldiA9IHNlcmlhbC0+ZGV2OworCWlmICgoZXJyID0gdXNiX3N1Ym1pdF91cmIodXJiLCBHRlBfQVRPTUlDKSkgIT0gMCkgeworCQlkYmcoIiVzIC0gcmVzdWJtaXQgcmVhZCB1cmIgZmFpbGVkLiAoJWQpIiwgX19GVU5DVElPTl9fLCBlcnIpOworCX0KK2V4aXQ6IDsKK30KKworc3RhdGljIHZvaWQJdXNhMjhfZ2xvY29udF9jYWxsYmFjayhzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCWRiZyAoIiVzIiwgX19GVU5DVElPTl9fKTsKK30KKworCitzdGF0aWMgdm9pZAl1c2E0OV9nbG9jb250X2NhbGxiYWNrKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbDsKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0OworCXN0cnVjdCBrZXlzcGFuX3BvcnRfcHJpdmF0ZSAqcF9wcml2OworCWludCBpOworCisJZGJnICgiJXMiLCBfX0ZVTkNUSU9OX18pOworCisJc2VyaWFsID0gKHN0cnVjdCB1c2Jfc2VyaWFsICopIHVyYi0+Y29udGV4dDsKKwlmb3IgKGkgPSAwOyBpIDwgc2VyaWFsLT5udW1fcG9ydHM7ICsraSkgeworCQlwb3J0ID0gc2VyaWFsLT5wb3J0W2ldOworCQlwX3ByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisKKwkJaWYgKHBfcHJpdi0+cmVzZW5kX2NvbnQpIHsKKwkJCWRiZyAoIiVzIC0gc2VuZGluZyBzZXR1cCIsIF9fRlVOQ1RJT05fXyk7IAorCQkJa2V5c3Bhbl91c2E0OV9zZW5kX3NldHVwKHNlcmlhbCwgcG9ydCwgcF9wcml2LT5yZXNlbmRfY29udCAtIDEpOworCQkJYnJlYWs7CisJCX0KKwl9Cit9CisKKwkvKiBUaGlzIGlzIGFjdHVhbGx5IGNhbGxlZCBnbG9zdGF0IGluIHRoZSBLZXlzcGFuCisJICAgZG9jbyAqLworc3RhdGljIHZvaWQJdXNhNDlfaW5zdGF0X2NhbGxiYWNrKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJaW50CQkJCQllcnI7CisJdW5zaWduZWQgY2hhciAJCQkJKmRhdGEgPSB1cmItPnRyYW5zZmVyX2J1ZmZlcjsKKwlzdHJ1Y3Qga2V5c3Bhbl91c2E0OV9wb3J0U3RhdHVzTWVzc2FnZQkqbXNnOworCXN0cnVjdCB1c2Jfc2VyaWFsCQkJKnNlcmlhbDsKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0CQkJKnBvcnQ7CisJc3RydWN0IGtleXNwYW5fcG9ydF9wcml2YXRlCSAJKnBfcHJpdjsKKwlpbnQgb2xkX2RjZF9zdGF0ZTsKKworCWRiZyAoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCXNlcmlhbCA9IChzdHJ1Y3QgdXNiX3NlcmlhbCAqKSB1cmItPmNvbnRleHQ7CisKKwlpZiAodXJiLT5zdGF0dXMpIHsKKwkJZGJnKCIlcyAtIG5vbnplcm8gc3RhdHVzOiAleCIsIF9fRlVOQ1RJT05fXywgdXJiLT5zdGF0dXMpOworCQlyZXR1cm47CisJfQorCisJaWYgKHVyYi0+YWN0dWFsX2xlbmd0aCAhPSBzaXplb2Yoc3RydWN0IGtleXNwYW5fdXNhNDlfcG9ydFN0YXR1c01lc3NhZ2UpKSB7CisJCWRiZygiJXMgLSBiYWQgbGVuZ3RoICVkIiwgX19GVU5DVElPTl9fLCB1cmItPmFjdHVhbF9sZW5ndGgpOworCQlnb3RvIGV4aXQ7CisJfQorCisJLypkYmcoIiAleCAleCAleCAleCAleCAleCAleCAleCAleCAleCAleCIsIF9fRlVOQ1RJT05fXywgCisJICAgIGRhdGFbMF0sIGRhdGFbMV0sIGRhdGFbMl0sIGRhdGFbM10sIGRhdGFbNF0sIGRhdGFbNV0sCisJICAgIGRhdGFbNl0sIGRhdGFbN10sIGRhdGFbOF0sIGRhdGFbOV0sIGRhdGFbMTBdKTsqLworCQorCQkvKiBOb3cgZG8gc29tZXRoaW5nIHVzZWZ1bCB3aXRoIHRoZSBkYXRhICovCisJbXNnID0gKHN0cnVjdCBrZXlzcGFuX3VzYTQ5X3BvcnRTdGF0dXNNZXNzYWdlICopZGF0YTsKKworCQkvKiBDaGVjayBwb3J0IG51bWJlciBmcm9tIG1lc3NhZ2UgYW5kIHJldHJpZXZlIHByaXZhdGUgZGF0YSAqLwkKKwlpZiAobXNnLT5wb3J0TnVtYmVyID49IHNlcmlhbC0+bnVtX3BvcnRzKSB7CisJCWRiZyAoIiVzIC0gVW5leHBlY3RlZCBwb3J0IG51bWJlciAlZCIsIF9fRlVOQ1RJT05fXywgbXNnLT5wb3J0TnVtYmVyKTsKKwkJZ290byBleGl0OworCX0KKwlwb3J0ID0gc2VyaWFsLT5wb3J0W21zZy0+cG9ydE51bWJlcl07CisJcF9wcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCQorCS8qIFVwZGF0ZSBoYW5kc2hha2luZyBwaW4gc3RhdGUgaW5mb3JtYXRpb24gKi8KKwlvbGRfZGNkX3N0YXRlID0gcF9wcml2LT5kY2Rfc3RhdGU7CisJcF9wcml2LT5jdHNfc3RhdGUgPSAoKG1zZy0+Y3RzKSA/IDEgOiAwKTsKKwlwX3ByaXYtPmRzcl9zdGF0ZSA9ICgobXNnLT5kc3IpID8gMSA6IDApOworCXBfcHJpdi0+ZGNkX3N0YXRlID0gKChtc2ctPmRjZCkgPyAxIDogMCk7CisJcF9wcml2LT5yaV9zdGF0ZSA9ICgobXNnLT5yaSkgPyAxIDogMCk7CisKKwlpZiAocG9ydC0+dHR5ICYmICFDX0NMT0NBTChwb3J0LT50dHkpCisJICAgICYmIG9sZF9kY2Rfc3RhdGUgIT0gcF9wcml2LT5kY2Rfc3RhdGUpIHsKKwkJaWYgKG9sZF9kY2Rfc3RhdGUpCisJCQl0dHlfaGFuZ3VwKHBvcnQtPnR0eSk7CisJCS8qICBlbHNlICovCisJCS8qCXdha2VfdXBfaW50ZXJydXB0aWJsZSgmcF9wcml2LT5vcGVuX3dhaXQpOyAqLworCX0KKworCQkvKiBSZXN1Ym1pdCB1cmIgc28gd2UgY29udGludWUgcmVjZWl2aW5nICovCisJdXJiLT5kZXYgPSBzZXJpYWwtPmRldjsKKworCWlmICgoZXJyID0gdXNiX3N1Ym1pdF91cmIodXJiLCBHRlBfQVRPTUlDKSkgIT0gMCkgeworCQlkYmcoIiVzIC0gcmVzdWJtaXQgcmVhZCB1cmIgZmFpbGVkLiAoJWQpIiwgX19GVU5DVElPTl9fLCBlcnIpOworCX0KK2V4aXQ6CTsKK30KKworc3RhdGljIHZvaWQJdXNhNDlfaW5hY2tfY2FsbGJhY2soc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlkYmcgKCIlcyIsIF9fRlVOQ1RJT05fXyk7Cit9CisKK3N0YXRpYyB2b2lkCXVzYTQ5X2luZGF0X2NhbGxiYWNrKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJaW50CQkJaSwgZXJyOworCWludAkJCWVuZHBvaW50OworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQJKnBvcnQ7CisJc3RydWN0IHR0eV9zdHJ1Y3QJKnR0eTsKKwl1bnNpZ25lZCBjaGFyIAkJKmRhdGEgPSB1cmItPnRyYW5zZmVyX2J1ZmZlcjsKKworCWRiZyAoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCWVuZHBvaW50ID0gdXNiX3BpcGVlbmRwb2ludCh1cmItPnBpcGUpOworCisJaWYgKHVyYi0+c3RhdHVzKSB7CisJCWRiZygiJXMgLSBub256ZXJvIHN0YXR1czogJXggb24gZW5kcG9pbnQgJWQuIiwgX19GVU5DVElPTl9fLAorCQkgICAgdXJiLT5zdGF0dXMsIGVuZHBvaW50KTsKKwkJcmV0dXJuOworCX0KKworCXBvcnQgPSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqKSB1cmItPmNvbnRleHQ7CisJdHR5ID0gcG9ydC0+dHR5OworCWlmICh1cmItPmFjdHVhbF9sZW5ndGgpIHsKKwkJLyogMHg4MCBiaXQgaXMgZXJyb3IgZmxhZyAqLworCQlpZiAoKGRhdGFbMF0gJiAweDgwKSA9PSAwKSB7CisJCQkvKiBubyBlcnJvciBvbiBhbnkgYnl0ZSAqLworCQkJZm9yIChpID0gMTsgaSA8IHVyYi0+YWN0dWFsX2xlbmd0aCA7ICsraSkgeworCQkJCXR0eV9pbnNlcnRfZmxpcF9jaGFyKHR0eSwgZGF0YVtpXSwgMCk7CisJCQl9CisJCX0gZWxzZSB7CisJCQkvKiBzb21lIGJ5dGVzIGhhZCBlcnJvcnMsIGV2ZXJ5IGJ5dGUgaGFzIHN0YXR1cyAqLworCQkJZm9yIChpID0gMDsgaSArIDEgPCB1cmItPmFjdHVhbF9sZW5ndGg7IGkgKz0gMikgeworCQkJCWludCBzdGF0ID0gZGF0YVtpXSwgZmxhZyA9IDA7CisJCQkJaWYgKHN0YXQgJiBSWEVSUk9SX09WRVJSVU4pCisJCQkJCWZsYWcgfD0gVFRZX09WRVJSVU47CisJCQkJaWYgKHN0YXQgJiBSWEVSUk9SX0ZSQU1JTkcpCisJCQkJCWZsYWcgfD0gVFRZX0ZSQU1FOworCQkJCWlmIChzdGF0ICYgUlhFUlJPUl9QQVJJVFkpCisJCQkJCWZsYWcgfD0gVFRZX1BBUklUWTsKKwkJCQkvKiBYWFggc2hvdWxkIGhhbmRsZSBicmVhayAoMHgxMCkgKi8KKwkJCQl0dHlfaW5zZXJ0X2ZsaXBfY2hhcih0dHksIGRhdGFbaSsxXSwgZmxhZyk7CisJCQl9CisJCX0KKwkJdHR5X2ZsaXBfYnVmZmVyX3B1c2godHR5KTsKKwl9CisJCQkJCisJCS8qIFJlc3VibWl0IHVyYiBzbyB3ZSBjb250aW51ZSByZWNlaXZpbmcgKi8KKwl1cmItPmRldiA9IHBvcnQtPnNlcmlhbC0+ZGV2OworCWlmIChwb3J0LT5vcGVuX2NvdW50KQorCQlpZiAoKGVyciA9IHVzYl9zdWJtaXRfdXJiKHVyYiwgR0ZQX0FUT01JQykpICE9IDApIHsKKwkJCWRiZygiJXMgLSByZXN1Ym1pdCByZWFkIHVyYiBmYWlsZWQuICglZCkiLCBfX0ZVTkNUSU9OX18sIGVycik7CisJCX0KK30KKworLyogbm90IHVzZWQsIHVzYS00OSBkb2Vzbid0IGhhdmUgcGVyLXBvcnQgY29udHJvbCBlbmRwb2ludHMgKi8KK3N0YXRpYyB2b2lkCXVzYTQ5X291dGNvbnRfY2FsbGJhY2soc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlkYmcgKCIlcyIsIF9fRlVOQ1RJT05fXyk7Cit9CisKK3N0YXRpYyB2b2lkCXVzYTkwX2luZGF0X2NhbGxiYWNrKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJaW50CQkJaSwgZXJyOworCWludAkJCWVuZHBvaW50OworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQJKnBvcnQ7CisJc3RydWN0IGtleXNwYW5fcG9ydF9wcml2YXRlCSAJKnBfcHJpdjsKKwlzdHJ1Y3QgdHR5X3N0cnVjdAkqdHR5OworCXVuc2lnbmVkIGNoYXIgCQkqZGF0YSA9IHVyYi0+dHJhbnNmZXJfYnVmZmVyOworCisJZGJnICgiJXMiLCBfX0ZVTkNUSU9OX18pOyAKKworCWVuZHBvaW50ID0gdXNiX3BpcGVlbmRwb2ludCh1cmItPnBpcGUpOworCisKKwlpZiAodXJiLT5zdGF0dXMpIHsKKwkJZGJnKCIlcyAtIG5vbnplcm8gc3RhdHVzOiAleCBvbiBlbmRwb2ludCAlZC4iLAorCQkgICAgX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cywgZW5kcG9pbnQpOworCQlyZXR1cm47CisJfQorCisJcG9ydCA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopIHVyYi0+Y29udGV4dDsKKwlwX3ByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisKKwl0dHkgPSBwb3J0LT50dHk7CisJaWYgKHVyYi0+YWN0dWFsX2xlbmd0aCkgeworCQorCQkvKiBpZiBjdXJyZW50IG1vZGUgaXMgRE1BLCBsb29rcyBsaWtlIHVzYTI4IGZvcm1hdAorCSAgIAkJb3RoZXJ3aXNlIGxvb2tzIGxpa2UgdXNhMjYgZGF0YSBmb3JtYXQgKi8KKworCQlpZiAocF9wcml2LT5iYXVkID4gNTc2MDApIHsKKwkJCWZvciAoaSA9IDA7IGkgPCB1cmItPmFjdHVhbF9sZW5ndGggOyArK2kpIAorCQkJCXR0eV9pbnNlcnRfZmxpcF9jaGFyKHR0eSwgZGF0YVtpXSwgMCk7CisJCX0KKwkJZWxzZSB7CisJCQkKKwkJCS8qIDB4ODAgYml0IGlzIGVycm9yIGZsYWcgKi8KKwkJCWlmICgoZGF0YVswXSAmIDB4ODApID09IDApIHsKKwkJCQkvKiBubyBlcnJvcnMgb24gaW5kaXZpZHVhbCBieXRlcywgb25seSBwb3NzaWJsZSBvdmVycnVuIGVyciovCisJCQkJaWYgKGRhdGFbMF0gJiBSWEVSUk9SX09WRVJSVU4pCisJCQkJCQllcnIgPSBUVFlfT1ZFUlJVTjsKKwkJCQllbHNlIGVyciA9IDA7CisJCQkJZm9yIChpID0gMTsgaSA8IHVyYi0+YWN0dWFsX2xlbmd0aCA7ICsraSkgCisJCQkJCXR0eV9pbnNlcnRfZmxpcF9jaGFyKHR0eSwgZGF0YVtpXSwgZXJyKTsKKwkJCQorCQkJfSAKKwkJCWVsc2UgeworCQkJLyogc29tZSBieXRlcyBoYWQgZXJyb3JzLCBldmVyeSBieXRlIGhhcyBzdGF0dXMgKi8KKwkJCQlkYmcoIiVzIC0gUlggZXJyb3IhISEhIiwgX19GVU5DVElPTl9fKTsKKwkJCQlmb3IgKGkgPSAwOyBpICsgMSA8IHVyYi0+YWN0dWFsX2xlbmd0aDsgaSArPSAyKSB7CisJCQkJCWludCBzdGF0ID0gZGF0YVtpXSwgZmxhZyA9IDA7CisJCQkJCWlmIChzdGF0ICYgUlhFUlJPUl9PVkVSUlVOKQorCQkJCQkJZmxhZyB8PSBUVFlfT1ZFUlJVTjsKKwkJCQkJaWYgKHN0YXQgJiBSWEVSUk9SX0ZSQU1JTkcpCisJCQkJCQlmbGFnIHw9IFRUWV9GUkFNRTsKKwkJCQkJaWYgKHN0YXQgJiBSWEVSUk9SX1BBUklUWSkKKwkJCQkJCWZsYWcgfD0gVFRZX1BBUklUWTsKKwkJCQkJLyogWFhYIHNob3VsZCBoYW5kbGUgYnJlYWsgKDB4MTApICovCisJCQkJCXR0eV9pbnNlcnRfZmxpcF9jaGFyKHR0eSwgZGF0YVtpKzFdLCBmbGFnKTsKKwkJCQl9CisJCQl9CisJCX0KKwkJdHR5X2ZsaXBfYnVmZmVyX3B1c2godHR5KTsKKwl9CisJCQkJCisJLyogUmVzdWJtaXQgdXJiIHNvIHdlIGNvbnRpbnVlIHJlY2VpdmluZyAqLworCXVyYi0+ZGV2ID0gcG9ydC0+c2VyaWFsLT5kZXY7CisJaWYgKHBvcnQtPm9wZW5fY291bnQpCisJCWlmICgoZXJyID0gdXNiX3N1Ym1pdF91cmIodXJiLCBHRlBfQVRPTUlDKSkgIT0gMCkgeworCQkJZGJnKCIlcyAtIHJlc3VibWl0IHJlYWQgdXJiIGZhaWxlZC4gKCVkKSIsIF9fRlVOQ1RJT05fXywgZXJyKTsKKwkJfQorCXJldHVybjsKK30KKworCitzdGF0aWMgdm9pZAl1c2E5MF9pbnN0YXRfY2FsbGJhY2soc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwl1bnNpZ25lZCBjaGFyIAkJCQkqZGF0YSA9IHVyYi0+dHJhbnNmZXJfYnVmZmVyOworCXN0cnVjdCBrZXlzcGFuX3VzYTkwX3BvcnRTdGF0dXNNZXNzYWdlCSptc2c7CisJc3RydWN0IHVzYl9zZXJpYWwJCQkqc2VyaWFsOworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQJCQkqcG9ydDsKKwlzdHJ1Y3Qga2V5c3Bhbl9wb3J0X3ByaXZhdGUJIAkqcF9wcml2OworCWludCBvbGRfZGNkX3N0YXRlLCBlcnI7CisKKwlzZXJpYWwgPSAoc3RydWN0IHVzYl9zZXJpYWwgKikgdXJiLT5jb250ZXh0OworCisJaWYgKHVyYi0+c3RhdHVzKSB7CisJCWRiZygiJXMgLSBub256ZXJvIHN0YXR1czogJXgiLCBfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzKTsKKwkJcmV0dXJuOworCX0KKwlpZiAodXJiLT5hY3R1YWxfbGVuZ3RoIDwgMTQpIHsKKwkJZGJnKCIlcyAtICVkIGJ5dGUgcmVwb3J0Pz8iLCBfX0ZVTkNUSU9OX18sIHVyYi0+YWN0dWFsX2xlbmd0aCk7CisJCWdvdG8gZXhpdDsKKwl9CisKKwltc2cgPSAoc3RydWN0IGtleXNwYW5fdXNhOTBfcG9ydFN0YXR1c01lc3NhZ2UgKilkYXRhOworCisJLyogTm93IGRvIHNvbWV0aGluZyB1c2VmdWwgd2l0aCB0aGUgZGF0YSAqLworCisJcG9ydCA9IHNlcmlhbC0+cG9ydFswXTsKKwlwX3ByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJCisJLyogVXBkYXRlIGhhbmRzaGFraW5nIHBpbiBzdGF0ZSBpbmZvcm1hdGlvbiAqLworCW9sZF9kY2Rfc3RhdGUgPSBwX3ByaXYtPmRjZF9zdGF0ZTsKKwlwX3ByaXYtPmN0c19zdGF0ZSA9ICgobXNnLT5jdHMpID8gMSA6IDApOworCXBfcHJpdi0+ZHNyX3N0YXRlID0gKChtc2ctPmRzcikgPyAxIDogMCk7CisJcF9wcml2LT5kY2Rfc3RhdGUgPSAoKG1zZy0+ZGNkKSA/IDEgOiAwKTsKKwlwX3ByaXYtPnJpX3N0YXRlID0gKChtc2ctPnJpKSA/IDEgOiAwKTsKKworCWlmIChwb3J0LT50dHkgJiYgIUNfQ0xPQ0FMKHBvcnQtPnR0eSkKKwkgICAgJiYgb2xkX2RjZF9zdGF0ZSAhPSBwX3ByaXYtPmRjZF9zdGF0ZSkgeworCQlpZiAob2xkX2RjZF9zdGF0ZSkKKwkJCXR0eV9oYW5ndXAocG9ydC0+dHR5KTsKKwkJLyogIGVsc2UgKi8KKwkJLyoJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCZwX3ByaXYtPm9wZW5fd2FpdCk7ICovCisJfQorCQorCS8qIFJlc3VibWl0IHVyYiBzbyB3ZSBjb250aW51ZSByZWNlaXZpbmcgKi8KKwl1cmItPmRldiA9IHNlcmlhbC0+ZGV2OworCWlmICgoZXJyID0gdXNiX3N1Ym1pdF91cmIodXJiLCBHRlBfQVRPTUlDKSkgIT0gMCkgeworCQlkYmcoIiVzIC0gcmVzdWJtaXQgcmVhZCB1cmIgZmFpbGVkLiAoJWQpIiwgX19GVU5DVElPTl9fLCBlcnIpOworCX0KK2V4aXQ6CisJOworfQorCitzdGF0aWMgdm9pZAl1c2E5MF9vdXRjb250X2NhbGxiYWNrKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydDsKKwlzdHJ1Y3Qga2V5c3Bhbl9wb3J0X3ByaXZhdGUgKnBfcHJpdjsKKworCXBvcnQgPSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqKSB1cmItPmNvbnRleHQ7CisJcF9wcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCisJaWYgKHBfcHJpdi0+cmVzZW5kX2NvbnQpIHsKKwkJZGJnICgiJXMgLSBzZW5kaW5nIHNldHVwIiwgX19GVU5DVElPTl9fKTsgCisJCWtleXNwYW5fdXNhOTBfc2VuZF9zZXR1cChwb3J0LT5zZXJpYWwsIHBvcnQsIHBfcHJpdi0+cmVzZW5kX2NvbnQgLSAxKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQga2V5c3Bhbl93cml0ZV9yb29tIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCBrZXlzcGFuX3BvcnRfcHJpdmF0ZQkqcF9wcml2OworCWNvbnN0IHN0cnVjdCBrZXlzcGFuX2RldmljZV9kZXRhaWxzCSpkX2RldGFpbHM7CisJaW50CQkJCWZsaXA7CisJaW50CQkJCWRhdGFfbGVuOworCXN0cnVjdCB1cmIJCQkqdGhpc191cmI7CisKKwlkYmcoIiVzIiwgX19GVU5DVElPTl9fKTsKKwlwX3ByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJZF9kZXRhaWxzID0gcF9wcml2LT5kZXZpY2VfZGV0YWlsczsKKworCWlmIChkX2RldGFpbHMtPm1zZ19mb3JtYXQgPT0gbXNnX3VzYTkwKQorICAgCQlkYXRhX2xlbiA9IDY0OworCWVsc2UKKwkJZGF0YV9sZW4gPSA2MzsKKworCWZsaXAgPSBwX3ByaXYtPm91dF9mbGlwOworCisJLyogQ2hlY2sgYm90aCBlbmRwb2ludHMgdG8gc2VlIGlmIGFueSBhcmUgYXZhaWxhYmxlLiAqLworCWlmICgodGhpc191cmIgPSBwX3ByaXYtPm91dF91cmJzW2ZsaXBdKSAhPSBOVUxMKSB7CisJCWlmICh0aGlzX3VyYi0+c3RhdHVzICE9IC1FSU5QUk9HUkVTUykKKwkJCXJldHVybiAoZGF0YV9sZW4pOworCQlmbGlwID0gKGZsaXAgKyAxKSAmIGRfZGV0YWlscy0+b3V0ZGF0X2VuZHBfZmxpcDsgICAgICAgIAorCQlpZiAoKHRoaXNfdXJiID0gcF9wcml2LT5vdXRfdXJic1tmbGlwXSkgIT0gTlVMTCkgCisJCQlpZiAodGhpc191cmItPnN0YXR1cyAhPSAtRUlOUFJPR1JFU1MpCisJCQkJcmV0dXJuIChkYXRhX2xlbik7CisJfQorCXJldHVybiAoMCk7Cit9CisKKworc3RhdGljIGludCBrZXlzcGFuX2NoYXJzX2luX2J1ZmZlciAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKK3sKKwlyZXR1cm4gKDApOworfQorCisKK3N0YXRpYyBpbnQga2V5c3Bhbl9vcGVuIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlzdHJ1Y3Qga2V5c3Bhbl9wb3J0X3ByaXZhdGUgCSpwX3ByaXY7CisJc3RydWN0IGtleXNwYW5fc2VyaWFsX3ByaXZhdGUgCSpzX3ByaXY7CisJc3RydWN0IHVzYl9zZXJpYWwgCQkqc2VyaWFsID0gcG9ydC0+c2VyaWFsOworCWNvbnN0IHN0cnVjdCBrZXlzcGFuX2RldmljZV9kZXRhaWxzCSpkX2RldGFpbHM7CisJaW50CQkJCWksIGVycjsKKwlpbnQJCQkJYmF1ZF9yYXRlLCBkZXZpY2VfcG9ydDsKKwlzdHJ1Y3QgdXJiCQkJKnVyYjsKKwl1bnNpZ25lZCBpbnQJCQljZmxhZzsKKworCXNfcHJpdiA9IHVzYl9nZXRfc2VyaWFsX2RhdGEoc2VyaWFsKTsKKwlwX3ByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJZF9kZXRhaWxzID0gcF9wcml2LT5kZXZpY2VfZGV0YWlsczsKKwkKKwlkYmcoIiVzIC0gcG9ydCVkLiIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsgCisKKwkvKiBTZXQgc29tZSBzYW5lIGRlZmF1bHRzICovCisJcF9wcml2LT5ydHNfc3RhdGUgPSAxOworCXBfcHJpdi0+ZHRyX3N0YXRlID0gMTsKKwlwX3ByaXYtPmJhdWQgPSA5NjAwOworCisJLyogZm9yY2UgYmF1ZCBhbmQgbGNyIHRvIGJlIHNldCBvbiBvcGVuICovCisJcF9wcml2LT5vbGRfYmF1ZCA9IDA7CisJcF9wcml2LT5vbGRfY2ZsYWcgPSAwOworCisJcF9wcml2LT5vdXRfZmxpcCA9IDA7CisJcF9wcml2LT5pbl9mbGlwID0gMDsKKworCS8qIFJlc2V0IGxvdyBsZXZlbCBkYXRhIHRvZ2dsZSBhbmQgc3RhcnQgcmVhZGluZyBmcm9tIGVuZHBvaW50cyAqLworCWZvciAoaSA9IDA7IGkgPCAyOyBpKyspIHsKKwkJaWYgKCh1cmIgPSBwX3ByaXYtPmluX3VyYnNbaV0pID09IE5VTEwpCisJCQljb250aW51ZTsKKwkJdXJiLT5kZXYgPSBzZXJpYWwtPmRldjsKKworCQkvKiBtYWtlIHN1cmUgZW5kcG9pbnQgZGF0YSB0b2dnbGUgaXMgc3luY2hyb25pemVkIHdpdGggdGhlIGRldmljZSAqLworCQkKKwkJdXNiX2NsZWFyX2hhbHQodXJiLT5kZXYsIHVyYi0+cGlwZSk7CisKKwkJaWYgKChlcnIgPSB1c2Jfc3VibWl0X3VyYih1cmIsIEdGUF9LRVJORUwpKSAhPSAwKSB7CisJCQlkYmcoIiVzIC0gc3VibWl0IHVyYiAlZCBmYWlsZWQgKCVkKSIsIF9fRlVOQ1RJT05fXywgaSwgZXJyKTsKKwkJfQorCX0KKworCS8qIFJlc2V0IGxvdyBsZXZlbCBkYXRhIHRvZ2dsZSBvbiBvdXQgZW5kcG9pbnRzICovCisJZm9yIChpID0gMDsgaSA8IDI7IGkrKykgeworCQlpZiAoKHVyYiA9IHBfcHJpdi0+b3V0X3VyYnNbaV0pID09IE5VTEwpCisJCQljb250aW51ZTsKKwkJdXJiLT5kZXYgPSBzZXJpYWwtPmRldjsKKwkJLyogdXNiX3NldHRvZ2dsZSh1cmItPmRldiwgdXNiX3BpcGVlbmRwb2ludCh1cmItPnBpcGUpLCB1c2JfcGlwZW91dCh1cmItPnBpcGUpLCAwKTsgKi8KKwl9CisKKwkvKiBnZXQgdGhlIHRlcm1pbmFsIGNvbmZpZyBmb3IgdGhlIHNldHVwIG1lc3NhZ2Ugbm93IHNvIHdlIGRvbid0IAorCSAqIG5lZWQgdG8gc2VuZCAyIG9mIHRoZW0gKi8KKworCWNmbGFnID0gcG9ydC0+dHR5LT50ZXJtaW9zLT5jX2NmbGFnOworCWRldmljZV9wb3J0ID0gcG9ydC0+bnVtYmVyIC0gcG9ydC0+c2VyaWFsLT5taW5vcjsKKworCS8qIEJhdWQgcmF0ZSBjYWxjdWxhdGlvbiB0YWtlcyBiYXVkIHJhdGUgYXMgYW4gaW50ZWdlcgorCSAgIHNvIG90aGVyIHJhdGVzIGNhbiBiZSBnZW5lcmF0ZWQgaWYgZGVzaXJlZC4gKi8KKwliYXVkX3JhdGUgPSB0dHlfZ2V0X2JhdWRfcmF0ZShwb3J0LT50dHkpOworCS8qIElmIG5vIG1hdGNoIG9yIGludmFsaWQsIGxlYXZlIGFzIGRlZmF1bHQgKi8JCQorCWlmIChiYXVkX3JhdGUgPj0gMAorCSAgICAmJiBkX2RldGFpbHMtPmNhbGN1bGF0ZV9iYXVkX3JhdGUoYmF1ZF9yYXRlLCBkX2RldGFpbHMtPmJhdWRjbGssCisJCQkJTlVMTCwgTlVMTCwgTlVMTCwgZGV2aWNlX3BvcnQpID09IEtFWVNQQU5fQkFVRF9SQVRFX09LKSB7CisJCXBfcHJpdi0+YmF1ZCA9IGJhdWRfcmF0ZTsKKwl9CisKKwkvKiBzZXQgQ1RTL1JUUyBoYW5kc2hha2UgZXRjLiAqLworCXBfcHJpdi0+Y2ZsYWcgPSBjZmxhZzsKKwlwX3ByaXYtPmZsb3dfY29udHJvbCA9IChjZmxhZyAmIENSVFNDVFMpPyBmbG93X2N0czogZmxvd19ub25lOworCisJa2V5c3Bhbl9zZW5kX3NldHVwKHBvcnQsIDEpOworCS8vbWRlbGF5KDEwMCk7CisJLy9rZXlzcGFuX3NldF90ZXJtaW9zKHBvcnQsIE5VTEwpOworCisJcmV0dXJuICgwKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHN0b3BfdXJiKHN0cnVjdCB1cmIgKnVyYikKK3sKKwlpZiAodXJiICYmIHVyYi0+c3RhdHVzID09IC1FSU5QUk9HUkVTUykgeworCQl1cmItPnRyYW5zZmVyX2ZsYWdzICY9IH5VUkJfQVNZTkNfVU5MSU5LOworCQl1c2Jfa2lsbF91cmIodXJiKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGtleXNwYW5fY2xvc2Uoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbHApCit7CisJaW50CQkJaTsKKwlzdHJ1Y3QgdXNiX3NlcmlhbAkqc2VyaWFsID0gcG9ydC0+c2VyaWFsOworCXN0cnVjdCBrZXlzcGFuX3NlcmlhbF9wcml2YXRlIAkqc19wcml2OworCXN0cnVjdCBrZXlzcGFuX3BvcnRfcHJpdmF0ZSAJKnBfcHJpdjsKKworCWRiZygiJXMiLCBfX0ZVTkNUSU9OX18pOworCXNfcHJpdiA9IHVzYl9nZXRfc2VyaWFsX2RhdGEoc2VyaWFsKTsKKwlwX3ByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJCisJcF9wcml2LT5ydHNfc3RhdGUgPSAwOworCXBfcHJpdi0+ZHRyX3N0YXRlID0gMDsKKwkKKwlpZiAoc2VyaWFsLT5kZXYpIHsKKwkJa2V5c3Bhbl9zZW5kX3NldHVwKHBvcnQsIDIpOworCQkvKiBwaWxvdC14ZmVyIHNlZW1zIHRvIHdvcmsgYmVzdCB3aXRoIHRoaXMgZGVsYXkgKi8KKwkJbWRlbGF5KDEwMCk7CisJCS8vIGtleXNwYW5fc2V0X3Rlcm1pb3MocG9ydCwgTlVMTCk7CisJfQorCisJLyp3aGlsZSAocF9wcml2LT5vdXRjb250X3VyYi0+c3RhdHVzID09IC1FSU5QUk9HUkVTUykgeworCQlkYmcoIiVzIC0gdXJiIGluIHByb2dyZXNzIiwgX19GVU5DVElPTl9fKTsKKwl9Ki8KKworCXBfcHJpdi0+b3V0X2ZsaXAgPSAwOworCXBfcHJpdi0+aW5fZmxpcCA9IDA7CisKKwlpZiAoc2VyaWFsLT5kZXYpIHsKKwkJLyogU3RvcCByZWFkaW5nL3dyaXRpbmcgdXJicyAqLworCQlzdG9wX3VyYihwX3ByaXYtPmluYWNrX3VyYik7CisJCS8qIHN0b3BfdXJiKHBfcHJpdi0+b3V0Y29udF91cmIpOyAqLworCQlmb3IgKGkgPSAwOyBpIDwgMjsgaSsrKSB7CisJCQlzdG9wX3VyYihwX3ByaXYtPmluX3VyYnNbaV0pOworCQkJc3RvcF91cmIocF9wcml2LT5vdXRfdXJic1tpXSk7CisJCX0KKwl9CisJcG9ydC0+dHR5ID0gTlVMTDsKK30KKworCisJLyogZG93bmxvYWQgdGhlIGZpcm13YXJlIHRvIGEgcHJlLXJlbnVtZXJhdGlvbiBkZXZpY2UgKi8KK3N0YXRpYyBpbnQga2V5c3Bhbl9mYWtlX3N0YXJ0dXAgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7CisJaW50IAkJCQlyZXNwb25zZTsKKwljb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCAJKnJlY29yZDsKKwljaGFyCQkJCSpmd19uYW1lOworCisJZGJnKCJLZXlzcGFuIHN0YXJ0dXAgdmVyc2lvbiAlMDR4IHByb2R1Y3QgJTA0eCIsCisJICAgIGxlMTZfdG9fY3B1KHNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmJjZERldmljZSksCisJICAgIGxlMTZfdG9fY3B1KHNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCkpOworCQorCWlmICgobGUxNl90b19jcHUoc2VyaWFsLT5kZXYtPmRlc2NyaXB0b3IuYmNkRGV2aWNlKSAmIDB4ODAwMCkgIT0gMHg4MDAwKSB7CisJCWRiZygiRmlybXdhcmUgYWxyZWFkeSBsb2FkZWQuICBRdWl0dGluZy4iKTsKKwkJcmV0dXJuKDEpOworCX0KKworCQkvKiBTZWxlY3QgZmlybXdhcmUgaW1hZ2Ugb24gdGhlIGJhc2lzIG9mIGlkUHJvZHVjdCAqLworCXN3aXRjaCAobGUxNl90b19jcHUoc2VyaWFsLT5kZXYtPmRlc2NyaXB0b3IuaWRQcm9kdWN0KSkgeworCWNhc2Uga2V5c3Bhbl91c2EyOF9wcmVfcHJvZHVjdF9pZDoKKwkJcmVjb3JkID0gJmtleXNwYW5fdXNhMjhfZmlybXdhcmVbMF07CisJCWZ3X25hbWUgPSAiVVNBMjgiOworCQlicmVhazsKKworCWNhc2Uga2V5c3Bhbl91c2EyOHhfcHJlX3Byb2R1Y3RfaWQ6CisJCXJlY29yZCA9ICZrZXlzcGFuX3VzYTI4eF9maXJtd2FyZVswXTsKKwkJZndfbmFtZSA9ICJVU0EyOFgiOworCQlicmVhazsKKworCWNhc2Uga2V5c3Bhbl91c2EyOHhhX3ByZV9wcm9kdWN0X2lkOgorCQlyZWNvcmQgPSAma2V5c3Bhbl91c2EyOHhhX2Zpcm13YXJlWzBdOworCQlmd19uYW1lID0gIlVTQTI4WEEiOworCQlicmVhazsKKworCWNhc2Uga2V5c3Bhbl91c2EyOHhiX3ByZV9wcm9kdWN0X2lkOgorCQlyZWNvcmQgPSAma2V5c3Bhbl91c2EyOHhiX2Zpcm13YXJlWzBdOworCQlmd19uYW1lID0gIlVTQTI4WEIiOworCQlicmVhazsKKworCWNhc2Uga2V5c3Bhbl91c2ExOV9wcmVfcHJvZHVjdF9pZDoKKwkJcmVjb3JkID0gJmtleXNwYW5fdXNhMTlfZmlybXdhcmVbMF07CisJCWZ3X25hbWUgPSAiVVNBMTkiOworCQlicmVhazsKKwkJCSAgICAgCisJY2FzZSBrZXlzcGFuX3VzYTE5cWlfcHJlX3Byb2R1Y3RfaWQ6CisJCXJlY29yZCA9ICZrZXlzcGFuX3VzYTE5cWlfZmlybXdhcmVbMF07CisJCWZ3X25hbWUgPSAiVVNBMTlRSSI7CisJCWJyZWFrOworCQkJICAgICAKKwljYXNlIGtleXNwYW5fbXByX3ByZV9wcm9kdWN0X2lkOgorCQlyZWNvcmQgPSAma2V5c3Bhbl9tcHJfZmlybXdhcmVbMF07CisJCWZ3X25hbWUgPSAiTVBSIjsKKwkJYnJlYWs7CisKKwljYXNlIGtleXNwYW5fdXNhMTlxd19wcmVfcHJvZHVjdF9pZDoKKwkJcmVjb3JkID0gJmtleXNwYW5fdXNhMTlxd19maXJtd2FyZVswXTsKKwkJZndfbmFtZSA9ICJVU0ExOVFJIjsKKwkJYnJlYWs7CisJCQkgICAgIAorCWNhc2Uga2V5c3Bhbl91c2ExOHhfcHJlX3Byb2R1Y3RfaWQ6CisJCXJlY29yZCA9ICZrZXlzcGFuX3VzYTE4eF9maXJtd2FyZVswXTsKKwkJZndfbmFtZSA9ICJVU0ExOFgiOworCQlicmVhazsKKwkJCSAgICAgCisJY2FzZSBrZXlzcGFuX3VzYTE5d19wcmVfcHJvZHVjdF9pZDoKKwkJcmVjb3JkID0gJmtleXNwYW5fdXNhMTl3X2Zpcm13YXJlWzBdOworCQlmd19uYW1lID0gIlVTQTE5VyI7CisJCWJyZWFrOworCQkKKwljYXNlIGtleXNwYW5fdXNhNDl3X3ByZV9wcm9kdWN0X2lkOgorCQlyZWNvcmQgPSAma2V5c3Bhbl91c2E0OXdfZmlybXdhcmVbMF07CisJCWZ3X25hbWUgPSAiVVNBNDlXIjsKKwkJYnJlYWs7CisKKwljYXNlIGtleXNwYW5fdXNhNDl3bGNfcHJlX3Byb2R1Y3RfaWQ6CisJCXJlY29yZCA9ICZrZXlzcGFuX3VzYTQ5d2xjX2Zpcm13YXJlWzBdOworCQlmd19uYW1lID0gIlVTQTQ5V0xDIjsKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQlyZWNvcmQgPSBOVUxMOworCQlmd19uYW1lID0gIlVua25vd24iOworCQlicmVhazsKKwl9CisKKwlpZiAocmVjb3JkID09IE5VTEwpIHsKKwkJZGV2X2Vycigmc2VyaWFsLT5kZXYtPmRldiwgIlJlcXVpcmVkIGtleXNwYW4gZmlybXdhcmUgaW1hZ2UgKCVzKSB1bmF2YWlsYWJsZS5cbiIsIGZ3X25hbWUpOworCQlyZXR1cm4oMSk7CisJfQorCisJZGJnKCJVcGxvYWRpbmcgS2V5c3BhbiAlcyBmaXJtd2FyZS4iLCBmd19uYW1lKTsKKworCQkvKiBkb3dubG9hZCB0aGUgZmlybXdhcmUgaW1hZ2UgKi8KKwlyZXNwb25zZSA9IGV6dXNiX3NldF9yZXNldChzZXJpYWwsIDEpOworCisJd2hpbGUocmVjb3JkLT5hZGRyZXNzICE9IDB4ZmZmZikgeworCQlyZXNwb25zZSA9IGV6dXNiX3dyaXRlbWVtb3J5KHNlcmlhbCwgcmVjb3JkLT5hZGRyZXNzLAorCQkJCQkgICAgICh1bnNpZ25lZCBjaGFyICopcmVjb3JkLT5kYXRhLAorCQkJCQkgICAgIHJlY29yZC0+ZGF0YV9zaXplLCAweGEwKTsKKwkJaWYgKHJlc3BvbnNlIDwgMCkgeworCQkJZGV2X2Vycigmc2VyaWFsLT5kZXYtPmRldiwgImV6dXNiX3dyaXRlbWVtb3J5IGZhaWxlZCBmb3IgS2V5c3BhbiIKKwkJCQkiZmlybXdhcmUgKCVkICUwNFggJXAgJWQpXG4iLAorCQkJCXJlc3BvbnNlLCAKKwkJCQlyZWNvcmQtPmFkZHJlc3MsIHJlY29yZC0+ZGF0YSwgcmVjb3JkLT5kYXRhX3NpemUpOworCQkJYnJlYWs7CisJCX0KKwkJcmVjb3JkKys7CisJfQorCQkvKiBicmluZyBkZXZpY2Ugb3V0IG9mIHJlc2V0LiBSZW51bWVyYXRpb24gd2lsbCBvY2N1ciBpbiBhCisJCSAgIG1vbWVudCBhbmQgdGhlIG5ldyBkZXZpY2Ugd2lsbCBiaW5kIHRvIHRoZSByZWFsIGRyaXZlciAqLworCXJlc3BvbnNlID0gZXp1c2Jfc2V0X3Jlc2V0KHNlcmlhbCwgMCk7CisKKwkvKiB3ZSBkb24ndCB3YW50IHRoaXMgZGV2aWNlIHRvIGhhdmUgYSBkcml2ZXIgYXNzaWduZWQgdG8gaXQuICovCisJcmV0dXJuICgxKTsKK30KKworLyogSGVscGVyIGZ1bmN0aW9ucyB1c2VkIGJ5IGtleXNwYW5fc2V0dXBfdXJicyAqLworc3RhdGljIHN0cnVjdCB1cmIgKmtleXNwYW5fc2V0dXBfdXJiIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLCBpbnQgZW5kcG9pbnQsCisJCQkJICAgICAgaW50IGRpciwgdm9pZCAqY3R4LCBjaGFyICpidWYsIGludCBsZW4sCisJCQkJICAgICAgdm9pZCAoKmNhbGxiYWNrKShzdHJ1Y3QgdXJiICosIHN0cnVjdCBwdF9yZWdzICpyZWdzKSkKK3sKKwlzdHJ1Y3QgdXJiICp1cmI7CisKKwlpZiAoZW5kcG9pbnQgPT0gLTEpCisJCXJldHVybiBOVUxMOwkJLyogZW5kcG9pbnQgbm90IG5lZWRlZCAqLworCisJZGJnICgiJXMgLSBhbGxvYyBmb3IgZW5kcG9pbnQgJWQuIiwgX19GVU5DVElPTl9fLCBlbmRwb2ludCk7CisJdXJiID0gdXNiX2FsbG9jX3VyYigwLCBHRlBfS0VSTkVMKTsJCS8qIE5vIElTTyAqLworCWlmICh1cmIgPT0gTlVMTCkgeworCQlkYmcgKCIlcyAtIGFsbG9jIGZvciBlbmRwb2ludCAlZCBmYWlsZWQuIiwgX19GVU5DVElPTl9fLCBlbmRwb2ludCk7CisJCXJldHVybiBOVUxMOworCX0KKworCQkvKiBGaWxsIFVSQiB1c2luZyBzdXBwbGllZCBkYXRhLiAqLworCXVzYl9maWxsX2J1bGtfdXJiKHVyYiwgc2VyaWFsLT5kZXYsCisJCSAgICAgIHVzYl9zbmRidWxrcGlwZShzZXJpYWwtPmRldiwgZW5kcG9pbnQpIHwgZGlyLAorCQkgICAgICBidWYsIGxlbiwgY2FsbGJhY2ssIGN0eCk7CisKKwlyZXR1cm4gdXJiOworfQorCitzdGF0aWMgc3RydWN0IGNhbGxiYWNrcyB7CisJdm9pZAkoKmluc3RhdF9jYWxsYmFjaykoc3RydWN0IHVyYiAqLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CisJdm9pZAkoKmdsb2NvbnRfY2FsbGJhY2spKHN0cnVjdCB1cmIgKiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOworCXZvaWQJKCppbmRhdF9jYWxsYmFjaykoc3RydWN0IHVyYiAqLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CisJdm9pZAkoKm91dGRhdF9jYWxsYmFjaykoc3RydWN0IHVyYiAqLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CisJdm9pZAkoKmluYWNrX2NhbGxiYWNrKShzdHJ1Y3QgdXJiICosIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKKwl2b2lkCSgqb3V0Y29udF9jYWxsYmFjaykoc3RydWN0IHVyYiAqLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7Cit9IGtleXNwYW5fY2FsbGJhY2tzW10gPSB7CisJeworCQkvKiBtc2dfdXNhMjYgY2FsbGJhY2tzICovCisJCS5pbnN0YXRfY2FsbGJhY2sgPQl1c2EyNl9pbnN0YXRfY2FsbGJhY2ssCisJCS5nbG9jb250X2NhbGxiYWNrID0JdXNhMjZfZ2xvY29udF9jYWxsYmFjaywKKwkJLmluZGF0X2NhbGxiYWNrID0JdXNhMjZfaW5kYXRfY2FsbGJhY2ssCisJCS5vdXRkYXRfY2FsbGJhY2sgPQl1c2EyeF9vdXRkYXRfY2FsbGJhY2ssCisJCS5pbmFja19jYWxsYmFjayA9CXVzYTI2X2luYWNrX2NhbGxiYWNrLAorCQkub3V0Y29udF9jYWxsYmFjayA9CXVzYTI2X291dGNvbnRfY2FsbGJhY2ssCisJfSwgeworCQkvKiBtc2dfdXNhMjggY2FsbGJhY2tzICovCisJCS5pbnN0YXRfY2FsbGJhY2sgPQl1c2EyOF9pbnN0YXRfY2FsbGJhY2ssCisJCS5nbG9jb250X2NhbGxiYWNrID0JdXNhMjhfZ2xvY29udF9jYWxsYmFjaywKKwkJLmluZGF0X2NhbGxiYWNrID0JdXNhMjhfaW5kYXRfY2FsbGJhY2ssCisJCS5vdXRkYXRfY2FsbGJhY2sgPQl1c2EyeF9vdXRkYXRfY2FsbGJhY2ssCisJCS5pbmFja19jYWxsYmFjayA9CXVzYTI4X2luYWNrX2NhbGxiYWNrLAorCQkub3V0Y29udF9jYWxsYmFjayA9CXVzYTI4X291dGNvbnRfY2FsbGJhY2ssCisJfSwgeworCQkvKiBtc2dfdXNhNDkgY2FsbGJhY2tzICovCisJCS5pbnN0YXRfY2FsbGJhY2sgPQl1c2E0OV9pbnN0YXRfY2FsbGJhY2ssCisJCS5nbG9jb250X2NhbGxiYWNrID0JdXNhNDlfZ2xvY29udF9jYWxsYmFjaywKKwkJLmluZGF0X2NhbGxiYWNrID0JdXNhNDlfaW5kYXRfY2FsbGJhY2ssCisJCS5vdXRkYXRfY2FsbGJhY2sgPQl1c2EyeF9vdXRkYXRfY2FsbGJhY2ssCisJCS5pbmFja19jYWxsYmFjayA9CXVzYTQ5X2luYWNrX2NhbGxiYWNrLAorCQkub3V0Y29udF9jYWxsYmFjayA9CXVzYTQ5X291dGNvbnRfY2FsbGJhY2ssCisJfSwgeworCQkvKiBtc2dfdXNhOTAgY2FsbGJhY2tzICovCisJCS5pbnN0YXRfY2FsbGJhY2sgPQl1c2E5MF9pbnN0YXRfY2FsbGJhY2ssCisJCS5nbG9jb250X2NhbGxiYWNrID0JdXNhMjhfZ2xvY29udF9jYWxsYmFjaywJCQorCQkuaW5kYXRfY2FsbGJhY2sgPQl1c2E5MF9pbmRhdF9jYWxsYmFjaywKKwkJLm91dGRhdF9jYWxsYmFjayA9CXVzYTJ4X291dGRhdF9jYWxsYmFjaywKKwkJLmluYWNrX2NhbGxiYWNrID0JdXNhMjhfaW5hY2tfY2FsbGJhY2ssCisJCS5vdXRjb250X2NhbGxiYWNrID0JdXNhOTBfb3V0Y29udF9jYWxsYmFjaywKKwl9Cit9OworCisJLyogR2VuZXJpYyBzZXR1cCB1cmJzIGZ1bmN0aW9uIHRoYXQgdXNlcworCSAgIGRhdGEgaW4gZGV2aWNlX2RldGFpbHMgKi8KK3N0YXRpYyB2b2lkIGtleXNwYW5fc2V0dXBfdXJicyhzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQoreworCWludAkJCQlpLCBqOworCXN0cnVjdCBrZXlzcGFuX3NlcmlhbF9wcml2YXRlIAkqc19wcml2OworCWNvbnN0IHN0cnVjdCBrZXlzcGFuX2RldmljZV9kZXRhaWxzCSpkX2RldGFpbHM7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydAkJKnBvcnQ7CisJc3RydWN0IGtleXNwYW5fcG9ydF9wcml2YXRlCSpwX3ByaXY7CisJc3RydWN0IGNhbGxiYWNrcwkJKmNiYWNrOworCWludAkJCQllbmRwOworCisJZGJnICgiJXMiLCBfX0ZVTkNUSU9OX18pOworCisJc19wcml2ID0gdXNiX2dldF9zZXJpYWxfZGF0YShzZXJpYWwpOworCWRfZGV0YWlscyA9IHNfcHJpdi0+ZGV2aWNlX2RldGFpbHM7CisKKwkJLyogU2V0dXAgdmFsdWVzIGZvciB0aGUgdmFyaW91cyBjYWxsYmFjayByb3V0aW5lcyAqLworCWNiYWNrID0gJmtleXNwYW5fY2FsbGJhY2tzW2RfZGV0YWlscy0+bXNnX2Zvcm1hdF07CisKKwkJLyogQWxsb2NhdGUgYW5kIHNldCB1cCB1cmJzIGZvciBlYWNoIG9uZSB0aGF0IGlzIGluIHVzZSwgCisJCSAgIHN0YXJ0aW5nIHdpdGggaW5zdGF0IGVuZHBvaW50cyAqLworCXNfcHJpdi0+aW5zdGF0X3VyYiA9IGtleXNwYW5fc2V0dXBfdXJiCisJCShzZXJpYWwsIGRfZGV0YWlscy0+aW5zdGF0X2VuZHBvaW50LCBVU0JfRElSX0lOLAorCQkgc2VyaWFsLCBzX3ByaXYtPmluc3RhdF9idWYsIElOU1RBVF9CVUZMRU4sCisJCSBjYmFjay0+aW5zdGF0X2NhbGxiYWNrKTsKKworCXNfcHJpdi0+Z2xvY29udF91cmIgPSBrZXlzcGFuX3NldHVwX3VyYgorCQkoc2VyaWFsLCBkX2RldGFpbHMtPmdsb2NvbnRfZW5kcG9pbnQsIFVTQl9ESVJfT1VULAorCQkgc2VyaWFsLCBzX3ByaXYtPmdsb2NvbnRfYnVmLCBHTE9DT05UX0JVRkxFTiwKKwkJIGNiYWNrLT5nbG9jb250X2NhbGxiYWNrKTsKKworCQkvKiBTZXR1cCBlbmRwb2ludHMgZm9yIGVhY2ggcG9ydCBzcGVjaWZpYyB0aGluZyAqLworCWZvciAoaSA9IDA7IGkgPCBkX2RldGFpbHMtPm51bV9wb3J0czsgaSArKykgeworCQlwb3J0ID0gc2VyaWFsLT5wb3J0W2ldOworCQlwX3ByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisKKwkJLyogRG8gaW5kYXQgZW5kcG9pbnRzIGZpcnN0LCBvbmNlIGZvciBlYWNoIGZsaXAgKi8KKwkJZW5kcCA9IGRfZGV0YWlscy0+aW5kYXRfZW5kcG9pbnRzW2ldOworCQlmb3IgKGogPSAwOyBqIDw9IGRfZGV0YWlscy0+aW5kYXRfZW5kcF9mbGlwOyArK2osICsrZW5kcCkgeworCQkJcF9wcml2LT5pbl91cmJzW2pdID0ga2V5c3Bhbl9zZXR1cF91cmIKKwkJCQkoc2VyaWFsLCBlbmRwLCBVU0JfRElSX0lOLCBwb3J0LAorCQkJCSBwX3ByaXYtPmluX2J1ZmZlcltqXSwgNjQsCisJCQkJIGNiYWNrLT5pbmRhdF9jYWxsYmFjayk7CisJCX0KKwkJZm9yICg7IGogPCAyOyArK2opCisJCQlwX3ByaXYtPmluX3VyYnNbal0gPSBOVUxMOworCisJCS8qIG91dGRhdCBlbmRwb2ludHMgYWxzbyBoYXZlIGZsaXAgKi8KKwkJZW5kcCA9IGRfZGV0YWlscy0+b3V0ZGF0X2VuZHBvaW50c1tpXTsKKwkJZm9yIChqID0gMDsgaiA8PSBkX2RldGFpbHMtPm91dGRhdF9lbmRwX2ZsaXA7ICsraiwgKytlbmRwKSB7CisJCQlwX3ByaXYtPm91dF91cmJzW2pdID0ga2V5c3Bhbl9zZXR1cF91cmIKKwkJCQkoc2VyaWFsLCBlbmRwLCBVU0JfRElSX09VVCwgcG9ydCwKKwkJCQkgcF9wcml2LT5vdXRfYnVmZmVyW2pdLCA2NCwKKwkJCQkgY2JhY2stPm91dGRhdF9jYWxsYmFjayk7CisJCX0KKwkJZm9yICg7IGogPCAyOyArK2opCisJCQlwX3ByaXYtPm91dF91cmJzW2pdID0gTlVMTDsKKworCQkvKiBpbmFjayBlbmRwb2ludCAqLworCQlwX3ByaXYtPmluYWNrX3VyYiA9IGtleXNwYW5fc2V0dXBfdXJiCisJCQkoc2VyaWFsLCBkX2RldGFpbHMtPmluYWNrX2VuZHBvaW50c1tpXSwgVVNCX0RJUl9JTiwKKwkJCSBwb3J0LCBwX3ByaXYtPmluYWNrX2J1ZmZlciwgMSwgY2JhY2stPmluYWNrX2NhbGxiYWNrKTsKKworCQkvKiBvdXRjb250IGVuZHBvaW50ICovCisJCXBfcHJpdi0+b3V0Y29udF91cmIgPSBrZXlzcGFuX3NldHVwX3VyYgorCQkJKHNlcmlhbCwgZF9kZXRhaWxzLT5vdXRjb250X2VuZHBvaW50c1tpXSwgVVNCX0RJUl9PVVQsCisJCQkgcG9ydCwgcF9wcml2LT5vdXRjb250X2J1ZmZlciwgNjQsCisJCQkgY2JhY2stPm91dGNvbnRfY2FsbGJhY2spOworCX0JCisKK30KKworLyogdXNhMTkgZnVuY3Rpb24gZG9lc24ndCByZXF1aXJlIHByZXNjYWxlciAqLworc3RhdGljIGludCBrZXlzcGFuX3VzYTE5X2NhbGNfYmF1ZCh1MzIgYmF1ZF9yYXRlLCB1MzIgYmF1ZGNsaywgdTggKnJhdGVfaGksCisJCQkJICAgdTggKnJhdGVfbG93LCB1OCAqcHJlc2NhbGVyLCBpbnQgcG9ydG51bSkKK3sKKwl1MzIgCWIxNiwJLyogYmF1ZCByYXRlIHRpbWVzIDE2IChhY3R1YWwgcmF0ZSB1c2VkIGludGVybmFsbHkpICovCisJCWRpdiwJLyogZGl2aXNvciAqLwkKKwkJY250OwkvKiBpbnZlcnNlIG9mIGRpdmlzb3IgKHByb2dyYW1tZWQgaW50byA4MDUxKSAqLworCQkKKwlkYmcgKCIlcyAtICVkLiIsIF9fRlVOQ1RJT05fXywgYmF1ZF9yYXRlKTsKKworCQkvKiBwcmV2ZW50IGRpdmlkZSBieSB6ZXJvLi4uICAqLworCWlmKCAoYjE2ID0gKGJhdWRfcmF0ZSAqIDE2TCkpID09IDApIHsKKwkJcmV0dXJuIChLRVlTUEFOX0lOVkFMSURfQkFVRF9SQVRFKTsKKwl9CisKKwkJLyogQW55ICJzdGFuZGFyZCIgcmF0ZSBvdmVyIDU3azYgaXMgbWFyZ2luYWwgb24gdGhlIFVTQS0xOQorCQkgICBhcyB3ZSBydW4gb3V0IG9mIGRpdmlzb3IgcmVzb2x1dGlvbi4gKi8KKwlpZiAoYmF1ZF9yYXRlID4gNTc2MDApIHsKKwkJcmV0dXJuIChLRVlTUEFOX0lOVkFMSURfQkFVRF9SQVRFKTsKKwl9CisKKwkJLyogY2FsY3VsYXRlIHRoZSBkaXZpc29yIGFuZCB0aGUgY291bnRlciAoaXRzIGludmVyc2UpICovCisJaWYoIChkaXYgPSAoYmF1ZGNsayAvIGIxNikpID09IDApIHsKKwkJcmV0dXJuIChLRVlTUEFOX0lOVkFMSURfQkFVRF9SQVRFKTsKKwl9CisJZWxzZSB7CisJCWNudCA9IDAgLSBkaXY7CisJfQorCisJaWYoZGl2ID4gMHhmZmZmKSB7CisJCXJldHVybiAoS0VZU1BBTl9JTlZBTElEX0JBVURfUkFURSk7CisJfQorCisJCS8qIHJldHVybiB0aGUgY291bnRlciB2YWx1ZXMgaWYgbm9uLW51bGwgKi8KKwlpZiAocmF0ZV9sb3cpIHsKKwkJKnJhdGVfbG93ID0gKHU4KSAoY250ICYgMHhmZik7CisJfQorCWlmIChyYXRlX2hpKSB7CisJCSpyYXRlX2hpID0gKHU4KSAoKGNudCA+PiA4KSAmIDB4ZmYpOworCX0KKwlpZiAocmF0ZV9sb3cgJiYgcmF0ZV9oaSkgeworCQlkYmcgKCIlcyAtICVkICUwMnggJTAyeC4iLCBfX0ZVTkNUSU9OX18sIGJhdWRfcmF0ZSwgKnJhdGVfaGksICpyYXRlX2xvdyk7CisJfQorCQorCXJldHVybiAoS0VZU1BBTl9CQVVEX1JBVEVfT0spOworfQorCisvKiB1c2ExOWhzIGZ1bmN0aW9uIGRvZXNuJ3QgcmVxdWlyZSBwcmVzY2FsZXIgKi8KK3N0YXRpYyBpbnQga2V5c3Bhbl91c2ExOWhzX2NhbGNfYmF1ZCh1MzIgYmF1ZF9yYXRlLCB1MzIgYmF1ZGNsaywgdTggKnJhdGVfaGksCisJCQkJICAgdTggKnJhdGVfbG93LCB1OCAqcHJlc2NhbGVyLCBpbnQgcG9ydG51bSkKK3sKKwl1MzIgCWIxNiwJLyogYmF1ZCByYXRlIHRpbWVzIDE2IChhY3R1YWwgcmF0ZSB1c2VkIGludGVybmFsbHkpICovCisJCQlkaXY7CS8qIGRpdmlzb3IgKi8JCisJCQorCWRiZyAoIiVzIC0gJWQuIiwgX19GVU5DVElPTl9fLCBiYXVkX3JhdGUpOworCisJCS8qIHByZXZlbnQgZGl2aWRlIGJ5IHplcm8uLi4gICovCisJaWYoIChiMTYgPSAoYmF1ZF9yYXRlICogMTZMKSkgPT0gMCkgCisJCXJldHVybiAoS0VZU1BBTl9JTlZBTElEX0JBVURfUkFURSk7CisJCisKKworCQkvKiBjYWxjdWxhdGUgdGhlIGRpdmlzb3IgKi8KKwlpZiggKGRpdiA9IChiYXVkY2xrIC8gYjE2KSkgPT0gMCkgCisJCXJldHVybiAoS0VZU1BBTl9JTlZBTElEX0JBVURfUkFURSk7CisKKwlpZihkaXYgPiAweGZmZmYpIAorCQlyZXR1cm4gKEtFWVNQQU5fSU5WQUxJRF9CQVVEX1JBVEUpOworCisJCS8qIHJldHVybiB0aGUgY291bnRlciB2YWx1ZXMgaWYgbm9uLW51bGwgKi8KKwlpZiAocmF0ZV9sb3cpIAorCQkqcmF0ZV9sb3cgPSAodTgpIChkaXYgJiAweGZmKTsKKwkKKwlpZiAocmF0ZV9oaSkgCisJCSpyYXRlX2hpID0gKHU4KSAoKGRpdiA+PiA4KSAmIDB4ZmYpOworCQorCWlmIChyYXRlX2xvdyAmJiByYXRlX2hpKSAKKwkJZGJnICgiJXMgLSAlZCAlMDJ4ICUwMnguIiwgX19GVU5DVElPTl9fLCBiYXVkX3JhdGUsICpyYXRlX2hpLCAqcmF0ZV9sb3cpOworCQorCXJldHVybiAoS0VZU1BBTl9CQVVEX1JBVEVfT0spOworfQorCitzdGF0aWMgaW50IGtleXNwYW5fdXNhMTl3X2NhbGNfYmF1ZCh1MzIgYmF1ZF9yYXRlLCB1MzIgYmF1ZGNsaywgdTggKnJhdGVfaGksCisJCQkJICAgIHU4ICpyYXRlX2xvdywgdTggKnByZXNjYWxlciwgaW50IHBvcnRudW0pCit7CisJdTMyIAliMTYsCS8qIGJhdWQgcmF0ZSB0aW1lcyAxNiAoYWN0dWFsIHJhdGUgdXNlZCBpbnRlcm5hbGx5KSAqLworCQljbGssCS8qIGNsb2NrIHdpdGggMTMvOCBwcmVzY2FsZXIgKi8KKwkJZGl2LAkvKiBkaXZpc29yIHVzaW5nIDEzLzggcHJlc2NhbGVyICovCQorCQlyZXMsCS8qIHJlc3VsdGluZyBiYXVkIHJhdGUgdXNpbmcgMTMvOCBwcmVzY2FsZXIgKi8KKwkJZGlmZiwJLyogZXJyb3IgdXNpbmcgMTMvOCBwcmVzY2FsZXIgKi8KKwkJc21hbGxlc3RfZGlmZjsKKwl1OAliZXN0X3ByZXNjYWxlcjsKKwlpbnQJaTsKKworCWRiZyAoIiVzIC0gJWQuIiwgX19GVU5DVElPTl9fLCBiYXVkX3JhdGUpOworCisJCS8qIHByZXZlbnQgZGl2aWRlIGJ5IHplcm8gKi8KKwlpZiggKGIxNiA9IGJhdWRfcmF0ZSAqIDE2TCkgPT0gMCkgeworCQlyZXR1cm4gKEtFWVNQQU5fSU5WQUxJRF9CQVVEX1JBVEUpOworCX0KKworCQkvKiBDYWxjdWxhdGUgcHJlc2NhbGVyIGJ5IHRyeWluZyB0aGVtIGFsbCBhbmQgbG9va2luZworCQkgICBmb3IgYmVzdCBmaXQgKi8KKwkJCisJCS8qIHN0YXJ0IHdpdGggbGFyZ2VzdCBwb3NzaWJsZSBkaWZmZXJlbmNlICovCisJc21hbGxlc3RfZGlmZiA9IDB4ZmZmZmZmZmY7CisKKwkJLyogMCBpcyBhbiBpbnZhbGlkIHByZXNjYWxlciwgdXNlZCBhcyBhIGZsYWcgKi8KKwliZXN0X3ByZXNjYWxlciA9IDA7CisKKwlmb3IoaSA9IDg7IGkgPD0gMHhmZjsgKytpKSB7CisJCWNsayA9IChiYXVkY2xrICogOCkgLyAodTMyKSBpOworCQkKKwkJaWYoIChkaXYgPSBjbGsgLyBiMTYpID09IDApIHsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJcmVzID0gY2xrIC8gZGl2OworCQlkaWZmPSAocmVzID4gYjE2KSA/IChyZXMtYjE2KSA6IChiMTYtcmVzKTsKKworCQlpZihkaWZmIDwgc21hbGxlc3RfZGlmZikgeworCQkJYmVzdF9wcmVzY2FsZXIgPSBpOworCQkJc21hbGxlc3RfZGlmZiA9IGRpZmY7CisJCX0KKwl9CisKKwlpZihiZXN0X3ByZXNjYWxlciA9PSAwKSB7CisJCXJldHVybiAoS0VZU1BBTl9JTlZBTElEX0JBVURfUkFURSk7CisJfQorCisJY2xrID0gKGJhdWRjbGsgKiA4KSAvICh1MzIpIGJlc3RfcHJlc2NhbGVyOworCWRpdiA9IGNsayAvIGIxNjsKKworCQkvKiByZXR1cm4gdGhlIGRpdmlzb3IgYW5kIHByZXNjYWxlciBpZiBub24tbnVsbCAqLworCWlmIChyYXRlX2xvdykgeworCQkqcmF0ZV9sb3cgPSAodTgpIChkaXYgJiAweGZmKTsKKwl9CisJaWYgKHJhdGVfaGkpIHsKKwkJKnJhdGVfaGkgPSAodTgpICgoZGl2ID4+IDgpICYgMHhmZik7CisJfQorCWlmIChwcmVzY2FsZXIpIHsKKwkJKnByZXNjYWxlciA9IGJlc3RfcHJlc2NhbGVyOworCQkvKiAgZGJnKCIlcyAtICVkICVkIiwgX19GVU5DVElPTl9fLCAqcHJlc2NhbGVyLCBkaXYpOyAqLworCX0KKwlyZXR1cm4gKEtFWVNQQU5fQkFVRF9SQVRFX09LKTsKK30KKworCS8qIFVTQS0yOCBzdXBwb3J0cyBkaWZmZXJlbnQgbWF4aW11bSBiYXVkIHJhdGVzIG9uIGVhY2ggcG9ydCAqLworc3RhdGljIGludCBrZXlzcGFuX3VzYTI4X2NhbGNfYmF1ZCh1MzIgYmF1ZF9yYXRlLCB1MzIgYmF1ZGNsaywgdTggKnJhdGVfaGksCisJCQkJICAgIHU4ICpyYXRlX2xvdywgdTggKnByZXNjYWxlciwgaW50IHBvcnRudW0pCit7CisJdTMyIAliMTYsCS8qIGJhdWQgcmF0ZSB0aW1lcyAxNiAoYWN0dWFsIHJhdGUgdXNlZCBpbnRlcm5hbGx5KSAqLworCQlkaXYsCS8qIGRpdmlzb3IgKi8JCisJCWNudDsJLyogaW52ZXJzZSBvZiBkaXZpc29yIChwcm9ncmFtbWVkIGludG8gODA1MSkgKi8KKworCWRiZyAoIiVzIC0gJWQuIiwgX19GVU5DVElPTl9fLCBiYXVkX3JhdGUpOworCisJCS8qIHByZXZlbnQgZGl2aWRlIGJ5IHplcm8gKi8KKwlpZiAoKGIxNiA9IGJhdWRfcmF0ZSAqIDE2TCkgPT0gMCkKKwkJcmV0dXJuIChLRVlTUEFOX0lOVkFMSURfQkFVRF9SQVRFKTsKKworCQkvKiBjYWxjdWxhdGUgdGhlIGRpdmlzb3IgYW5kIHRoZSBjb3VudGVyIChpdHMgaW52ZXJzZSkgKi8KKwlpZiAoKGRpdiA9IChLRVlTUEFOX1VTQTI4X0JBVURDTEsgLyBiMTYpKSA9PSAwKSB7CisJCXJldHVybiAoS0VZU1BBTl9JTlZBTElEX0JBVURfUkFURSk7CisJfQorCWVsc2UgeworCQljbnQgPSAwIC0gZGl2OworCX0KKworCQkvKiBjaGVjayBmb3Igb3V0IG9mIHJhbmdlLCBiYXNlZCBvbiBwb3J0bnVtLCAKKwkJICAgYW5kIHJldHVybiByZXN1bHQgKi8KKwlpZihwb3J0bnVtID09IDApIHsKKwkJaWYoZGl2ID4gMHhmZmZmKQorCQkJcmV0dXJuIChLRVlTUEFOX0lOVkFMSURfQkFVRF9SQVRFKTsKKwl9CisJZWxzZSB7CisJCWlmKHBvcnRudW0gPT0gMSkgeworCQkJaWYoZGl2ID4gMHhmZikgeworCQkJCXJldHVybiAoS0VZU1BBTl9JTlZBTElEX0JBVURfUkFURSk7CisJCQl9CisJCX0KKwkJZWxzZSB7CisJCQlyZXR1cm4gKEtFWVNQQU5fSU5WQUxJRF9CQVVEX1JBVEUpOworCQl9CisJfQorCisJCS8qIHJldHVybiB0aGUgY291bnRlciB2YWx1ZXMgaWYgbm90IE5VTEwKKwkJICAgKHBvcnQgMSB3aWxsIGlnbm9yZSByZXRIaSkgKi8KKwlpZiAocmF0ZV9sb3cpIHsKKwkJKnJhdGVfbG93ID0gKHU4KSAoY250ICYgMHhmZik7CisJfQorCWlmIChyYXRlX2hpKSB7CisJCSpyYXRlX2hpID0gKHU4KSAoKGNudCA+PiA4KSAmIDB4ZmYpOworCX0KKwlkYmcgKCIlcyAtICVkIE9LLiIsIF9fRlVOQ1RJT05fXywgYmF1ZF9yYXRlKTsKKwlyZXR1cm4gKEtFWVNQQU5fQkFVRF9SQVRFX09LKTsKK30KKworc3RhdGljIGludCBrZXlzcGFuX3VzYTI2X3NlbmRfc2V0dXAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwKKwkJCQkgICAgc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwKKwkJCQkgICAgaW50IHJlc2V0X3BvcnQpCit7CisJc3RydWN0IGtleXNwYW5fdXNhMjZfcG9ydENvbnRyb2xNZXNzYWdlCW1zZzsJCQorCXN0cnVjdCBrZXlzcGFuX3NlcmlhbF9wcml2YXRlIAkJKnNfcHJpdjsKKwlzdHJ1Y3Qga2V5c3Bhbl9wb3J0X3ByaXZhdGUgCQkqcF9wcml2OworCWNvbnN0IHN0cnVjdCBrZXlzcGFuX2RldmljZV9kZXRhaWxzCSpkX2RldGFpbHM7CisJaW50IAkJCQkJb3V0Y29udF91cmI7CisJc3RydWN0IHVyYgkJCQkqdGhpc191cmI7CisJaW50IAkJCQkJZGV2aWNlX3BvcnQsIGVycjsKKworCWRiZyAoIiVzIHJlc2V0PSVkIiwgX19GVU5DVElPTl9fLCByZXNldF9wb3J0KTsgCisKKwlzX3ByaXYgPSB1c2JfZ2V0X3NlcmlhbF9kYXRhKHNlcmlhbCk7CisJcF9wcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCWRfZGV0YWlscyA9IHNfcHJpdi0+ZGV2aWNlX2RldGFpbHM7CisJZGV2aWNlX3BvcnQgPSBwb3J0LT5udW1iZXIgLSBwb3J0LT5zZXJpYWwtPm1pbm9yOworCisJb3V0Y29udF91cmIgPSBkX2RldGFpbHMtPm91dGNvbnRfZW5kcG9pbnRzW3BvcnQtPm51bWJlcl07CisJdGhpc191cmIgPSBwX3ByaXYtPm91dGNvbnRfdXJiOworCisJZGJnKCIlcyAtIGVuZHBvaW50ICVkIiwgX19GVU5DVElPTl9fLCB1c2JfcGlwZWVuZHBvaW50KHRoaXNfdXJiLT5waXBlKSk7CisKKwkJLyogTWFrZSBzdXJlIHdlIGhhdmUgYW4gdXJiIHRoZW4gc2VuZCB0aGUgbWVzc2FnZSAqLworCWlmICh0aGlzX3VyYiA9PSBOVUxMKSB7CisJCWRiZygiJXMgLSBvb3BzIG5vIHVyYi4iLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm4gLTE7CisJfQorCisJLyogU2F2ZSByZXNldCBwb3J0IHZhbCBmb3IgcmVzZW5kLgorCURvbid0IG92ZXJ3cml0ZSByZXNlbmQgZm9yIGNsb3NlIGNvbmRpdGlvbi4gKi8KKwlpZiAocF9wcml2LT5yZXNlbmRfY29udCAhPSAzKQorCQlwX3ByaXYtPnJlc2VuZF9jb250ID0gcmVzZXRfcG9ydCArIDE7CisJaWYgKHRoaXNfdXJiLT5zdGF0dXMgPT0gLUVJTlBST0dSRVNTKSB7CisJCS8qICBkYmcgKCIlcyAtIGFscmVhZHkgd3JpdGluZyIsIF9fRlVOQ1RJT05fXyk7ICovCisJCW1kZWxheSg1KTsKKwkJcmV0dXJuKC0xKTsKKwl9CisKKwltZW1zZXQoJm1zZywgMCwgc2l6ZW9mIChzdHJ1Y3Qga2V5c3Bhbl91c2EyNl9wb3J0Q29udHJvbE1lc3NhZ2UpKTsKKwkKKwkJLyogT25seSBzZXQgYmF1ZCByYXRlIGlmIGl0J3MgY2hhbmdlZCAqLwkKKwlpZiAocF9wcml2LT5vbGRfYmF1ZCAhPSBwX3ByaXYtPmJhdWQpIHsKKwkJcF9wcml2LT5vbGRfYmF1ZCA9IHBfcHJpdi0+YmF1ZDsKKwkJbXNnLnNldENsb2NraW5nID0gMHhmZjsKKwkJaWYgKGRfZGV0YWlscy0+Y2FsY3VsYXRlX2JhdWRfcmF0ZQorCQkgICAgKHBfcHJpdi0+YmF1ZCwgZF9kZXRhaWxzLT5iYXVkY2xrLCAmbXNnLmJhdWRIaSwKKwkJICAgICAmbXNnLmJhdWRMbywgJm1zZy5wcmVzY2FsZXIsIGRldmljZV9wb3J0KSA9PSBLRVlTUEFOX0lOVkFMSURfQkFVRF9SQVRFICkgeworCQkJZGJnKCIlcyAtIEludmFsaWQgYmF1ZCByYXRlICVkIHJlcXVlc3RlZCwgdXNpbmcgOTYwMC4iLCBfX0ZVTkNUSU9OX18sCisJCQkgICAgcF9wcml2LT5iYXVkKTsKKwkJCW1zZy5iYXVkTG8gPSAwOworCQkJbXNnLmJhdWRIaSA9IDEyNTsJLyogVmFsdWVzIGZvciA5NjAwIGJhdWQgKi8KKwkJCW1zZy5wcmVzY2FsZXIgPSAxMDsKKwkJfQorCQltc2cuc2V0UHJlc2NhbGVyID0gMHhmZjsKKwl9CisKKwltc2cubGNyID0gKHBfcHJpdi0+Y2ZsYWcgJiBDU1RPUEIpPyBTVE9QQklUU182NzhfMjogU1RPUEJJVFNfNTY3OF8xOworCXN3aXRjaCAocF9wcml2LT5jZmxhZyAmIENTSVpFKSB7CisJY2FzZSBDUzU6CisJCW1zZy5sY3IgfD0gVVNBX0RBVEFCSVRTXzU7CisJCWJyZWFrOworCWNhc2UgQ1M2OgorCQltc2cubGNyIHw9IFVTQV9EQVRBQklUU182OworCQlicmVhazsKKwljYXNlIENTNzoKKwkJbXNnLmxjciB8PSBVU0FfREFUQUJJVFNfNzsKKwkJYnJlYWs7CisJY2FzZSBDUzg6CisJCW1zZy5sY3IgfD0gVVNBX0RBVEFCSVRTXzg7CisJCWJyZWFrOworCX0KKwlpZiAocF9wcml2LT5jZmxhZyAmIFBBUkVOQikgeworCQkvKiBub3RlIFVTQV9QQVJJVFlfTk9ORSA9PSAwICovCisJCW1zZy5sY3IgfD0gKHBfcHJpdi0+Y2ZsYWcgJiBQQVJPREQpPworCQkJVVNBX1BBUklUWV9PREQ6IFVTQV9QQVJJVFlfRVZFTjsKKwl9CisJbXNnLnNldExjciA9IDB4ZmY7CisKKwltc2cuY3RzRmxvd0NvbnRyb2wgPSAocF9wcml2LT5mbG93X2NvbnRyb2wgPT0gZmxvd19jdHMpOworCW1zZy54b25GbG93Q29udHJvbCA9IDA7CisJbXNnLnNldEZsb3dDb250cm9sID0gMHhmZjsKKwltc2cuZm9yd2FyZGluZ0xlbmd0aCA9IDE2OworCW1zZy54b25DaGFyID0gMTc7CisJbXNnLnhvZmZDaGFyID0gMTk7CisKKwkvKiBPcGVuaW5nIHBvcnQgKi8KKwlpZiAocmVzZXRfcG9ydCA9PSAxKSB7CisJCW1zZy5fdHhPbiA9IDE7CisJCW1zZy5fdHhPZmYgPSAwOworCQltc2cudHhGbHVzaCA9IDA7CisJCW1zZy50eEJyZWFrID0gMDsKKwkJbXNnLnJ4T24gPSAxOworCQltc2cucnhPZmYgPSAwOworCQltc2cucnhGbHVzaCA9IDE7CisJCW1zZy5yeEZvcndhcmQgPSAwOworCQltc2cucmV0dXJuU3RhdHVzID0gMDsKKwkJbXNnLnJlc2V0RGF0YVRvZ2dsZSA9IDB4ZmY7CisJfQorCisJLyogQ2xvc2luZyBwb3J0ICovCisJZWxzZSBpZiAocmVzZXRfcG9ydCA9PSAyKSB7CisJCW1zZy5fdHhPbiA9IDA7CisJCW1zZy5fdHhPZmYgPSAxOworCQltc2cudHhGbHVzaCA9IDA7CisJCW1zZy50eEJyZWFrID0gMDsKKwkJbXNnLnJ4T24gPSAwOworCQltc2cucnhPZmYgPSAxOworCQltc2cucnhGbHVzaCA9IDE7CisJCW1zZy5yeEZvcndhcmQgPSAwOworCQltc2cucmV0dXJuU3RhdHVzID0gMDsKKwkJbXNnLnJlc2V0RGF0YVRvZ2dsZSA9IDA7CisJfQorCisJLyogU2VuZGluZyBpbnRlcm1lZGlhdGUgY29uZmlncyAqLworCWVsc2UgeworCQltc2cuX3R4T24gPSAoISBwX3ByaXYtPmJyZWFrX29uKTsKKwkJbXNnLl90eE9mZiA9IDA7CisJCW1zZy50eEZsdXNoID0gMDsKKwkJbXNnLnR4QnJlYWsgPSAocF9wcml2LT5icmVha19vbik7CisJCW1zZy5yeE9uID0gMDsKKwkJbXNnLnJ4T2ZmID0gMDsKKwkJbXNnLnJ4Rmx1c2ggPSAwOworCQltc2cucnhGb3J3YXJkID0gMDsKKwkJbXNnLnJldHVyblN0YXR1cyA9IDA7CisJCW1zZy5yZXNldERhdGFUb2dnbGUgPSAweDA7CisJfQorCisJCS8qIERvIGhhbmRzaGFraW5nIG91dHB1dHMgKi8JCisJbXNnLnNldFR4VHJpU3RhdGVfc2V0UnRzID0gMHhmZjsKKwltc2cudHhUcmlTdGF0ZV9ydHMgPSBwX3ByaXYtPnJ0c19zdGF0ZTsKKworCW1zZy5zZXRIc2tvYV9zZXREdHIgPSAweGZmOworCW1zZy5oc2tvYV9kdHIgPSBwX3ByaXYtPmR0cl9zdGF0ZTsKKwkJCisJcF9wcml2LT5yZXNlbmRfY29udCA9IDA7CisJbWVtY3B5ICh0aGlzX3VyYi0+dHJhbnNmZXJfYnVmZmVyLCAmbXNnLCBzaXplb2YobXNnKSk7CisJCisJLyogc2VuZCB0aGUgZGF0YSBvdXQgdGhlIGRldmljZSBvbiBjb250cm9sIGVuZHBvaW50ICovCisJdGhpc191cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGggPSBzaXplb2YobXNnKTsKKworCXRoaXNfdXJiLT5kZXYgPSBzZXJpYWwtPmRldjsKKwlpZiAoKGVyciA9IHVzYl9zdWJtaXRfdXJiKHRoaXNfdXJiLCBHRlBfQVRPTUlDKSkgIT0gMCkgeworCQlkYmcoIiVzIC0gdXNiX3N1Ym1pdF91cmIoc2V0dXApIGZhaWxlZCAoJWQpIiwgX19GVU5DVElPTl9fLCBlcnIpOworCX0KKyNpZiAwCisJZWxzZSB7CisJCWRiZygiJXMgLSB1c2Jfc3VibWl0X3VyYiglZCkgT0sgJWQgYnl0ZXMgKGVuZCAlZCkiLCBfX0ZVTkNUSU9OX18KKwkJICAgIG91dGNvbnRfdXJiLCB0aGlzX3VyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCwKKwkJICAgIHVzYl9waXBlZW5kcG9pbnQodGhpc191cmItPnBpcGUpKTsKKwl9CisjZW5kaWYKKworCXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBpbnQga2V5c3Bhbl91c2EyOF9zZW5kX3NldHVwKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsCisJCQkJICAgIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCisJCQkJICAgIGludCByZXNldF9wb3J0KQoreworCXN0cnVjdCBrZXlzcGFuX3VzYTI4X3BvcnRDb250cm9sTWVzc2FnZQltc2c7CQkKKwlzdHJ1Y3Qga2V5c3Bhbl9zZXJpYWxfcHJpdmF0ZQkgCSpzX3ByaXY7CisJc3RydWN0IGtleXNwYW5fcG9ydF9wcml2YXRlIAkJKnBfcHJpdjsKKwljb25zdCBzdHJ1Y3Qga2V5c3Bhbl9kZXZpY2VfZGV0YWlscwkqZF9kZXRhaWxzOworCXN0cnVjdCB1cmIJCQkJKnRoaXNfdXJiOworCWludCAJCQkJCWRldmljZV9wb3J0LCBlcnI7CisKKwlkYmcgKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwlzX3ByaXYgPSB1c2JfZ2V0X3NlcmlhbF9kYXRhKHNlcmlhbCk7CisJcF9wcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCWRfZGV0YWlscyA9IHNfcHJpdi0+ZGV2aWNlX2RldGFpbHM7CisJZGV2aWNlX3BvcnQgPSBwb3J0LT5udW1iZXIgLSBwb3J0LT5zZXJpYWwtPm1pbm9yOworCisJLyogb25seSBkbyBzb21ldGhpbmcgaWYgd2UgaGF2ZSBhIGJ1bGsgb3V0IGVuZHBvaW50ICovCisJaWYgKCh0aGlzX3VyYiA9IHBfcHJpdi0+b3V0Y29udF91cmIpID09IE5VTEwpIHsKKwkJZGJnKCIlcyAtIG9vcHMgbm8gdXJiLiIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybiAtMTsKKwl9CisKKwkvKiBTYXZlIHJlc2V0IHBvcnQgdmFsIGZvciByZXNlbmQuCisJICAgRG9uJ3Qgb3ZlcndyaXRlIHJlc2VuZCBmb3IgY2xvc2UgY29uZGl0aW9uLiAqLworCWlmIChwX3ByaXYtPnJlc2VuZF9jb250ICE9IDMpCisJCXBfcHJpdi0+cmVzZW5kX2NvbnQgPSByZXNldF9wb3J0ICsgMTsKKwlpZiAodGhpc191cmItPnN0YXR1cyA9PSAtRUlOUFJPR1JFU1MpIHsKKwkJZGJnICgiJXMgYWxyZWFkeSB3cml0aW5nIiwgX19GVU5DVElPTl9fKTsKKwkJbWRlbGF5KDUpOworCQlyZXR1cm4oLTEpOworCX0KKworCW1lbXNldCgmbXNnLCAwLCBzaXplb2YgKHN0cnVjdCBrZXlzcGFuX3VzYTI4X3BvcnRDb250cm9sTWVzc2FnZSkpOworCisJbXNnLnNldEJhdWRSYXRlID0gMTsKKwlpZiAoZF9kZXRhaWxzLT5jYWxjdWxhdGVfYmF1ZF9yYXRlKHBfcHJpdi0+YmF1ZCwgZF9kZXRhaWxzLT5iYXVkY2xrLAorCQkmbXNnLmJhdWRIaSwgJm1zZy5iYXVkTG8sIE5VTEwsIGRldmljZV9wb3J0KSA9PSBLRVlTUEFOX0lOVkFMSURfQkFVRF9SQVRFICkgeworCQlkYmcoIiVzIC0gSW52YWxpZCBiYXVkIHJhdGUgcmVxdWVzdGVkICVkLiIsIF9fRlVOQ1RJT05fXywgcF9wcml2LT5iYXVkKTsKKwkJbXNnLmJhdWRMbyA9IDB4ZmY7CisJCW1zZy5iYXVkSGkgPSAweGIyOwkvKiBWYWx1ZXMgZm9yIDk2MDAgYmF1ZCAqLworCX0KKworCS8qIElmIHBhcml0eSBpcyBlbmFibGVkLCB3ZSBtdXN0IGNhbGN1bGF0ZSBpdCBvdXJzZWx2ZXMuICovCisJbXNnLnBhcml0eSA9IDA7CQkvKiBYWFggZm9yIG5vdyAqLworCisJbXNnLmN0c0Zsb3dDb250cm9sID0gKHBfcHJpdi0+Zmxvd19jb250cm9sID09IGZsb3dfY3RzKTsKKwltc2cueG9uRmxvd0NvbnRyb2wgPSAwOworCisJLyogRG8gaGFuZHNoYWtpbmcgb3V0cHV0cywgRFRSIGlzIGludmVydGVkIHJlbGF0aXZlIHRvIFJUUyAqLwkKKwltc2cucnRzID0gcF9wcml2LT5ydHNfc3RhdGU7CisJbXNnLmR0ciA9IHBfcHJpdi0+ZHRyX3N0YXRlOworCisJbXNnLmZvcndhcmRpbmdMZW5ndGggPSAxNjsKKwltc2cuZm9yd2FyZE1zID0gMTA7CisJbXNnLmJyZWFrVGhyZXNob2xkID0gNDU7CisJbXNnLnhvbkNoYXIgPSAxNzsKKwltc2cueG9mZkNoYXIgPSAxOTsKKworCS8qbXNnLnJldHVyblN0YXR1cyA9IDE7CisJbXNnLnJlc2V0RGF0YVRvZ2dsZSA9IDB4ZmY7Ki8KKwkvKiBPcGVuaW5nIHBvcnQgKi8KKwlpZiAocmVzZXRfcG9ydCA9PSAxKSB7CisJCW1zZy5fdHhPbiA9IDE7CisJCW1zZy5fdHhPZmYgPSAwOworCQltc2cudHhGbHVzaCA9IDA7CisJCW1zZy50eEZvcmNlWG9mZiA9IDA7CisJCW1zZy50eEJyZWFrID0gMDsKKwkJbXNnLnJ4T24gPSAxOworCQltc2cucnhPZmYgPSAwOworCQltc2cucnhGbHVzaCA9IDE7CisJCW1zZy5yeEZvcndhcmQgPSAwOworCQltc2cucmV0dXJuU3RhdHVzID0gMDsKKwkJbXNnLnJlc2V0RGF0YVRvZ2dsZSA9IDB4ZmY7CisJfQorCS8qIENsb3NpbmcgcG9ydCAqLworCWVsc2UgaWYgKHJlc2V0X3BvcnQgPT0gMikgeworCQltc2cuX3R4T24gPSAwOworCQltc2cuX3R4T2ZmID0gMTsKKwkJbXNnLnR4Rmx1c2ggPSAwOworCQltc2cudHhGb3JjZVhvZmYgPSAwOworCQltc2cudHhCcmVhayA9IDA7CisJCW1zZy5yeE9uID0gMDsKKwkJbXNnLnJ4T2ZmID0gMTsKKwkJbXNnLnJ4Rmx1c2ggPSAxOworCQltc2cucnhGb3J3YXJkID0gMDsKKwkJbXNnLnJldHVyblN0YXR1cyA9IDA7CisJCW1zZy5yZXNldERhdGFUb2dnbGUgPSAwOworCX0KKwkvKiBTZW5kaW5nIGludGVybWVkaWF0ZSBjb25maWdzICovCisJZWxzZSB7CisJCW1zZy5fdHhPbiA9ICghIHBfcHJpdi0+YnJlYWtfb24pOworCQltc2cuX3R4T2ZmID0gMDsKKwkJbXNnLnR4Rmx1c2ggPSAwOworCQltc2cudHhGb3JjZVhvZmYgPSAwOworCQltc2cudHhCcmVhayA9IChwX3ByaXYtPmJyZWFrX29uKTsKKwkJbXNnLnJ4T24gPSAwOworCQltc2cucnhPZmYgPSAwOworCQltc2cucnhGbHVzaCA9IDA7CisJCW1zZy5yeEZvcndhcmQgPSAwOworCQltc2cucmV0dXJuU3RhdHVzID0gMDsKKwkJbXNnLnJlc2V0RGF0YVRvZ2dsZSA9IDB4MDsKKwl9CisKKwlwX3ByaXYtPnJlc2VuZF9jb250ID0gMDsKKwltZW1jcHkgKHRoaXNfdXJiLT50cmFuc2Zlcl9idWZmZXIsICZtc2csIHNpemVvZihtc2cpKTsKKworCS8qIHNlbmQgdGhlIGRhdGEgb3V0IHRoZSBkZXZpY2Ugb24gY29udHJvbCBlbmRwb2ludCAqLworCXRoaXNfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoID0gc2l6ZW9mKG1zZyk7CisKKwl0aGlzX3VyYi0+ZGV2ID0gc2VyaWFsLT5kZXY7CisJaWYgKChlcnIgPSB1c2Jfc3VibWl0X3VyYih0aGlzX3VyYiwgR0ZQX0FUT01JQykpICE9IDApIHsKKwkJZGJnKCIlcyAtIHVzYl9zdWJtaXRfdXJiKHNldHVwKSBmYWlsZWQiLCBfX0ZVTkNUSU9OX18pOworCX0KKyNpZiAwCisJZWxzZSB7CisJCWRiZygiJXMgLSB1c2Jfc3VibWl0X3VyYihzZXR1cCkgT0sgJWQgYnl0ZXMiLCBfX0ZVTkNUSU9OX18sCisJCSAgICB0aGlzX3VyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCk7CisJfQorI2VuZGlmCisKKwlyZXR1cm4gKDApOworfQorCitzdGF0aWMgaW50IGtleXNwYW5fdXNhNDlfc2VuZF9zZXR1cChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLAorCQkJCSAgICBzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LAorCQkJCSAgICBpbnQgcmVzZXRfcG9ydCkKK3sKKwlzdHJ1Y3Qga2V5c3Bhbl91c2E0OV9wb3J0Q29udHJvbE1lc3NhZ2UJbXNnOwkJCisJc3RydWN0IGtleXNwYW5fc2VyaWFsX3ByaXZhdGUgCQkqc19wcml2OworCXN0cnVjdCBrZXlzcGFuX3BvcnRfcHJpdmF0ZSAJCSpwX3ByaXY7CisJY29uc3Qgc3RydWN0IGtleXNwYW5fZGV2aWNlX2RldGFpbHMJKmRfZGV0YWlsczsKKwlpbnQgCQkJCQlnbG9jb250X3VyYjsKKwlzdHJ1Y3QgdXJiCQkJCSp0aGlzX3VyYjsKKwlpbnQgCQkJCQllcnIsIGRldmljZV9wb3J0OworCisJZGJnICgiJXMiLCBfX0ZVTkNUSU9OX18pOworCisJc19wcml2ID0gdXNiX2dldF9zZXJpYWxfZGF0YShzZXJpYWwpOworCXBfcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlkX2RldGFpbHMgPSBzX3ByaXYtPmRldmljZV9kZXRhaWxzOworCisJZ2xvY29udF91cmIgPSBkX2RldGFpbHMtPmdsb2NvbnRfZW5kcG9pbnQ7CisJdGhpc191cmIgPSBzX3ByaXYtPmdsb2NvbnRfdXJiOworCisJCS8qIFdvcmsgb3V0IHdoaWNoIHBvcnQgd2l0aGluIHRoZSBkZXZpY2UgaXMgYmVpbmcgc2V0dXAgKi8KKwlkZXZpY2VfcG9ydCA9IHBvcnQtPm51bWJlciAtIHBvcnQtPnNlcmlhbC0+bWlub3I7CisKKwlkYmcoIiVzIC0gZW5kcG9pbnQgJWQgcG9ydCAlZCAoJWQpIixfX0ZVTkNUSU9OX18sIHVzYl9waXBlZW5kcG9pbnQodGhpc191cmItPnBpcGUpLCBwb3J0LT5udW1iZXIsIGRldmljZV9wb3J0KTsKKworCQkvKiBNYWtlIHN1cmUgd2UgaGF2ZSBhbiB1cmIgdGhlbiBzZW5kIHRoZSBtZXNzYWdlICovCisJaWYgKHRoaXNfdXJiID09IE5VTEwpIHsKKwkJZGJnKCIlcyAtIG9vcHMgbm8gdXJiIGZvciBwb3J0ICVkLiIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKwkJcmV0dXJuIC0xOworCX0KKworCS8qIFNhdmUgcmVzZXQgcG9ydCB2YWwgZm9yIHJlc2VuZC4KKwkgICBEb24ndCBvdmVyd3JpdGUgcmVzZW5kIGZvciBjbG9zZSBjb25kaXRpb24uICovCisJaWYgKHBfcHJpdi0+cmVzZW5kX2NvbnQgIT0gMykKKwkJcF9wcml2LT5yZXNlbmRfY29udCA9IHJlc2V0X3BvcnQgKyAxOworCWlmICh0aGlzX3VyYi0+c3RhdHVzID09IC1FSU5QUk9HUkVTUykgeworCQkvKiAgZGJnICgiJXMgLSBhbHJlYWR5IHdyaXRpbmciLCBfX0ZVTkNUSU9OX18pOyAqLworCQltZGVsYXkoNSk7CisJCXJldHVybigtMSk7CisJfQorCisJbWVtc2V0KCZtc2csIDAsIHNpemVvZiAoc3RydWN0IGtleXNwYW5fdXNhNDlfcG9ydENvbnRyb2xNZXNzYWdlKSk7CisKKwkvKm1zZy5wb3J0TnVtYmVyID0gcG9ydC0+bnVtYmVyOyovCisJbXNnLnBvcnROdW1iZXIgPSBkZXZpY2VfcG9ydDsKKwkKKwkJLyogT25seSBzZXQgYmF1ZCByYXRlIGlmIGl0J3MgY2hhbmdlZCAqLwkKKwlpZiAocF9wcml2LT5vbGRfYmF1ZCAhPSBwX3ByaXYtPmJhdWQpIHsKKwkJcF9wcml2LT5vbGRfYmF1ZCA9IHBfcHJpdi0+YmF1ZDsKKwkJbXNnLnNldENsb2NraW5nID0gMHhmZjsKKwkJaWYgKGRfZGV0YWlscy0+Y2FsY3VsYXRlX2JhdWRfcmF0ZQorCQkgICAgKHBfcHJpdi0+YmF1ZCwgZF9kZXRhaWxzLT5iYXVkY2xrLCAmbXNnLmJhdWRIaSwKKwkJICAgICAmbXNnLmJhdWRMbywgJm1zZy5wcmVzY2FsZXIsIGRldmljZV9wb3J0KSA9PSBLRVlTUEFOX0lOVkFMSURfQkFVRF9SQVRFICkgeworCQkJZGJnKCIlcyAtIEludmFsaWQgYmF1ZCByYXRlICVkIHJlcXVlc3RlZCwgdXNpbmcgOTYwMC4iLCBfX0ZVTkNUSU9OX18sCisJCQkgICAgcF9wcml2LT5iYXVkKTsKKwkJCW1zZy5iYXVkTG8gPSAwOworCQkJbXNnLmJhdWRIaSA9IDEyNTsJLyogVmFsdWVzIGZvciA5NjAwIGJhdWQgKi8KKwkJCW1zZy5wcmVzY2FsZXIgPSAxMDsKKwkJfQorCQkvL21zZy5zZXRQcmVzY2FsZXIgPSAweGZmOworCX0KKworCW1zZy5sY3IgPSAocF9wcml2LT5jZmxhZyAmIENTVE9QQik/IFNUT1BCSVRTXzY3OF8yOiBTVE9QQklUU181Njc4XzE7CisJc3dpdGNoIChwX3ByaXYtPmNmbGFnICYgQ1NJWkUpIHsKKwljYXNlIENTNToKKwkJbXNnLmxjciB8PSBVU0FfREFUQUJJVFNfNTsKKwkJYnJlYWs7CisJY2FzZSBDUzY6CisJCW1zZy5sY3IgfD0gVVNBX0RBVEFCSVRTXzY7CisJCWJyZWFrOworCWNhc2UgQ1M3OgorCQltc2cubGNyIHw9IFVTQV9EQVRBQklUU183OworCQlicmVhazsKKwljYXNlIENTODoKKwkJbXNnLmxjciB8PSBVU0FfREFUQUJJVFNfODsKKwkJYnJlYWs7CisJfQorCWlmIChwX3ByaXYtPmNmbGFnICYgUEFSRU5CKSB7CisJCS8qIG5vdGUgVVNBX1BBUklUWV9OT05FID09IDAgKi8KKwkJbXNnLmxjciB8PSAocF9wcml2LT5jZmxhZyAmIFBBUk9ERCk/CisJCQlVU0FfUEFSSVRZX09ERDogVVNBX1BBUklUWV9FVkVOOworCX0KKwltc2cuc2V0TGNyID0gMHhmZjsKKworCW1zZy5jdHNGbG93Q29udHJvbCA9IChwX3ByaXYtPmZsb3dfY29udHJvbCA9PSBmbG93X2N0cyk7CisJbXNnLnhvbkZsb3dDb250cm9sID0gMDsKKwltc2cuc2V0Rmxvd0NvbnRyb2wgPSAweGZmOworCQorCW1zZy5mb3J3YXJkaW5nTGVuZ3RoID0gMTY7CisJbXNnLnhvbkNoYXIgPSAxNzsKKwltc2cueG9mZkNoYXIgPSAxOTsKKworCS8qIE9wZW5pbmcgcG9ydCAqLyAKKwlpZiAocmVzZXRfcG9ydCA9PSAxKSB7CisJCW1zZy5fdHhPbiA9IDE7CisJCW1zZy5fdHhPZmYgPSAwOworCQltc2cudHhGbHVzaCA9IDA7CisJCW1zZy50eEJyZWFrID0gMDsKKwkJbXNnLnJ4T24gPSAxOworCQltc2cucnhPZmYgPSAwOworCQltc2cucnhGbHVzaCA9IDE7CisJCW1zZy5yeEZvcndhcmQgPSAwOworCQltc2cucmV0dXJuU3RhdHVzID0gMDsKKwkJbXNnLnJlc2V0RGF0YVRvZ2dsZSA9IDB4ZmY7CisJCW1zZy5lbmFibGVQb3J0ID0gMTsKKwkJbXNnLmRpc2FibGVQb3J0ID0gMDsKKwl9CisJLyogQ2xvc2luZyBwb3J0ICovCisJZWxzZSBpZiAocmVzZXRfcG9ydCA9PSAyKSB7CisJCW1zZy5fdHhPbiA9IDA7CisJCW1zZy5fdHhPZmYgPSAxOworCQltc2cudHhGbHVzaCA9IDA7CisJCW1zZy50eEJyZWFrID0gMDsKKwkJbXNnLnJ4T24gPSAwOworCQltc2cucnhPZmYgPSAxOworCQltc2cucnhGbHVzaCA9IDE7CisJCW1zZy5yeEZvcndhcmQgPSAwOworCQltc2cucmV0dXJuU3RhdHVzID0gMDsKKwkJbXNnLnJlc2V0RGF0YVRvZ2dsZSA9IDA7CisJCW1zZy5lbmFibGVQb3J0ID0gMDsKKwkJbXNnLmRpc2FibGVQb3J0ID0gMTsKKwl9CisJLyogU2VuZGluZyBpbnRlcm1lZGlhdGUgY29uZmlncyAqLworCWVsc2UgeworCQltc2cuX3R4T24gPSAoISBwX3ByaXYtPmJyZWFrX29uKTsKKwkJbXNnLl90eE9mZiA9IDA7CisJCW1zZy50eEZsdXNoID0gMDsKKwkJbXNnLnR4QnJlYWsgPSAocF9wcml2LT5icmVha19vbik7CisJCW1zZy5yeE9uID0gMDsKKwkJbXNnLnJ4T2ZmID0gMDsKKwkJbXNnLnJ4Rmx1c2ggPSAwOworCQltc2cucnhGb3J3YXJkID0gMDsKKwkJbXNnLnJldHVyblN0YXR1cyA9IDA7CisJCW1zZy5yZXNldERhdGFUb2dnbGUgPSAweDA7CisJCW1zZy5lbmFibGVQb3J0ID0gMDsKKwkJbXNnLmRpc2FibGVQb3J0ID0gMDsKKwl9CisKKwkJLyogRG8gaGFuZHNoYWtpbmcgb3V0cHV0cyAqLwkKKwltc2cuc2V0UnRzID0gMHhmZjsKKwltc2cucnRzID0gcF9wcml2LT5ydHNfc3RhdGU7CisKKwltc2cuc2V0RHRyID0gMHhmZjsKKwltc2cuZHRyID0gcF9wcml2LT5kdHJfc3RhdGU7CisJCQorCXBfcHJpdi0+cmVzZW5kX2NvbnQgPSAwOworCW1lbWNweSAodGhpc191cmItPnRyYW5zZmVyX2J1ZmZlciwgJm1zZywgc2l6ZW9mKG1zZykpOworCQorCS8qIHNlbmQgdGhlIGRhdGEgb3V0IHRoZSBkZXZpY2Ugb24gY29udHJvbCBlbmRwb2ludCAqLworCXRoaXNfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoID0gc2l6ZW9mKG1zZyk7CisKKwl0aGlzX3VyYi0+ZGV2ID0gc2VyaWFsLT5kZXY7CisJaWYgKChlcnIgPSB1c2Jfc3VibWl0X3VyYih0aGlzX3VyYiwgR0ZQX0FUT01JQykpICE9IDApIHsKKwkJZGJnKCIlcyAtIHVzYl9zdWJtaXRfdXJiKHNldHVwKSBmYWlsZWQgKCVkKSIsIF9fRlVOQ1RJT05fXywgZXJyKTsKKwl9CisjaWYgMAorCWVsc2UgeworCQlkYmcoIiVzIC0gdXNiX3N1Ym1pdF91cmIoJWQpIE9LICVkIGJ5dGVzIChlbmQgJWQpIiwgX19GVU5DVElPTl9fLAorCQkgICAgb3V0Y29udF91cmIsIHRoaXNfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoLAorCQkgICAgdXNiX3BpcGVlbmRwb2ludCh0aGlzX3VyYi0+cGlwZSkpOworCX0KKyNlbmRpZgorCisJcmV0dXJuICgwKTsKK30KKworc3RhdGljIGludCBrZXlzcGFuX3VzYTkwX3NlbmRfc2V0dXAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwKKwkJCQkgICAgc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwKKwkJCQkgICAgaW50IHJlc2V0X3BvcnQpCit7CisJc3RydWN0IGtleXNwYW5fdXNhOTBfcG9ydENvbnRyb2xNZXNzYWdlCW1zZzsJCQorCXN0cnVjdCBrZXlzcGFuX3NlcmlhbF9wcml2YXRlIAkJKnNfcHJpdjsKKwlzdHJ1Y3Qga2V5c3Bhbl9wb3J0X3ByaXZhdGUgCQkqcF9wcml2OworCWNvbnN0IHN0cnVjdCBrZXlzcGFuX2RldmljZV9kZXRhaWxzCSpkX2RldGFpbHM7CisJc3RydWN0IHVyYgkJCQkqdGhpc191cmI7CisJaW50IAkJCQkJZXJyOworCXU4CQkJCQkJcHJlc2NhbGVyOworCisJZGJnICgiJXMiLCBfX0ZVTkNUSU9OX18pOworCisJc19wcml2ID0gdXNiX2dldF9zZXJpYWxfZGF0YShzZXJpYWwpOworCXBfcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlkX2RldGFpbHMgPSBzX3ByaXYtPmRldmljZV9kZXRhaWxzOworCisJLyogb25seSBkbyBzb21ldGhpbmcgaWYgd2UgaGF2ZSBhIGJ1bGsgb3V0IGVuZHBvaW50ICovCisJaWYgKCh0aGlzX3VyYiA9IHBfcHJpdi0+b3V0Y29udF91cmIpID09IE5VTEwpIHsKKwkJZGJnKCIlcyAtIG9vcHMgbm8gdXJiLiIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybiAtMTsKKwl9CisKKwkvKiBTYXZlIHJlc2V0IHBvcnQgdmFsIGZvciByZXNlbmQuCisJICAgRG9uJ3Qgb3ZlcndyaXRlIHJlc2VuZCBmb3Igb3Blbi9jbG9zZSBjb25kaXRpb24uICovCisJaWYgKChyZXNldF9wb3J0ICsgMSkgPiBwX3ByaXYtPnJlc2VuZF9jb250KQorCQlwX3ByaXYtPnJlc2VuZF9jb250ID0gcmVzZXRfcG9ydCArIDE7CisJaWYgKHRoaXNfdXJiLT5zdGF0dXMgPT0gLUVJTlBST0dSRVNTKSB7CisJCWRiZyAoIiVzIGFscmVhZHkgd3JpdGluZyIsIF9fRlVOQ1RJT05fXyk7CisJCW1kZWxheSg1KTsKKwkJcmV0dXJuKC0xKTsKKwl9CisKKwltZW1zZXQoJm1zZywgMCwgc2l6ZW9mIChzdHJ1Y3Qga2V5c3Bhbl91c2E5MF9wb3J0Q29udHJvbE1lc3NhZ2UpKTsKKworCS8qIE9ubHkgc2V0IGJhdWQgcmF0ZSBpZiBpdCdzIGNoYW5nZWQgKi8JCisJaWYgKHBfcHJpdi0+b2xkX2JhdWQgIT0gcF9wcml2LT5iYXVkKSB7CisJCXBfcHJpdi0+b2xkX2JhdWQgPSBwX3ByaXYtPmJhdWQ7CisJCW1zZy5zZXRDbG9ja2luZyA9IDB4MDE7CisJCWlmIChkX2RldGFpbHMtPmNhbGN1bGF0ZV9iYXVkX3JhdGUKKwkJICAgIChwX3ByaXYtPmJhdWQsIGRfZGV0YWlscy0+YmF1ZGNsaywgJm1zZy5iYXVkSGksCisJCSAgICAgJm1zZy5iYXVkTG8sICZwcmVzY2FsZXIsIDApID09IEtFWVNQQU5fSU5WQUxJRF9CQVVEX1JBVEUgKSB7CisJCQlkYmcoIiVzIC0gSW52YWxpZCBiYXVkIHJhdGUgJWQgcmVxdWVzdGVkLCB1c2luZyA5NjAwLiIsIF9fRlVOQ1RJT05fXywKKwkJCSAgICBwX3ByaXYtPmJhdWQpOworCQkJcF9wcml2LT5iYXVkID0gOTYwMDsKKwkJCWRfZGV0YWlscy0+Y2FsY3VsYXRlX2JhdWRfcmF0ZSAocF9wcml2LT5iYXVkLCBkX2RldGFpbHMtPmJhdWRjbGssIAorCQkJCSZtc2cuYmF1ZEhpLCAmbXNnLmJhdWRMbywgJnByZXNjYWxlciwgMCk7CisJCX0KKwkJbXNnLnNldFJ4TW9kZSA9IDE7CisJCW1zZy5zZXRUeE1vZGUgPSAxOworCX0KKworCS8qIG1vZGVzIG11c3QgYWx3YXlzIGJlIGNvcnJlY3RseSBzcGVjaWZpZWQgKi8KKwlpZiAocF9wcml2LT5iYXVkID4gNTc2MDApCisJeworCQltc2cucnhNb2RlID0gUlhNT0RFX0RNQTsKKwkJbXNnLnR4TW9kZSA9IFRYTU9ERV9ETUE7CisJfQorCWVsc2UKKwl7CisJCW1zZy5yeE1vZGUgPSBSWE1PREVfQllIQU5EOworCQltc2cudHhNb2RlID0gVFhNT0RFX0JZSEFORDsKKwl9CisKKwltc2cubGNyID0gKHBfcHJpdi0+Y2ZsYWcgJiBDU1RPUEIpPyBTVE9QQklUU182NzhfMjogU1RPUEJJVFNfNTY3OF8xOworCXN3aXRjaCAocF9wcml2LT5jZmxhZyAmIENTSVpFKSB7CisJY2FzZSBDUzU6CisJCW1zZy5sY3IgfD0gVVNBX0RBVEFCSVRTXzU7CisJCWJyZWFrOworCWNhc2UgQ1M2OgorCQltc2cubGNyIHw9IFVTQV9EQVRBQklUU182OworCQlicmVhazsKKwljYXNlIENTNzoKKwkJbXNnLmxjciB8PSBVU0FfREFUQUJJVFNfNzsKKwkJYnJlYWs7CisJY2FzZSBDUzg6CisJCW1zZy5sY3IgfD0gVVNBX0RBVEFCSVRTXzg7CisJCWJyZWFrOworCX0KKwlpZiAocF9wcml2LT5jZmxhZyAmIFBBUkVOQikgeworCQkvKiBub3RlIFVTQV9QQVJJVFlfTk9ORSA9PSAwICovCisJCW1zZy5sY3IgfD0gKHBfcHJpdi0+Y2ZsYWcgJiBQQVJPREQpPworCQkJVVNBX1BBUklUWV9PREQ6IFVTQV9QQVJJVFlfRVZFTjsKKwl9CisJaWYgKHBfcHJpdi0+b2xkX2NmbGFnICE9IHBfcHJpdi0+Y2ZsYWcpIHsKKwkJcF9wcml2LT5vbGRfY2ZsYWcgPSBwX3ByaXYtPmNmbGFnOworCQltc2cuc2V0TGNyID0gMHgwMTsKKwl9CisKKwlpZiAocF9wcml2LT5mbG93X2NvbnRyb2wgPT0gZmxvd19jdHMpCisJCW1zZy50eEZsb3dDb250cm9sID0gVFhGTE9XX0NUUzsKKwltc2cuc2V0VHhGbG93Q29udHJvbCA9IDB4MDE7CisJbXNnLnNldFJ4Rmxvd0NvbnRyb2wgPSAweDAxOworCQorCW1zZy5yeEZvcndhcmRpbmdMZW5ndGggPSAxNjsKKwltc2cucnhGb3J3YXJkaW5nVGltZW91dCA9IDE2OwkKKwltc2cudHhBY2tTZXR0aW5nID0gMDsKKwltc2cueG9uQ2hhciA9IDE3OworCW1zZy54b2ZmQ2hhciA9IDE5OworCisJLyogT3BlbmluZyBwb3J0ICovIAorCWlmIChyZXNldF9wb3J0ID09IDEpIHsKKwkJbXNnLnBvcnRFbmFibGVkID0gMTsKKwkJbXNnLnJ4Rmx1c2ggPSAxOworCQltc2cudHhCcmVhayA9IChwX3ByaXYtPmJyZWFrX29uKTsKKwl9CisJLyogQ2xvc2luZyBwb3J0ICovCisJZWxzZSBpZiAocmVzZXRfcG9ydCA9PSAyKSB7CisJCW1zZy5wb3J0RW5hYmxlZCA9IDA7CisJfQorCS8qIFNlbmRpbmcgaW50ZXJtZWRpYXRlIGNvbmZpZ3MgKi8KKwllbHNlIHsKKwkJaWYgKHBvcnQtPm9wZW5fY291bnQpCisJCQltc2cucG9ydEVuYWJsZWQgPSAxOworCQltc2cudHhCcmVhayA9IChwX3ByaXYtPmJyZWFrX29uKTsKKwl9CisKKwkvKiBEbyBoYW5kc2hha2luZyBvdXRwdXRzICovCQorCW1zZy5zZXRSdHMgPSAweDAxOworCW1zZy5ydHMgPSBwX3ByaXYtPnJ0c19zdGF0ZTsKKworCW1zZy5zZXREdHIgPSAweDAxOworCW1zZy5kdHIgPSBwX3ByaXYtPmR0cl9zdGF0ZTsKKwkJCisJcF9wcml2LT5yZXNlbmRfY29udCA9IDA7CisJbWVtY3B5ICh0aGlzX3VyYi0+dHJhbnNmZXJfYnVmZmVyLCAmbXNnLCBzaXplb2YobXNnKSk7CisJCisJLyogc2VuZCB0aGUgZGF0YSBvdXQgdGhlIGRldmljZSBvbiBjb250cm9sIGVuZHBvaW50ICovCisJdGhpc191cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGggPSBzaXplb2YobXNnKTsKKworCXRoaXNfdXJiLT5kZXYgPSBzZXJpYWwtPmRldjsKKwlpZiAoKGVyciA9IHVzYl9zdWJtaXRfdXJiKHRoaXNfdXJiLCBHRlBfQVRPTUlDKSkgIT0gMCkgeworCQlkYmcoIiVzIC0gdXNiX3N1Ym1pdF91cmIoc2V0dXApIGZhaWxlZCAoJWQpIiwgX19GVU5DVElPTl9fLCBlcnIpOworCX0KKwlyZXR1cm4gKDApOworfQorCitzdGF0aWMgdm9pZCBrZXlzcGFuX3NlbmRfc2V0dXAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgaW50IHJlc2V0X3BvcnQpCit7CisJc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCA9IHBvcnQtPnNlcmlhbDsKKwlzdHJ1Y3Qga2V5c3Bhbl9zZXJpYWxfcHJpdmF0ZSAqc19wcml2OworCWNvbnN0IHN0cnVjdCBrZXlzcGFuX2RldmljZV9kZXRhaWxzICpkX2RldGFpbHM7CisKKwlkYmcgKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwlzX3ByaXYgPSB1c2JfZ2V0X3NlcmlhbF9kYXRhKHNlcmlhbCk7CisJZF9kZXRhaWxzID0gc19wcml2LT5kZXZpY2VfZGV0YWlsczsKKworCXN3aXRjaCAoZF9kZXRhaWxzLT5tc2dfZm9ybWF0KSB7CisJY2FzZSBtc2dfdXNhMjY6CisJCWtleXNwYW5fdXNhMjZfc2VuZF9zZXR1cChzZXJpYWwsIHBvcnQsIHJlc2V0X3BvcnQpOworCQlicmVhazsKKwljYXNlIG1zZ191c2EyODoKKwkJa2V5c3Bhbl91c2EyOF9zZW5kX3NldHVwKHNlcmlhbCwgcG9ydCwgcmVzZXRfcG9ydCk7CisJCWJyZWFrOworCWNhc2UgbXNnX3VzYTQ5OgorCQlrZXlzcGFuX3VzYTQ5X3NlbmRfc2V0dXAoc2VyaWFsLCBwb3J0LCByZXNldF9wb3J0KTsKKwkJYnJlYWs7CisJY2FzZSBtc2dfdXNhOTA6CisJCWtleXNwYW5fdXNhOTBfc2VuZF9zZXR1cChzZXJpYWwsIHBvcnQsIHJlc2V0X3BvcnQpOworCQlicmVhazsKKwl9Cit9CisKKworLyogR2V0cyBjYWxsZWQgYnkgdGhlICJyZWFsIiBkcml2ZXIgKGllIG9uY2UgZmlybXdhcmUgaXMgbG9hZGVkCisgICBhbmQgcmVudW1lcmF0aW9uIGhhcyB0YWtlbiBwbGFjZS4gKi8KK3N0YXRpYyBpbnQga2V5c3Bhbl9zdGFydHVwIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQoreworCWludAkJCQlpLCBlcnI7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydAkJKnBvcnQ7CisJc3RydWN0IGtleXNwYW5fc2VyaWFsX3ByaXZhdGUgCSpzX3ByaXY7CisJc3RydWN0IGtleXNwYW5fcG9ydF9wcml2YXRlCSpwX3ByaXY7CisJY29uc3Qgc3RydWN0IGtleXNwYW5fZGV2aWNlX2RldGFpbHMJKmRfZGV0YWlsczsKKworCWRiZygiJXMiLCBfX0ZVTkNUSU9OX18pOworCisJZm9yIChpID0gMDsgKGRfZGV0YWlscyA9IGtleXNwYW5fZGV2aWNlc1tpXSkgIT0gTlVMTDsgKytpKQorCQlpZiAoZF9kZXRhaWxzLT5wcm9kdWN0X2lkID09IGxlMTZfdG9fY3B1KHNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCkpCisJCQlicmVhazsKKwlpZiAoZF9kZXRhaWxzID09IE5VTEwpIHsKKwkJZGV2X2Vycigmc2VyaWFsLT5kZXYtPmRldiwgIiVzIC0gdW5rbm93biBwcm9kdWN0IGlkICV4XG4iLCBfX0ZVTkNUSU9OX18sIGxlMTZfdG9fY3B1KHNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCkpOworCQlyZXR1cm4gMTsKKwl9CisKKwkvKiBTZXR1cCBwcml2YXRlIGRhdGEgZm9yIHNlcmlhbCBkcml2ZXIgKi8KKwlzX3ByaXYgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3Qga2V5c3Bhbl9zZXJpYWxfcHJpdmF0ZSksIEdGUF9LRVJORUwpOworCWlmICghc19wcml2KSB7CisJCWRiZygiJXMgLSBrbWFsbG9jIGZvciBrZXlzcGFuX3NlcmlhbF9wcml2YXRlIGZhaWxlZC4iLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisJbWVtc2V0KHNfcHJpdiwgMCwgc2l6ZW9mKHN0cnVjdCBrZXlzcGFuX3NlcmlhbF9wcml2YXRlKSk7CisKKwlzX3ByaXYtPmRldmljZV9kZXRhaWxzID0gZF9kZXRhaWxzOworCXVzYl9zZXRfc2VyaWFsX2RhdGEoc2VyaWFsLCBzX3ByaXYpOworCisJLyogTm93IHNldHVwIHBlciBwb3J0IHByaXZhdGUgZGF0YSAqLworCWZvciAoaSA9IDA7IGkgPCBzZXJpYWwtPm51bV9wb3J0czsgaSsrKSB7CisJCXBvcnQgPSBzZXJpYWwtPnBvcnRbaV07CisJCXBfcHJpdiA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBrZXlzcGFuX3BvcnRfcHJpdmF0ZSksIEdGUF9LRVJORUwpOworCQlpZiAoIXBfcHJpdikgeworCQkJZGJnKCIlcyAtIGttYWxsb2MgZm9yIGtleXNwYW5fcG9ydF9wcml2YXRlICglZCkgZmFpbGVkIS4iLCBfX0ZVTkNUSU9OX18sIGkpOworCQkJcmV0dXJuICgxKTsKKwkJfQorCQltZW1zZXQocF9wcml2LCAwLCBzaXplb2Yoc3RydWN0IGtleXNwYW5fcG9ydF9wcml2YXRlKSk7CisJCXBfcHJpdi0+ZGV2aWNlX2RldGFpbHMgPSBkX2RldGFpbHM7CisJCXVzYl9zZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0LCBwX3ByaXYpOworCX0KKworCWtleXNwYW5fc2V0dXBfdXJicyhzZXJpYWwpOworCisJc19wcml2LT5pbnN0YXRfdXJiLT5kZXYgPSBzZXJpYWwtPmRldjsKKwlpZiAoKGVyciA9IHVzYl9zdWJtaXRfdXJiKHNfcHJpdi0+aW5zdGF0X3VyYiwgR0ZQX0tFUk5FTCkpICE9IDApIHsKKwkJZGJnKCIlcyAtIHN1Ym1pdCBpbnN0YXQgdXJiIGZhaWxlZCAlZCIsIF9fRlVOQ1RJT05fXywgZXJyKTsKKwl9CisJCQkKKwlyZXR1cm4gKDApOworfQorCitzdGF0aWMgdm9pZCBrZXlzcGFuX3NodXRkb3duIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQoreworCWludAkJCQlpLCBqOworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQJCSpwb3J0OworCXN0cnVjdCBrZXlzcGFuX3NlcmlhbF9wcml2YXRlIAkqc19wcml2OworCXN0cnVjdCBrZXlzcGFuX3BvcnRfcHJpdmF0ZQkqcF9wcml2OworCisJZGJnKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwlzX3ByaXYgPSB1c2JfZ2V0X3NlcmlhbF9kYXRhKHNlcmlhbCk7CisKKwkvKiBTdG9wIHJlYWRpbmcvd3JpdGluZyB1cmJzICovCisJc3RvcF91cmIoc19wcml2LT5pbnN0YXRfdXJiKTsKKwlzdG9wX3VyYihzX3ByaXYtPmdsb2NvbnRfdXJiKTsKKwlmb3IgKGkgPSAwOyBpIDwgc2VyaWFsLT5udW1fcG9ydHM7ICsraSkgeworCQlwb3J0ID0gc2VyaWFsLT5wb3J0W2ldOworCQlwX3ByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJCXN0b3BfdXJiKHBfcHJpdi0+aW5hY2tfdXJiKTsKKwkJc3RvcF91cmIocF9wcml2LT5vdXRjb250X3VyYik7CisJCWZvciAoaiA9IDA7IGogPCAyOyBqKyspIHsKKwkJCXN0b3BfdXJiKHBfcHJpdi0+aW5fdXJic1tqXSk7CisJCQlzdG9wX3VyYihwX3ByaXYtPm91dF91cmJzW2pdKTsKKwkJfQorCX0KKworCS8qIE5vdyBmcmVlIHRoZW0gKi8KKwlpZiAoc19wcml2LT5pbnN0YXRfdXJiKQorCQl1c2JfZnJlZV91cmIoc19wcml2LT5pbnN0YXRfdXJiKTsKKwlpZiAoc19wcml2LT5nbG9jb250X3VyYikKKwkJdXNiX2ZyZWVfdXJiKHNfcHJpdi0+Z2xvY29udF91cmIpOworCWZvciAoaSA9IDA7IGkgPCBzZXJpYWwtPm51bV9wb3J0czsgKytpKSB7CisJCXBvcnQgPSBzZXJpYWwtPnBvcnRbaV07CisJCXBfcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwkJaWYgKHBfcHJpdi0+aW5hY2tfdXJiKQorCQkJdXNiX2ZyZWVfdXJiKHBfcHJpdi0+aW5hY2tfdXJiKTsKKwkJaWYgKHBfcHJpdi0+b3V0Y29udF91cmIpCisJCQl1c2JfZnJlZV91cmIocF9wcml2LT5vdXRjb250X3VyYik7CisJCWZvciAoaiA9IDA7IGogPCAyOyBqKyspIHsKKwkJCWlmIChwX3ByaXYtPmluX3VyYnNbal0pCisJCQkJdXNiX2ZyZWVfdXJiKHBfcHJpdi0+aW5fdXJic1tqXSk7CisJCQlpZiAocF9wcml2LT5vdXRfdXJic1tqXSkKKwkJCQl1c2JfZnJlZV91cmIocF9wcml2LT5vdXRfdXJic1tqXSk7CisJCX0KKwl9CisKKwkvKiAgZGJnKCJGcmVlaW5nIHNlcmlhbC0+cHJpdmF0ZS4iKTsgKi8KKwlrZnJlZShzX3ByaXYpOworCisJLyogIGRiZygiRnJlZWluZyBwb3J0LT5wcml2YXRlLiIpOyAqLworCS8qIE5vdyBmcmVlIHBlciBwb3J0IHByaXZhdGUgZGF0YSAqLworCWZvciAoaSA9IDA7IGkgPCBzZXJpYWwtPm51bV9wb3J0czsgaSsrKSB7CisJCXBvcnQgPSBzZXJpYWwtPnBvcnRbaV07CisJCWtmcmVlKHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KSk7CisJfQorfQorCitNT0RVTEVfQVVUSE9SKCBEUklWRVJfQVVUSE9SICk7CitNT0RVTEVfREVTQ1JJUFRJT04oIERSSVZFUl9ERVNDICk7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CisKK21vZHVsZV9wYXJhbShkZWJ1ZywgYm9vbCwgU19JUlVHTyB8IFNfSVdVU1IpOworTU9EVUxFX1BBUk1fREVTQyhkZWJ1ZywgIkRlYnVnIGVuYWJsZWQgb3Igbm90Iik7CisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuLmggYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5YjQ1YjcKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbi5oCkBAIC0wLDAgKzEsNjYwIEBACisvKgorICBLZXlzcGFuIFVTQiB0byBTZXJpYWwgQ29udmVydGVyIGRyaXZlcgorIAorICAoQykgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDEKKyAgICAgIEh1Z2ggQmxlbWluZ3MgPGh1Z2hAYmxlbWluZ3Mub3JnPgorICAgCisgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgU2VlIGh0dHA6Ly9taXNjLm51L2h1Z2gva2V5c3Bhbi5odG1sIGZvciBtb3JlIGluZm9ybWF0aW9uLgorICAKKyAgQ29kZSBpbiB0aGlzIGRyaXZlciBpbnNwaXJlZCBieSBhbmQgaW4gYSBudW1iZXIgb2YgcGxhY2VzIHRha2VuCisgIGZyb20gQnJpYW4gV2FybmVyJ3Mgb3JpZ2luYWwgS2V5c3Bhbi1QREEgZHJpdmVyLgorCisgIFRoaXMgZHJpdmVyIGhhcyBiZWVuIHB1dCB0b2dldGhlciB3aXRoIHRoZSBzdXBwb3J0IG9mIElubm9zeXMsIEluYy4KKyAgYW5kIEtleXNwYW4sIEluYyB0aGUgbWFudWZhY3R1cmVycyBvZiB0aGUgS2V5c3BhbiBVU0Itc2VyaWFsIHByb2R1Y3RzLgorICBUaGFua3MgR3V5cyA6KQorICAKKyAgVGhhbmtzIHRvIFBhdWx1cyBmb3IgbWlzY2VsbGFuZW91cyB0aWR5IHVwcywgc29tZSBsYXJnaXNoIGNodW5rcworICBvZiBtdWNoIG5pY2VyIGFuZC9vciBjb21wbGV0ZWx5IG5ldyBjb2RlIGFuZCAocGVyaGFwcyBtb3N0IHVuaXF1ZWx5KQorICBoYXZpbmcgdGhlIHBhdGllbmNlIHRvIHNpdCBkb3duIGFuZCBleHBsYWluIHdoeSBhbmQgd2hlcmUgaGUnZCBjaGFuZ2VkCisgIHN0dWZmLgorCisgIFRpcCAnbyB0aGUgaGF0IHRvIElCTSAoYW5kIHByZXZpb3VzbHkgTGludXhjYXJlIDopIGZvciBzdXBwb3J0aW5nIAorICBzdGFmZiBpbiB0aGVpciB3b3JrIG9uIG9wZW4gc291cmNlIHByb2plY3RzLgorICAKKyAgU2VlIGtleXNwYW4uYyBmb3IgdXBkYXRlIGhpc3RvcnkuCisKKyovCisKKyNpZm5kZWYgX19MSU5VWF9VU0JfU0VSSUFMX0tFWVNQQU5fSAorI2RlZmluZSBfX0xJTlVYX1VTQl9TRVJJQUxfS0VZU1BBTl9ICisKKworLyogRnVuY3Rpb24gcHJvdG90eXBlcyBmb3IgS2V5c3BhbiBzZXJpYWwgY29udmVydGVyICovCitzdGF0aWMgaW50ICBrZXlzcGFuX29wZW4JCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LAorCQkJCQkgc3RydWN0IGZpbGUgKmZpbHApOworc3RhdGljIHZvaWQga2V5c3Bhbl9jbG9zZQkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCisJCQkJCSBzdHJ1Y3QgZmlsZSAqZmlscCk7CitzdGF0aWMgaW50ICBrZXlzcGFuX3N0YXJ0dXAJCShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKTsKK3N0YXRpYyB2b2lkIGtleXNwYW5fc2h1dGRvd24JCShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKTsKK3N0YXRpYyB2b2lkIGtleXNwYW5fcnhfdGhyb3R0bGUJCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KTsKK3N0YXRpYyB2b2lkIGtleXNwYW5fcnhfdW50aHJvdHRsZQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCk7CitzdGF0aWMgaW50ICBrZXlzcGFuX3dyaXRlX3Jvb20JCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KTsKKworc3RhdGljIGludCAga2V5c3Bhbl93cml0ZQkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCisJCQkJCSBjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsCisJCQkJCSBpbnQgY291bnQpOworCitzdGF0aWMgdm9pZCBrZXlzcGFuX3NlbmRfc2V0dXAJCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LAorCQkJCQkgaW50IHJlc2V0X3BvcnQpOworCisKK3N0YXRpYyBpbnQgIGtleXNwYW5fY2hhcnNfaW5fYnVmZmVyIAkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCk7CitzdGF0aWMgaW50ICBrZXlzcGFuX2lvY3RsCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwKKwkJCQkJIHN0cnVjdCBmaWxlICpmaWxlLAorCQkJCQkgdW5zaWduZWQgaW50IGNtZCwKKwkJCQkJIHVuc2lnbmVkIGxvbmcgYXJnKTsKK3N0YXRpYyB2b2lkIGtleXNwYW5fc2V0X3Rlcm1pb3MJCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LAorCQkJCQkgc3RydWN0IHRlcm1pb3MgKm9sZCk7CitzdGF0aWMgdm9pZCBrZXlzcGFuX2JyZWFrX2N0bAkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCisJCQkJCSBpbnQgYnJlYWtfc3RhdGUpOworc3RhdGljIGludCAga2V5c3Bhbl90aW9jbWdldAkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCisJCQkJCSBzdHJ1Y3QgZmlsZSAqZmlsZSk7CitzdGF0aWMgaW50ICBrZXlzcGFuX3Rpb2Ntc2V0CQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwKKwkJCQkJIHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgc2V0LAorCQkJCQkgdW5zaWduZWQgaW50IGNsZWFyKTsKK3N0YXRpYyBpbnQgIGtleXNwYW5fZmFrZV9zdGFydHVwCShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKTsKKworc3RhdGljIGludCAga2V5c3Bhbl91c2ExOV9jYWxjX2JhdWQJKHUzMiBiYXVkX3JhdGUsIHUzMiBiYXVkY2xrLCAKKwkJCQkJIHU4ICpyYXRlX2hpLCB1OCAqcmF0ZV9sb3csCisJCQkJCSB1OCAqcHJlc2NhbGVyLCBpbnQgcG9ydG51bSk7CisKK3N0YXRpYyBpbnQgIGtleXNwYW5fdXNhMTl3X2NhbGNfYmF1ZAkodTMyIGJhdWRfcmF0ZSwgdTMyIGJhdWRjbGssCisJCQkJCSB1OCAqcmF0ZV9oaSwgdTggKnJhdGVfbG93LAorCQkJCQkgdTggKnByZXNjYWxlciwgaW50IHBvcnRudW0pOworCitzdGF0aWMgaW50ICBrZXlzcGFuX3VzYTI4X2NhbGNfYmF1ZAkodTMyIGJhdWRfcmF0ZSwgdTMyIGJhdWRjbGssCisJCQkJCSB1OCAqcmF0ZV9oaSwgdTggKnJhdGVfbG93LAorCQkJCQkgdTggKnByZXNjYWxlciwgaW50IHBvcnRudW0pOworCitzdGF0aWMgaW50ICBrZXlzcGFuX3VzYTE5aHNfY2FsY19iYXVkCSh1MzIgYmF1ZF9yYXRlLCB1MzIgYmF1ZGNsaywKKwkJCQkJIHU4ICpyYXRlX2hpLCB1OCAqcmF0ZV9sb3csCisJCQkJCSB1OCAqcHJlc2NhbGVyLCBpbnQgcG9ydG51bSk7CisKK3N0YXRpYyBpbnQgIGtleXNwYW5fdXNhMjhfc2VuZF9zZXR1cAkoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwKKwkJCQkJIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCisJCQkJCSBpbnQgcmVzZXRfcG9ydCk7CitzdGF0aWMgaW50ICBrZXlzcGFuX3VzYTI2X3NlbmRfc2V0dXAJKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsCisJICAgICAgIAkJCQkgc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwKKwkJCQkJIGludCByZXNldF9wb3J0KTsKK3N0YXRpYyBpbnQgIGtleXNwYW5fdXNhNDlfc2VuZF9zZXR1cAkoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwKKwkJCQkJIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCisJCQkJCSBpbnQgcmVzZXRfcG9ydCk7CisKK3N0YXRpYyBpbnQgIGtleXNwYW5fdXNhOTBfc2VuZF9zZXR1cAkoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwKKwkJCQkJIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCisJCQkJCSBpbnQgcmVzZXRfcG9ydCk7CisKKy8qIFN0cnVjdCB1c2VkIGZvciBmaXJtd2FyZSAtIGluY3JlYXNlZCBzaXplIG9mIGRhdGEgc2VjdGlvbgorICAgdG8gYWxsb3cgS2V5c3BhbidzICdDJyBmaXJtd2FyZSBzdHJ1Y3QgdG8gYmUgdXNlZCB1bm1vZGlmaWVkICovCitzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCB7CisJX191MTYgYWRkcmVzczsKKwlfX3U4IGRhdGFfc2l6ZTsKKwlfX3U4IGRhdGFbNjRdOworfTsKKworLyogQ29uZGl0aW9uYWxseSBpbmNsdWRlIGZpcm13YXJlIGltYWdlcywgaWYgdGhleSBhcmVuJ3QKKyAgIGluY2x1ZGVkIGNyZWF0ZSBhIG51bGwgcG9pbnRlciBpbnN0ZWFkLiAgQ3VycmVudCAKKyAgIGZpcm13YXJlIGltYWdlcyBhcmVuJ3Qgb3B0aW1pc2VkIHRvIHJlbW92ZSBkdXBsaWNhdGUKKyAgIGFkZHJlc3NlcyBpbiB0aGUgaW1hZ2UgaXRzZWxmLiAqLworI2lmZGVmIENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBMjgKKwkjaW5jbHVkZSAia2V5c3Bhbl91c2EyOF9mdy5oIgorI2Vsc2UKKwlzdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgKmtleXNwYW5fdXNhMjhfZmlybXdhcmUgPSBOVUxMOworI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTI4WAorCSNpbmNsdWRlICJrZXlzcGFuX3VzYTI4eF9mdy5oIgorI2Vsc2UKKwlzdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgKmtleXNwYW5fdXNhMjh4X2Zpcm13YXJlID0gTlVMTDsKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0EyOFhBCisJI2luY2x1ZGUgImtleXNwYW5fdXNhMjh4YV9mdy5oIgorI2Vsc2UKKwlzdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgKmtleXNwYW5fdXNhMjh4YV9maXJtd2FyZSA9IE5VTEw7CisjZW5kaWYKKworI2lmZGVmIENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBMjhYQgorCSNpbmNsdWRlICJrZXlzcGFuX3VzYTI4eGJfZncuaCIKKyNlbHNlCisJc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICprZXlzcGFuX3VzYTI4eGJfZmlybXdhcmUgPSBOVUxMOworI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTE5CisJI2luY2x1ZGUgImtleXNwYW5fdXNhMTlfZncuaCIKKyNlbHNlCisJc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICprZXlzcGFuX3VzYTE5X2Zpcm13YXJlID0gTlVMTDsKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0ExOVFJCisJI2luY2x1ZGUgImtleXNwYW5fdXNhMTlxaV9mdy5oIgorI2Vsc2UKKwlzdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgKmtleXNwYW5fdXNhMTlxaV9maXJtd2FyZSA9IE5VTEw7CisjZW5kaWYKKworI2lmZGVmIENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fTVBSCisgICAgICAgICNpbmNsdWRlICJrZXlzcGFuX21wcl9mdy5oIgorI2Vsc2UKKwlzdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgKmtleXNwYW5fbXByX2Zpcm13YXJlID0gTlVMTDsKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0ExOVFXCisJI2luY2x1ZGUgImtleXNwYW5fdXNhMTlxd19mdy5oIgorI2Vsc2UKKwlzdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgKmtleXNwYW5fdXNhMTlxd19maXJtd2FyZSA9IE5VTEw7CisjZW5kaWYKKworI2lmZGVmIENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBMThYCisJI2luY2x1ZGUgImtleXNwYW5fdXNhMTh4X2Z3LmgiCisjZWxzZQorCXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCAqa2V5c3Bhbl91c2ExOHhfZmlybXdhcmUgPSBOVUxMOworI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTE5VworCSNpbmNsdWRlICJrZXlzcGFuX3VzYTE5d19mdy5oIgorI2Vsc2UKKwlzdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgKmtleXNwYW5fdXNhMTl3X2Zpcm13YXJlID0gTlVMTDsKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0E0OVcKKwkjaW5jbHVkZSAia2V5c3Bhbl91c2E0OXdfZncuaCIKKyNlbHNlCisJc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICprZXlzcGFuX3VzYTQ5d19maXJtd2FyZSA9IE5VTEw7CisjZW5kaWYKKworI2lmZGVmIENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBNDlXTEMKKyAgICAgICAgI2luY2x1ZGUgImtleXNwYW5fdXNhNDl3bGNfZncuaCIKKyNlbHNlCisJc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICprZXlzcGFuX3VzYTQ5d2xjX2Zpcm13YXJlID0gTlVMTDsKKyNlbmRpZgorCisvKiBWYWx1ZXMgdXNlZCBmb3IgYmF1ZCByYXRlIGNhbGN1bGF0aW9uIC0gZGV2aWNlIHNwZWNpZmljICovCisjZGVmaW5lCUtFWVNQQU5fSU5WQUxJRF9CQVVEX1JBVEUJCSgtMSkKKyNkZWZpbmUJS0VZU1BBTl9CQVVEX1JBVEVfT0sJCQkoMCkKKyNkZWZpbmUJS0VZU1BBTl9VU0ExOFhfQkFVRENMSwkJCSgxMjAwMDAwMEwpCS8qIGEgZ3Vlc3MgKi8KKyNkZWZpbmUJS0VZU1BBTl9VU0ExOV9CQVVEQ0xLCQkJKDEyMDAwMDAwTCkKKyNkZWZpbmUJS0VZU1BBTl9VU0ExOVdfQkFVRENMSwkJCSgyNDAwMDAwMEwpCisjZGVmaW5lCUtFWVNQQU5fVVNBMTlIU19CQVVEQ0xLCQkJKDE0NzY5MjMxTCkKKyNkZWZpbmUJS0VZU1BBTl9VU0EyOF9CQVVEQ0xLCQkJKDE4NDMyMDBMKQorI2RlZmluZQlLRVlTUEFOX1VTQTI4WF9CQVVEQ0xLCQkJKDEyMDAwMDAwTCkKKyNkZWZpbmUJS0VZU1BBTl9VU0E0OVdfQkFVRENMSwkJCSg0ODAwMDAwMEwpCisKKy8qIFNvbWUgY29uc3RhbnRzIHVzZWQgdG8gY2hhcmFjdGVyaXNlIGVhY2ggZGV2aWNlLiAgKi8KKyNkZWZpbmUJCUtFWVNQQU5fTUFYX05VTV9QT1JUUwkJKDQpCisjZGVmaW5lCQlLRVlTUEFOX01BWF9GTElQUwkJKDIpCisKKy8qIERldmljZSBpbmZvIGZvciB0aGUgS2V5c3BhbiBzZXJpYWwgY29udmVydGVyLCB1c2VkCisgICBieSB0aGUgb3ZlcmFsbCB1c2Itc2VyaWFsIHByb2JlIGZ1bmN0aW9uICovCisjZGVmaW5lIEtFWVNQQU5fVkVORE9SX0lECQkJKDB4MDZjZCkKKworLyogUHJvZHVjdCBJRHMgZm9yIHRoZSBwcm9kdWN0cyBzdXBwb3J0ZWQsIHByZS1yZW51bWVyYXRpb24gKi8KKyNkZWZpbmUJa2V5c3Bhbl91c2ExOHhfcHJlX3Byb2R1Y3RfaWQJCTB4MDEwNQorI2RlZmluZQlrZXlzcGFuX3VzYTE5X3ByZV9wcm9kdWN0X2lkCQkweDAxMDMKKyNkZWZpbmUJa2V5c3Bhbl91c2ExOXFpX3ByZV9wcm9kdWN0X2lkCQkweDAxMGIKKyNkZWZpbmUJa2V5c3Bhbl9tcHJfcHJlX3Byb2R1Y3RfaWQJCTB4MDExYgorI2RlZmluZQlrZXlzcGFuX3VzYTE5cXdfcHJlX3Byb2R1Y3RfaWQJCTB4MDExOAorI2RlZmluZQlrZXlzcGFuX3VzYTE5d19wcmVfcHJvZHVjdF9pZAkJMHgwMTA2CisjZGVmaW5lCWtleXNwYW5fdXNhMjhfcHJlX3Byb2R1Y3RfaWQJCTB4MDEwMQorI2RlZmluZQlrZXlzcGFuX3VzYTI4eF9wcmVfcHJvZHVjdF9pZAkJMHgwMTAyCisjZGVmaW5lCWtleXNwYW5fdXNhMjh4YV9wcmVfcHJvZHVjdF9pZAkJMHgwMTE0CisjZGVmaW5lCWtleXNwYW5fdXNhMjh4Yl9wcmVfcHJvZHVjdF9pZAkJMHgwMTEzCisjZGVmaW5lCWtleXNwYW5fdXNhNDl3X3ByZV9wcm9kdWN0X2lkCQkweDAxMDkKKyNkZWZpbmUJa2V5c3Bhbl91c2E0OXdsY19wcmVfcHJvZHVjdF9pZAkJMHgwMTFhCisKKy8qIFByb2R1Y3QgSURzIHBvc3QtcmVudW1lcmF0aW9uLiAgTm90ZSB0aGF0IHRoZSAyOHggYW5kIDI4eGIKKyAgIGhhdmUgdGhlIHNhbWUgaWQncyBwb3N0LXJlbnVtZXJhdGlvbiBidXQgYmVoYXZlIGlkZW50aWNhbGx5CisgICBzbyBpdCdzIG5vdCBhbiBpc3N1ZS4gKi8KKyNkZWZpbmUJa2V5c3Bhbl91c2ExOHhfcHJvZHVjdF9pZAkJMHgwMTEyCisjZGVmaW5lCWtleXNwYW5fdXNhMTlfcHJvZHVjdF9pZAkJMHgwMTA3CisjZGVmaW5lCWtleXNwYW5fdXNhMTlxaV9wcm9kdWN0X2lkCQkweDAxMGMKKyNkZWZpbmUJa2V5c3Bhbl91c2ExOWhzX3Byb2R1Y3RfaWQJCTB4MDEyMQorI2RlZmluZQlrZXlzcGFuX21wcl9wcm9kdWN0X2lkCQkJMHgwMTFjCisjZGVmaW5lCWtleXNwYW5fdXNhMTlxd19wcm9kdWN0X2lkCQkweDAxMTkKKyNkZWZpbmUJa2V5c3Bhbl91c2ExOXdfcHJvZHVjdF9pZAkJMHgwMTA4CisjZGVmaW5lCWtleXNwYW5fdXNhMjhfcHJvZHVjdF9pZAkJMHgwMTBmCisjZGVmaW5lCWtleXNwYW5fdXNhMjh4X3Byb2R1Y3RfaWQJCTB4MDExMAorI2RlZmluZQlrZXlzcGFuX3VzYTI4eGFfcHJvZHVjdF9pZAkJMHgwMTE1CisjZGVmaW5lCWtleXNwYW5fdXNhMjh4Yl9wcm9kdWN0X2lkCQkweDAxMTAKKyNkZWZpbmUJa2V5c3Bhbl91c2E0OXdfcHJvZHVjdF9pZAkJMHgwMTBhCisjZGVmaW5lCWtleXNwYW5fdXNhNDl3bGNfcHJvZHVjdF9pZAkJMHgwMTJhCisKKworc3RydWN0IGtleXNwYW5fZGV2aWNlX2RldGFpbHMgeworCS8qIHByb2R1Y3QgSUQgdmFsdWUgKi8KKwlpbnQJcHJvZHVjdF9pZDsKKworCWVudW0Je21zZ191c2EyNiwgbXNnX3VzYTI4LCBtc2dfdXNhNDksIG1zZ191c2E5MH0gbXNnX2Zvcm1hdDsKKworCQkvKiBOdW1iZXIgb2YgcGh5c2ljYWwgcG9ydHMgKi8KKwlpbnQJbnVtX3BvcnRzOworCisJCS8qIDEgaWYgZW5kcG9pbnQgZmxpcHBpbmcgdXNlZCBvbiBpbnB1dCwgMCBpZiBub3QgKi8KKwlpbnQJaW5kYXRfZW5kcF9mbGlwOworCisJCS8qIDEgaWYgZW5kcG9pbnQgZmxpcHBpbmcgdXNlZCBvbiBvdXRwdXQsIDAgaWYgbm90ICovCisJaW50IAlvdXRkYXRfZW5kcF9mbGlwOworCisJCS8qIFRhYmxlIG1hcHBpbmcgaW5wdXQgZGF0YSBlbmRwb2ludCBJRHMgdG8gcGh5c2ljYWwKKwkJICAgcG9ydCBudW1iZXIgYW5kIGZsaXAgaWYgdXNlZCAqLworCWludAlpbmRhdF9lbmRwb2ludHNbS0VZU1BBTl9NQVhfTlVNX1BPUlRTXTsKKworCQkvKiBTYW1lIGZvciBvdXRwdXQgZW5kcG9pbnRzICovCisJaW50CW91dGRhdF9lbmRwb2ludHNbS0VZU1BBTl9NQVhfTlVNX1BPUlRTXTsKKworCQkvKiBJbnB1dCBhY2tub3dsZWRnZSBlbmRwb2ludHMgKi8KKwlpbnQJaW5hY2tfZW5kcG9pbnRzW0tFWVNQQU5fTUFYX05VTV9QT1JUU107CisKKwkJLyogT3V0cHV0IGNvbnRyb2wgZW5kcG9pbnRzICovCisJaW50CW91dGNvbnRfZW5kcG9pbnRzW0tFWVNQQU5fTUFYX05VTV9QT1JUU107CisKKwkJLyogRW5kcG9pbnQgdXNlZCBmb3IgaW5wdXQgc3RhdHVzICovCisJaW50CWluc3RhdF9lbmRwb2ludDsKKworCQkvKiBFbmRwb2ludCB1c2VkIGZvciBnbG9iYWwgY29udHJvbCBmdW5jdGlvbnMgKi8KKwlpbnQJZ2xvY29udF9lbmRwb2ludDsKKworCWludAkoKmNhbGN1bGF0ZV9iYXVkX3JhdGUpICh1MzIgYmF1ZF9yYXRlLCB1MzIgYmF1ZGNsaywKKwkJCXU4ICpyYXRlX2hpLCB1OCAqcmF0ZV9sb3csIHU4ICpwcmVzY2FsZXIsIGludCBwb3J0bnVtKTsKKwl1MzIJYmF1ZGNsazsKK307IAorCisvKiBOb3cgZm9yIGVhY2ggZGV2aWNlIHR5cGUgd2Ugc2V0dXAgdGhlIGRldmljZSBkZXRhaWwKKyAgIHN0cnVjdHVyZSB3aXRoIHRoZSBhcHByb3ByaWF0ZSBpbmZvcm1hdGlvbiAocHJvdmlkZWQKKyAgIGluIEtleXNwYW4ncyBkb2N1bWVudGF0aW9uKSAqLworCitzdGF0aWMgY29uc3Qgc3RydWN0IGtleXNwYW5fZGV2aWNlX2RldGFpbHMgdXNhMTh4X2RldmljZV9kZXRhaWxzID0geworCS5wcm9kdWN0X2lkCQk9IGtleXNwYW5fdXNhMTh4X3Byb2R1Y3RfaWQsCisJLm1zZ19mb3JtYXQJCT0gbXNnX3VzYTI2LAorCS5udW1fcG9ydHMJCT0gMSwKKwkuaW5kYXRfZW5kcF9mbGlwCT0gMCwKKwkub3V0ZGF0X2VuZHBfZmxpcAk9IDEsCisJLmluZGF0X2VuZHBvaW50cwk9IHsweDgxfSwKKwkub3V0ZGF0X2VuZHBvaW50cwk9IHsweDAxfSwKKwkuaW5hY2tfZW5kcG9pbnRzCT0gezB4ODV9LAorCS5vdXRjb250X2VuZHBvaW50cwk9IHsweDA1fSwKKwkuaW5zdGF0X2VuZHBvaW50CT0gMHg4NywKKwkuZ2xvY29udF9lbmRwb2ludAk9IDB4MDcsCisJLmNhbGN1bGF0ZV9iYXVkX3JhdGUJPSBrZXlzcGFuX3VzYTE5d19jYWxjX2JhdWQsCisJLmJhdWRjbGsJCT0gS0VZU1BBTl9VU0ExOFhfQkFVRENMSywKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qga2V5c3Bhbl9kZXZpY2VfZGV0YWlscyB1c2ExOV9kZXZpY2VfZGV0YWlscyA9IHsKKwkucHJvZHVjdF9pZAkJPSBrZXlzcGFuX3VzYTE5X3Byb2R1Y3RfaWQsCisJLm1zZ19mb3JtYXQJCT0gbXNnX3VzYTI4LAorCS5udW1fcG9ydHMJCT0gMSwKKwkuaW5kYXRfZW5kcF9mbGlwCT0gMSwKKwkub3V0ZGF0X2VuZHBfZmxpcAk9IDEsCisJLmluZGF0X2VuZHBvaW50cwk9IHsweDgxfSwKKwkub3V0ZGF0X2VuZHBvaW50cwk9IHsweDAxfSwKKwkuaW5hY2tfZW5kcG9pbnRzCT0gezB4ODN9LAorCS5vdXRjb250X2VuZHBvaW50cwk9IHsweDAzfSwKKwkuaW5zdGF0X2VuZHBvaW50CT0gMHg4NCwKKwkuZ2xvY29udF9lbmRwb2ludAk9IC0xLAorCS5jYWxjdWxhdGVfYmF1ZF9yYXRlCT0ga2V5c3Bhbl91c2ExOV9jYWxjX2JhdWQsCisJLmJhdWRjbGsJCT0gS0VZU1BBTl9VU0ExOV9CQVVEQ0xLLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBrZXlzcGFuX2RldmljZV9kZXRhaWxzIHVzYTE5cWlfZGV2aWNlX2RldGFpbHMgPSB7CisJLnByb2R1Y3RfaWQJCT0ga2V5c3Bhbl91c2ExOXFpX3Byb2R1Y3RfaWQsCisJLm1zZ19mb3JtYXQJCT0gbXNnX3VzYTI4LAorCS5udW1fcG9ydHMJCT0gMSwKKwkuaW5kYXRfZW5kcF9mbGlwCT0gMSwKKwkub3V0ZGF0X2VuZHBfZmxpcAk9IDEsCisJLmluZGF0X2VuZHBvaW50cwk9IHsweDgxfSwKKwkub3V0ZGF0X2VuZHBvaW50cwk9IHsweDAxfSwKKwkuaW5hY2tfZW5kcG9pbnRzCT0gezB4ODN9LAorCS5vdXRjb250X2VuZHBvaW50cwk9IHsweDAzfSwKKwkuaW5zdGF0X2VuZHBvaW50CT0gMHg4NCwKKwkuZ2xvY29udF9lbmRwb2ludAk9IC0xLAorCS5jYWxjdWxhdGVfYmF1ZF9yYXRlCT0ga2V5c3Bhbl91c2EyOF9jYWxjX2JhdWQsCisJLmJhdWRjbGsJCT0gS0VZU1BBTl9VU0ExOV9CQVVEQ0xLLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBrZXlzcGFuX2RldmljZV9kZXRhaWxzIG1wcl9kZXZpY2VfZGV0YWlscyA9IHsKKwkucHJvZHVjdF9pZAkJPSBrZXlzcGFuX21wcl9wcm9kdWN0X2lkLAorCS5tc2dfZm9ybWF0CQk9IG1zZ191c2EyOCwKKwkubnVtX3BvcnRzCQk9IDEsCisJLmluZGF0X2VuZHBfZmxpcAk9IDEsCisJLm91dGRhdF9lbmRwX2ZsaXAJPSAxLAorCS5pbmRhdF9lbmRwb2ludHMJPSB7MHg4MX0sCisJLm91dGRhdF9lbmRwb2ludHMJPSB7MHgwMX0sCisJLmluYWNrX2VuZHBvaW50cwk9IHsweDgzfSwKKwkub3V0Y29udF9lbmRwb2ludHMJPSB7MHgwM30sCisJLmluc3RhdF9lbmRwb2ludAk9IDB4ODQsCisJLmdsb2NvbnRfZW5kcG9pbnQJPSAtMSwKKwkuY2FsY3VsYXRlX2JhdWRfcmF0ZQk9IGtleXNwYW5fdXNhMjhfY2FsY19iYXVkLAorCS5iYXVkY2xrCQk9IEtFWVNQQU5fVVNBMTlfQkFVRENMSywKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qga2V5c3Bhbl9kZXZpY2VfZGV0YWlscyB1c2ExOXF3X2RldmljZV9kZXRhaWxzID0geworCS5wcm9kdWN0X2lkCQk9IGtleXNwYW5fdXNhMTlxd19wcm9kdWN0X2lkLAorCS5tc2dfZm9ybWF0CQk9IG1zZ191c2EyNiwKKwkubnVtX3BvcnRzCQk9IDEsCisJLmluZGF0X2VuZHBfZmxpcAk9IDAsCisJLm91dGRhdF9lbmRwX2ZsaXAJPSAxLAorCS5pbmRhdF9lbmRwb2ludHMJPSB7MHg4MX0sCisJLm91dGRhdF9lbmRwb2ludHMJPSB7MHgwMX0sCisJLmluYWNrX2VuZHBvaW50cwk9IHsweDg1fSwKKwkub3V0Y29udF9lbmRwb2ludHMJPSB7MHgwNX0sCisJLmluc3RhdF9lbmRwb2ludAk9IDB4ODcsCisJLmdsb2NvbnRfZW5kcG9pbnQJPSAweDA3LAorCS5jYWxjdWxhdGVfYmF1ZF9yYXRlCT0ga2V5c3Bhbl91c2ExOXdfY2FsY19iYXVkLAorCS5iYXVkY2xrCQk9IEtFWVNQQU5fVVNBMTlXX0JBVURDTEssCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGtleXNwYW5fZGV2aWNlX2RldGFpbHMgdXNhMTl3X2RldmljZV9kZXRhaWxzID0geworCS5wcm9kdWN0X2lkCQk9IGtleXNwYW5fdXNhMTl3X3Byb2R1Y3RfaWQsCisJLm1zZ19mb3JtYXQJCT0gbXNnX3VzYTI2LAorCS5udW1fcG9ydHMJCT0gMSwKKwkuaW5kYXRfZW5kcF9mbGlwCT0gMCwKKwkub3V0ZGF0X2VuZHBfZmxpcAk9IDEsCisJLmluZGF0X2VuZHBvaW50cwk9IHsweDgxfSwKKwkub3V0ZGF0X2VuZHBvaW50cwk9IHsweDAxfSwKKwkuaW5hY2tfZW5kcG9pbnRzCT0gezB4ODV9LAorCS5vdXRjb250X2VuZHBvaW50cwk9IHsweDA1fSwKKwkuaW5zdGF0X2VuZHBvaW50CT0gMHg4NywKKwkuZ2xvY29udF9lbmRwb2ludAk9IDB4MDcsCisJLmNhbGN1bGF0ZV9iYXVkX3JhdGUJPSBrZXlzcGFuX3VzYTE5d19jYWxjX2JhdWQsCisJLmJhdWRjbGsJCT0gS0VZU1BBTl9VU0ExOVdfQkFVRENMSywKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qga2V5c3Bhbl9kZXZpY2VfZGV0YWlscyB1c2ExOWhzX2RldmljZV9kZXRhaWxzID0geworCS5wcm9kdWN0X2lkCQk9IGtleXNwYW5fdXNhMTloc19wcm9kdWN0X2lkLAorCS5tc2dfZm9ybWF0CQk9IG1zZ191c2E5MCwKKwkubnVtX3BvcnRzCQk9IDEsCisJLmluZGF0X2VuZHBfZmxpcAk9IDAsCisJLm91dGRhdF9lbmRwX2ZsaXAJPSAwLAorCS5pbmRhdF9lbmRwb2ludHMJPSB7MHg4MX0sCisJLm91dGRhdF9lbmRwb2ludHMJPSB7MHgwMX0sCisJLmluYWNrX2VuZHBvaW50cwk9IHstMX0sCisJLm91dGNvbnRfZW5kcG9pbnRzCT0gezB4MDJ9LAorCS5pbnN0YXRfZW5kcG9pbnQJPSAweDgyLAorCS5nbG9jb250X2VuZHBvaW50CT0gLTEsCisJLmNhbGN1bGF0ZV9iYXVkX3JhdGUJPSBrZXlzcGFuX3VzYTE5aHNfY2FsY19iYXVkLAorCS5iYXVkY2xrCQk9IEtFWVNQQU5fVVNBMTlIU19CQVVEQ0xLLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBrZXlzcGFuX2RldmljZV9kZXRhaWxzIHVzYTI4X2RldmljZV9kZXRhaWxzID0geworCS5wcm9kdWN0X2lkCQk9IGtleXNwYW5fdXNhMjhfcHJvZHVjdF9pZCwKKwkubXNnX2Zvcm1hdAkJPSBtc2dfdXNhMjgsCisJLm51bV9wb3J0cwkJPSAyLAorCS5pbmRhdF9lbmRwX2ZsaXAJPSAxLAorCS5vdXRkYXRfZW5kcF9mbGlwCT0gMSwKKwkuaW5kYXRfZW5kcG9pbnRzCT0gezB4ODEsIDB4ODN9LAorCS5vdXRkYXRfZW5kcG9pbnRzCT0gezB4MDEsIDB4MDN9LAorCS5pbmFja19lbmRwb2ludHMJPSB7MHg4NSwgMHg4Nn0sCisJLm91dGNvbnRfZW5kcG9pbnRzCT0gezB4MDUsIDB4MDZ9LAorCS5pbnN0YXRfZW5kcG9pbnQJPSAweDg3LAorCS5nbG9jb250X2VuZHBvaW50CT0gMHgwNywKKwkuY2FsY3VsYXRlX2JhdWRfcmF0ZQk9IGtleXNwYW5fdXNhMjhfY2FsY19iYXVkLAorCS5iYXVkY2xrCQk9IEtFWVNQQU5fVVNBMjhfQkFVRENMSywJCQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBrZXlzcGFuX2RldmljZV9kZXRhaWxzIHVzYTI4eF9kZXZpY2VfZGV0YWlscyA9IHsKKwkucHJvZHVjdF9pZAkJPSBrZXlzcGFuX3VzYTI4eF9wcm9kdWN0X2lkLAorCS5tc2dfZm9ybWF0CQk9IG1zZ191c2EyNiwKKwkubnVtX3BvcnRzCQk9IDIsCisJLmluZGF0X2VuZHBfZmxpcAk9IDAsCisJLm91dGRhdF9lbmRwX2ZsaXAJPSAxLAorCS5pbmRhdF9lbmRwb2ludHMJPSB7MHg4MSwgMHg4M30sCisJLm91dGRhdF9lbmRwb2ludHMJPSB7MHgwMSwgMHgwM30sCisJLmluYWNrX2VuZHBvaW50cwk9IHsweDg1LCAweDg2fSwKKwkub3V0Y29udF9lbmRwb2ludHMJPSB7MHgwNSwgMHgwNn0sCisJLmluc3RhdF9lbmRwb2ludAk9IDB4ODcsCisJLmdsb2NvbnRfZW5kcG9pbnQJPSAweDA3LAorCS5jYWxjdWxhdGVfYmF1ZF9yYXRlCT0ga2V5c3Bhbl91c2ExOXdfY2FsY19iYXVkLAorCS5iYXVkY2xrCQk9IEtFWVNQQU5fVVNBMjhYX0JBVURDTEssCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGtleXNwYW5fZGV2aWNlX2RldGFpbHMgdXNhMjh4YV9kZXZpY2VfZGV0YWlscyA9IHsKKwkucHJvZHVjdF9pZAkJPSBrZXlzcGFuX3VzYTI4eGFfcHJvZHVjdF9pZCwKKwkubXNnX2Zvcm1hdAkJPSBtc2dfdXNhMjYsCisJLm51bV9wb3J0cwkJPSAyLAorCS5pbmRhdF9lbmRwX2ZsaXAJPSAwLAorCS5vdXRkYXRfZW5kcF9mbGlwCT0gMSwKKwkuaW5kYXRfZW5kcG9pbnRzCT0gezB4ODEsIDB4ODN9LAorCS5vdXRkYXRfZW5kcG9pbnRzCT0gezB4MDEsIDB4MDN9LAorCS5pbmFja19lbmRwb2ludHMJPSB7MHg4NSwgMHg4Nn0sCisJLm91dGNvbnRfZW5kcG9pbnRzCT0gezB4MDUsIDB4MDZ9LAorCS5pbnN0YXRfZW5kcG9pbnQJPSAweDg3LAorCS5nbG9jb250X2VuZHBvaW50CT0gMHgwNywKKwkuY2FsY3VsYXRlX2JhdWRfcmF0ZQk9IGtleXNwYW5fdXNhMTl3X2NhbGNfYmF1ZCwKKwkuYmF1ZGNsawkJPSBLRVlTUEFOX1VTQTI4WF9CQVVEQ0xLLAorfTsKKworLyogV2UgZG9uJ3QgbmVlZCBhIHNlcGFyYXRlIGVudHJ5IGZvciB0aGUgdXNhMjh4YiBhcyBpdCBhcHBlYXJzIGFzIGEgMjh4IGFueXdheSAqLworCitzdGF0aWMgY29uc3Qgc3RydWN0IGtleXNwYW5fZGV2aWNlX2RldGFpbHMgdXNhNDl3X2RldmljZV9kZXRhaWxzID0geworCS5wcm9kdWN0X2lkCQk9IGtleXNwYW5fdXNhNDl3X3Byb2R1Y3RfaWQsCisJLm1zZ19mb3JtYXQJCT0gbXNnX3VzYTQ5LAorCS5udW1fcG9ydHMJCT0gNCwKKwkuaW5kYXRfZW5kcF9mbGlwCT0gMCwKKwkub3V0ZGF0X2VuZHBfZmxpcAk9IDAsCisJLmluZGF0X2VuZHBvaW50cwk9IHsweDgxLCAweDgyLCAweDgzLCAweDg0fSwKKwkub3V0ZGF0X2VuZHBvaW50cwk9IHsweDAxLCAweDAyLCAweDAzLCAweDA0fSwKKwkuaW5hY2tfZW5kcG9pbnRzCT0gey0xLCAtMSwgLTEsIC0xfSwKKwkub3V0Y29udF9lbmRwb2ludHMJPSB7LTEsIC0xLCAtMSwgLTF9LAorCS5pbnN0YXRfZW5kcG9pbnQJPSAweDg3LAorCS5nbG9jb250X2VuZHBvaW50CT0gMHgwNywKKwkuY2FsY3VsYXRlX2JhdWRfcmF0ZQk9IGtleXNwYW5fdXNhMTl3X2NhbGNfYmF1ZCwKKwkuYmF1ZGNsawkJPSBLRVlTUEFOX1VTQTQ5V19CQVVEQ0xLLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBrZXlzcGFuX2RldmljZV9kZXRhaWxzIHVzYTQ5d2xjX2RldmljZV9kZXRhaWxzID0geworCS5wcm9kdWN0X2lkCQk9IGtleXNwYW5fdXNhNDl3bGNfcHJvZHVjdF9pZCwKKwkubXNnX2Zvcm1hdAkJPSBtc2dfdXNhNDksCisJLm51bV9wb3J0cwkJPSA0LAorCS5pbmRhdF9lbmRwX2ZsaXAJPSAwLAorCS5vdXRkYXRfZW5kcF9mbGlwCT0gMCwKKwkuaW5kYXRfZW5kcG9pbnRzCT0gezB4ODEsIDB4ODIsIDB4ODMsIDB4ODR9LAorCS5vdXRkYXRfZW5kcG9pbnRzCT0gezB4MDEsIDB4MDIsIDB4MDMsIDB4MDR9LAorCS5pbmFja19lbmRwb2ludHMJPSB7LTEsIC0xLCAtMSwgLTF9LAorCS5vdXRjb250X2VuZHBvaW50cwk9IHstMSwgLTEsIC0xLCAtMX0sCisJLmluc3RhdF9lbmRwb2ludAk9IDB4ODcsCisJLmdsb2NvbnRfZW5kcG9pbnQJPSAweDA3LAorCS5jYWxjdWxhdGVfYmF1ZF9yYXRlCT0ga2V5c3Bhbl91c2ExOXdfY2FsY19iYXVkLAorCS5iYXVkY2xrCQk9IEtFWVNQQU5fVVNBMTlXX0JBVURDTEssCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGtleXNwYW5fZGV2aWNlX2RldGFpbHMgKmtleXNwYW5fZGV2aWNlc1tdID0geworCSZ1c2ExOHhfZGV2aWNlX2RldGFpbHMsCisJJnVzYTE5X2RldmljZV9kZXRhaWxzLAorCSZ1c2ExOXFpX2RldmljZV9kZXRhaWxzLAorCSZtcHJfZGV2aWNlX2RldGFpbHMsCisJJnVzYTE5cXdfZGV2aWNlX2RldGFpbHMsCisJJnVzYTE5d19kZXZpY2VfZGV0YWlscywKKwkmdXNhMTloc19kZXZpY2VfZGV0YWlscywKKwkmdXNhMjhfZGV2aWNlX2RldGFpbHMsCisJJnVzYTI4eF9kZXZpY2VfZGV0YWlscywKKwkmdXNhMjh4YV9kZXZpY2VfZGV0YWlscywKKwkvKiAyOHhiIG5vdCByZXF1aXJlZCBhcyBpdCByZW51bWVyYXRlcyBhcyBhIDI4eCAqLworCSZ1c2E0OXdfZGV2aWNlX2RldGFpbHMsCisJJnVzYTQ5d2xjX2RldmljZV9kZXRhaWxzLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQga2V5c3Bhbl9pZHNfY29tYmluZWRbXSA9IHsKKwl7IFVTQl9ERVZJQ0UoS0VZU1BBTl9WRU5ET1JfSUQsIGtleXNwYW5fdXNhMTh4X3ByZV9wcm9kdWN0X2lkKSB9LAorCXsgVVNCX0RFVklDRShLRVlTUEFOX1ZFTkRPUl9JRCwga2V5c3Bhbl91c2ExOV9wcmVfcHJvZHVjdF9pZCkgfSwKKwl7IFVTQl9ERVZJQ0UoS0VZU1BBTl9WRU5ET1JfSUQsIGtleXNwYW5fdXNhMTl3X3ByZV9wcm9kdWN0X2lkKSB9LAorCXsgVVNCX0RFVklDRShLRVlTUEFOX1ZFTkRPUl9JRCwga2V5c3Bhbl91c2ExOXFpX3ByZV9wcm9kdWN0X2lkKSB9LAorCXsgVVNCX0RFVklDRShLRVlTUEFOX1ZFTkRPUl9JRCwga2V5c3Bhbl91c2ExOXF3X3ByZV9wcm9kdWN0X2lkKSB9LAorCXsgVVNCX0RFVklDRShLRVlTUEFOX1ZFTkRPUl9JRCwga2V5c3Bhbl9tcHJfcHJlX3Byb2R1Y3RfaWQpIH0sCisJeyBVU0JfREVWSUNFKEtFWVNQQU5fVkVORE9SX0lELCBrZXlzcGFuX3VzYTI4X3ByZV9wcm9kdWN0X2lkKSB9LAorCXsgVVNCX0RFVklDRShLRVlTUEFOX1ZFTkRPUl9JRCwga2V5c3Bhbl91c2EyOHhfcHJlX3Byb2R1Y3RfaWQpIH0sCisJeyBVU0JfREVWSUNFKEtFWVNQQU5fVkVORE9SX0lELCBrZXlzcGFuX3VzYTI4eGFfcHJlX3Byb2R1Y3RfaWQpIH0sCisJeyBVU0JfREVWSUNFKEtFWVNQQU5fVkVORE9SX0lELCBrZXlzcGFuX3VzYTI4eGJfcHJlX3Byb2R1Y3RfaWQpIH0sCisJeyBVU0JfREVWSUNFKEtFWVNQQU5fVkVORE9SX0lELCBrZXlzcGFuX3VzYTQ5d19wcmVfcHJvZHVjdF9pZCkgfSwKKwl7IFVTQl9ERVZJQ0UoS0VZU1BBTl9WRU5ET1JfSUQsIGtleXNwYW5fdXNhNDl3bGNfcHJlX3Byb2R1Y3RfaWQpIH0sCisJeyBVU0JfREVWSUNFKEtFWVNQQU5fVkVORE9SX0lELCBrZXlzcGFuX3VzYTE4eF9wcm9kdWN0X2lkKSB9LAorCXsgVVNCX0RFVklDRShLRVlTUEFOX1ZFTkRPUl9JRCwga2V5c3Bhbl91c2ExOV9wcm9kdWN0X2lkKSB9LAorCXsgVVNCX0RFVklDRShLRVlTUEFOX1ZFTkRPUl9JRCwga2V5c3Bhbl91c2ExOXdfcHJvZHVjdF9pZCkgfSwKKwl7IFVTQl9ERVZJQ0UoS0VZU1BBTl9WRU5ET1JfSUQsIGtleXNwYW5fdXNhMTlxaV9wcm9kdWN0X2lkKSB9LAorCXsgVVNCX0RFVklDRShLRVlTUEFOX1ZFTkRPUl9JRCwga2V5c3Bhbl91c2ExOXF3X3Byb2R1Y3RfaWQpIH0sCisJeyBVU0JfREVWSUNFKEtFWVNQQU5fVkVORE9SX0lELCBrZXlzcGFuX3VzYTE5aHNfcHJvZHVjdF9pZCkgfSwKKwl7IFVTQl9ERVZJQ0UoS0VZU1BBTl9WRU5ET1JfSUQsIGtleXNwYW5fbXByX3Byb2R1Y3RfaWQpIH0sCisJeyBVU0JfREVWSUNFKEtFWVNQQU5fVkVORE9SX0lELCBrZXlzcGFuX3VzYTI4X3Byb2R1Y3RfaWQpIH0sCisJeyBVU0JfREVWSUNFKEtFWVNQQU5fVkVORE9SX0lELCBrZXlzcGFuX3VzYTI4eF9wcm9kdWN0X2lkKSB9LAorCXsgVVNCX0RFVklDRShLRVlTUEFOX1ZFTkRPUl9JRCwga2V5c3Bhbl91c2EyOHhhX3Byb2R1Y3RfaWQpIH0sCisJeyBVU0JfREVWSUNFKEtFWVNQQU5fVkVORE9SX0lELCBrZXlzcGFuX3VzYTI4eGJfcHJvZHVjdF9pZCkgfSwKKwl7IFVTQl9ERVZJQ0UoS0VZU1BBTl9WRU5ET1JfSUQsIGtleXNwYW5fdXNhNDl3X3Byb2R1Y3RfaWQpfSwKKwl7IFVTQl9ERVZJQ0UoS0VZU1BBTl9WRU5ET1JfSUQsIGtleXNwYW5fdXNhNDl3bGNfcHJvZHVjdF9pZCl9LAorCXsgfSAvKiBUZXJtaW5hdGluZyBlbnRyeSAqLworfTsKKworTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIGtleXNwYW5faWRzX2NvbWJpbmVkKTsKKworc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIGtleXNwYW5fZHJpdmVyID0geworCS5vd25lciA9CVRISVNfTU9EVUxFLAorCS5uYW1lID0JCSJrZXlzcGFuIiwgICAgICAgICAgICAgICAgCisJLnByb2JlID0JdXNiX3NlcmlhbF9wcm9iZSwKKwkuZGlzY29ubmVjdCA9CXVzYl9zZXJpYWxfZGlzY29ubmVjdCwKKwkuaWRfdGFibGUgPQlrZXlzcGFuX2lkc19jb21iaW5lZCwKK307CisKKy8qIHVzYl9kZXZpY2VfaWQgdGFibGUgZm9yIHRoZSBwcmUtZmlybXdhcmUgZG93bmxvYWQga2V5c3BhbiBkZXZpY2VzICovCitzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQga2V5c3Bhbl9wcmVfaWRzW10gPSB7CisJeyBVU0JfREVWSUNFKEtFWVNQQU5fVkVORE9SX0lELCBrZXlzcGFuX3VzYTE4eF9wcmVfcHJvZHVjdF9pZCkgfSwKKwl7IFVTQl9ERVZJQ0UoS0VZU1BBTl9WRU5ET1JfSUQsIGtleXNwYW5fdXNhMTlfcHJlX3Byb2R1Y3RfaWQpIH0sCisJeyBVU0JfREVWSUNFKEtFWVNQQU5fVkVORE9SX0lELCBrZXlzcGFuX3VzYTE5cWlfcHJlX3Byb2R1Y3RfaWQpIH0sCisJeyBVU0JfREVWSUNFKEtFWVNQQU5fVkVORE9SX0lELCBrZXlzcGFuX3VzYTE5cXdfcHJlX3Byb2R1Y3RfaWQpIH0sCisJeyBVU0JfREVWSUNFKEtFWVNQQU5fVkVORE9SX0lELCBrZXlzcGFuX3VzYTE5d19wcmVfcHJvZHVjdF9pZCkgfSwKKwl7IFVTQl9ERVZJQ0UoS0VZU1BBTl9WRU5ET1JfSUQsIGtleXNwYW5fbXByX3ByZV9wcm9kdWN0X2lkKSB9LAorCXsgVVNCX0RFVklDRShLRVlTUEFOX1ZFTkRPUl9JRCwga2V5c3Bhbl91c2EyOF9wcmVfcHJvZHVjdF9pZCkgfSwKKwl7IFVTQl9ERVZJQ0UoS0VZU1BBTl9WRU5ET1JfSUQsIGtleXNwYW5fdXNhMjh4X3ByZV9wcm9kdWN0X2lkKSB9LAorCXsgVVNCX0RFVklDRShLRVlTUEFOX1ZFTkRPUl9JRCwga2V5c3Bhbl91c2EyOHhhX3ByZV9wcm9kdWN0X2lkKSB9LAorCXsgVVNCX0RFVklDRShLRVlTUEFOX1ZFTkRPUl9JRCwga2V5c3Bhbl91c2EyOHhiX3ByZV9wcm9kdWN0X2lkKSB9LAorCXsgVVNCX0RFVklDRShLRVlTUEFOX1ZFTkRPUl9JRCwga2V5c3Bhbl91c2E0OXdfcHJlX3Byb2R1Y3RfaWQpIH0sCisJeyBVU0JfREVWSUNFKEtFWVNQQU5fVkVORE9SX0lELCBrZXlzcGFuX3VzYTQ5d2xjX3ByZV9wcm9kdWN0X2lkKSB9LAorCXsgfSAvKiBUZXJtaW5hdGluZyBlbnRyeSAqLworfTsKKworc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGtleXNwYW5fMXBvcnRfaWRzW10gPSB7CisJeyBVU0JfREVWSUNFKEtFWVNQQU5fVkVORE9SX0lELCBrZXlzcGFuX3VzYTE4eF9wcm9kdWN0X2lkKSB9LAorCXsgVVNCX0RFVklDRShLRVlTUEFOX1ZFTkRPUl9JRCwga2V5c3Bhbl91c2ExOV9wcm9kdWN0X2lkKSB9LAorCXsgVVNCX0RFVklDRShLRVlTUEFOX1ZFTkRPUl9JRCwga2V5c3Bhbl91c2ExOXFpX3Byb2R1Y3RfaWQpIH0sCisJeyBVU0JfREVWSUNFKEtFWVNQQU5fVkVORE9SX0lELCBrZXlzcGFuX3VzYTE5cXdfcHJvZHVjdF9pZCkgfSwKKwl7IFVTQl9ERVZJQ0UoS0VZU1BBTl9WRU5ET1JfSUQsIGtleXNwYW5fdXNhMTl3X3Byb2R1Y3RfaWQpIH0sCisJeyBVU0JfREVWSUNFKEtFWVNQQU5fVkVORE9SX0lELCBrZXlzcGFuX3VzYTE5aHNfcHJvZHVjdF9pZCkgfSwKKwl7IFVTQl9ERVZJQ0UoS0VZU1BBTl9WRU5ET1JfSUQsIGtleXNwYW5fbXByX3Byb2R1Y3RfaWQpIH0sCisJeyB9IC8qIFRlcm1pbmF0aW5nIGVudHJ5ICovCit9OworCitzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQga2V5c3Bhbl8ycG9ydF9pZHNbXSA9IHsKKwl7IFVTQl9ERVZJQ0UoS0VZU1BBTl9WRU5ET1JfSUQsIGtleXNwYW5fdXNhMjhfcHJvZHVjdF9pZCkgfSwKKwl7IFVTQl9ERVZJQ0UoS0VZU1BBTl9WRU5ET1JfSUQsIGtleXNwYW5fdXNhMjh4X3Byb2R1Y3RfaWQpIH0sCisJeyBVU0JfREVWSUNFKEtFWVNQQU5fVkVORE9SX0lELCBrZXlzcGFuX3VzYTI4eGFfcHJvZHVjdF9pZCkgfSwKKwl7IFVTQl9ERVZJQ0UoS0VZU1BBTl9WRU5ET1JfSUQsIGtleXNwYW5fdXNhMjh4Yl9wcm9kdWN0X2lkKSB9LAorCXsgfSAvKiBUZXJtaW5hdGluZyBlbnRyeSAqLworfTsKKworc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGtleXNwYW5fNHBvcnRfaWRzW10gPSB7CisJeyBVU0JfREVWSUNFKEtFWVNQQU5fVkVORE9SX0lELCBrZXlzcGFuX3VzYTQ5d19wcm9kdWN0X2lkKSB9LAorCXsgVVNCX0RFVklDRShLRVlTUEFOX1ZFTkRPUl9JRCwga2V5c3Bhbl91c2E0OXdsY19wcm9kdWN0X2lkKX0sCisJeyB9IC8qIFRlcm1pbmF0aW5nIGVudHJ5ICovCit9OworCisvKiBTdHJ1Y3RzIGZvciB0aGUgZGV2aWNlcywgcHJlIGFuZCBwb3N0IHJlbnVtZXJhdGlvbi4gKi8KK3N0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kZXZpY2VfdHlwZSBrZXlzcGFuX3ByZV9kZXZpY2UgPSB7CisJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKKwkubmFtZQkJCT0gIktleXNwYW4gLSAod2l0aG91dCBmaXJtd2FyZSkiLAorCS5zaG9ydF9uYW1lCQk9ICJrZXlzcGFuX25vX2Zpcm0iLAorCS5pZF90YWJsZQkJPSBrZXlzcGFuX3ByZV9pZHMsCisJLm51bV9pbnRlcnJ1cHRfaW4JPSBOVU1fRE9OVF9DQVJFLAorCS5udW1fYnVsa19pbgkJPSBOVU1fRE9OVF9DQVJFLAorCS5udW1fYnVsa19vdXQJCT0gTlVNX0RPTlRfQ0FSRSwKKwkubnVtX3BvcnRzCQk9IDEsCisJLmF0dGFjaAkJCT0ga2V5c3Bhbl9mYWtlX3N0YXJ0dXAsCit9OworCitzdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUga2V5c3Bhbl8xcG9ydF9kZXZpY2UgPSB7CisJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKKwkubmFtZQkJCT0gIktleXNwYW4gMSBwb3J0IGFkYXB0ZXIiLAorCS5zaG9ydF9uYW1lCQk9ICJrZXlzcGFuXzEiLAorCS5pZF90YWJsZQkJPSBrZXlzcGFuXzFwb3J0X2lkcywKKwkubnVtX2ludGVycnVwdF9pbgk9IE5VTV9ET05UX0NBUkUsCisJLm51bV9idWxrX2luCQk9IE5VTV9ET05UX0NBUkUsCisJLm51bV9idWxrX291dAkJPSBOVU1fRE9OVF9DQVJFLAorCS5udW1fcG9ydHMJCT0gMSwKKwkub3BlbgkJCT0ga2V5c3Bhbl9vcGVuLAorCS5jbG9zZQkJCT0ga2V5c3Bhbl9jbG9zZSwKKwkud3JpdGUJCQk9IGtleXNwYW5fd3JpdGUsCisJLndyaXRlX3Jvb20JCT0ga2V5c3Bhbl93cml0ZV9yb29tLAorCS5jaGFyc19pbl9idWZmZXIJPSBrZXlzcGFuX2NoYXJzX2luX2J1ZmZlciwKKwkudGhyb3R0bGUJCT0ga2V5c3Bhbl9yeF90aHJvdHRsZSwKKwkudW50aHJvdHRsZQkJPSBrZXlzcGFuX3J4X3VudGhyb3R0bGUsCisJLmlvY3RsCQkJPSBrZXlzcGFuX2lvY3RsLAorCS5zZXRfdGVybWlvcwkJPSBrZXlzcGFuX3NldF90ZXJtaW9zLAorCS5icmVha19jdGwJCT0ga2V5c3Bhbl9icmVha19jdGwsCisJLnRpb2NtZ2V0CQk9IGtleXNwYW5fdGlvY21nZXQsCisJLnRpb2Ntc2V0CQk9IGtleXNwYW5fdGlvY21zZXQsCisJLmF0dGFjaAkJCT0ga2V5c3Bhbl9zdGFydHVwLAorCS5zaHV0ZG93bgkJPSBrZXlzcGFuX3NodXRkb3duLAorfTsKKworc3RhdGljIHN0cnVjdCB1c2Jfc2VyaWFsX2RldmljZV90eXBlIGtleXNwYW5fMnBvcnRfZGV2aWNlID0geworCS5vd25lcgkJCT0gVEhJU19NT0RVTEUsCisJLm5hbWUJCQk9ICJLZXlzcGFuIDIgcG9ydCBhZGFwdGVyIiwKKwkuc2hvcnRfbmFtZQkJPSAia2V5c3Bhbl8yIiwKKwkuaWRfdGFibGUJCT0ga2V5c3Bhbl8ycG9ydF9pZHMsCisJLm51bV9pbnRlcnJ1cHRfaW4JPSBOVU1fRE9OVF9DQVJFLAorCS5udW1fYnVsa19pbgkJPSBOVU1fRE9OVF9DQVJFLAorCS5udW1fYnVsa19vdXQJCT0gTlVNX0RPTlRfQ0FSRSwKKwkubnVtX3BvcnRzCQk9IDIsCisJLm9wZW4JCQk9IGtleXNwYW5fb3BlbiwKKwkuY2xvc2UJCQk9IGtleXNwYW5fY2xvc2UsCisJLndyaXRlCQkJPSBrZXlzcGFuX3dyaXRlLAorCS53cml0ZV9yb29tCQk9IGtleXNwYW5fd3JpdGVfcm9vbSwKKwkuY2hhcnNfaW5fYnVmZmVyCT0ga2V5c3Bhbl9jaGFyc19pbl9idWZmZXIsCisJLnRocm90dGxlCQk9IGtleXNwYW5fcnhfdGhyb3R0bGUsCisJLnVudGhyb3R0bGUJCT0ga2V5c3Bhbl9yeF91bnRocm90dGxlLAorCS5pb2N0bAkJCT0ga2V5c3Bhbl9pb2N0bCwKKwkuc2V0X3Rlcm1pb3MJCT0ga2V5c3Bhbl9zZXRfdGVybWlvcywKKwkuYnJlYWtfY3RsCQk9IGtleXNwYW5fYnJlYWtfY3RsLAorCS50aW9jbWdldAkJPSBrZXlzcGFuX3Rpb2NtZ2V0LAorCS50aW9jbXNldAkJPSBrZXlzcGFuX3Rpb2Ntc2V0LAorCS5hdHRhY2gJCQk9IGtleXNwYW5fc3RhcnR1cCwKKwkuc2h1dGRvd24JCT0ga2V5c3Bhbl9zaHV0ZG93biwKK307CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kZXZpY2VfdHlwZSBrZXlzcGFuXzRwb3J0X2RldmljZSA9IHsKKwkub3duZXIJCQk9IFRISVNfTU9EVUxFLAorCS5uYW1lCQkJPSAiS2V5c3BhbiA0IHBvcnQgYWRhcHRlciIsCisJLnNob3J0X25hbWUJCT0gImtleXNwYW5fNCIsCisJLmlkX3RhYmxlCQk9IGtleXNwYW5fNHBvcnRfaWRzLAorCS5udW1faW50ZXJydXB0X2luCT0gTlVNX0RPTlRfQ0FSRSwKKwkubnVtX2J1bGtfaW4JCT0gNSwKKwkubnVtX2J1bGtfb3V0CQk9IDUsCisJLm51bV9wb3J0cwkJPSA0LAorCS5vcGVuCQkJPSBrZXlzcGFuX29wZW4sCisJLmNsb3NlCQkJPSBrZXlzcGFuX2Nsb3NlLAorCS53cml0ZQkJCT0ga2V5c3Bhbl93cml0ZSwKKwkud3JpdGVfcm9vbQkJPSBrZXlzcGFuX3dyaXRlX3Jvb20sCisJLmNoYXJzX2luX2J1ZmZlcgk9IGtleXNwYW5fY2hhcnNfaW5fYnVmZmVyLAorCS50aHJvdHRsZQkJPSBrZXlzcGFuX3J4X3Rocm90dGxlLAorCS51bnRocm90dGxlCQk9IGtleXNwYW5fcnhfdW50aHJvdHRsZSwKKwkuaW9jdGwJCQk9IGtleXNwYW5faW9jdGwsCisJLnNldF90ZXJtaW9zCQk9IGtleXNwYW5fc2V0X3Rlcm1pb3MsCisJLmJyZWFrX2N0bAkJPSBrZXlzcGFuX2JyZWFrX2N0bCwKKwkudGlvY21nZXQJCT0ga2V5c3Bhbl90aW9jbWdldCwKKwkudGlvY21zZXQJCT0ga2V5c3Bhbl90aW9jbXNldCwKKwkuYXR0YWNoCQkJPSBrZXlzcGFuX3N0YXJ0dXAsCisJLnNodXRkb3duCQk9IGtleXNwYW5fc2h1dGRvd24sCit9OworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX21wcl9mdy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fbXByX2Z3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjM4ODA1ZQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX21wcl9mdy5oCkBAIC0wLDAgKzEsMjg2IEBACisvKiBrZXlzcGFuX21wcl9mdy5oCisgCisJVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gYXMga2V5c3Bhbl9tcHJfZncuaCBpcworCisJCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCisJCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKKwkJCisJYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCisJcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCisJZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUgCisJcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dCAKKwlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZSAKKwlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwgCisJaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4gCisKKwlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aCAgCisJS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZSAKKwlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluIAorCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgorCitzdGF0aWMgY2hhciB0aGVGaXJtd2FyZURhdGU1M1tdID0KKwkiMDQvMjYvMjAwMiAgMDI6NDdwICAgICAgICAgICAgICAxMSw1NzAgVVNBNTMiOworKi8KKworc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkIGtleXNwYW5fbXByX2Zpcm13YXJlW10gPSB7CisgezB4MDAzMywgIDMsIHsgMHgwMiwgMHgwMCwgMHgxYX19LAorIHsweDAwMWEsICA0LCB7IDB4NTMsIDB4ZDgsIDB4ZWYsIDB4MzJ9fSwKKyB7MHgwMDAzLCAxNiwgeyAweDhlLCAweDU2LCAweDhmLCAweDU3LCAweGU1LCAweDU3LCAweDE1LCAweDU3LCAweGFlLCAweDU2LCAweDcwLCAweDAyLCAweDE1LCAweDU2LCAweDRlLCAweDYwfX0sCisgezB4MDAxMywgIDcsIHsgMHgwNSwgMHgxMiwgMHgwZiwgMHhhMiwgMHg4MCwgMHhlZSwgMHgyMn19LAorIHsweDAwMjMsICAzLCB7IDB4MDIsIDB4MDAsIDB4NDZ9fSwKKyB7MHgwMDQ2LCAxNiwgeyAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGMwLCAweGQwLCAweDc1LCAweGQwLCAweDA4fX0sCisgezB4MDA1NiwgMTYsIHsgMHgzMCwgMHg5OSwgMHgwZSwgMHgzMCwgMHgwYiwgMHgwNywgMHhhMiwgMHgwZSwgMHg5MiwgMHg5YiwgMHg4NSwgMHgzNiwgMHg5OSwgMHhjMiwgMHg5OSwgMHhkMn19LAorIHsweDAwNjYsIDE2LCB7IDB4MTIsIDB4MjAsIDB4MTIsIDB4MDMsIDB4MDIsIDB4MDIsIDB4ZjksIDB4YzIsIDB4MTIsIDB4MzAsIDB4MDMsIDB4MTksIDB4N2UsIDB4N2UsIDB4N2YsIDB4NDB9fSwKKyB7MHgwMDc2LCAxNiwgeyAweDc1LCAweDFhLCAweDdlLCAweDc1LCAweDFiLCAweDQwLCAweDc1LCAweDE3LCAweDAwLCAweDdlLCAweDdkLCAweDdmLCAweGMwLCAweDc1LCAweDE4LCAweDdkfX0sCisgezB4MDA4NiwgMTYsIHsgMHg3NSwgMHgxOSwgMHhjMCwgMHg4MCwgMHgxNywgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHhjMCwgMHg3NSwgMHgxYSwgMHg3ZCwgMHg3NSwgMHgxYiwgMHhjMCwgMHg3NX19LAorIHsweDAwOTYsIDE2LCB7IDB4MTcsIDB4MDEsIDB4N2UsIDB4N2UsIDB4N2YsIDB4NDAsIDB4NzUsIDB4MTgsIDB4N2UsIDB4NzUsIDB4MTksIDB4NDAsIDB4MjAsIDB4MGIsIDB4MDMsIDB4MDJ9fSwKKyB7MHgwMGE2LCAxNiwgeyAweDAxLCAweDg0LCAweGU1LCAweDNhLCAweGMzLCAweDk1LCAweDUzLCAweDUwLCAweDNjLCAweDIwLCAweDBjLCAweDM0LCAweDIwLCAweDA5LCAweDMxLCAweDkwfX0sCisgezB4MDBiNiwgMTYsIHsgMHg3ZiwgMHg5YiwgMHhlMCwgMHg1NSwgMHgzOCwgMHg3MCwgMHgyOSwgMHgzMCwgMHgxMCwgMHgxMiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHhlNSwgMHgxYn19LAorIHsweDAwYzYsIDE2LCB7IDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MWEsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGUsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2F9fSwKKyB7MHgwMGQ2LCAxNiwgeyAweGU1LCAweDFiLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDFhLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDM2LCAweDAyLCAweDAyLCAweGY3fX0sCisgezB4MDBlNiwgMTYsIHsgMHhjMiwgMHgwYiwgMHgwMiwgMHgwMiwgMHhmNywgMHgzMCwgMHgwMywgMHgxMSwgMHg5MCwgMHg3ZiwgMHhjNywgMHhlNCwgMHhmMCwgMHhhMywgMHhlMCwgMHg1NH19LAorIHsweDAwZjYsIDE2LCB7IDB4MDIsIDB4ZjUsIDB4MWQsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4MWMsIDB4ODAsIDB4MTEsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTQsIDB4ZjAsIDB4OTAsIDB4N2Z9fSwKKyB7MHgwMDQzLCAgMywgeyAweDAyLCAweDBmLCAweDAwfX0sCisgezB4MDAwMCwgIDMsIHsgMHgwMiwgMHgwMCwgMHgyNn19LAorIHsweDAwMjYsIDEyLCB7IDB4NzgsIDB4N2YsIDB4ZTQsIDB4ZjYsIDB4ZDgsIDB4ZmQsIDB4NzUsIDB4ODEsIDB4NWEsIDB4MDIsIDB4MGEsIDB4MzN9fSwKKyB7MHgwMTA2LCA2NCwgeyAweGM2LCAweGUwLCAweDU0LCAweDAyLCAweGY1LCAweDFkLCAweGEzLCAweGUwLCAweGY1LCAweDFjLCAweGU1LCAweDE3LCAweDI0LCAweGZmLCAweDkyLCAweDAzLCAweDMwLAorICAweDBkLCAweDBkLCAweGMyLCAweDBkLCAweDkwLCAweDdmLCAweGJiLCAweDc0LCAweDAxLCAweGYwLCAweGMyLCAweDBiLCAweDAyLCAweDAyLCAweGY3LCAweGU1LAorICAweDFkLCAweDYwLCAweDA1LCAweGMyLCAweDBiLCAweDAyLCAweDAyLCAweGY3LCAweDg1LCAweDFjLCAweDUzLCAweDg1LCAweDE5LCAweDgyLCAweDg1LCAweDE4LAorICAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBkLCAweDc1LCAweDEyLCAweGZmLCAweDIwLCAweDBjLCAweDNhLCAweDIwLCAweDA5LCAweDM3LCAweDkwfX0sCisgezB4MDE0NiwgNjQsIHsgMHg3ZiwgMHg5YiwgMHhlMCwgMHg1NSwgMHgzOCwgMHg3MCwgMHgyZiwgMHgzMCwgMHgxMCwgMHgxYywgMHg4NSwgMHgxOSwgMHg4MiwgMHg4NSwgMHgxOCwgMHg4MywgMHhhMywKKyAgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwgMHg4NSwgMHgxOSwgMHg4MiwgMHg4NSwgMHgxOCwgMHg4MywgMHhhMywgMHhhMywgMHhlMCwgMHhmNSwgMHgzNiwgMHg3NSwKKyAgMHgzYSwgMHgwMywgMHgwMiwgMHgwMiwgMHhmNywgMHg3NSwgMHgzYSwgMHgwMiwgMHg4NSwgMHgxOSwgMHg4MiwgMHg4NSwgMHgxOCwgMHg4MywgMHhhMywgMHhlMCwKKyAgMHhmNSwgMHgzNiwgMHgwMiwgMHgwMiwgMHhmNywgMHg3NSwgMHgzYSwgMHgwMSwgMHhjMiwgMHgwYiwgMHgwMiwgMHgwMiwgMHhmNywgMHgzMCwgMHgwM319LAorIHsweDAxODYsIDY0LCB7IDB4MGUsIDB4OTAsIDB4N2YsIDB4YzYsIDB4ZTAsIDB4NTQsIDB4MDIsIDB4ZjUsIDB4MWQsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4MWMsIDB4ODAsIDB4MGMsIDB4OTAsIDB4N2YsCisgIDB4YzgsIDB4ZTAsIDB4NTQsIDB4MDIsIDB4ZjUsIDB4MWQsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4MWMsIDB4ZTUsIDB4M2EsIDB4YzMsIDB4OTUsIDB4NTMsIDB4NTAsCisgIDB4MDMsIDB4MDIsIDB4MDIsIDB4NjgsIDB4ZTUsIDB4MWQsIDB4NjAsIDB4MDcsIDB4YzIsIDB4MTQsIDB4YzIsIDB4MDUsIDB4MDIsIDB4MDIsIDB4ZjcsIDB4ODUsCisgIDB4MWMsIDB4NTMsIDB4ODUsIDB4MWIsIDB4ODIsIDB4ODUsIDB4MWEsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGQsIDB4NzUsIDB4MTIsIDB4ZmZ9fSwKKyB7MHgwMWM2LCA2NCwgeyAweDMwLCAweDBjLCAweDAzLCAweDAyLCAweDAyLCAweDYwLCAweDMwLCAweDA5LCAweDAzLCAweDAyLCAweDAyLCAweDYwLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU1LAorICAweDM4LCAweDYwLCAweDAzLCAweDAyLCAweDAyLCAweDYwLCAweDMwLCAweDEwLCAweDFiLCAweDg1LCAweDFiLCAweDgyLCAweDg1LCAweDFhLCAweDgzLCAweGEzLAorICAweGUwLCAweDEzLCAweDkyLCAweDliLCAweDg1LCAweDFiLCAweDgyLCAweDg1LCAweDFhLCAweDgzLCAweGEzLCAweGEzLCAweGUwLCAweGY1LCAweDk5LCAweDc1LAorICAweDNhLCAweDAzLCAweDgwLCAweDBkLCAweDg1LCAweDFiLCAweDgyLCAweDg1LCAweDFhLCAweDgzLCAweGEzLCAweGUwLCAweGY1LCAweDk5LCAweDc1fX0sCisgezB4MDIwNiwgNjQsIHsgMHgzYSwgMHgwMiwgMHhlNSwgMHgzYSwgMHhjMywgMHg5NSwgMHg1MywgMHg0MCwgMHgyNiwgMHgzMCwgMHgwMywgMHgwNywgMHg5MCwgMHg3ZiwgMHhjNywgMHhlNCwgMHhmMCwKKyAgMHg4MCwgMHgwNSwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlNCwgMHhmMCwgMHhlNSwgMHgxNywgMHgyNCwgMHhmZiwgMHg5MiwgMHgwMywgMHgyMCwgMHgwZCwgMHgwMywKKyAgMHgwMiwgMHgwMiwgMHhmNywgMHhjMiwgMHgwZCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHg3NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwMiwgMHhmNywgMHgzMCwgMHgxMCwKKyAgMHgxMiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHhlNSwgMHgxYiwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxYSwgMHhmNSwgMHg4M319LAorIHsweDAyNDYsIDY0LCB7IDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGUsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4ZTUsIDB4MWIsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MWEsIDB4ZjUsCisgIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4MzYsIDB4ZDIsIDB4MGIsIDB4MDIsIDB4MDIsIDB4ZjcsIDB4NzUsIDB4M2EsIDB4MDEsIDB4YzIsIDB4MTQsIDB4MDIsIDB4MDIsCisgIDB4ZjcsIDB4MzAsIDB4MGMsIDB4MDMsIDB4MDIsIDB4MDIsIDB4ZjUsIDB4MzAsIDB4MDksIDB4MDMsIDB4MDIsIDB4MDIsIDB4ZjUsIDB4OTAsIDB4N2YsIDB4OWIsCisgIDB4ZTAsIDB4NTUsIDB4MzgsIDB4NzAsIDB4NzksIDB4MzAsIDB4MTAsIDB4MTIsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4ZTUsIDB4MWIsIDB4MmZ9fSwKKyB7MHgwMjg2LCA2NCwgeyAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDFhLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDliLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweGU1LCAweDFiLAorICAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDFhLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDk5LCAweGU1LCAweDNhLCAweGMzLCAweDk1LCAweDUzLAorICAweDQwLCAweDIyLCAweDMwLCAweDAzLCAweDA3LCAweDkwLCAweDdmLCAweGM3LCAweGU0LCAweGYwLCAweDgwLCAweDA1LCAweDkwLCAweDdmLCAweGM5LCAweGU0LAorICAweGYwLCAweGU1LCAweDE3LCAweDI0LCAweGZmLCAweDkyLCAweDAzLCAweDMwLCAweDBkLCAweDM2LCAweGMyLCAweDBkLCAweDkwLCAweDdmLCAweGJifX0sCisgezB4MDJjNiwgNjQsIHsgMHg3NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgyYywgMHgzMCwgMHgxMCwgMHgxMiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHhlNSwgMHgxYiwgMHgyZiwgMHhmNSwgMHg4MiwKKyAgMHhlNCwgMHgzNSwgMHgxYSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHhlNSwgMHgxYiwgMHgyZiwKKyAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxYSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHgzNiwgMHhkMiwgMHgwYiwgMHg4MCwgMHgwMiwgMHhjMiwgMHgxNCwKKyAgMHhkMiwgMHgwMSwgMHgyMCwgMHg5OCwgMHgwMywgMHgwMiwgMHgwNCwgMHgzNSwgMHhjMiwgMHg5OCwgMHgyMCwgMHgwMiwgMHgwMywgMHgwMiwgMHgwM319LAorIHsweDAzMDYsIDY0LCB7IDB4YTIsIDB4MjAsIDB4MTUsIDB4MjcsIDB4YWYsIDB4MzksIDB4MDUsIDB4MzksIDB4NzQsIDB4ODAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsCisgIDB4ODMsIDB4ZTUsIDB4OTksIDB4ZjAsIDB4MzAsIDB4MTAsIDB4NGQsIDB4YWYsIDB4MzksIDB4MDUsIDB4MzksIDB4NzQsIDB4ODAsIDB4MmYsIDB4ZjUsIDB4ODIsCisgIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTgsIDB4ZjAsIDB4ODAsIDB4M2EsIDB4ODUsIDB4OTksIDB4NTUsIDB4ZTUsIDB4NTUsIDB4YjUsCisgIDB4NDcsIDB4MDQsIDB4ZDIsIDB4MDksIDB4ODAsIDB4MmUsIDB4ZTUsIDB4NTUsIDB4YjUsIDB4NDYsIDB4MDQsIDB4YzIsIDB4MDksIDB4ODAsIDB4MjV9fSwKKyB7MHgwMzQ2LCA2NCwgeyAweGFmLCAweDM5LCAweDA1LCAweDM5LCAweDc0LCAweDgwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDU1LCAweGYwLAorICAweDMwLCAweDEwLCAweDExLCAweGFmLCAweDM5LCAweDA1LCAweDM5LCAweDc0LCAweDgwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LAorICAweDgzLCAweGU1LCAweDk4LCAweGYwLCAweGQyLCAweDBmLCAweGU1LCAweDM5LCAweGMzLCAweDk1LCAweDQzLCAweDUwLCAweDAzLCAweDAyLCAweDA0LCAweDMzLAorICAweDkwLCAweDdmLCAweGI4LCAweGUwLCAweDMwLCAweGUxLCAweDE2LCAweGU1LCAweDM5LCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDAzLCAweDAyfX0sCisgezB4MDM4NiwgNjQsIHsgMHgwNCwgMHgzMywgMHgxNSwgMHgzOSwgMHgxNSwgMHgzOSwgMHgwNSwgMHgyYiwgMHg0MywgMHgzNCwgMHgwMSwgMHgwMiwgMHgwNCwgMHgzMywgMHg5MCwgMHg3ZiwgMHhiNywKKyAgMHhlNSwgMHgzOSwgMHhmMCwgMHg3NSwgMHgzOSwgMHgwMCwgMHhjMiwgMHgwMiwgMHgwMiwgMHgwNCwgMHgzMywgMHgyMCwgMHgxNSwgMHgyNywgMHhhZiwgMHgzOSwKKyAgMHgwNSwgMHgzOSwgMHg3NCwgMHgwMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg5OSwgMHhmMCwgMHgzMCwKKyAgMHgxMCwgMHg0ZCwgMHhhZiwgMHgzOSwgMHgwNSwgMHgzOSwgMHg3NCwgMHgwMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNX19LAorIHsweDAzYzYsIDY0LCB7IDB4ODMsIDB4ZTUsIDB4OTgsIDB4ZjAsIDB4ODAsIDB4M2EsIDB4ODUsIDB4OTksIDB4NTUsIDB4ZTUsIDB4NTUsIDB4YjUsIDB4NDcsIDB4MDQsIDB4ZDIsIDB4MDksIDB4ODAsCisgIDB4MmUsIDB4ZTUsIDB4NTUsIDB4YjUsIDB4NDYsIDB4MDQsIDB4YzIsIDB4MDksIDB4ODAsIDB4MjUsIDB4YWYsIDB4MzksIDB4MDUsIDB4MzksIDB4NzQsIDB4MDAsCisgIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4NTUsIDB4ZjAsIDB4MzAsIDB4MTAsIDB4MTEsIDB4YWYsIDB4MzksCisgIDB4MDUsIDB4MzksIDB4NzQsIDB4MDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTgsIDB4ZjB9fSwKKyB7MHgwNDA2LCA2NCwgeyAweGQyLCAweDBmLCAweGU1LCAweDM5LCAweGMzLCAweDk1LCAweDQzLCAweDQwLCAweDI0LCAweDkwLCAweDdmLCAweGI2LCAweGUwLCAweDMwLCAweGUxLCAweDEyLCAweGU1LAorICAweDM5LCAweGMzLCAweDk0LCAweDQwLCAweDQwLCAweDE2LCAweDE1LCAweDM5LCAweDE1LCAweDM5LCAweDA1LCAweDJiLCAweDQzLCAweDM0LCAweDAxLCAweDgwLAorICAweDBiLCAweDkwLCAweDdmLCAweGI5LCAweGU1LCAweDM5LCAweGYwLCAweDc1LCAweDM5LCAweDAwLCAweGQyLCAweDAyLCAweGQyLCAweDAxLCAweDMwLCAweDAxLAorICAweDA1LCAweGMyLCAweDAxLCAweDAyLCAweDAwLCAweDU2LCAweGQwLCAweGQwLCAweGQwLCAweDg2LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwfX0sCisgezB4MDQ0NiwgNjQsIHsgMHhlMCwgMHgzMiwgMHg5MCwgMHg3ZiwgMHhiYywgMHhlMCwgMHgyMCwgMHhlMSwgMHg1NCwgMHhlNSwgMHgzNCwgMHg2MCwgMHg1MCwgMHhlNSwgMHgzMSwgMHg3MCwgMHg0YywKKyAgMHhlNSwgMHgzNCwgMHgzMCwgMHhlMSwgMHgwYiwgMHhlNCwgMHhmNSwgMHgyZiwgMHg3NSwgMHgzNCwgMHgwMSwgMHg3NSwgMHgzMSwgMHgwMiwgMHg4MCwgMHgwZSwKKyAgMHhhMiwgMHgwOCwgMHhlNCwgMHgzMywgMHhmNSwgMHgyZiwgMHhjMiwgMHgwOCwgMHhlNCwgMHhmNSwgMHgzNCwgMHg3NSwgMHgzMSwgMHgxMCwgMHhlNCwgMHhmNSwKKyAgMHg1NiwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyNCwgMHgyNSwgMHg1NiwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMn19LAorIHsweDA0ODYsIDY0LCB7IDB4MGMsIDB4NzksIDB4ZmYsIDB4NzQsIDB4MDAsIDB4MjUsIDB4NTYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsCisgIDB4NTYsIDB4ZTUsIDB4NTYsIDB4YjQsIDB4MGMsIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YmQsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4Y2EsIDB4ZTAsCisgIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDUsIDB4ZDEsIDB4ZTQsIDB4ZjUsIDB4NTYsIDB4NzQsIDB4NDAsIDB4MjUsIDB4NTYsIDB4ZjUsIDB4ODIsIDB4ZTQsCisgIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4NTYsIDB4N2MsIDB4MDAsIDB4N2IsIDB4MDAsIDB4MjQsIDB4M2IsIDB4Zjl9fSwKKyB7MHgwNGM2LCA2NCwgeyAweGVjLCAweDM0LCAweDAwLCAweGZhLCAweGVmLCAweDEyLCAweDBjLCAweDkyLCAweDA1LCAweDU2LCAweGU1LCAweDU2LCAweGI0LCAweDE4LCAweGRiLCAweGU1LCAweDNiLAorICAweDYwLCAweDExLCAweDc1LCAweGM5LCAweDIwLCAweDc1LCAweGM4LCAweDM2LCAweDg1LCAweDNjLCAweGNhLCAweDg1LCAweDNkLCAweGNiLCAweGU0LCAweDkwLAorICAweDdmLCAweDlmLCAweGYwLCAweGU1LCAweDNlLCAweDEzLCAweDkyLCAweDEwLCAweDkyLCAweDlmLCAweDg1LCAweDNmLCAweDM4LCAweGU1LCAweDQwLCAweDEzLAorICAweDkyLCAweDE1LCAweGU1LCAweDQxLCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweDgwLCAweDA3fX0sCisgezB4MDUwNiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwgMHg0NCwgMHgwNCwgMHhmMCwgMHhlNSwgMHg0MiwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwgMHg1NCwgMHg3ZiwKKyAgMHhmMCwgMHg4MCwgMHgwNywgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHhlNSwgMHg0OCwgMHg2MCwgMHgwYiwgMHhjMiwgMHgwYywKKyAgMHhjMiwgMHgwOSwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHg0OSwgMHg2MCwgMHgwYywgMHhkMiwgMHgwOSwgMHg0MywKKyAgMHgzNCwgMHgwMSwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHg0YSwgMHg2MCwgMHgwZCwgMHhjMiwgMHhhZn19LAorIHsweDA1NDYsIDY0LCB7IDB4YzIsIDB4MGIsIDB4ZDIsIDB4MDAsIDB4ZTQsIDB4ZjUsIDB4NTMsIDB4ZjUsIDB4M2EsIDB4ZDIsIDB4YWYsIDB4ZTUsIDB4NGIsIDB4NjAsIDB4MDUsIDB4MzAsIDB4MTUsCisgIDB4MDIsIDB4ZDIsIDB4MDksIDB4ZTUsIDB4NGMsIDB4NjAsIDB4MTUsIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4OTAsIDB4N2YsCisgIDB4OWUsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4ZTUsIDB4NGQsIDB4NjAsIDB4MGEsCisgIDB4ZDIsIDB4OWMsIDB4YzIsIDB4OTgsIDB4NzUsIDB4MmMsIDB4MDEsIDB4NzUsIDB4MzEsIDB4MWUsIDB4ZTUsIDB4NGUsIDB4NjAsIDB4MDcsIDB4YzJ9fSwKKyB7MHgwNTg2LCA2NCwgeyAweDljLCAweGU0LCAweGY1LCAweDM5LCAweGY1LCAweDJjLCAweGU1LCAweDRmLCAweDYwLCAweDAzLCAweGU0LCAweGY1LCAweDM5LCAweGU1LCAweDUwLCAweDYwLCAweDAyLAorICAweGQyLCAweDA3LCAweGU1LCAweDUxLCAweDYwLCAweDBhLCAweGU1LCAweDRkLCAweDcwLCAweDAyLCAweGY1LCAweDMxLCAweGU1LCAweDUxLCAweDQyLCAweDM0LAorICAweGU1LCAweDUyLCAweDYwLCAweDFmLCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDExLCAweGYwLCAweDc0LCAweDMxLCAweGYwLCAweDc0LCAweDEyLCAweGYwLAorICAweDc0LCAweDMyLCAweGYwLCAweDc0LCAweDEzLCAweGYwLCAweDc0LCAweDMzLCAweGYwLCAweDc0LCAweDE0LCAweGYwLCAweDc0LCAweDM0LCAweGYwfX0sCisgezB4MDVjNiwgNjQsIHsgMHhkMiwgMHgwMywgMHhkMiwgMHgwMiwgMHhkMiwgMHgwOCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhmMCwgMHhhMiwgMHgwYywgMHhlNCwgMHgzMywgMHhmZiwgMHg2NSwKKyAgMHgyOSwgMHg2MCwgMHgwNSwgMHg4ZiwgMHgyOSwgMHg0MywgMHgzNCwgMHgwMSwgMHhhMiwgMHgwOSwgMHhlNCwgMHgzMywgMHhmZiwgMHg2NSwgMHgyYSwgMHg2MCwKKyAgMHgwNSwgMHg4ZiwgMHgyYSwgMHg0MywgMHgzNCwgMHgwMSwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHhmZiwgMHg1NCwgMHgwOCwgMHg2NCwgMHgwOCwgMHhmNSwKKyAgMHg1NywgMHg2NSwgMHgyNSwgMHg2MCwgMHgwNiwgMHg4NSwgMHg1NywgMHgyNSwgMHg0MywgMHgzNCwgMHgwMSwgMHhlZiwgMHg1NCwgMHgxMCwgMHg2NH19LAorIHsweDA2MDYsIDY0LCB7IDB4MTAsIDB4ZjUsIDB4NTcsIDB4NjUsIDB4MjYsIDB4NjAsIDB4MDYsIDB4ODUsIDB4NTcsIDB4MjYsIDB4NDMsIDB4MzQsIDB4MDEsIDB4ZWYsIDB4NTQsIDB4NDAsIDB4NjQsCisgIDB4NDAsIDB4ZjUsIDB4NTcsIDB4NjUsIDB4MjcsIDB4NjAsIDB4MDYsIDB4ODUsIDB4NTcsIDB4MjcsIDB4NDMsIDB4MzQsIDB4MDEsIDB4ZWYsIDB4NTQsIDB4MjAsCisgIDB4NjQsIDB4MjAsIDB4ZjUsIDB4NTcsIDB4NjUsIDB4MjgsIDB4NjAsIDB4MDYsIDB4ODUsIDB4NTcsIDB4MjgsIDB4NDMsIDB4MzQsIDB4MDEsIDB4OTAsIDB4N2YsCisgIDB4OWEsIDB4ZTAsIDB4NTQsIDB4NDAsIDB4NjQsIDB4NDAsIDB4ZjUsIDB4NTcsIDB4NjUsIDB4MmUsIDB4NjAsIDB4MDYsIDB4ODUsIDB4NTcsIDB4MmV9fSwKKyB7MHgwNjQ2LCA2NCwgeyAweDQzLCAweDM0LCAweDAxLCAweDMwLCAweDA3LCAweDM1LCAweGMyLCAweGFmLCAweDMwLCAweDAyLCAweDE4LCAweDkwLCAweDdmLCAweGI4LCAweGUwLCAweDIwLCAweGUxLAorICAweDI3LCAweGU1LCAweDM5LCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweGI3LCAweGYwLCAweGU0LCAweGY1LCAweDM5LCAweGMyLCAweDAyLCAweGMyLCAweDA3LAorICAweDgwLCAweDE2LCAweDkwLCAweDdmLCAweGI2LCAweGUwLCAweDIwLCAweGUxLCAweDBmLCAweGU1LCAweDM5LCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweGI5LAorICAweGYwLCAweGU0LCAweGY1LCAweDM5LCAweGQyLCAweDAyLCAweGMyLCAweDA3LCAweGQyLCAweGFmLCAweDIwLCAweDA1LCAweDNkLCAweDMwLCAweDAzfX0sCisgezB4MDY4NiwgNjQsIHsgMHgxZSwgMHg5MCwgMHg3ZiwgMHhjNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHgzMywgMHg5MCwgMHg3ZSwgMHg0MCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwZCwgMHg3NSwgMHgzYSwKKyAgMHgwMSwgMHg5MCwgMHg3ZiwgMHhjNywgMHhlMCwgMHhmNSwgMHg1MywgMHhkMiwgMHgwNSwgMHg3NSwgMHgxMiwgMHhmZiwgMHg4MCwgMHgxYywgMHg5MCwgMHg3ZiwKKyAgMHhjOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgxNSwgMHg5MCwgMHg3ZCwgMHhjMCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwZCwgMHg3NSwgMHgzYSwgMHgwMSwgMHg5MCwKKyAgMHg3ZiwgMHhjOSwgMHhlMCwgMHhmNSwgMHg1MywgMHhkMiwgMHgwNSwgMHg3NSwgMHgxMiwgMHhmZiwgMHgyMCwgMHgxNCwgMHgzMywgMHgyMCwgMHgwMH19LAorIHsweDA2YzYsIDY0LCB7IDB4MDYsIDB4ZTUsIDB4M2EsIDB4NjUsIDB4NTMsIDB4NzAsIDB4MmEsIDB4MzAsIDB4MDUsIDB4MWEsIDB4MzAsIDB4MDMsIDB4MDksIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzcsCisgIDB4ZjAsIDB4YzIsIDB4MDMsIDB4ODAsIDB4MDcsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZjAsIDB4ZDIsIDB4MDMsIDB4YzIsIDB4MDUsIDB4ZTQsIDB4ZjUsCisgIDB4NTMsIDB4ZjUsIDB4M2EsIDB4MzAsIDB4MGQsIDB4MGEsIDB4YzIsIDB4MGQsIDB4YzIsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YmIsIDB4NzQsIDB4MDEsIDB4ZjAsCisgIDB4MzAsIDB4MTQsIDB4MDMsIDB4MDIsIDB4MDcsIDB4YmYsIDB4MjAsIDB4MDUsIDB4MDMsIDB4MDIsIDB4MDcsIDB4YmYsIDB4MzAsIDB4MGMsIDB4MDN9fSwKKyB7MHgwNzA2LCA2NCwgeyAweDAyLCAweDA3LCAweGJmLCAweDMwLCAweDA5LCAweDAzLCAweDAyLCAweDA3LCAweGJmLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU1LCAweDM4LCAweDYwLCAweDAzLAorICAweDAyLCAweDA3LCAweGJmLCAweDMwLCAweDAzLCAweDBjLCAweDdlLCAweDdlLCAweDdmLCAweDQwLCAweDc1LCAweDU4LCAweDdlLCAweDc1LCAweDU5LCAweDQwLAorICAweDgwLCAweDBhLCAweDdlLCAweDdkLCAweDdmLCAweGMwLCAweDc1LCAweDU4LCAweDdkLCAweDc1LCAweDU5LCAweGMwLCAweDMwLCAweDEwLCAweDEyLCAweGFmLAorICAweDNhLCAweDA1LCAweDNhLCAweGU1LCAweDU5LCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU4LCAweGY1LCAweDgzLCAweGUwLCAweDEzfX0sCisgezB4MDc0NiwgNjQsIHsgMHg5MiwgMHgxYSwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHhlNSwgMHg1OSwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1OCwgMHhmNSwgMHg4MywgMHhlMCwKKyAgMHhmNSwgMHg1NywgMHhlNSwgMHgzYSwgMHhjMywgMHg5NSwgMHg1MywgMHg1MCwgMHgyYSwgMHgzMCwgMHgxMCwgMHgxMiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwKKyAgMHhlNSwgMHg1OSwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1OCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwgMHhhZiwgMHgzYSwKKyAgMHgwNSwgMHgzYSwgMHhlNSwgMHg1OSwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1OCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHgzNn19LAorIHsweDA3ODYsIDY0LCB7IDB4ZDIsIDB4MGIsIDB4ODAsIDB4MTUsIDB4YzIsIDB4MGIsIDB4MzAsIDB4MDMsIDB4MDksIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZjAsIDB4YzIsIDB4MDMsIDB4ODAsCisgIDB4MDcsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZjAsIDB4ZDIsIDB4MDMsIDB4MzAsIDB4MTAsIDB4MDQsIDB4YTIsIDB4MWEsIDB4OTIsIDB4OWIsIDB4ZDIsCisgIDB4MTQsIDB4YzIsIDB4YWYsIDB4ODUsIDB4NTcsIDB4OTksIDB4MjAsIDB4MGIsIDB4MGQsIDB4MzAsIDB4MGQsIDB4MGEsIDB4YzIsIDB4MGQsIDB4YzIsIDB4MDAsCisgIDB4OTAsIDB4N2YsIDB4YmIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZTksIDB4ZTAsIDB4MTIsIDB4MGN9fSwKKyB7MHgwN2M2LCA2NCwgeyAweGE0LCAweDA5LCAweDFjLCAweDAwLCAweDA5LCAweDg5LCAweDAxLCAweDA5LCAweGU2LCAweDAzLCAweDA3LCAweGUzLCAweDA2LCAweDA5LCAweDBkLCAweDA4LCAweDA5LAorICAweDAxLCAweDA5LCAweDA4LCAweGU5LCAweDBhLCAweDA4LCAweGY4LCAweDBiLCAweDAwLCAweDAwLCAweDBhLCAweDI0LCAweDkwLCAweDdmLCAweGViLCAweGUwLAorICAweDI0LCAweGZlLCAweDYwLCAweDFjLCAweDE0LCAweDcwLCAweDAzLCAweDAyLCAweDA4LCAweDc5LCAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDBhLAorICAweDI0LCAweDc0LCAweDBkLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweDc0LCAweDg3LCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDBhfX0sCisgezB4MDgwNiwgNjQsIHsgMHgyYiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNCwgMHg3ZiwgMHgwMiwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgwMywgMHg3NSwgMHg4MiwgMHhkOCwKKyAgMHg3NSwgMHg4MywgMHgwZCwgMHhlZiwgMHhmMCwgMHg3NSwgMHg4MiwgMHhkMSwgMHg3NSwgMHg4MywgMHgwZCwgMHhmMCwgMHg3NSwgMHg4MiwgMHhjYSwgMHg3NSwKKyAgMHg4MywgMHgwZCwgMHhmMCwgMHg3NSwgMHg4MiwgMHhjMywgMHg3NSwgMHg4MywgMHgwZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHgwNCwgMHg3NSwKKyAgMHg4MiwgMHg5ZSwgMHg3NSwgMHg4MywgMHgwZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlZiwgMHhlMCwgMHhmZSwgMHg5MCwgMHg3ZiwgMHhlZSwgMHhlMH19LAorIHsweDA4NDYsIDY0LCB7IDB4N2MsIDB4MDAsIDB4MjQsIDB4MDAsIDB4ZjUsIDB4NWEsIDB4ZWMsIDB4M2UsIDB4ZjUsIDB4NTksIDB4NzUsIDB4MTUsIDB4MGQsIDB4NzUsIDB4MTYsIDB4OTksIDB4NzUsCisgIDB4ODIsIDB4OWIsIDB4NzUsIDB4ODMsIDB4MGQsIDB4ZTAsIDB4NzUsIDB4MTMsIDB4MDAsIDB4ZjUsIDB4MTQsIDB4ZDMsIDB4ZTUsIDB4MTQsIDB4OTUsIDB4NWEsCisgIDB4ZTUsIDB4MTMsIDB4OTUsIDB4NTksIDB4NDAsIDB4MDYsIDB4ODUsIDB4NTksIDB4MTMsIDB4ODUsIDB4NWEsIDB4MTQsIDB4MTIsIDB4MGIsIDB4YmEsIDB4MDIsCisgIDB4MGEsIDB4MmIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MGIsIDB4NzUsIDB4NTYsIDB4ZmYsIDB4NzUsIDB4NTcsIDB4MGQsIDB4NzV9fSwKKyB7MHgwODg2LCA2NCwgeyAweDU4LCAweGRjLCAweDgwLCAweDJkLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDBiLCAweDc1LCAweDU2LCAweGZmLCAweDc1LCAweDU3LCAweDBkLAorICAweDc1LCAweDU4LCAweGUwLCAweDgwLCAweDFiLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAyLCAweDBiLCAweDc1LCAweDU2LCAweGZmLCAweDc1LAorICAweDU3LCAweDBkLCAweDc1LCAweDU4LCAweGYwLCAweDgwLCAweDA5LCAweDc1LCAweDU2LCAweGZmLCAweDc1LCAweDU3LCAweDBlLCAweDc1LCAweDU4LCAweDFlLAorICAweDkwLCAweDdmLCAweGVlLCAweGUwLCAweDc1LCAweDU5LCAweDAwLCAweGY1LCAweDVhLCAweGFlLCAweDU3LCAweGFmLCAweDU4LCAweDhlLCAweDE1fX0sCisgezB4MDhjNiwgNjQsIHsgMHg4ZiwgMHgxNiwgMHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHg4ZSwgMHgxMywgMHhmNSwgMHgxNCwgMHhkMywgMHg5NSwgMHg1YSwKKyAgMHhlNSwgMHgxMywgMHg5NSwgMHg1OSwgMHg0MCwgMHgwNiwgMHg4NSwgMHg1OSwgMHgxMywgMHg4NSwgMHg1YSwgMHgxNCwgMHgxMiwgMHgwYiwgMHhiYSwgMHgwMiwKKyAgMHgwYSwgMHgyYiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhlNSwgMHgxMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYSwKKyAgMHgyYiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgxMSwgMHgwMiwgMHgwYSwgMHgyYiwgMHgxMiwgMHgwYywgMHgyNCwgMHg5MCwgMHg3Zn19LAorIHsweDA5MDYsIDY0LCB7IDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MTAsIDB4MDIsIDB4MGEsIDB4MmIsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MTAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsCisgIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGEsIDB4MmIsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4N2YsIDB4NjAsIDB4MjcsIDB4MTQsIDB4NjAsIDB4MzQsCisgIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGEsIDB4MjQsIDB4YTIsIDB4MTYsIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4MjUsIDB4ZTAsIDB4ZmYsIDB4YTIsCisgIDB4MTgsIDB4ZTQsIDB4MzMsIDB4NGYsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzR9fSwKKyB7MHgwOTQ2LCA2NCwgeyAweDAyLCAweGYwLCAweDAyLCAweDBhLCAweDJiLCAweGU0LCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLAorICAweGYwLCAweDAyLCAweDBhLCAweDJiLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLAorICAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGUwLAorICAweDU0LCAweGZkLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwfX0sCisgezB4MDk4NiwgNjQsIHsgMHgwMiwgMHgwYSwgMHgyYiwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxNywgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwYSwKKyAgMHgyYiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg2NCwgMHgwMSwgMHg2MCwgMHgwMywgMHgwMiwgMHgwYSwgMHgyNCwgMHhjMiwgMHgxNiwgMHgwMiwgMHgwYSwKKyAgMHgyYiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHg3NiwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwKKyAgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNH19LAorIHsweDA5YzYsIDY0LCB7IDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4MTMsIDB4MTMsIDB4MTMsIDB4NTQsIDB4MWYsCisgIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4ODAsIDB4NDUsIDB4OTAsCisgIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTAsIDB4MjQsIDB4MDIsIDB4NzAsIDB4MzksIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NjQsCisgIDB4MDEsIDB4NzAsIDB4MmEsIDB4ZDIsIDB4MTYsIDB4ODAsIDB4MmQsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MjAsIDB4OTAsIDB4N2Z9fSwKKyB7MHgwYTA2LCA2NCwgeyAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LAorICAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweDgwLCAweDA3LCAweDkwLCAweDdmLCAweGI0LAorICAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDIyLCAweGMyLCAweDEwLCAweGU0LCAweGY1LAorICAweDEwLCAweGY1LCAweDM0LCAweGMyLCAweDA5LCAweGMyLCAweDBjLCAweGMyLCAweDBiLCAweGMyLCAweDE0LCAweGMyLCAweDBkLCAweGMyLCAweDE1fX0sCisgezB4MGE0NiwgNjQsIHsgMHhjMiwgMHgxMSwgMHhjMiwgMHgwNywgMHhjMiwgMHgxMiwgMHhjMiwgMHgwZiwgMHhjMiwgMHgwOCwgMHhmNSwgMHgzNSwgMHhmNSwgMHgzOSwgMHhmNSwgMHg1MywgMHhmNSwKKyAgMHgzYSwgMHhmNSwgMHgzMywgMHhmNSwgMHgzMCwgMHhmNSwgMHgyZiwgMHhmNSwgMHgyZSwgMHhmNSwgMHgyZCwgMHhmNSwgMHgyYywgMHhmNSwgMHgyYiwgMHhmNSwKKyAgMHgyYSwgMHhmNSwgMHgyOSwgMHhmNSwgMHgyOCwgMHhmNSwgMHgyNywgMHhmNSwgMHgyNiwgMHhmNSwgMHgyNSwgMHhmNSwgMHgyNCwgMHhjMiwgMHgwNSwgMHhjMiwKKyAgMHgxNywgMHhjMiwgMHgxOSwgMHhjMiwgMHgxNiwgMHhjMiwgMHgxOCwgMHhjMiwgMHgwNCwgMHhkMiwgMHgxMywgMHhjMiwgMHgwNiwgMHhjMiwgMHgwMX19LAorIHsweDBhODYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4ZDIsIDB4ZTgsIDB4NDMsIDB4ZDgsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4NzQsIDB4MDEsCisgIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTksIDB4ZjAsIDB4OTAsCisgIDB4N2YsIDB4YWEsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWYsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsCisgIDB4ZTAsIDB4NDQsIDB4MGYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWMsIDB4NzQsIDB4MGUsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4ZDIsIDB4YmMsIDB4ZDJ9fSwKKyB7MHgwYWM2LCA2NCwgeyAweDFhLCAweDEyLCAweDBmLCAweDdkLCAweGMyLCAweDE3LCAweDMwLCAweDA0LCAweDAzLCAweDEyLCAweDA0LCAweDQ4LCAweDMwLCAweDA0LCAweDJhLCAweDMwLCAweDA2LAorICAweDI3LCAweGMyLCAweDA2LCAweGU1LCAweDEyLCAweDYwLCAweDE2LCAweDE1LCAweDEyLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweDMwLCAweGU2LCAweDA0LAorICAweDdmLCAweDAwLCAweDgwLCAweDAyLCAweDdmLCAweDIwLCAweDkwLCAweDdmLCAweDk2LCAweGVmLCAweGYwLCAweDgwLCAweDA2LCAweDkwLCAweDdmLCAweDk2LAorICAweDc0LCAweDIwLCAweGYwLCAweDEyLCAweDBiLCAweDE0LCAweDgwLCAweGNkLCAweDMwLCAweDE3LCAweDA3LCAweGMyLCAweDE3LCAweDEyLCAweDA3fX0sCisgezB4MGIwNiwgNjQsIHsgMHhjMCwgMHg4MCwgMHhjMywgMHgzMCwgMHgxOSwgMHhjMCwgMHhjMiwgMHgxOSwgMHgxMiwgMHgwZSwgMHhkYywgMHg4MCwgMHhiOSwgMHgyMiwgMHhlNSwgMHgzMSwgMHg2MCwKKyAgMHgwMiwgMHgxNSwgMHgzMSwgMHhlNSwgMHgzOSwgMHg2MCwgMHg1NSwgMHg2NSwgMHgzNSwgMHg3MCwgMHg0YiwgMHhlNSwgMHgzMywgMHhmNCwgMHg2MCwgMHgwMiwKKyAgMHgwNSwgMHgzMywgMHhlNSwgMHgzMywgMHhjMywgMHg5NSwgMHg0NCwgMHg0MCwgMHg0MywgMHhjMiwgMHhhZiwgMHgzMCwgMHgwMiwgMHgxYiwgMHg5MCwgMHg3ZiwKKyAgMHhiOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgyZCwgMHg5MCwgMHg3ZiwgMHhiNywgMHhlNSwgMHgzOSwgMHhmMCwgMHhjMiwgMHgwMiwgMHhlNCwgMHhmNX19LAorIHsweDBiNDYsIDY0LCB7IDB4MzksIDB4ZjUsIDB4MzMsIDB4ZjUsIDB4MzUsIDB4NzUsIDB4MTIsIDB4ZmYsIDB4ODAsIDB4MTksIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MTIsCisgIDB4OTAsIDB4N2YsIDB4YjksIDB4ZTUsIDB4MzksIDB4ZjAsIDB4ZDIsIDB4MDIsIDB4ZTQsIDB4ZjUsIDB4MzksIDB4ZjUsIDB4MzMsIDB4ZjUsIDB4MzUsIDB4NzUsCisgIDB4MTIsIDB4ZmYsIDB4ZDIsIDB4YWYsIDB4ODAsIDB4MDYsIDB4ODUsIDB4MzksIDB4MzUsIDB4ZTQsIDB4ZjUsIDB4MzMsIDB4ZTUsIDB4MmMsIDB4NjAsIDB4MzAsCisgIDB4MjAsIDB4MGYsIDB4MDcsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MzAsIDB4ZTAsIDB4MGYsIDB4ZTUsIDB4MmQsIDB4NjAsIDB4MDYsIDB4ZTR9fSwKKyB7MHgwYjg2LCA2NCwgeyAweGY1LCAweDJkLCAweDQzLCAweDM0LCAweDAxLCAweGU0LCAweGY1LCAweDMwLCAweDgwLCAweDE0LCAweGU1LCAweDMwLCAweGQzLCAweDk1LCAweDQ1LCAweDUwLCAweDBkLAorICAweGU1LCAweDMwLCAweGI1LCAweDQ1LCAweDA2LCAweDc1LCAweDJkLCAweDAxLCAweDQzLCAweDM0LCAweDAxLCAweDA1LCAweDMwLCAweGMyLCAweDBmLCAweDIyLAorICAweDkwLCAweDdmLCAweGQ5LCAweGUwLCAweDMwLCAweGUyLCAweDA0LCAweDdmLCAweDAwLCAweDgwLCAweDAyLCAweDdmLCAweDIwLCAweDkwLCAweDdmLCAweDk2LAorICAweGVmLCAweGYwLCAweDIyLCAweGU1LCAweDE0LCAweDQ1LCAweDEzLCAweDYwLCAweDU3LCAweGFlLCAweDEzLCAweGFmLCAweDE0LCAweGQzLCAweGVmfX0sCisgezB4MGJjNiwgNjQsIHsgMHg5NCwgMHg0MCwgMHhlZSwgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNCwgMHg3ZSwgMHgwMCwgMHg3ZiwgMHg0MCwgMHhjMywgMHhlNSwgMHgxNCwgMHg5ZiwgMHhmNSwgMHgxNCwKKyAgMHhlNSwgMHgxMywgMHg5ZSwgMHhmNSwgMHgxMywgMHhlNCwgMHhmZCwgMHhlZCwgMHhjMywgMHg5ZiwgMHhlNCwgMHg5ZSwgMHg1MCwgMHgxZiwgMHg4NSwgMHgxNiwKKyAgMHg4MiwgMHg4NSwgMHgxNSwgMHg4MywgMHhlMCwgMHhmYywgMHg3NCwgMHgwMCwgMHgyZCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywKKyAgMHhlYywgMHhmMCwgMHgwZCwgMHgwNSwgMHgxNiwgMHhlNSwgMHgxNiwgMHg3MCwgMHgwMiwgMHgwNSwgMHgxNSwgMHg4MCwgMHhkYSwgMHg5MCwgMHg3Zn19LAorIHsweDBjMDYsIDY0LCB7IDB4YTksIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWMsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4ZWYsIDB4ZjAsIDB4MjIsCisgIDB4OTAsIDB4N2YsIDB4YWMsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YjUsIDB4ZjAsIDB4MjIsIDB4ZTQsIDB4OTAsIDB4N2YsCisgIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4MjAsIDB4ZjAsIDB4OTAsIDB4N2YsCisgIDB4OTQsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTcsIDB4NzQsIDB4ODZ9fSwKKyB7MHgwYzQ2LCA2NCwgeyAweGYwLCAweDkwLCAweDdmLCAweDk1LCAweDc0LCAweDAzLCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweDg0LCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweGYwLAorICAweGU0LCAweDkwLCAweDdmLCAweGM3LCAweGYwLCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweDkwLCAweDdmLCAweGNiLCAweGYwLCAweDc1LCAweDk4LCAweDQwLAorICAweDQzLCAweGE4LCAweDEwLCAweDkwLCAweDdmLCAweGRlLCAweDc0LCAweDFmLCAweGYwLCAweDkwLCAweDdmLCAweGRmLCAweDc0LCAweDBmLCAweGYwLCAweGQyLAorICAweDA0LCAweDIyLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDAyLCAweGU3LCAweDIyfX0sCisgezB4MGM4NiwgNjQsIHsgMHhiYiwgMHhmZSwgMHgwMiwgMHhlMywgMHgyMiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwKKyAgMHg4YSwgMHg4MywgMHhmMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwgMHhmMywgMHgyMiwgMHhkMCwgMHg4MywgMHhkMCwKKyAgMHg4MiwgMHhmOCwgMHhlNCwgMHg5MywgMHg3MCwgMHgxMiwgMHg3NCwgMHgwMSwgMHg5MywgMHg3MCwgMHgwZCwgMHhhMywgMHhhMywgMHg5MywgMHhmOCwgMHg3NCwKKyAgMHgwMSwgMHg5MywgMHhmNSwgMHg4MiwgMHg4OCwgMHg4MywgMHhlNCwgMHg3MywgMHg3NCwgMHgwMiwgMHg5MywgMHg2OCwgMHg2MCwgMHhlZiwgMHhhM319LAorIHsweDBjYzYsIDY0LCB7IDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGYsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsCisgIDB4OTAsIDB4N2YsIDB4OWQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZTAsIDB4NDQsIDB4NDIsIDB4ZjAsIDB4OTAsIDB4N2YsCisgIDB4OWMsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4NzQsIDB4YmUsIDB4ZjAsIDB4MzAsCisgIDB4MTYsIDB4MDQsIDB4N2YsIDB4ODAsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MDAsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZWYsIDB4ZjAsIDB4ZTQsIDB4OTB9fSwKKyB7MHgwZDA2LCA2NCwgeyAweDdmLCAweDk1LCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweGYwLCAweDIyLCAweGMwLCAweGUwLCAweGMwLCAweGYwLCAweGMwLAorICAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGMwLCAweGQwLCAweDc1LCAweGQwLAorICAweDA4LCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGE5LCAweDc0LCAweDAxLCAweGYwLCAweDEyLCAweDBiLCAweGJhLCAweGQwLCAweGQwLCAweGQwLAorICAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGYwLCAweGQwLCAweGUwLCAweDMyLCAweGMwfX0sCisgezB4MGQ0NiwgNjQsIHsgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhjNCwKKyAgMHhlNCwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwNCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwKKyAgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDBkODYsIDY0LCB7IDB4MDAsIDB4MTIsIDB4MDEsIDB4MTAsIDB4MDEsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4NDAsIDB4Y2QsIDB4MDYsIDB4MWMsIDB4MDEsIDB4MDEsIDB4MDAsIDB4MDEsIDB4MDIsCisgIDB4MDAsIDB4MDIsIDB4MDksIDB4MDIsIDB4NDMsIDB4MDAsIDB4MDEsIDB4MDEsIDB4MDAsIDB4ODAsIDB4MzIsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MDcsCisgIDB4ZmYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDEsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsCisgIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDMsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4ODEsIDB4MDIsIDB4NDAsIDB4MDB9fSwKKyB7MHgwZGM2LCA2NCwgeyAweDAxLCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgzLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LAorICAweDg0LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA0LCAweDAzLCAweDA5LCAweDA0LCAweDEwLCAweDAzLCAweDRiLCAweDAwLCAweDY1LCAweDAwLCAweDc5LAorICAweDAwLCAweDczLCAweDAwLCAweDcwLCAweDAwLCAweDYxLCAweDAwLCAweDZlLCAweDAwLCAweDJlLCAweDAzLCAweDRiLCAweDAwLCAweDY1LCAweDAwLCAweDc5LAorICAweDAwLCAweDczLCAweDAwLCAweDcwLCAweDAwLCAweDYxLCAweDAwLCAweDZlLCAweDAwLCAweDIwLCAweDAwLCAweDU1LCAweDAwLCAweDUwLCAweDAwfX0sCisgezB4MGUwNiwgNjQsIHsgMHg1MywgMHgwMCwgMHg0OCwgMHgwMCwgMHgzMSwgMHgwMCwgMHgzMSwgMHgwMCwgMHgzMiwgMHgwMCwgMHgyZCwgMHgwMCwgMHg1MywgMHgwMCwgMHg2NSwgMHgwMCwgMHg3MiwKKyAgMHgwMCwgMHg2OSwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2YywgMHgwMCwgMHgyMiwgMHgwMywgMHg1NSwgMHgwMCwgMHg1MywgMHgwMCwgMHg0MSwgMHgwMCwgMHgyZCwKKyAgMHgwMCwgMHgzNSwgMHgwMCwgMHgzMywgMHgwMCwgMHgyMCwgMHgwMCwgMHgzMiwgMHgwMCwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwMCwgMHgzMiwgMHgwMCwgMHg2MSwKKyAgMHgwMCwgMHg3MCwgMHgwMCwgMHg3MiwgMHgwMCwgMHgzMiwgMHgwMCwgMHgzNiwgMHgwMCwgMHgwMCwgMHgwMCwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4M319LAorIHsweDBlNDYsIDY0LCB7IDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsCisgIDB4NzQsIDB4MDIsIDB4ZjAsIDB4ZDIsIDB4MDYsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsCisgIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsCisgIDB4MDAsIDB4ZDIsIDB4MTcsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDB9fSwKKyB7MHgwZTg2LCA2NCwgeyAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLAorICAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDE5LCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLAorICAweDc0LCAweDA4LCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLAorICAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwfX0sCisgezB4MGVjNiwgNjQsIHsgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhOSwgMHg3NCwgMHgwMiwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwKKyAgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHgxMiwgMHgwYywgMHhjYSwgMHgxMiwgMHgwZiwgMHhiMywgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHgzMCwKKyAgMHhlNywgMHgxMiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg3ZiwgMHgwZCwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwMCwgMHgwMywgMHg5MCwgMHg3ZiwgMHhkNiwKKyAgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHgxMiwgMHgwYywgMHgyNCwgMHgyMiwgMHgwMCwgMHgwMiwgMHgwZSwgMHg2OSwgMHgwMCwgMHgwMiwgMHgwZX19LAorIHsweDBmMDYsIDY0LCB7IDB4NDIsIDB4MDAsIDB4MDIsIDB4MGQsIDB4NDUsIDB4MDAsIDB4MDIsIDB4MGUsIDB4OTAsIDB4MDAsIDB4MDIsIDB4MGYsIDB4MTAsIDB4MDAsIDB4MDIsIDB4MGYsIDB4MTQsCisgIDB4MDAsIDB4MDIsIDB4MGQsIDB4MTIsIDB4MDAsIDB4MDIsIDB4MGYsIDB4MWMsIDB4MDAsIDB4MDIsIDB4MGUsIDB4YjcsIDB4MDAsIDB4MDIsIDB4MGYsIDB4MjQsCisgIDB4MDAsIDB4MDIsIDB4MGYsIDB4MzMsIDB4MDAsIDB4MDIsIDB4MGYsIDB4MmMsIDB4MDAsIDB4MDIsIDB4MGYsIDB4NTgsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsCisgIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTB9fSwKKyB7MHgwZjQ2LCA2NCwgeyAweDdmLCAweGE5LCAweDc0LCAweDA0LCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLAorICAweDMyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLAorICAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGE5LCAweDc0LCAweDA4LCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLAorICAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweGUwLCAweDQ0fX0sCisgezB4MGY4NiwgNjEsIHsgMHgwOCwgMHhmMCwgMHgzMCwgMHgxYSwgMHgwNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg3ZiwgMHhmNCwgMHg3ZSwgMHgwMSwgMHgxMiwgMHgwMCwgMHgwMywgMHg5MCwKKyAgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHhlMCwgMHg0NCwgMHgwNCwgMHhmMCwgMHgyMiwgMHg3NCwgMHgwMCwgMHhmNSwgMHg4NiwgMHg5MCwKKyAgMHhmZCwgMHhhNSwgMHg3YywgMHgwNSwgMHhhMywgMHhlNSwgMHg4MiwgMHg0NSwgMHg4MywgMHg3MCwgMHhmOSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwKKyAgMHg0NCwgMHg4MCwgMHhmMCwgMHg0MywgMHg4NywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMn19LAorIHsweGZmZmYsCTAsCXsweDAwfX0KK307CisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3BkYS5TIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fcGRhLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDE4ZmU2OQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3BkYS5TCkBAIC0wLDAgKzEsMTEyNCBAQAorLyogICRJZDogbG9vcC5zLHYgMS4yMyAyMDAwLzAzLzIwIDA5OjQ5OjA2IHdhcm5lciBFeHAgJAorICogCisgKiAgRmlybXdhcmUgZm9yIHRoZSBLZXlzcGFuIFBEQSBTZXJpYWwgQWRhcHRlciwgYSBVU0Igc2VyaWFsIHBvcnQgYmFzZWQgb24KKyAqICB0aGUgRXpVU0IgbWljcm9jb250cm9sbGVyLgorICogCisgKiAgKEMpIENvcHlyaWdodCAyMDAwIEJyaWFuIFdhcm5lciA8d2FybmVyQGxvdGhhci5jb20+CisgKiAKKyAqIAlUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogCWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAJdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIAkoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogCisgKiAgIktleXNwYW4gUERBIFNlcmlhbCBBZGFwdGVyIiBpcyBwcm9iYWJseSBhIGNvcHlyaWdodCBvZiBLZXlzcGFuLCB0aGUKKyAqICBjb21wYW55LgorICogCisgKiAgVGhpcyBzZXJpYWwgYWRhcHRlciBpcyBiYXNpY2FsbHkgYW4gRXpVU0IgY2hpcCBhbmQgYW4gUlMtMjMyIGxpbmUgZHJpdmVyCisgKiAgaW4gYSBsaXR0bGUgd2lkZ2V0IHRoYXQgaGFzIGEgREItOSBvbiBvbmUgZW5kIGFuZCBhIFVTQiBwbHVnIG9uIHRoZSBvdGhlci4KKyAqICBJdCB1c2VzIHRoZSBFelVTQidzIGludGVybmFsIFVBUlQwICh1c2luZyB0aGUgcGlucyBmcm9tIFBvcnQgQykgYW5kIHRpbWVyMgorICogIGFzIGEgYmF1ZC1yYXRlIGdlbmVyYXRvci4gVGhlIHdpcmluZyBpczoKKyAqICAgUEMwL1J4RDAgPC0gcnhkIChEQjkgcGluIDIpICAgICAgICAgUEM0IDwtIGRzciBwaW4gNgorICogICBQQzEvVHhEMCAtPiB0eGQgcGluIDMgICAgICAgICAgICAgICBQQzUgPC0gcmkgIHBpbiA5CisgKiAgIFBDMiAgICAgIC0+IHJ0cyBwaW4gNyAgICAgICAgICAgICAgIFBDNiA8LSBkY2QgcGluIDEKKyAqICAgUEMzICAgICAgPC0gY3RzIHBpbiA4ICAgICAgICAgICAgICAgUEM3IC0+IGR0ciBwaW4gNAorICogICBQQjEgLT4gbGluZSBkcml2ZXIgc3RhbmRieQorICoKKyAqICBUaGUgRXpVU0IgcmVnaXN0ZXIgY29uc3RhbnRzIGJlbG93IGNvbWUgZnJvbSB0aGVpciBleGNlbGxlbnQgZG9jdW1lbnRhdGlvbgorICogIGFuZCBzYW1wbGUgY29kZSAod2hpY2ggdXNlZCB0byBiZSBhdmFpbGFibGUgYXQgd3d3LmFuY2hvcmNoaXBzLmNvbSwgYnV0CisgKiAgdGhhdCBoYXMgbm93IGJlZW4gYWJzb3JiZWQgaW50byBDeXByZXNzJyBzaXRlIGFuZCB0aGUgQ0QtUk9NIGNvbnRlbnRzCisgKiAgZG9uJ3QgYXBwZWFyIHRvIGJlIGF2YWlsYWJsZSBvbmxpbmUgYW55bW9yZSkuIElmIHdlIGdldCBtdWx0aXBsZQorICogIEV6VVNCLWJhc2VkIGRyaXZlcnMgaW50byB0aGUga2VybmVsLCBpdCBtaWdodCBiZSB1c2VmdWwgdG8gcHVsbCB0aGVtIG91dAorICogIGludG8gYSBzZXBhcmF0ZSAuaCBmaWxlLgorICogCisgKiBUSEVPUlkgT0YgT1BFUkFUSU9OOgorICoKKyAqICAgVGhlcmUgYXJlIHR3byAyNTYtYnl0ZSByaW5nIGJ1ZmZlcnMsIG9uZSBmb3IgdHgsIG9uZSBmb3IgcnguCisgKgorICogICBFUDJvdXQgaXMgcHVyZSB0eCBkYXRhLiBXaGVuIGl0IGFwcGVhcnMsIHRoZSBkYXRhIGlzIGNvcGllZCBpbnRvIHRoZSB0eAorICogICByaW5nIGFuZCBzZXJpYWwgdHJhbnNtaXNzaW9uIGlzIHN0YXJ0ZWQgaWYgaXQgd2Fzbid0IGFscmVhZHkgcnVubmluZy4gVGhlCisgKiAgICJ0eCBidWZmZXIgZW1wdHkiIGludGVycnVwdCBtYXkga2ljayBvZmYgYW5vdGhlciBjaGFyYWN0ZXIgaWYgdGhlIHJpbmcKKyAqICAgc3RpbGwgaGFzIGRhdGEuIElmIHRoZSBob3N0IGlzIHR4LWJsb2NrZWQgYmVjYXVzZSB0aGUgcmluZyBmaWxsZWQgdXAsCisgKiAgIGl0IHdpbGwgcmVxdWVzdCBhICJ0eCB1bnRocm90dGxlIiBpbnRlcnJ1cHQuIElmIHNlbmRpbmcgYSBzZXJpYWwgY2hhcmFjdGVyCisgKiAgIGVtcHRpZXMgdGhlIHJpbmcgYmVsb3cgdGhlIGRlc2lyZWQgdGhyZXNob2xkLCB3ZSBzZXQgYSBiaXQgdGhhdCB3aWxsIHNlbmQKKyAqICAgdXAgdGhlIHR4IHVudGhyb3R0bGUgbWVzc2FnZSBhcyBzb29uIGFzIHRoZSByeCBidWZmZXIgYmVjb21lcyBmcmVlLgorICoKKyAqICAgRVAyaW4gKGludGVycnVwdCkgaXMgdXNlZCB0byBzZW5kIGJvdGggcnggY2hhcnMgYW5kIHJ4IHN0YXR1cyBtZXNzYWdlcworICogICAob25seSAidHggdW50aHJvdHRsZSIgYXQgdGhpcyB0aW1lKSBiYWNrIHVwIHRvIHRoZSBob3N0LiBUaGUgZmlyc3QgYnl0ZQorICogICBvZiB0aGUgcnggbWVzc2FnZSBpbmRpY2F0ZXMgZGF0YSAoMCkgb3Igc3RhdHVzIG1zZyAoMSkuIFN0YXR1cyBtZXNzYWdlcworICogICBhcmUgc2VudCBiZWZvcmUgYW55IGRhdGEuCisgKgorICogICBJbmNvbWluZyBzZXJpYWwgY2hhcmFjdGVycyBhcmUgcHV0IGludG8gdGhlIHJ4IHJpbmcgYnkgdGhlIHNlcmlhbAorICogICBpbnRlcnJ1cHQsIGFuZCB0aGUgRVAyaW4gYnVmZmVyIHNlbnQgaWYgaXQgd2Fzbid0IGFscmVhZHkgaW4gdHJhbnNpdC4KKyAqICAgV2hlbiB0aGUgRVAyaW4gYnVmZmVyIHJldHVybnMsIHRoZSBpbnRlcnJ1cHQgcHJvbXB0cyB1cyB0byBzZW5kIG1vcmUKKyAqICAgcnggY2hhcnMgKG9yIHN0YXR1cyBtZXNzYWdlcykgaWYgdGhleSBhcmUgcGVuZGluZy4KKyAqCisgKiAgIERldmljZSBjb250cm9sIGhhcHBlbnMgdGhyb3VnaCAidmVuZG9yIHNwZWNpZmljIiBjb250cm9sIG1lc3NhZ2VzIG9uIEVQMC4KKyAqICAgQWxsIG1lc3NhZ2VzIGFyZSBkZXN0aW5lZCBmb3IgdGhlICJJbnRlcmZhY2UiICh3aXRoIHRoZSBpbmRleCBhbHdheXMgMCwKKyAqICAgc28gdGhhdCBpZiB0aGVpciB0d28tcG9ydCBkZXZpY2UgbWlnaHQgc29tZWRheSB1c2Ugc2ltaWxhciBmaXJtd2FyZSwgd2UKKyAqICAgY2FuIHVzZSBpbmRleD0xIHRvIHJlZmVyIHRvIHRoZSBzZWNvbmQgcG9ydCkuIFRoZSBtZXNzYWdlcyBkZWZpbmVkIGFyZToKKyAqCisgKiAgICBiUmVxdWVzdCA9IDAgOiBzZXQgYmF1ZC9iaXRzL3Bhcml0eQorICogICAgICAgICAgICAgICAxIDogdW51c2VkCisgKiAgICAgICAgICAgICAgIDIgOiByZXNlcnZlZCBmb3Igc2V0dGluZyBIVyBmbG93IGNvbnRyb2wgKENUU1JUUykKKyAqICAgICAgICAgICAgICAgMyA6IGdldC9zZXQgIm1vZGVtIGluZm8iIChwaW4gc3RhdGVzOiBEVFIsIFJUUywgRENELCBSSSwgZXRjKQorICogICAgICAgICAgICAgICA0IDogc2V0IGJyZWFrIChvbi9vZmYpCisgKiAgICAgICAgICAgICAgIDUgOiByZXNlcnZlZCBmb3IgcmVxdWVzdGluZyBpbnRlcnJ1cHRzIG9uIHBpbiBzdGF0ZSBjaGFuZ2UKKyAqICAgICAgICAgICAgICAgNiA6IHF1ZXJ5IGJ1ZmZlciByb29tIG9yIGNoYXJzIGluIHR4IGJ1ZmZlcgorICogICAgICAgICAgICAgICA3IDogcmVxdWVzdCB0eCB1bnRocm90dGxlIGludGVycnVwdAorICoKKyAqICBUaGUgaG9zdC1zaWRlIGRyaXZlciBpcyBzZXQgdG8gcmVjb2duaXplIHRoZSBkZXZpY2UgSUQgdmFsdWVzIHN0YXNoZWQgaW4KKyAqICBzZXJpYWwgRUVQUk9NICgweDA2Y2QsIDB4MDEwMyksIHByb2dyYW0gdGhpcyBmaXJtd2FyZSBpbnRvIHBsYWNlLCB0aGVuCisgKiAgc3RhcnQgaXQgcnVubmluZy4gVGhpcyBmaXJtd2FyZSB3aWxsIHVzZSBFelVTQidzICJyZW51bWVyYXRpb24iIHRyaWNrIGJ5CisgKiAgc2ltdWxhdGluZyBhIGJ1cyBkaXNjb25uZWN0LCB0aGVuIHJlY29ubmVjdCB3aXRoIGEgZGlmZmVyZW50IGRldmljZSBJRAorICogIChlbmNvZGVkIGluIHRoZSBkZXNjX2RldmljZSBkZXNjcmlwdG9yIGJlbG93KS4gVGhlIGhvc3QgZHJpdmVyIHRoZW4KKyAqICByZWNvZ25pemVzIHRoZSBuZXcgZGV2aWNlIElEIGFuZCBnbHVlcyBpdCB0byB0aGUgcmVhbCBzZXJpYWwgZHJpdmVyIGNvZGUuCisgKgorICogVVNFRlVMIERPQ1M6CisgKiAgRXpVU0IgVGVjaG5pY2FsIFJlZmVyZW5jZSBNYW51YWw6IDxodHRwOi8vd3d3LmFuY2hvcmNoaXBzLmNvbT4KKyAqICA4MDUxIG1hbnVhbHM6IGV2ZXJ5d2hlcmUsIGJ1dCB0cnkgd3d3LmRhbHNlbWkuY29tIGJlY2F1c2UgdGhlIEV6VVNCIGlzCisgKiAgIGJhc2ljYWxseSB0aGUgRGFsbGFzIGVuaGFuY2VkIDgwNTEgY29kZS4gUmVtZW1iZXIgdGhhdCB0aGUgRXpVU0IgSU8gcG9ydHMKKyAqICAgdXNlIHRvdGFsbHkgZGlmZmVyZW50IHJlZ2lzdGVycyEKKyAqICBVU0IgMS4xIHNwZWM6IHd3dy51c2Iub3JnCisgKgorICogSE9XIFRPIEJVSUxEOgorICogIGdjYyAteCBhc3NlbWJsZXItd2l0aC1jcHAgLVAgLUUgLW8ga2V5c3Bhbl9wZGEuYXNtIGtleXNwYW5fcGRhLnMKKyAqICBhczMxIC1sIGtleXNwYW5fcGRhLmFzbQorICogIG12IGtleXNwYW5fcGRhLm9iaiBrZXlzcGFuX3BkYS5oZXgKKyAqICBwZXJsIGV6dXNiX2NvbnZlcnQucGwga2V5c3Bhbl9wZGEgPCBrZXlzcGFuX3BkYS5oZXggPiBrZXlzcGFuX3BkYV9mdy5oCisgKiBHZXQgYXMzMSBmcm9tIDxodHRwOi8vd3d3LnBqcmMuY29tL3RlY2gvODA1MS9pbmRleC5odG1sPiwgYW5kIGhhY2sgb24gaXQKKyAqIGEgYml0IHRvIG1ha2UgaXQgYnVpbGQuCisgKgorICogVEhBTktTOgorICogIEdyZWcgS3JvYWgtSGFydG1hbiwgZm9yIGNvb3JkaW5hdGluZyB0aGUgd2hvbGUgdXNiLXNlcmlhbCB0aGluZy4KKyAqICBBbmNob3JDaGlwcywgZm9yIG1ha2luZyBzdWNoIGFuIGluY3JlZGlibHkgdXNlZnVsIGxpdHRsZSBtaWNyb2NvbnRyb2xsZXIuCisgKiAgS2V5U3BhbiwgZm9yIG1ha2luZyBhIGhhbmR5LCBjaGVhcCAoJDQwKSB3aWRnZXQgdGhhdCB3YXMgc28gZWFzeSB0byB0YWtlCisgKiAgICAgICAgICAgYXBhcnQgYW5kIHRyYWNlIHdpdGggYW4gb2htbWV0ZXIuCisgKgorICogVE9ETzoKKyAqICBsb3RzLiBncmVwIGZvciBUT0RPLiBJbnRlcnJ1cHQgc2FmZXR5IG5lZWRzIHN0cmVzcy10ZXN0aW5nLiBCZXR0ZXIgZmxvdworICogIGNvbnRyb2wuIEludGVycnVwdGluZyBob3N0IHVwb24gY2hhbmdlIGluIERDRCwgZXRjLCBjb3VudGluZyB0cmFuc2l0aW9ucy4KKyAqICBOZWVkIHRvIGZpbmQgYSBzYWZlIGRldmljZSBpZCB0byB1c2UgKHRoZSBvbmUgdXNlZCBieSB0aGUgS2V5c3BhbiBmaXJtd2FyZQorICogIHVuZGVyIFdpbmRvd3Mgd291bGQgYmUgaWRlYWwuLiBjYW4gYW55b25lIGZpZ3VyZSBvdXQgd2hhdCBpdCBpcz8pLiBQYXJpdHkuCisgKiAgTW9yZSBiYXVkIHJhdGVzLiBPaCwgYW5kIHRoZSBzdHJpbmctZGVzY3JpcHRvci1sZW5ndGggc2lsaWNvbiBidWcKKyAqICB3b3JrYXJvdW5kIHNob3VsZCBiZSBpbXBsZW1lbnRlZCwgYnV0IEknbSBsYXp5LCBhbmQgdGhlIGNvbnNlcXVlbmNlIGlzCisgKiAgdGhhdCB0aGUgZGV2aWNlIG5hbWUgc3RyaW5ncyB0aGF0IHNob3cgdXAgaW4geW91ciBrZXJuZWwgbG9nIHdpbGwgaGF2ZQorICogIGxvdHMgb2YgdHJhaWxpbmcgYmluYXJ5IGdhcmJhZ2UgaW4gdGhlbSAoYXBwZWFycyBhcyA/Pz8/KS4gRGV2aWNlIHN0cmluZ3MKKyAqICBzaG91bGQgYmUgbWFkZSBtb3JlIGFjY3VyYXRlLgorICoKKyAqIFF1ZXN0aW9ucywgYnVncywgcGF0Y2hlcyB0byBCcmlhbi4KKyAqCisgKiAgLUJyaWFuIFdhcm5lciA8d2FybmVyQGxvdGhhci5jb20+CisgKgorICovCisJCisjZGVmaW5lIEhJR0goeCkgKCgoeCkgJiAweGZmMDApIC8gMjU2KQorI2RlZmluZSBMT1coeCkgKCh4KSAmIDB4ZmYpCisKKyNkZWZpbmUgZHBsMSAweDg0CisjZGVmaW5lIGRwaDEgMHg4NQorI2RlZmluZSBkcHMgMHg4NgorCis7Ozsgb3VyIGJpdCBhc3NpZ25tZW50cworI2RlZmluZSBUWF9SVU5OSU5HIDAKKyNkZWZpbmUgRE9fVFhfVU5USFJPVFRMRSAxCisJCisJOzsgc3RhY2sgZnJvbSAweDYwIHRvIDB4N2Y6IHNob3VsZCByZWFsbHkgc2V0IFNQIHRvIDB4NjAtMSwgbm90IDB4NjAKKyNkZWZpbmUgU1RBQ0sgIzB4NjAtMQorCisjZGVmaW5lIEVYSUYgMHg5MQorI2RlZmluZSBFSUUgMHhlOAorCS5mbGFnIEVVU0IsIEVJRS4wCisJLmZsYWcgRVMwLCBJRS40CisKKyNkZWZpbmUgRVAwQ1MgIzB4N2ZiNAorI2RlZmluZSBFUDBTVEFMTGJpdCAjMHgwMQorI2RlZmluZSBJTjBCVUYgIzB4N2YwMAorI2RlZmluZSBJTjBCQyAjMHg3ZmI1CisjZGVmaW5lIE9VVDBCVUYgIzB4N2VjMAorI2RlZmluZSBPVVQwQkMgIzB4N2ZjNQkJCisjZGVmaW5lIElOMkJVRiAjMHg3ZTAwCisjZGVmaW5lIElOMkJDICMweDdmYjkKKyNkZWZpbmUgSU4yQ1MgIzB4N2ZiOAorI2RlZmluZSBPVVQyQkMgIzB4N2ZjOQorI2RlZmluZSBPVVQyQ1MgIzB4N2ZjOAorI2RlZmluZSBPVVQyQlVGICMweDdkYzAKKyNkZWZpbmUgSU40QlVGICMweDdkMDAKKyNkZWZpbmUgSU40QkMgIzB4N2ZiZAorI2RlZmluZSBJTjRDUyAjMHg3ZmJjCisjZGVmaW5lIE9FQiAjMHg3ZjlkCisjZGVmaW5lIE9VVEIgIzB4N2Y5NworI2RlZmluZSBPRUMgIzB4N2Y5ZQorI2RlZmluZSBPVVRDICMweDdmOTgKKyNkZWZpbmUgUElOU0MgIzB4N2Y5YgorI2RlZmluZSBQT1JUQ0NGRyAjMHg3Zjk1CisjZGVmaW5lIElOMDdJUlEgIzB4N2ZhOQorI2RlZmluZSBPVVQwN0lSUSAjMHg3ZmFhCisjZGVmaW5lIElOMDdJRU4gIzB4N2ZhYworI2RlZmluZSBPVVQwN0lFTiAjMHg3ZmFkCisjZGVmaW5lIFVTQklSUSAjMHg3ZmFiCisjZGVmaW5lIFVTQklFTiAjMHg3ZmFlCisjZGVmaW5lIFVTQkJBViAjMHg3ZmFmCisjZGVmaW5lIFVTQkNTICMweDdmZDYKKyNkZWZpbmUgU1VEUFRSSCAjMHg3ZmQ0CisjZGVmaW5lIFNVRFBUUkwgIzB4N2ZkNQorI2RlZmluZSBTRVRVUERBVCAjMHg3ZmU4CisJCQorCTs7IHVzYiBpbnRlcnJ1cHQgOiBlbmFibGUgaXMgRUlFLjAgKDB4ZTgpLCBmbGFnIGlzIEVYSUYuNCAoMHg5MSkKKworCS5vcmcgMAorCWxqbXAgc3RhcnQKKwk7OyBpbnRlcnJ1cHQgdmVjdG9ycworCS5vcmcgMjNICisJbGptcCBzZXJpYWxfaW50CisJLmJ5dGUgMAorCQorCS5vcmcgNDNICisJbGptcCBVU0JfSnVtcF9UYWJsZQorCS5ieXRlIDAJCQk7IGZpbGxlZCBpbiBieSB0aGUgVVNCIGNvcmUKKworOzs7IGxvY2FsIHZhcmlhYmxlcy4gVGhlc2UgYXJlIG5vdCBpbml0aWFsaXplZCBwcm9wZXJseTogZG8gaXQgYnkgaGFuZC4KKwkub3JnIDMwSAorcnhfcmluZ19pbjoJLmJ5dGUgMAorcnhfcmluZ19vdXQ6CS5ieXRlIDAKK3R4X3JpbmdfaW46CS5ieXRlIDAKK3R4X3Jpbmdfb3V0OgkuYnl0ZSAwCit0eF91bnRocm90dGxlX3RocmVzaG9sZDoJLmJ5dGUgMAorCQkKKwkub3JnIDB4MTAwSAkJOyB3YW50cyB0byBiZSBvbiBhIHBhZ2UgYm91bmRhcnkKK1VTQl9KdW1wX1RhYmxlOgorCWxqbXAJSVNSX1N1ZGF2CTsgU2V0dXAgRGF0YSBBdmFpbGFibGUKKwkuYnl0ZSAwCisJbGptcAkwCQk7IFN0YXJ0IG9mIEZyYW1lCisJLmJ5dGUgMAorCWxqbXAJMAkJOyBTZXR1cCBEYXRhIExvYWRpbmcKKwkuYnl0ZSAwCisJbGptcAkwCQk7IEdsb2JhbCBTdXNwZW5kCisJLmJ5dGUgCTAKKwlsam1wCTAJCTsgVVNCIFJlc2V0ICAJCisJLmJ5dGUJMAorCWxqbXAJMAkJOyBSZXNlcnZlZAorCS5ieXRlCTAKKwlsam1wCTAJCTsgRW5kIFBvaW50IDAgSW4KKwkuYnl0ZQkwCisJbGptcAkwCQk7IEVuZCBQb2ludCAwIE91dAorCS5ieXRlCTAKKwlsam1wCTAJCTsgRW5kIFBvaW50IDEgSW4KKwkuYnl0ZQkwCisJbGptcAkwCQk7IEVuZCBQb2ludCAxIE91dAorCS5ieXRlCTAKKwlsam1wCUlTUl9FcDJpbgorCS5ieXRlCTAKKwlsam1wCUlTUl9FcDJvdXQKKwkuYnl0ZQkwCisKKworCS5vcmcgMHgyMDAKKwkJCitzdGFydDoJbW92IFNQLFNUQUNLLTEgOyBzZXQgc3RhY2sKKwk7OyBjbGVhciBsb2NhbCB2YXJpYWJsZXMKKwljbHIgYQorCW1vdiB0eF9yaW5nX2luLCBhCisJbW92IHR4X3Jpbmdfb3V0LCBhCisJbW92IHJ4X3JpbmdfaW4sIGEKKwltb3YgcnhfcmluZ19vdXQsIGEKKwltb3YgdHhfdW50aHJvdHRsZV90aHJlc2hvbGQsIGEKKwljbHIgVFhfUlVOTklORworCWNsciBET19UWF9VTlRIUk9UVExFCisJCisJOzsgY2xlYXIgZmlmbyB3aXRoICJmZSIKKwltb3YgcjEsIDAKKwltb3YgYSwgIzB4ZmUKKwltb3YgZHB0ciwgI3R4X3JpbmcKK2NsZWFyX3R4X3JpbmdfbG9vcDoKKwltb3Z4IEBkcHRyLCBhCisJaW5jIGRwdHIKKwlkam56IHIxLCBjbGVhcl90eF9yaW5nX2xvb3AKKworCW1vdiBhLCAjMHhmZAorCW1vdiBkcHRyLCAjcnhfcmluZworY2xlYXJfcnhfcmluZ19sb29wOgorCW1vdnggQGRwdHIsIGEKKwlpbmMgZHB0cgorCWRqbnogcjEsIGNsZWFyX3J4X3JpbmdfbG9vcAorCis7OzsgdHVybiBvbiB0aGUgUlMtMjMyIGRyaXZlciBjaGlwIChicmluZyB0aGUgU1RBTkRCWSBwaW4gbG93KQorCTs7IHNldCBPRUIuMQorCW1vdiBhLCAjMDJICisJbW92IGRwdHIsT0VCCisJbW92eCBAZHB0cixhCisJOzsgY2xlYXIgUEIxCisJbW92IGEsICMwMEgKKwltb3YgZHB0cixPVVRCCisJbW92eCBAZHB0cixhCisJOzsgc2V0IE9FQy5bMTI3XQorCW1vdiBhLCAjMHg4NgorCW1vdiBkcHRyLE9FQworCW1vdnggQGRwdHIsYQorCTs7IHNldCBQT1JUQ0NGRy5bMDFdIHRvIHJvdXRlIFR4RDAsUnhEMCB0byBzZXJpYWwgcG9ydAorCW1vdiBkcHRyLCBQT1JUQ0NGRworCW1vdiBhLCAjMHgwMworCW1vdnggQGRwdHIsIGEKKwkKKwk7OyBzZXQgdXAgaW50ZXJydXB0cywgYXV0b3ZlY3RvcmluZworCW1vdiBkcHRyLCBVU0JCQVYKKwltb3Z4IGEsQGRwdHIKKwlzZXRiIGFjYy4wCQk7IEFWRU4gYml0IHRvIDAKKwltb3Z4IEBkcHRyLCBhCisKKwltb3YgYSwjMHgwMQkJOyBlbmFibGUgU1VEQVY6CXNldHVwIGRhdGEgYXZhaWxhYmxlIChmb3IgZXAwKQorCW1vdiBkcHRyLCBVU0JJUlEKKwltb3Z4IEBkcHRyLCBhCQk7IGNsZWFyIFNVREFWSQorCW1vdiBkcHRyLCBVU0JJRU4KKwltb3Z4IEBkcHRyLCBhCisJCisJbW92IGRwdHIsIElOMDdJRU4KKwltb3YgYSwjMHgwNAkJOyBlbmFibGUgSU4yIGludAorCW1vdnggQGRwdHIsIGEKKwkKKwltb3YgZHB0ciwgT1VUMDdJRU4KKwltb3YgYSwjMHgwNAkJOyBlbmFibGUgT1VUMiBpbnQKKwltb3Z4IEBkcHRyLCBhCisJbW92IGRwdHIsIE9VVDJCQworCW1vdnggQGRwdHIsIGEJCTsgYXJtIE9VVDIKKworCW1vdiBhLCAjMHg4NAkJOyB0dXJuIG9uIFJUUywgRFRSCisJbW92IGRwdHIsT1VUQworCW1vdnggQGRwdHIsIGEKKwk7OyBzZXR1cCB0aGUgc2VyaWFsIHBvcnQuIDk2MDAgOE4xLgorCW1vdiBhLCMwMTAxMDAxMQkJOyBtb2RlIDEsIGVuYWJsZSByeCwgY2xlYXIgaW50CisJbW92IFNDT04sIGEKKwk7OyAgdXNpbmcgdGltZXIyLCBpbiAxNi1iaXQgYmF1ZC1yYXRlLWdlbmVyYXRvciBtb2RlCisJOzsgICAoeHRhbCAxMk1IeiwgaW50ZXJuYWwgZm9zYyAyNE1IeikKKwk7OyAgUkNBUDJILFJDQVAyTCA9IDY1NTM2IC0gZm9zYy8oMzIqYmF1ZCkKKwk7OyAgNTc2MDA6IDB4RkZGMi5GLCBzYXkgMHhGRkYzCisJOzsgICA5NjAwOiAweEZGQjEuRSwgc2F5IDB4RkZCMgorCTs7ICAgIDMwMDogMHhGNjNDCisjZGVmaW5lIEJBVUQgOTYwMAorI2RlZmluZSBCQVVEX1RJTUVPVVQocmF0ZSkgKDY1NTM2IC0gKDI0ICogMTAwMCAqIDEwMDApIC8gKDMyICogcmF0ZSkpCisjZGVmaW5lIEJBVURfSElHSChyYXRlKSBISUdIKEJBVURfVElNRU9VVChyYXRlKSkKKyNkZWZpbmUgQkFVRF9MT1cocmF0ZSkgTE9XKEJBVURfVElNRU9VVChyYXRlKSkKKwkJCisJbW92IFQyQ09OLCAjMDMwaAk7IHJjbGs9MSx0Y2xrPTEsY3A9MCx0cjI9MChlbmFibGUgbGF0ZXIpCisJbW92IHIzLCAjNQorCWFjYWxsIHNldF9iYXVkCisJc2V0YiBUUjIKKwltb3YgU0NPTiwgIzA1MGgKKwkKKyNpZiAwCisJbW92IHIxLCAjMHg0MAorCW1vdiBhLCAjMHg0MQorc2VuZDoJCisJbW92IFNCVUYsIGEKKwlpbmMgYQorCWFubCBhLCAjMHgzRgorCW9ybCBhLCAjMHg0MAorOwl4cmwgYSwgIzB4MDIKK3dhaXQxOgkKKwlqbmIgVEksIHdhaXQxCisJY2xyIFRJCisJZGpueiByMSwgc2VuZAorO2RvbmU6CXNqbXAgZG9uZQorCisjZW5kaWYKKwkKKwlzZXRiIEVVU0IKKwlzZXRiIEVBCisJc2V0YiBFUzAKKwk7YWNhbGwgZHVtcF9zdGF0CisKKwk7OyBoZXksIHdoYXQgc2F5IHdlIFJFTlVNRVJBVEUhIChUUk0gcC42MikKKwltb3YgYSwgIzAKKwltb3YgZHBzLCBhCisJbW92IGRwdHIsIFVTQkNTCisJbW92IGEsICMweDAyCQk7IERJU0NPTj0wLCBESVNDT0U9MCwgUkVOVU09MQorCW1vdnggQGRwdHIsIGEKKwk7OyBub3cgcHJlc2VuY2UgcGluIGlzIGZsb2F0aW5nLCBzaW11bGF0aW5nIGRpc2Nvbm5lY3QuIHdhaXQgMC41cworCW1vdiByMSwgIzQ2CityZW51bV93YWl0MToKKwltb3YgcjIsICMwCityZW51bV93YWl0MjoKKwltb3YgcjMsICMwCityZW51bV93YWl0MzoKKwlkam56IHIzLCByZW51bV93YWl0MworCWRqbnogcjIsIHJlbnVtX3dhaXQyCisJZGpueiByMSwgcmVudW1fd2FpdDEJOyB3YWl0IGFib3V0IG4qKDI1Nl4yKSA2TUh6IGNsb2NrcworCW1vdiBhLCAjMHgwNgkJOyBESVNDT049MCwgRElTQ09FPTEsIFJFTlVNPTEKKwltb3Z4IEBkcHRyLCBhCisJOzsgd2UgYXJlIGJhY2sgb25saW5lLiB0aGUgaG9zdCBkZXZpY2Ugd2lsbCBub3cgcmUtcXVlcnkgdXMKKwkKKwkKK21haW46CXNqbXAgbWFpbgorCisJCisKK0lTUl9TdWRhdjoKKwlwdXNoIGRwcworCXB1c2ggZHBsCisJcHVzaCBkcGgKKwlwdXNoIGRwbDEKKwlwdXNoIGRwaDEKKwlwdXNoIGFjYworCW1vdiBhLEVYSUYKKwljbHIgYWNjLjQKKwltb3YgRVhJRixhCQk7IGNsZWFyIElOVDIgZmlyc3QKKwltb3YgZHB0ciwgVVNCSVJRCTsgY2xlYXIgVVNCIGludAorCW1vdiBhLCMwMWgKKwltb3Z4IEBkcHRyLGEKKworCTs7IGdldCByZXF1ZXN0IHR5cGUKKwltb3YgZHB0ciwgU0VUVVBEQVQKKwltb3Z4IGEsIEBkcHRyCisJbW92IHIxLCBhCQk7IHIxID0gYm1SZXF1ZXN0VHlwZQorCWluYyBkcHRyCisJbW92eCBhLCBAZHB0cgorCW1vdiByMiwgYQkJOyByMiA9IGJSZXF1ZXN0CisJaW5jIGRwdHIKKwltb3Z4IGEsIEBkcHRyCisJbW92IHIzLCBhCQk7IHIzID0gd1ZhbHVlTAorCWluYyBkcHRyCisJbW92eCBhLCBAZHB0cgorCW1vdiByNCwgYQkJOyByNCA9IHdWYWx1ZUgKKworCTs7IG1haW4gc3dpdGNoIG9uIGJtUmVxdWVzdC50eXBlOiBzdGFuZGFyZCBvciB2ZW5kb3IKKwltb3YgYSwgcjEKKwlhbmwgYSwgIzB4NjAKKwljam5lIGEsICMweDAwLCBzZXR1cF9ibXJlcV90eXBlX25vdF9zdGFuZGFyZAorCTs7IHN0YW5kYXJkIHJlcXVlc3Q6IG5vdyBtYWluIHN3aXRjaCBpcyBvbiBiUmVxdWVzdAorCWxqbXAgc2V0dXBfYm1yZXFfaXNfc3RhbmRhcmQKKwkKK3NldHVwX2JtcmVxX3R5cGVfbm90X3N0YW5kYXJkOgkKKwk7OyBhIHN0aWxsIGhhcyBibXJlcSYweDYwCisJY2puZSBhLCAjMHg0MCwgc2V0dXBfYm1yZXFfdHlwZV9ub3RfdmVuZG9yCisJOzsgQW5jaG9yIHJlc2VydmVzIGJSZXF1ZXN0IDB4YTAtMHhhZiwgd2UgdXNlIHNtYWxsIG9uZXMKKwk7OyBzd2l0Y2ggb24gYlJlcXVlc3QuIGJtUmVxdWVzdCB3aWxsIGFsd2F5cyBiZSAweDQxIG9yIDB4YzEKKwljam5lIHIyLCAjMHgwMCwgc2V0dXBfY3RybF9ub3RfMDAKKwk7OyAwMCBpcyBzZXQgYmF1ZCwgd1ZhbHVlWzBdIGhhcyBiYXVkIHJhdGUgaW5kZXgKKwlsY2FsbCBzZXRfYmF1ZAkJOyBpbmRleCBpbiByMywgY2Fycnkgc2V0IGlmIGVycm9yCisJamMgc2V0dXBfYm1yZXFfdHlwZV9ub3Rfc3RhbmRhcmRfX2RvX3N0YWxsCisJbGptcCBzZXR1cF9kb25lX2Fjaworc2V0dXBfYm1yZXFfdHlwZV9ub3Rfc3RhbmRhcmRfX2RvX3N0YWxsOgorCWxqbXAgc2V0dXBfc3RhbGwKK3NldHVwX2N0cmxfbm90XzAwOgorCWNqbmUgcjIsICMweDAxLCBzZXR1cF9jdHJsX25vdF8wMQorCTs7IDAxIGlzIHJlc2VydmVkIGZvciBzZXQgYml0cyAocGFyaXR5KS4gVE9ETworCWxqbXAgc2V0dXBfc3RhbGwKK3NldHVwX2N0cmxfbm90XzAxOgorCWNqbmUgcjIsICMweDAyLCBzZXR1cF9jdHJsX25vdF8wMgorCTs7IDAyIGlzIHNldCBIVyBmbG93IGNvbnRyb2wuIFRPRE8KKwlsam1wIHNldHVwX3N0YWxsCitzZXR1cF9jdHJsX25vdF8wMjoKKwljam5lIHIyLCAjMHgwMywgc2V0dXBfY3RybF9ub3RfMDMKKwk7OyAwMyBpcyBjb250cm9sIHBpbnMgKFJUUywgRFRSKS4KKwlsam1wIGNvbnRyb2xfcGlucwk7IHdpbGwganVtcCB0byBzZXR1cF9kb25lX2FjaywKKwkJCQk7ICBvciBzZXR1cF9yZXR1cm5fb25lX2J5dGUKK3NldHVwX2N0cmxfbm90XzAzOgorCWNqbmUgcjIsICMweDA0LCBzZXR1cF9jdHJsX25vdF8wNAorCTs7IDA0IGlzIHNlbmQgYnJlYWsgKHJlYWxseSAidHVybiBicmVhayBvbi9vZmYiKS4gVE9ETworCWNqbmUgcjMsICMweDAwLCBzZXR1cF9jdHJsX2RvX2JyZWFrX29uCisJOzsgZG8gYnJlYWsgb2ZmOiByZXN0b3JlIFBPUlRDQ0ZHLjEgdG8gcmVjb25uZWN0IFR4RDAgdG8gc2VyaWFsIHBvcnQKKwltb3YgZHB0ciwgUE9SVENDRkcKKwltb3Z4IGEsIEBkcHRyCisJb3JsIGEsICMweDAyCisJbW92eCBAZHB0ciwgYQorCWxqbXAgc2V0dXBfZG9uZV9hY2sKK3NldHVwX2N0cmxfZG9fYnJlYWtfb246CisJOzsgZG8gYnJlYWsgb246IGNsZWFyIFBPUlRDQ0ZHLjAsIHNldCBUeEQgaGlnaCg/KSAoYjEgbG93KQorCW1vdiBkcHRyLCBPVVRDCisJbW92eCBhLCBAZHB0cgorCWFubCBhLCAjMHhmZAkJOyB+MHgwMgorCW1vdnggQGRwdHIsIGEKKwltb3YgZHB0ciwgUE9SVENDRkcKKwltb3Z4IGEsIEBkcHRyCisJYW5sIGEsICMweGZkCQk7IH4weDAyCisJbW92eCBAZHB0ciwgYQorCWxqbXAgc2V0dXBfZG9uZV9hY2sKK3NldHVwX2N0cmxfbm90XzA0OgorCWNqbmUgcjIsICMweDA1LCBzZXR1cF9jdHJsX25vdF8wNQorCTs7IDA1IGlzIHNldCBkZXNpcmVkIGludGVycnVwdCBiaXRtYXAuIFRPRE8KKwlsam1wIHNldHVwX3N0YWxsCitzZXR1cF9jdHJsX25vdF8wNToKKwljam5lIHIyLCAjMHgwNiwgc2V0dXBfY3RybF9ub3RfMDYKKwk7OyAwNiBpcyBxdWVyeSByb29tCisJY2puZSByMywgIzB4MDAsIHNldHVwX2N0cmxfMDZfbm90XzAwCisJOzsgMDYsIHdWYWx1ZVswXT0wIGlzIHF1ZXJ5IHdyaXRlX3Jvb20KKwltb3YgYSwgdHhfcmluZ19vdXQKKwlzZXRiIGMKKwlzdWJiIGEsIHR4X3JpbmdfaW4JOyBvdXQtMS1pbiA9IDI1NSAtIChpbi1vdXQpCisJbGptcCBzZXR1cF9yZXR1cm5fb25lX2J5dGUKK3NldHVwX2N0cmxfMDZfbm90XzAwOgorCWNqbmUgcjMsICMweDAxLCBzZXR1cF9jdHJsXzA2X25vdF8wMQorCTs7IDA2LCB3VmFsdWVbMF09MSBpcyBxdWVyeSBjaGFyc19pbl9idWZmZXIKKwltb3YgYSwgdHhfcmluZ19pbgorCWNsciBjCisJc3ViYiBhLCB0eF9yaW5nX291dAk7IGluLW91dAorCWxqbXAgc2V0dXBfcmV0dXJuX29uZV9ieXRlCitzZXR1cF9jdHJsXzA2X25vdF8wMToJCisJbGptcCBzZXR1cF9zdGFsbAorc2V0dXBfY3RybF9ub3RfMDY6CisJY2puZSByMiwgIzB4MDcsIHNldHVwX2N0cmxfbm90XzA3CisJOzsgMDcgaXMgcmVxdWVzdCB0eCB1bnRocm90dGxlIGludGVycnVwdAorCW1vdiB0eF91bnRocm90dGxlX3RocmVzaG9sZCwgcjM7IHdWYWx1ZVswXSBpcyB0aHJlc2hvbGQgdmFsdWUKKwlsam1wIHNldHVwX2RvbmVfYWNrCitzZXR1cF9jdHJsX25vdF8wNzoKKwlsam1wIHNldHVwX3N0YWxsCisJCitzZXR1cF9ibXJlcV90eXBlX25vdF92ZW5kb3I6CisJbGptcCBzZXR1cF9zdGFsbAorCisKK3NldHVwX2JtcmVxX2lzX3N0YW5kYXJkOgkKKwljam5lIHIyLCAjMHgwMCwgc2V0dXBfYnJlcV9ub3RfMDAKKwk7OyAwMDoJR2V0X1N0YXR1cyAoc3ViLXN3aXRjaCBvbiBibVJlcXVlc3RUeXBlOiBkZXZpY2UsIGVwLCBpbnQpCisJY2puZSByMSwgIzB4ODAsIHNldHVwX0dldF9TdGF0dXNfbm90X2RldmljZQorCTs7IEdldF9TdGF0dXMoZGV2aWNlKQorCTs7ICBhcmUgd2Ugc2VsZi1wb3dlcmVkPyBuby4gY2FuIHdlIGRvIHJlbW90ZSB3YWtldXA/IG5vCisJOzsgICBzbyByZXR1cm4gdHdvIHplcm8gYnl0ZXMuIFRoaXMgaXMgcmV1c2FibGUKK3NldHVwX3JldHVybl90d29femVyb19ieXRlczoKKwltb3YgZHB0ciwgSU4wQlVGCisJY2xyIGEKKwltb3Z4IEBkcHRyLCBhCisJaW5jIGRwdHIKKwltb3Z4IEBkcHRyLCBhCisJbW92IGRwdHIsIElOMEJDCisJbW92IGEsICMyCisJbW92eCBAZHB0ciwgYQorCWxqbXAgc2V0dXBfZG9uZV9hY2sKK3NldHVwX0dldF9TdGF0dXNfbm90X2RldmljZToKKwljam5lIHIxLCAjMHg4Miwgc2V0dXBfR2V0X1N0YXR1c19ub3RfZW5kcG9pbnQKKwk7OyBHZXRfU3RhdHVzKGVuZHBvaW50KQorCTs7ICBtdXN0IGdldCBzdGFsbCBiaXQgZm9yIGVwW3dJbmRleExdLCByZXR1cm4gdHdvIGJ5dGVzLCBiaXQgaW4gbHNiIDAKKwk7OyBmb3Igbm93OiBjaGVhdC4gVE9ETworCXNqbXAgc2V0dXBfcmV0dXJuX3R3b196ZXJvX2J5dGVzCitzZXR1cF9HZXRfU3RhdHVzX25vdF9lbmRwb2ludDoKKwljam5lIHIxLCAjMHg4MSwgc2V0dXBfR2V0X1N0YXR1c19ub3RfaW50ZXJmYWNlCisJOzsgR2V0X1N0YXR1cyhpbnRlcmZhY2UpOiByZXR1cm4gdHdvIHplcm9zCisJc2ptcCBzZXR1cF9yZXR1cm5fdHdvX3plcm9fYnl0ZXMKK3NldHVwX0dldF9TdGF0dXNfbm90X2ludGVyZmFjZToJCisJbGptcCBzZXR1cF9zdGFsbAorCQorc2V0dXBfYnJlcV9ub3RfMDA6CisJY2puZSByMiwgIzB4MDEsIHNldHVwX2JyZXFfbm90XzAxCisJOzsgMDE6CUNsZWFyX0ZlYXR1cmUgKHN1Yi1zd2l0Y2ggb24gd1ZhbHVlTDogc3RhbGwsIHJlbW90ZSB3YWtldXApCisJY2puZSByMywgIzB4MDAsIHNldHVwX0NsZWFyX0ZlYXR1cmVfbm90X3N0YWxsCisJOzsgQ2xlYXJfRmVhdHVyZShzdGFsbCkuIHNob3VsZCBjbGVhciBhIHN0YWxsIGJpdC4gVE9ETworCWxqbXAgc2V0dXBfc3RhbGwKK3NldHVwX0NsZWFyX0ZlYXR1cmVfbm90X3N0YWxsOgorCWNqbmUgcjMsICMweDAxLCBzZXR1cF9DbGVhcl9GZWF0dXJlX25vdF9yd2FrZQorCTs7IENsZWFyX0ZlYXR1cmUocmVtb3RlIHdha2V1cCkuIGlnbm9yZWQuCisJbGptcCBzZXR1cF9kb25lX2Fjaworc2V0dXBfQ2xlYXJfRmVhdHVyZV9ub3Rfcndha2U6CisJbGptcCBzZXR1cF9zdGFsbAorCQorc2V0dXBfYnJlcV9ub3RfMDE6CisJY2puZSByMiwgIzB4MDMsIHNldHVwX2JyZXFfbm90XzAzCisJOzsgMDM6CVNldF9GZWF0dXJlIChzdWItc3dpdGNoIG9uIHdWYWx1ZUw6IHN0YWxsLCByZW1vdGUgd2FrZXVwKQorCWNqbmUgcjMsICMweDAwLCBzZXR1cF9TZXRfRmVhdHVyZV9ub3Rfc3RhbGwKKwk7OyBTZXRfRmVhdHVyZShzdGFsbCkuIFNob3VsZCBzZXQgYSBzdGFsbCBiaXQuIFRPRE8KKwlsam1wIHNldHVwX3N0YWxsCitzZXR1cF9TZXRfRmVhdHVyZV9ub3Rfc3RhbGw6CisJY2puZSByMywgIzB4MDEsIHNldHVwX1NldF9GZWF0dXJlX25vdF9yd2FrZQorCTs7IFNldF9GZWF0dXJlKHJlbW90ZSB3YWtldXApLiBpZ25vcmVkLgorCWxqbXAgc2V0dXBfZG9uZV9hY2sKK3NldHVwX1NldF9GZWF0dXJlX25vdF9yd2FrZToKKwlsam1wIHNldHVwX3N0YWxsCisJCitzZXR1cF9icmVxX25vdF8wMzoJCisJY2puZSByMiwgIzB4MDYsIHNldHVwX2JyZXFfbm90XzA2CisJOzsgMDY6CUdldF9EZXNjcmlwdG9yIChzLXN3aXRjaCBvbiB3VmFsdWVIOiBkZXYsIGNvbmZpZ1tuXSwgc3RyaW5nW25dKQorCWNqbmUgcjQsICMweDAxLCBzZXR1cF9HZXRfRGVzY3JpcHRvcl9ub3RfZGV2aWNlCisJOzsgR2V0X0Rlc2NyaXB0b3IoZGV2aWNlKQorCW1vdiBkcHRyLCBTVURQVFJICisJbW92IGEsICNISUdIKGRlc2NfZGV2aWNlKQorCW1vdnggQGRwdHIsIGEKKwltb3YgZHB0ciwgU1VEUFRSTAorCW1vdiBhLCAjTE9XKGRlc2NfZGV2aWNlKQorCW1vdnggQGRwdHIsIGEKKwlsam1wIHNldHVwX2RvbmVfYWNrCitzZXR1cF9HZXRfRGVzY3JpcHRvcl9ub3RfZGV2aWNlOgorCWNqbmUgcjQsICMweDAyLCBzZXR1cF9HZXRfRGVzY3JpcHRvcl9ub3RfY29uZmlnCisJOzsgR2V0X0Rlc2NyaXB0b3IoY29uZmlnW25dKQorCWNqbmUgcjMsICMweDAwLCBzZXR1cF9zdGFsbDsgb25seSBoYW5kbGUgbj09MAorCTs7IEdldF9EZXNjcmlwdG9yKGNvbmZpZ1swXSkKKwltb3YgZHB0ciwgU1VEUFRSSAorCW1vdiBhLCAjSElHSChkZXNjX2NvbmZpZzEpCisJbW92eCBAZHB0ciwgYQorCW1vdiBkcHRyLCBTVURQVFJMCisJbW92IGEsICNMT1coZGVzY19jb25maWcxKQorCW1vdnggQGRwdHIsIGEKKwlsam1wIHNldHVwX2RvbmVfYWNrCitzZXR1cF9HZXRfRGVzY3JpcHRvcl9ub3RfY29uZmlnOgorCWNqbmUgcjQsICMweDAzLCBzZXR1cF9HZXRfRGVzY3JpcHRvcl9ub3Rfc3RyaW5nCisJOzsgR2V0X0Rlc2NyaXB0b3Ioc3RyaW5nW3dWYWx1ZUxdKQorCTs7ICBpZiAod1ZhbHVlTCA+PSBtYXhzdHJpbmdzKSBzdGFsbAorCW1vdiBhLCAjKChkZXNjX3N0cmluZ3NfZW5kLWRlc2Nfc3RyaW5ncykvMikKKwljbHIgYworCXN1YmIgYSxyMwkJOyBhPTQsIHIzID0gMC4uMyAuIGlmIGE8PTAgdGhlbiBzdGFsbAorCWpjICBzZXR1cF9zdGFsbAorCWp6ICBzZXR1cF9zdGFsbAorCW1vdiBhLCByMworCWFkZCBhLCByMwkJOyBhID0gMip3VmFsdWVMCisJbW92IGRwdHIsICNkZXNjX3N0cmluZ3MKKwlhZGQgYSwgZHBsCisJbW92IGRwbCwgYQorCW1vdiBhLCAjMAorCWFkZGMgYSwgZHBoCisJbW92IGRwaCwgYQkJOyBkcGggPSBkZXNjX3N0cmluZ3NbYV0uIGJpZyBlbmRpYW4hIChoYW5keSkKKwk7OyBpdCBsb29rcyBsaWtlIG15IGFkYXB0ZXIgdXNlcyBhIHJldmlzaW9uIG9mIHRoZSBFWlVTQiB0aGF0CisJOzsgY29udGFpbnMgInJldiBEIGVycmF0YSBudW1iZXIgOCIsIGFzIGhpbnRlZCBpbiB0aGUgRXpVU0IgZXhhbXBsZQorCTs7IGNvZGUuIEkgY2Fubm90IGZpbmQgYW4gYWN0dWFsIGVycmF0YSBkZXNjcmlwdGlvbiBvbiB0aGUgQ3lwcmVzcworCTs7IHdlYiBzaXRlLCBidXQgZnJvbSB0aGUgZXhhbXBsZSBjb2RlIGl0IGxvb2tzIGxpa2UgdGhpcyBidWcgY2F1c2VzCisJOzsgdGhlIGxlbmd0aCBvZiBzdHJpbmcgZGVzY3JpcHRvcnMgdG8gYmUgcmVhZCBpbmNvcnJlY3RseSwgcG9zc2libHkKKwk7OyBzZW5kaW5nIGJhY2sgbW9yZSBjaGFyYWN0ZXJzIHRoYW4gdGhlIGRlc2NyaXB0b3IgaGFzLiBUaGUgd29ya2Fyb3VuZAorCTs7IGlzIHRvIG1hbnVhbGx5IHNlbmQgb3V0IGFsbCBvZiB0aGUgZGF0YS4gVGhlIGNvbnNlcXVlbmNlIG9mIG5vdAorCTs7IHVzaW5nIHRoZSB3b3JrYXJvdW5kIGlzIHRoYXQgdGhlIHN0cmluZ3MgZ2F0aGVyZWQgYnkgdGhlIGtlcm5lbAorCTs7IGRyaXZlciBhcmUgdG9vIGxvbmcgYW5kIGFyZSBmaWxsZWQgd2l0aCB0cmFpbGluZyBnYXJiYWdlIChpbmNsdWRpbmcKKwk7OyBsZWZ0b3ZlciBzdHJpbmdzKS4gV3JpdGluZyB0aGlzIG91dCBieSBoYW5kIGlzIGEgbnVpc2FuY2UsIHNvIGZvcgorCTs7IG5vdyBJIHdpbGwganVzdCBsaXZlIHdpdGggdGhlIGJ1Zy4KKwltb3Z4IGEsIEBkcHRyCisJbW92IHIxLCBhCisJaW5jIGRwdHIKKwltb3Z4IGEsIEBkcHRyCisJbW92IHIyLCBhCisJbW92IGRwdHIsIFNVRFBUUkgKKwltb3YgYSwgcjEKKwltb3Z4IEBkcHRyLCBhCisJbW92IGRwdHIsIFNVRFBUUkwKKwltb3YgYSwgcjIKKwltb3Z4IEBkcHRyLCBhCisJOzsgZG9uZQorCWxqbXAgc2V0dXBfZG9uZV9hY2sKKwkKK3NldHVwX0dldF9EZXNjcmlwdG9yX25vdF9zdHJpbmc6CisJbGptcCBzZXR1cF9zdGFsbAorCQorc2V0dXBfYnJlcV9ub3RfMDY6CisJY2puZSByMiwgIzB4MDgsIHNldHVwX2JyZXFfbm90XzA4CisJOzsgR2V0X0NvbmZpZ3VyYXRpb24uIGFsd2F5cyAxLiByZXR1cm4gb25lIGJ5dGUuCisJOzsgdGhpcyBpcyByZXVzYWJsZQorCW1vdiBhLCAjMQorc2V0dXBfcmV0dXJuX29uZV9ieXRlOgkKKwltb3YgZHB0ciwgSU4wQlVGCisJbW92eCBAZHB0ciwgYQorCW1vdiBhLCAjMQorCW1vdiBkcHRyLCBJTjBCQworCW1vdnggQGRwdHIsIGEKKwlsam1wIHNldHVwX2RvbmVfYWNrCitzZXR1cF9icmVxX25vdF8wODoKKwljam5lIHIyLCAjMHgwOSwgc2V0dXBfYnJlcV9ub3RfMDkKKwk7OyAwOTogU2V0X0NvbmZpZ3VyYXRpb24uIGlnbm9yZWQuCisJbGptcCBzZXR1cF9kb25lX2Fjaworc2V0dXBfYnJlcV9ub3RfMDk6CisJY2puZSByMiwgIzB4MGEsIHNldHVwX2JyZXFfbm90XzBhCisJOzsgMGE6IEdldF9JbnRlcmZhY2UuIGdldCB0aGUgY3VycmVudCBhbHRzZXR0aW5nIGZvciBpbnRbd0luZGV4TF0KKwk7OyAgc2luY2Ugd2Ugb25seSBoYXZlIG9uZSBpbnRlcmZhY2UsIGlnbm9yZSB3SW5kZXhMLCByZXR1cm4gYSAwCisJbW92IGEsICMwCisJbGptcCBzZXR1cF9yZXR1cm5fb25lX2J5dGUKK3NldHVwX2JyZXFfbm90XzBhOgorCWNqbmUgcjIsICMweDBiLCBzZXR1cF9icmVxX25vdF8wYgorCTs7IDBiOiBTZXRfSW50ZXJmYWNlLiBzZXQgYWx0c2V0dGluZyBmb3IgaW50ZXJmYWNlW3dJbmRleExdLiBpZ25vcmVkCisJbGptcCBzZXR1cF9kb25lX2Fjaworc2V0dXBfYnJlcV9ub3RfMGI6CisJbGptcCBzZXR1cF9zdGFsbAorCisJCQorc2V0dXBfZG9uZV9hY2s6CQorCTs7IG5vdyBjbGVhciBIU05BSworCW1vdiBkcHRyLCBFUDBDUworCW1vdiBhLCAjMHgwMgorCW1vdnggQGRwdHIsIGEKKwlzam1wIHNldHVwX2RvbmUKK3NldHVwX3N0YWxsOgkKKwk7OyB1bmhhbmRsZWQuIFNUQUxMCisJO0VQMENTIHw9IGJtRVBTVEFMTAorCW1vdiBkcHRyLCBFUDBDUworCW1vdnggYSwgQGRwdHIKKwlvcmwgYSwgRVAwU1RBTExiaXQKKwltb3Z4IEBkcHRyLCBhCisJc2ptcCBzZXR1cF9kb25lCisJCitzZXR1cF9kb25lOgkKKwlwb3AgYWNjCisJcG9wIGRwaDEKKwlwb3AgZHBsMQorCXBvcCBkcGgKKwlwb3AgZHBsCisJcG9wIGRwcworCXJldGkKKworOzs7ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisJCitzZXRfYmF1ZDoJCQk7IGJhdWQgaW5kZXggaW4gcjMKKwk7OyB2ZXJpZnkgYSA8IDEwCisJbW92IGEsIHIzCisJamIgQUNDLjcsIHNldF9iYXVkX19iYWRiYXVkCisJY2xyIGMKKwlzdWJiIGEsICMxMAorCWpuYyBzZXRfYmF1ZF9fYmFkYmF1ZAorCW1vdiBhLCByMworCXJsIGEJCQk7IGEgPSBpbmRleCoyCisJYWRkIGEsICNMT1coYmF1ZF90YWJsZSkKKwltb3YgZHBsLCBhCisJbW92IGEsICNISUdIKGJhdWRfdGFibGUpCisJYWRkYyBhLCAjMAorCW1vdiBkcGgsIGEKKwk7OyBUT0RPOiBzaHV0IGRvd24geG1pdC9yZWNlaXZlCisJOzsgVE9ETzogd2FpdCBmb3IgY3VycmVudCB4bWl0IGNoYXIgdG8gbGVhdmUKKwk7OyBUT0RPOiBzaHV0IGRvd24gdGltZXIgdG8gYXZvaWQgcGFydGlhbC1jaGFyIGdsaXRjaAorCW1vdnggYSxAZHB0cgkJOyBCQVVEX0hJR0gKKwltb3YgUkNBUDJILCBhCisJbW92IFRIMiwgYQorCWluYyBkcHRyCisJbW92eCBhLEBkcHRyCQk7IEJBVURfTE9XCisJbW92IFJDQVAyTCwgYQorCW1vdiBUTDIsIGEKKwk7OyBUT0RPOiByZXN0YXJ0IHhtaXQvcmVjZWl2ZQorCTs7IFRPRE86IHJlZW5hYmxlIGludGVycnVwdHMsIHJlc3VtZSB0eCBpZiBwZW5kaW5nCisJY2xyIGMJCQk7IGM9MDogc3VjY2VzcworCXJldAorc2V0X2JhdWRfX2JhZGJhdWQ6CisJc2V0YiBjCQkJOyBjPTE6IGZhaWx1cmUKKwlyZXQKKwkKKzs7OyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorY29udHJvbF9waW5zOgorCWNqbmUgcjEsICMweDQxLCBjb250cm9sX3BpbnNfaW4KK2NvbnRyb2xfcGluc19vdXQ6CisJbW92IGEsIHIzIDsgd1ZhbHVlWzBdIGhvbGRzIG5ldyBiaXRzOgliNyBpcyBuZXcgRFRSLCBiMiBpcyBuZXcgUlRTCisJeHJsIGEsICMweGZmCQk7IDEgbWVhbnMgYWN0aXZlLCAwViwgKzEyViA/CisJYW5sIGEsICMweDg0CisJbW92IHIzLCBhCisJbW92IGRwdHIsIE9VVEMKKwltb3Z4IGEsIEBkcHRyCQk7IG9ubHkgY2hhbmdlIGJpdHMgNyBhbmQgMgorCWFubCBhLCAjMHg3YgkJOyB+MHg4NAorCW9ybCBhLCByMworCW1vdnggQGRwdHIsIGEJCTsgb3RoZXIgcGlucyBhcmUgaW5wdXRzLCBiaXRzIGlnbm9yZWQKKwlsam1wIHNldHVwX2RvbmVfYWNrCitjb250cm9sX3BpbnNfaW46CisJbW92IGRwdHIsIFBJTlNDCisJbW92eCBhLCBAZHB0cgorCXhybCBhLCAjMHhmZgorCWxqbXAgc2V0dXBfcmV0dXJuX29uZV9ieXRlCisKKzs7OyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisJCitJU1JfRXAyaW46CisJcHVzaCBkcHMKKwlwdXNoIGRwbAorCXB1c2ggZHBoCisJcHVzaCBkcGwxCisJcHVzaCBkcGgxCisJcHVzaCBhY2MKKwltb3YgYSxFWElGCisJY2xyIGFjYy40CisJbW92IEVYSUYsYQkJOyBjbGVhciBJTlQyIGZpcnN0CisJbW92IGRwdHIsIElOMDdJUlEJOyBjbGVhciBVU0IgaW50CisJbW92IGEsIzA0aAorCW1vdnggQGRwdHIsYQorCisJOzsgZG8gc3R1ZmYKKwlsY2FsbCBzdGFydF9pbgorCQorCXBvcCBhY2MKKwlwb3AgZHBoMQorCXBvcCBkcGwxCisJcG9wIGRwaAorCXBvcCBkcGwKKwlwb3AgZHBzCisJcmV0aQorCitJU1JfRXAyb3V0OgorCXB1c2ggZHBzCisJcHVzaCBkcGwKKwlwdXNoIGRwaAorCXB1c2ggZHBsMQorCXB1c2ggZHBoMQorCXB1c2ggYWNjCisJbW92IGEsRVhJRgorCWNsciBhY2MuNAorCW1vdiBFWElGLGEJCTsgY2xlYXIgSU5UMiBmaXJzdAorCW1vdiBkcHRyLCBPVVQwN0lSUQk7IGNsZWFyIFVTQiBpbnQKKwltb3YgYSwjMDRoCisJbW92eCBAZHB0cixhCisKKwk7OyBkbyBzdHVmZgorCisJOzsgY29weSBkYXRhIGludG8gYnVmZmVyLiBmb3Igbm93LCBhc3N1bWUgd2Ugd2lsbCBoYXZlIGVub3VnaCBzcGFjZQorCW1vdiBkcHRyLCBPVVQyQkMJOyBnZXQgYnl0ZSBjb3VudAorCW1vdnggYSxAZHB0cgorCW1vdiByMSwgYQorCWNsciBhCisJbW92IGRwcywgYQorCW1vdiBkcHRyLCBPVVQyQlVGCTsgbG9hZCBEUFRSMCB3aXRoIHNvdXJjZQorCW1vdiBkcGgxLCAjSElHSCh0eF9yaW5nKQk7IGxvYWQgRFBUUjEgd2l0aCB0YXJnZXQKKwltb3YgZHBsMSwgdHhfcmluZ19pbgorT1VUX2xvb3A6CisJbW92eCBhLEBkcHRyCQk7IHJlYWQKKwlpbmMgZHBzCQkJOyBzd2l0Y2ggdG8gRFBUUjE6IHRhcmdldAorCWluYyBkcGwxCQk7IHRhcmdldCA9IHR4X3JpbmdfaW4rMQorCW1vdnggQGRwdHIsYQkJOyBzdG9yZQorCW1vdiBhLGRwbDEKKwljam5lIGEsIHR4X3Jpbmdfb3V0LCBPVVRfbm9fb3ZlcmZsb3cKKwlzam1wIE9VVF9vdmVyZmxvdworT1VUX25vX292ZXJmbG93OgkKKwlpbmMgdHhfcmluZ19pbgkJOyB0eF9yaW5nX2luKysKKwlpbmMgZHBzCQkJOyBzd2l0Y2ggdG8gRFBUUjA6IHNvdXJjZQorCWluYyBkcHRyCisJZGpueiByMSwgT1VUX2xvb3AKKwlzam1wIE9VVF9kb25lCitPVVRfb3ZlcmZsb3c6CisJOzsgc2lnbmFsIG92ZXJmbG93CisJOzsgZmFsbCB0aHJvdWdoCitPVVRfZG9uZToJCisJOzsgYWNrCisJbW92IGRwdHIsT1VUMkJDCisJbW92eCBAZHB0cixhCisKKwk7OyBzdGFydCB0eAorCWFjYWxsIG1heWJlX3N0YXJ0X3R4CisJO2FjYWxsIGR1bXBfc3RhdAorCQorCXBvcCBhY2MKKwlwb3AgZHBoMQorCXBvcCBkcGwxCisJcG9wIGRwaAorCXBvcCBkcGwKKwlwb3AgZHBzCisJcmV0aQorCitkdW1wX3N0YXQ6CisJOzsgZmlsbCBpbiBFUDRpbiB3aXRoIGEgZGVidWdnaW5nIG1lc3NhZ2U6CisJOzsgICB0eF9yaW5nX2luLCB0eF9yaW5nX291dCwgcnhfcmluZ19pbiwgcnhfcmluZ19vdXQKKwk7OyAgIHR4X2FjdGl2ZQorCTs7ICAgdHhfcmluZ1swLi4xNV0KKwk7OyAgIDB4ZmMKKwk7OyAgIHJ4X3JpbmdbMC4uMTVdCisJY2xyIGEKKwltb3YgZHBzLCBhCisJCisJbW92IGRwdHIsIElONENTCisJbW92eCBhLCBAZHB0cgorCWpiIGFjYy4xLCBkdW1wX3N0YXRfX2RvbmU7IGJ1c3k6IGNhbm5vdCBkdW1wLCBvbGQgb25lIHN0aWxsIHBlbmRpbmcKKwltb3YgZHB0ciwgSU40QlVGCisJCisJbW92IGEsIHR4X3JpbmdfaW4KKwltb3Z4IEBkcHRyLCBhCisJaW5jIGRwdHIKKwltb3YgYSwgdHhfcmluZ19vdXQKKwltb3Z4IEBkcHRyLCBhCisJaW5jIGRwdHIKKworCW1vdiBhLCByeF9yaW5nX2luCisJbW92eCBAZHB0ciwgYQorCWluYyBkcHRyCisJbW92IGEsIHJ4X3Jpbmdfb3V0CisJbW92eCBAZHB0ciwgYQorCWluYyBkcHRyCisJCisJY2xyIGEKKwlqbmIgVFhfUlVOTklORywgZHVtcF9zdGF0X19ub190eF9ydW5uaW5nCisJaW5jIGEKK2R1bXBfc3RhdF9fbm9fdHhfcnVubmluZzoKKwltb3Z4IEBkcHRyLCBhCisJaW5jIGRwdHIKKwk7OyB0eF9yaW5nWzAuLjE1XQorCWluYyBkcHMKKwltb3YgZHB0ciwgI3R4X3JpbmcJOyBEUFRSMTogc291cmNlCisJbW92IHIxLCAjMTYKK2R1bXBfc3RhdF9fdHhfcmluZ19sb29wOgorCW1vdnggYSwgQGRwdHIKKwlpbmMgZHB0cgorCWluYyBkcHMKKwltb3Z4IEBkcHRyLCBhCisJaW5jIGRwdHIKKwlpbmMgZHBzCisJZGpueiByMSwgZHVtcF9zdGF0X190eF9yaW5nX2xvb3AKKwlpbmMgZHBzCisJCisJbW92IGEsICMweGZjCisJbW92eCBAZHB0ciwgYQorCWluYyBkcHRyCisJCisJOzsgcnhfcmluZ1swLi4xNV0KKwlpbmMgZHBzCisJbW92IGRwdHIsICNyeF9yaW5nCTsgRFBUUjE6IHNvdXJjZQorCW1vdiByMSwgIzE2CitkdW1wX3N0YXRfX3J4X3JpbmdfbG9vcDoKKwltb3Z4IGEsIEBkcHRyCisJaW5jIGRwdHIKKwlpbmMgZHBzCisJbW92eCBAZHB0ciwgYQorCWluYyBkcHRyCisJaW5jIGRwcworCWRqbnogcjEsIGR1bXBfc3RhdF9fcnhfcmluZ19sb29wCisJCisJOzsgbm93IHNlbmQgaXQKKwljbHIgYQorCW1vdiBkcHMsIGEKKwltb3YgZHB0ciwgSU40QkMKKwltb3YgYSwgIzM4CisJbW92eCBAZHB0ciwgYQorZHVtcF9zdGF0X19kb25lOgkKKwlyZXQKKwkJCis7OzsgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisJCittYXliZV9zdGFydF90eDoKKwk7OyBtYWtlIHN1cmUgdGhlIHR4IHByb2Nlc3MgaXMgcnVubmluZy4KKwlqYiBUWF9SVU5OSU5HLCBzdGFydF90eF9kb25lCitzdGFydF90eDoKKwk7OyBpcyB0aGVyZSB3b3JrIHRvIGJlIGRvbmU/CisJbW92IGEsIHR4X3JpbmdfaW4KKwljam5lIGEsdHhfcmluZ19vdXQsIHN0YXJ0X3R4X193b3JrCisJcmV0CQkJOyBubyB3b3JrCitzdGFydF90eF9fd29yazoJCisJOzsgdHggd2FzIG5vdCBydW5uaW5nLiBzZW5kIHRoZSBmaXJzdCBjaGFyYWN0ZXIsIHNldHVwIHRoZSBUSSBpbnQKKwlpbmMgdHhfcmluZ19vdXQJCTsgWysrdHhfcmluZ19vdXRdCisJbW92IGRwaCwgI0hJR0godHhfcmluZykKKwltb3YgZHBsLCB0eF9yaW5nX291dAorCW1vdnggYSwgQGRwdHIKKwltb3Ygc2J1ZiwgYQorCXNldGIgVFhfUlVOTklORworc3RhcnRfdHhfZG9uZToKKwk7OyBjYW4gd2UgdW50aHJvdHRsZSB0aGUgaG9zdCB0eCBwcm9jZXNzPworCTs7ICBzdGVwIDE6IGRvIHdlIGNhcmU/CisJbW92IGEsICMwCisJY2puZSBhLCB0eF91bnRocm90dGxlX3RocmVzaG9sZCwgc3RhcnRfdHhfX21heWJlX3VudGhyb3R0bGVfdHgKKwk7OyBub3BlCitzdGFydF90eF9yZWFsbHlfZG9uZToKKwlyZXQKK3N0YXJ0X3R4X19tYXliZV91bnRocm90dGxlX3R4OgorCTs7ICBzdGVwIDI6IGlzIHRoZXJlIG5vdyByb29tPworCW1vdiBhLCB0eF9yaW5nX291dAorCXNldGIgYworCXN1YmIgYSwgdHhfcmluZ19pbgorCTs7IGEgaXMgbm93IHdyaXRlX3Jvb20uIElmIHRocmVzaCA+PSBhLCB3ZSBjYW4gdW50aHJvdHRsZQorCWNsciBjCisJc3ViYiBhLCB0eF91bnRocm90dGxlX3RocmVzaG9sZAorCWpjIHN0YXJ0X3R4X3JlYWxseV9kb25lCTsgbm9wZQorCTs7IHllcywgd2UgY2FuIHVudGhyb3R0bGUuIHJlbW92ZSB0aGUgdGhyZXNob2xkIGFuZCBtYXJrIGEgcmVxdWVzdAorCW1vdiB0eF91bnRocm90dGxlX3RocmVzaG9sZCwgIzAKKwlzZXRiIERPX1RYX1VOVEhST1RUTEUKKwk7OyBwcm9kIHJ4LCB3aGljaCB3aWxsIGFjdHVhbGx5IHNlbmQgdGhlIG1lc3NhZ2Ugd2hlbiBpbjIgYmVjb21lcyBmcmVlCisJbGptcCBzdGFydF9pbgorCQorCitzZXJpYWxfaW50OgorCXB1c2ggZHBzCisJcHVzaCBkcGwKKwlwdXNoIGRwaAorCXB1c2ggZHBsMQorCXB1c2ggZHBoMQorCXB1c2ggYWNjCisJam5iIFRJLCBzZXJpYWxfaW50X19ub3RfdHgKKwk7OyB0eCBmaW5pc2hlZC4gc2VuZCBhbm90aGVyIGNoYXJhY3RlciBpZiB3ZSBoYXZlIG9uZQorCWNsciBUSQkJCTsgY2xlYXIgaW50CisJY2xyIFRYX1JVTk5JTkcKKwlsY2FsbCBzdGFydF90eAorc2VyaWFsX2ludF9fbm90X3R4OgorCWpuYiBSSSwgc2VyaWFsX2ludF9fbm90X3J4CisJbGNhbGwgZ2V0X3J4X2NoYXIKKwljbHIgUkkJCQk7IGNsZWFyIGludAorc2VyaWFsX2ludF9fbm90X3J4OgkKKwk7OyByZXR1cm4KKwlwb3AgYWNjCisJcG9wIGRwaDEKKwlwb3AgZHBsMQorCXBvcCBkcGgKKwlwb3AgZHBsCisJcG9wIGRwcworCXJldGkKKworZ2V0X3J4X2NoYXI6CisJbW92IGRwaCwgI0hJR0gocnhfcmluZykKKwltb3YgZHBsLCByeF9yaW5nX2luCisJaW5jIGRwbAkJCTsgdGFyZ2V0ID0gcnhfcmluZ19pbisxCisJbW92IGEsIHNidWYKKwltb3Z4IEBkcHRyLCBhCisJOzsgY2hlY2sgZm9yIG92ZXJmbG93IGJlZm9yZSBpbmNyZW1lbnRpbmcgcnhfcmluZ19pbgorCW1vdiBhLCBkcGwKKwljam5lIGEsIHJ4X3Jpbmdfb3V0LCBnZXRfcnhfY2hhcl9fbm9fb3ZlcmZsb3cKKwk7OyBzaWduYWwgb3ZlcmZsb3cKKwlyZXQKK2dldF9yeF9jaGFyX19ub19vdmVyZmxvdzoJCisJaW5jIHJ4X3JpbmdfaW4KKwk7OyBraWNrIG9mZiBVU0IgSU5waXBlCisJYWNhbGwgc3RhcnRfaW4KKwlyZXQKKworc3RhcnRfaW46CisJOzsgY2hlY2sgaWYgdGhlIGlucGlwZSBpcyBhbHJlYWR5IHJ1bm5pbmcuCisJbW92IGRwdHIsIElOMkNTCisJbW92eCBhLCBAZHB0cgorCWpiIGFjYy4xLCBzdGFydF9pbl9fZG9uZTsgaW50IHdpbGwgaGFuZGxlIGl0CisJamIgRE9fVFhfVU5USFJPVFRMRSwgc3RhcnRfaW5fX2RvX3R4X3VudGhyb3R0bGUKKwk7OyBzZWUgaWYgdGhlcmUgaXMgYW55IHdvcmsgdG8gZG8uIGEgc2VyaWFsIGludGVycnVwdCBtaWdodCBvY2N1cgorCTs7IGR1cmluZyB0aGlzIHNlcXVlbmNlPworCW1vdiBhLCByeF9yaW5nX2luCisJY2puZSBhLCByeF9yaW5nX291dCwgc3RhcnRfaW5fX2hhdmVfd29yaworCXJldAkJCTsgbm9wZQorc3RhcnRfaW5fX2hhdmVfd29yazoJCisJOzsgbm93IGNvcHkgYXMgbXVjaCBkYXRhIGFzIHBvc3NpYmxlIGludG8gdGhlIHBpcGUuIDYzIGJ5dGVzIG1heC4KKwljbHIgYQorCW1vdiBkcHMsIGEKKwltb3YgZHBoLCAjSElHSChyeF9yaW5nKQk7IGxvYWQgRFBUUjAgd2l0aCBzb3VyY2UKKwlpbmMgZHBzCisJbW92IGRwdHIsIElOMkJVRgk7IGxvYWQgRFBUUjEgd2l0aCB0YXJnZXQKKwltb3Z4IEBkcHRyLCBhCQk7IGluWzBdIHNpZ25hbHMgdGhhdCByZXN0IG9mIElOIGlzIHJ4IGRhdGEKKwlpbmMgZHB0cgorCWluYyBkcHMKKwk7OyBsb29wIHVudGlsIHdlIHJ1biBvdXQgb2YgZGF0YSwgb3Igd2UgaGF2ZSBjb3BpZWQgNjQgYnl0ZXMKKwltb3YgcjEsICMxCQk7IElOYnVmIHNpemUgY291bnRlcgorc3RhcnRfaW5fX2xvb3A6CisJbW92IGEsIHJ4X3JpbmdfaW4KKwljam5lIGEsIHJ4X3Jpbmdfb3V0LCBzdGFydF9pbmxvY2FsX2lycV9lbmFibGVsbF9jb3B5aW5nCisJc2ptcCBzdGFydF9pbl9fa2ljaworc3RhcnRfaW5sb2NhbF9pcnFfZW5hYmxlbGxfY29weWluZzoKKwlpbmMgcnhfcmluZ19vdXQKKwltb3YgZHBsLCByeF9yaW5nX291dAorCW1vdnggYSwgQGRwdHIKKwlpbmMgZHBzCisJbW92eCBAZHB0ciwgYQkJOyB3cml0ZSBpbnRvIElOIGJ1ZmZlcgorCWluYyBkcHRyCisJaW5jIGRwcworCWluYyByMQorCWNqbmUgcjEsICM2NCwgc3RhcnRfaW5fX2xvb3A7IGxvb3AKK3N0YXJ0X2luX19raWNrOgorCTs7IGVpdGhlciB3ZSByYW4gb3V0IG9mIGRhdGEsIG9yIHdlIGNvcGllZCA2NCBieXRlcy4gcjEgaGFzIGJ5dGUgY291bnQKKwk7OyBraWNrIG9mZiBJTgorCW1vdiBkcHRyLCBJTjJCQworCW1vdiBhLCByMQorCWp6IHN0YXJ0X2luX19kb25lCisJbW92eCBAZHB0ciwgYQorCTs7IGRvbmUKK3N0YXJ0X2luX19kb25lOgorCTthY2FsbCBkdW1wX3N0YXQKKwlyZXQKK3N0YXJ0X2luX19kb190eF91bnRocm90dGxlOgorCTs7IHNwZWNpYWwgc2VxdWVuY2U6IHNlbmQgYSB0eCB1bnRocm90dGxlIG1lc3NhZ2UKKwljbHIgRE9fVFhfVU5USFJPVFRMRQorCWNsciBhCisJbW92IGRwcywgYQorCW1vdiBkcHRyLCBJTjJCVUYKKwltb3YgYSwgIzEKKwltb3Z4IEBkcHRyLCBhCisJaW5jIGRwdHIKKwltb3YgYSwgIzIKKwltb3Z4IEBkcHRyLCBhCisJbW92IGRwdHIsIElOMkJDCisJbW92eCBAZHB0ciwgYQorCXJldAorCQorcHV0Y2hhcjoKKwljbHIgVEkKKwltb3YgU0JVRiwgYQorcHV0Y2hhcl93YWl0OgorCWpuYiBUSSwgcHV0Y2hhcl93YWl0CisJY2xyIFRJCisJcmV0CisKKwkKK2JhdWRfdGFibGU6CQkJOyBiYXVkX2hpZ2gsIHRoZW4gYmF1ZF9sb3cKKwk7OyBiYXVkWzBdOiAxMTAKKwkuYnl0ZSBCQVVEX0hJR0goMTEwKQorCS5ieXRlIEJBVURfTE9XKDExMCkKKwk7OyBiYXVkWzFdOiAzMDAKKwkuYnl0ZSBCQVVEX0hJR0goMzAwKQorCS5ieXRlIEJBVURfTE9XKDMwMCkKKwk7OyBiYXVkWzJdOiAxMjAwCisJLmJ5dGUgQkFVRF9ISUdIKDEyMDApCisJLmJ5dGUgQkFVRF9MT1coMTIwMCkKKwk7OyBiYXVkWzNdOiAyNDAwCisJLmJ5dGUgQkFVRF9ISUdIKDI0MDApCisJLmJ5dGUgQkFVRF9MT1coMjQwMCkKKwk7OyBiYXVkWzRdOiA0ODAwCisJLmJ5dGUgQkFVRF9ISUdIKDQ4MDApCisJLmJ5dGUgQkFVRF9MT1coNDgwMCkKKwk7OyBiYXVkWzVdOiA5NjAwCisJLmJ5dGUgQkFVRF9ISUdIKDk2MDApCisJLmJ5dGUgQkFVRF9MT1coOTYwMCkKKwk7OyBiYXVkWzZdOiAxOTIwMAorCS5ieXRlIEJBVURfSElHSCgxOTIwMCkKKwkuYnl0ZSBCQVVEX0xPVygxOTIwMCkKKwk7OyBiYXVkWzddOiAzODQwMAorCS5ieXRlIEJBVURfSElHSCgzODQwMCkKKwkuYnl0ZSBCQVVEX0xPVygzODQwMCkKKwk7OyBiYXVkWzhdOiA1NzYwMAorCS5ieXRlIEJBVURfSElHSCg1NzYwMCkKKwkuYnl0ZSBCQVVEX0xPVyg1NzYwMCkKKwk7OyBiYXVkWzldOiAxMTUyMDAKKwkuYnl0ZSBCQVVEX0hJR0goMTE1MjAwKQorCS5ieXRlIEJBVURfTE9XKDExNTIwMCkKKworZGVzY19kZXZpY2U6CisJLmJ5dGUgMHgxMiwgMHgwMSwgMHgwMCwgMHgwMSwgMHhmZiwgMHhmZiwgMHhmZiwgMHg0MAorCS5ieXRlIDB4Y2QsIDB4MDYsIDB4MDQsIDB4MDEsIDB4ODksIDB4YWIsIDEsIDIsIDMsIDB4MDEKKzs7OyBUaGUgInJlYWwiIGRldmljZSBpZCwgd2hpY2ggbXVzdCBtYXRjaCB0aGUgaG9zdCBkcml2ZXIsIGlzIHRoYXQKKzs7OyAiMHhjZCAweDA2IDB4MDQgMHgwMSIgc2VxdWVuY2UsIHdoaWNoIGlzIDB4MDZjZCwgMHgwMTA0CisJCitkZXNjX2NvbmZpZzE6CisJLmJ5dGUgMHgwOSwgMHgwMiwgMHgyMCwgMHgwMCwgMHgwMSwgMHgwMSwgMHgwMCwgMHg4MCwgMHgzMgorCS5ieXRlIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MDIsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4MDAKKwkuYnl0ZSAweDA3LCAweDA1LCAweDgyLCAweDAzLCAweDQwLCAweDAwLCAweDAxCisJLmJ5dGUgMHgwNywgMHgwNSwgMHgwMiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMAorCitkZXNjX3N0cmluZ3M6CisJLndvcmQgc3RyaW5nX2xhbmdpZHMsIHN0cmluZ19tZmcsIHN0cmluZ19wcm9kdWN0LCBzdHJpbmdfc2VyaWFsCitkZXNjX3N0cmluZ3NfZW5kOgorCitzdHJpbmdfbGFuZ2lkczoJLmJ5dGUgc3RyaW5nX2xhbmdpZHNfZW5kLXN0cmluZ19sYW5naWRzCisJLmJ5dGUgMworCS53b3JkIDAKK3N0cmluZ19sYW5naWRzX2VuZDoKKworCTs7IHNpZ2guIFRoZXNlIHN0cmluZ3MgYXJlIFVuaWNvZGUsIG1lYW5pbmcgVVRGMTY/IDIgYnl0ZXMgZWFjaC4gTm93CisJOzsgKnRoYXQqIGlzIGEgcGFpbiBpbiB0aGUgYXNzIHRvIGVuY29kZS4gQW5kIHRoZXkgYXJlIGxpdHRsZS1lbmRpYW4KKwk7OyB0b28uIFVzZSB0aGlzIHBlcmwgc25pcHBldCB0byBnZXQgdGhlIGJ5dGVjb2RlczoKKwkvKiB3aGlsZSAoPD4pIHsKKwkgICAgQGMgPSBzcGxpdCgvLyk7CisJICAgIGZvcmVhY2ggJGMgKEBjKSB7CisJICAgICBwcmludGYoIjB4JTAyeCwgMHgwMCwgIiwgb3JkKCRjKSk7CisJICAgIH0KKwkgICB9CisJKi8KKworc3RyaW5nX21mZzoJLmJ5dGUgc3RyaW5nX21mZ19lbmQtc3RyaW5nX21mZworCS5ieXRlIDMKKzsJLmJ5dGUgIkFDTUUgdXNiIHdpZGdldHMiCisJLmJ5dGUgMHg0MSwgMHgwMCwgMHg0MywgMHgwMCwgMHg0ZCwgMHgwMCwgMHg0NSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg3NSwgMHgwMCwgMHg3MywgMHgwMCwgMHg2MiwgMHgwMCwgMHgyMCwgMHgwMCwgMHg3NywgMHgwMCwgMHg2OSwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2NywgMHgwMCwgMHg2NSwgMHgwMCwgMHg3NCwgMHgwMCwgMHg3MywgMHgwMAorc3RyaW5nX21mZ19lbmQ6CisJCitzdHJpbmdfcHJvZHVjdDoJLmJ5dGUgc3RyaW5nX3Byb2R1Y3RfZW5kLXN0cmluZ19wcm9kdWN0CisJLmJ5dGUgMworOwkuYnl0ZSAiQUNNRSBVU0Igc2VyaWFsIHdpZGdldCIKKwkuYnl0ZSAweDQxLCAweDAwLCAweDQzLCAweDAwLCAweDRkLCAweDAwLCAweDQ1LCAweDAwLCAweDIwLCAweDAwLCAweDU1LCAweDAwLCAweDUzLCAweDAwLCAweDQyLCAweDAwLCAweDIwLCAweDAwLCAweDczLCAweDAwLCAweDY1LCAweDAwLCAweDcyLCAweDAwLCAweDY5LCAweDAwLCAweDYxLCAweDAwLCAweDZjLCAweDAwLCAweDIwLCAweDAwLCAweDc3LCAweDAwLCAweDY5LCAweDAwLCAweDY0LCAweDAwLCAweDY3LCAweDAwLCAweDY1LCAweDAwLCAweDc0LCAweDAwCitzdHJpbmdfcHJvZHVjdF9lbmQ6CisJCitzdHJpbmdfc2VyaWFsOgkuYnl0ZSBzdHJpbmdfc2VyaWFsX2VuZC1zdHJpbmdfc2VyaWFsCisJLmJ5dGUgMworOwkuYnl0ZSAiNDciCisJLmJ5dGUgMHgzNCwgMHgwMCwgMHgzNywgMHgwMAorc3RyaW5nX3NlcmlhbF9lbmQ6CisJCQorOzs7IHJpbmcgYnVmZmVyIG1lbW9yeQorCTs7IHR4X3JpbmdfaW4rMSBpcyB3aGVyZSB0aGUgbmV4dCBpbnB1dCBieXRlIHdpbGwgZ28KKwk7OyBbdHhfcmluZ19vdXRdIGhhcyBiZWVuIHNlbnQKKwk7OyBpZiB0eF9yaW5nX2luID09IHR4X3Jpbmdfb3V0LCB0aGVyZXMgbm8gd29yayB0byBkbworCTs7IHRoZXJlIGFyZSAodHhfcmluZ19pbiAtIHR4X3Jpbmdfb3V0KSBjaGFycyB0byBiZSB3cml0dGVuCisJOzsgZG9udCBsZXQgX2luIGxhcCBfb3V0CisJOzsgICBjYW5ub3QgaW5jIGlmIHR4X3JpbmdfaW4rMSA9PSB0eF9yaW5nX291dAorCTs7ICB3cml0ZSBbdHhfcmluZ19pbisxXSB0aGVuIHR4X3JpbmdfaW4rKworCTs7ICAgaWYgKHR4X3JpbmdfaW4rMSA9PSB0eF9yaW5nX291dCksIG92ZXJmbG93CisJOzsgICBlbHNlIHR4X3JpbmdfaW4rKworCTs7ICByZWFkL3NlbmQgW3R4X3Jpbmdfb3V0KzFdLCB0aGVuIHR4X3Jpbmdfb3V0KysKKworCTs7IHJ4X3JpbmdfaW4gd29ya3MgdGhlIHNhbWUgd2F5CisJCisJLm9yZyAweDEwMDAKK3R4X3Jpbmc6CisJLnNraXAgMHgxMDAJCTsgMjU2IGJ5dGVzCityeF9yaW5nOgorCS5za2lwIDB4MTAwCQk7IDI1NiBieXRlcworCQorCQorCS5FTkQKKwkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3BkYS5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fcGRhLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2ZkMGFhOQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3BkYS5jCkBAIC0wLDAgKzEsODk0IEBACisvKgorICogVVNCIEtleXNwYW4gUERBIC8gWGlyY29tIC8gRW50cmVncmEgQ29udmVydGVyIGRyaXZlcgorICoKKyAqIENvcHlyaWdodCAoQykgMTk5OSAtIDIwMDEgR3JlZyBLcm9haC1IYXJ0bWFuCTxncmVnQGtyb2FoLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCBCcmlhbiBXYXJuZXIJPHdhcm5lckBsb3RoYXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDAwIEFsIEJvcmNoZXJzCQk8Ym9yY2hlcnNAc3RlaW5lcnBvaW50LmNvbT4KKyAqCisgKglUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICoJaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqCXRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKgkoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFNlZSBEb2N1bWVudGF0aW9uL3VzYi91c2Itc2VyaWFsLnR4dCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB1c2luZyB0aGlzIGRyaXZlcgorICogCisgKiAoMDkvMDcvMjAwMSkgZ2toCisgKgljbGVhbmVkIHVwIHRoZSBYaXJjb20gc3VwcG9ydC4gIEFkZGVkIGlkcyBmb3IgRW50cmVncmEgZGV2aWNlIHdoaWNoIGlzCisgKgl0aGUgc2FtZSBhcyB0aGUgWGlyY29tIGRldmljZS4gIEVuYWJsZWQgdGhlIGNvZGUgdG8gYmUgY29tcGlsZWQgZm9yCisgKgllaXRoZXIgWGlyY29tIG9yIEtleXNwYW4gZGV2aWNlcy4KKyAqCisgKiAoMDgvMTEvMjAwMSkgQ3Jpc3RpYW4gTS4gQ3JhY2l1bmVzY3UKKyAqCXN1cHBvcnQgZm9yIFhpcmNvbSBQR1NEQjkKKyAqCisgKiAoMDUvMzEvMjAwMSkgZ2toCisgKglzd2l0Y2hlZCBmcm9tIHVzaW5nIHNwaW5sb2NrIHRvIGEgc2VtYXBob3JlLCB3aGljaCBmaXhlcyBsb3RzIG9mIHByb2JsZW1zLgorICoKKyAqICgwNC8wOC8yMDAxKSBnYgorICoJSWRlbnRpZnkgdmVyc2lvbiBvbiBtb2R1bGUgbG9hZC4KKyAqIAorICogKDExLzAxLzIwMDApIEFkYW0gSi4gUmljaHRlcgorICoJdXNiX2RldmljZV9pZCB0YWJsZSBzdXBwb3J0CisgKiAKKyAqICgxMC8wNS8yMDAwKSBna2gKKyAqCUZpeGVkIGJ1ZyB3aXRoIHVyYi0+ZGV2IG5vdCBiZWluZyBzZXQgcHJvcGVybHksIG5vdyB0aGF0IHRoZSB1c2IKKyAqCWNvcmUgbmVlZHMgaXQuCisgKiAKKyAqICgwOC8yOC8yMDAwKSBna2gKKyAqCUFkZGVkIGxvY2tzIGZvciBTTVAgc2FmZW5lc3MuCisgKglGaXhlZCBNT0RfSU5DIGFuZCBNT0RfREVDIGxvZ2ljIGFuZCB0aGUgYWJpbGl0eSB0byBvcGVuIGEgcG9ydCBtb3JlIAorICoJdGhhbiBvbmNlLgorICogCisgKiAoMDcvMjAvMjAwMCkgYm9yY2hlcnMKKyAqCS0ga2V5c3Bhbl9wZGFfd3JpdGUgbm8gbG9uZ2VyIHNsZWVwcyBpZiBpdCBpcyBjYWxsZWQgb24gaW50ZXJydXB0IHRpbWU7CisgKgkgIFBQUCBhbmQgdGhlIGxpbmUgZGlzY2lwbGluZSB3aXRoIHN0dHkgZWNobyBvbiBjYW4gY2FsbCB3cml0ZSBvbgorICoJICBpbnRlcnJ1cHQgdGltZSBhbmQgdGhpcyB3b3VsZCBjYXVzZSBhbiBvb3BzIGlmIHdyaXRlIHNsZXB0CisgKgktIGlmIGtleXNwYW5fcGRhX3dyaXRlIGlzIGluIGFuIGludGVycnVwdCwgaXQgd2lsbCBub3QgY2FsbAorICoJICB1c2JfY29udHJvbF9tc2cgKHdoaWNoIHNsZWVwcykgdG8gcXVlcnkgdGhlIHJvb20gaW4gdGhlIGRldmljZQorICoJICBidWZmZXIsIGl0IHNpbXBseSB1c2VzIHRoZSBjdXJyZW50IHJvb20gdmFsdWUgaXQgaGFzCisgKgktIGlmIHRoZSB1cmIgaXMgYnVzeSBvciBpZiBpdCBpcyB0aHJvdHRsZWQga2V5c3Bhbl9wZGFfd3JpdGUganVzdAorICoJICByZXR1cm5zIDAsIHJhdGhlciB0aGFuIHNsZWVwaW5nIHRvIHdhaXQgZm9yIHRoaXMgdG8gY2hhbmdlOyB0aGUKKyAqCSAgd3JpdGVfY2hhbiBjb2RlIGluIG5fdHR5LmMgd2lsbCBzbGVlcCBpZiBuZWVkZWQgYmVmb3JlIGNhbGxpbmcKKyAqCSAga2V5c3Bhbl9wZGFfd3JpdGUgYWdhaW4KKyAqCS0gaWYgdGhlIGRldmljZSBuZWVkcyB0byBiZSB1bnRocm90dGxlZCwgd3JpdGUgbm93IHF1ZXVlcyB1cCB0aGUKKyAqCSAgY2FsbCB0byB1c2JfY29udHJvbF9tc2cgKHdoaWNoIHNsZWVwcykgdG8gdW50aHJvdHRsZSB0aGUgZGV2aWNlCisgKgktIHRoZSB3YWtldXBzIGZyb20ga2V5c3Bhbl9wZGFfd3JpdGVfYnVsa19jYWxsYmFjayBhcmUgcXVldWVkIHJhdGhlcgorICoJICB0aGFuIGRvbmUgZGlyZWN0bHkgZnJvbSB0aGUgY2FsbGJhY2sgdG8gYXZvaWQgdGhlIHJhY2UgaW4gd3JpdGVfY2hhbgorICoJLSBrZXlzcGFuX3BkYV9jaGFyc19pbl9idWZmZXIgYWxzbyBpbmRpY2F0ZXMgaXRzIGJ1ZmZlciBpcyBmdWxsIGlmIHRoZQorICoJICB1cmIgc3RhdHVzIGlzIC1FSU5QUk9HUkVTUywgbWVhbmluZyBpdCBjYW5ub3Qgd3JpdGUgYXQgdGhlIG1vbWVudAorICogICAgICAKKyAqICgwNy8xOS8yMDAwKSBna2gKKyAqCUFkZGVkIG1vZHVsZV9pbml0IGFuZCBtb2R1bGVfZXhpdCBmdW5jdGlvbnMgdG8gaGFuZGxlIHRoZSBmYWN0IHRoYXQgdGhpcworICoJZHJpdmVyIGlzIGEgbG9hZGFibGUgbW9kdWxlIG5vdy4KKyAqCisgKiAoMDMvMjYvMjAwMCkgZ2toCisgKglTcGxpdCBkcml2ZXIgdXAgaW50byBkZXZpY2Ugc3BlY2lmaWMgcGllY2VzLgorICogCisgKi8KKworCisjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eS5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eV9kcml2ZXIuaD4KKyNpbmNsdWRlIDxsaW51eC90dHlfZmxpcC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+CisjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC91c2IuaD4KKworc3RhdGljIGludCBkZWJ1ZzsKKworc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgeworCV9fdTE2IGFkZHJlc3M7CisJX191OCBkYXRhX3NpemU7CisJX191OCBkYXRhWzE2XTsKK307CisKKy8qIG1ha2UgYSBzaW1wbGUgZGVmaW5lIHRvIGhhbmRsZSBpZiB3ZSBhcmUgY29tcGlsaW5nIGtleXNwYW5fcGRhIG9yIHhpcmNvbSBzdXBwb3J0ICovCisjaWYgZGVmaW5lZChDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1BEQSkgfHwgZGVmaW5lZChDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1BEQV9NT0RVTEUpCisJI2RlZmluZSBLRVlTUEFOCisjZWxzZQorCSN1bmRlZiBLRVlTUEFOCisjZW5kaWYKKyNpZiBkZWZpbmVkKENPTkZJR19VU0JfU0VSSUFMX1hJUkNPTSkgfHwgZGVmaW5lZChDT05GSUdfVVNCX1NFUklBTF9YSVJDT01fTU9EVUxFKQorCSNkZWZpbmUgWElSQ09NCisjZWxzZQorCSN1bmRlZiBYSVJDT00KKyNlbmRpZgorCisjaWZkZWYgS0VZU1BBTgorI2luY2x1ZGUgImtleXNwYW5fcGRhX2Z3LmgiCisjZW5kaWYKKworI2lmZGVmIFhJUkNPTQorI2luY2x1ZGUgInhpcmNvbV9wZ3NfZncuaCIKKyNlbmRpZgorCisjaW5jbHVkZSAidXNiLXNlcmlhbC5oIgorCisvKgorICogVmVyc2lvbiBJbmZvcm1hdGlvbgorICovCisjZGVmaW5lIERSSVZFUl9WRVJTSU9OICJ2MS4xIgorI2RlZmluZSBEUklWRVJfQVVUSE9SICJCcmlhbiBXYXJuZXIgPHdhcm5lckBsb3RoYXIuY29tPiIKKyNkZWZpbmUgRFJJVkVSX0RFU0MgIlVTQiBLZXlzcGFuIFBEQSBDb252ZXJ0ZXIgZHJpdmVyIgorCitzdHJ1Y3Qga2V5c3Bhbl9wZGFfcHJpdmF0ZSB7CisJaW50CQkJdHhfcm9vbTsKKwlpbnQJCQl0eF90aHJvdHRsZWQ7CisJc3RydWN0IHdvcmtfc3RydWN0CQkJd2FrZXVwX3dvcms7CisJc3RydWN0IHdvcmtfc3RydWN0CQkJdW50aHJvdHRsZV93b3JrOworfTsKKworCisjZGVmaW5lIEtFWVNQQU5fVkVORE9SX0lECQkweDA2Y2QKKyNkZWZpbmUgS0VZU1BBTl9QREFfRkFLRV9JRAkJMHgwMTAzCisjZGVmaW5lIEtFWVNQQU5fUERBX0lECQkJMHgwMTA0IC8qIG5vIGNsdWUgKi8KKworLyogRm9yIFhpcmNvbSBQR1NEQjkgYW5kIG9sZGVyIEVudHJlZ3JhIHZlcnNpb24gb2YgdGhlIHNhbWUgZGV2aWNlICovCisjZGVmaW5lIFhJUkNPTV9WRU5ET1JfSUQJCTB4MDg1YQorI2RlZmluZSBYSVJDT01fRkFLRV9JRAkJCTB4ODAyNworI2RlZmluZSBFTlRSRUdSQV9WRU5ET1JfSUQJCTB4MTY0NQorI2RlZmluZSBFTlRSRUdSQV9GQUtFX0lECQkweDgwOTMKKworc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlX2NvbWJpbmVkIFtdID0geworI2lmZGVmIEtFWVNQQU4KKwl7IFVTQl9ERVZJQ0UoS0VZU1BBTl9WRU5ET1JfSUQsIEtFWVNQQU5fUERBX0ZBS0VfSUQpIH0sCisjZW5kaWYKKyNpZmRlZiBYSVJDT00KKwl7IFVTQl9ERVZJQ0UoWElSQ09NX1ZFTkRPUl9JRCwgWElSQ09NX0ZBS0VfSUQpIH0sCisJeyBVU0JfREVWSUNFKEVOVFJFR1JBX1ZFTkRPUl9JRCwgRU5UUkVHUkFfRkFLRV9JRCkgfSwKKyNlbmRpZgorCXsgVVNCX0RFVklDRShLRVlTUEFOX1ZFTkRPUl9JRCwgS0VZU1BBTl9QREFfSUQpIH0sCisJeyB9CQkJCQkJLyogVGVybWluYXRpbmcgZW50cnkgKi8KK307CisKK01PRFVMRV9ERVZJQ0VfVEFCTEUgKHVzYiwgaWRfdGFibGVfY29tYmluZWQpOworCitzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIga2V5c3Bhbl9wZGFfZHJpdmVyID0geworCS5vd25lciA9CVRISVNfTU9EVUxFLAorCS5uYW1lID0JCSJrZXlzcGFuX3BkYSIsCisJLnByb2JlID0JdXNiX3NlcmlhbF9wcm9iZSwKKwkuZGlzY29ubmVjdCA9CXVzYl9zZXJpYWxfZGlzY29ubmVjdCwKKwkuaWRfdGFibGUgPQlpZF90YWJsZV9jb21iaW5lZCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90YWJsZV9zdGQgW10gPSB7CisJeyBVU0JfREVWSUNFKEtFWVNQQU5fVkVORE9SX0lELCBLRVlTUEFOX1BEQV9JRCkgfSwKKwl7IH0JCQkJCQkvKiBUZXJtaW5hdGluZyBlbnRyeSAqLworfTsKKworI2lmZGVmIEtFWVNQQU4KK3N0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90YWJsZV9mYWtlIFtdID0geworCXsgVVNCX0RFVklDRShLRVlTUEFOX1ZFTkRPUl9JRCwgS0VZU1BBTl9QREFfRkFLRV9JRCkgfSwKKwl7IH0JCQkJCQkvKiBUZXJtaW5hdGluZyBlbnRyeSAqLworfTsKKyNlbmRpZgorCisjaWZkZWYgWElSQ09NCitzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgaWRfdGFibGVfZmFrZV94aXJjb20gW10gPSB7CisgICAgICAgIHsgVVNCX0RFVklDRShYSVJDT01fVkVORE9SX0lELCBYSVJDT01fRkFLRV9JRCkgfSwKKyAgICAgICAgeyBVU0JfREVWSUNFKEVOVFJFR1JBX1ZFTkRPUl9JRCwgRU5UUkVHUkFfRkFLRV9JRCkgfSwKKyAgICAgICAgeyB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCit9OworI2VuZGlmCisKK3N0YXRpYyB2b2lkIGtleXNwYW5fcGRhX3dha2V1cF93cml0ZSggc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCApCit7CisKKwlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5ID0gcG9ydC0+dHR5OworCisJLyogd2FrZSB1cCBwb3J0IHByb2Nlc3NlcyAqLworCXdha2VfdXBfaW50ZXJydXB0aWJsZSggJnBvcnQtPndyaXRlX3dhaXQgKTsKKworCS8qIHdha2UgdXAgbGluZSBkaXNjaXBsaW5lICovCisJdHR5X3dha2V1cCh0dHkpOworfQorCitzdGF0aWMgdm9pZCBrZXlzcGFuX3BkYV9yZXF1ZXN0X3VudGhyb3R0bGUoIHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgKQoreworCWludCByZXN1bHQ7CisKKwlkYmcoIiByZXF1ZXN0X3VudGhyb3R0bGUiKTsKKwkvKiBhc2sgdGhlIGRldmljZSB0byB0ZWxsIHVzIHdoZW4gdGhlIHR4IGJ1ZmZlciBiZWNvbWVzCisJICAgc3VmZmljaWVudGx5IGVtcHR5ICovCisJcmVzdWx0ID0gdXNiX2NvbnRyb2xfbXNnKHNlcmlhbC0+ZGV2LCAKKwkJCQkgdXNiX3NuZGN0cmxwaXBlKHNlcmlhbC0+ZGV2LCAwKSwKKwkJCQkgNywgLyogcmVxdWVzdF91bnRocm90dGxlICovCisJCQkJIFVTQl9UWVBFX1ZFTkRPUiB8IFVTQl9SRUNJUF9JTlRFUkZBQ0UKKwkJCQkgfCBVU0JfRElSX09VVCwKKwkJCQkgMTYsIC8qIHZhbHVlOiB0aHJlc2hvbGQgKi8KKwkJCQkgMCwgLyogaW5kZXggKi8KKwkJCQkgTlVMTCwKKwkJCQkgMCwKKwkJCQkgMjAwMCk7CisJaWYgKHJlc3VsdCA8IDApCisJCWRiZygiJXMgLSBlcnJvciAlZCBmcm9tIHVzYl9jb250cm9sX21zZyIsIAorCQkgICAgX19GVU5DVElPTl9fLCByZXN1bHQpOworfQorCisKK3N0YXRpYyB2b2lkIGtleXNwYW5fcGRhX3J4X2ludGVycnVwdCAoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ID0gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKil1cmItPmNvbnRleHQ7CisgICAgICAgCXN0cnVjdCB0dHlfc3RydWN0ICp0dHkgPSBwb3J0LT50dHk7CisJdW5zaWduZWQgY2hhciAqZGF0YSA9IHVyYi0+dHJhbnNmZXJfYnVmZmVyOworCWludCBpOworCWludCBzdGF0dXM7CisJc3RydWN0IGtleXNwYW5fcGRhX3ByaXZhdGUgKnByaXY7CisJcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKworCXN3aXRjaCAodXJiLT5zdGF0dXMpIHsKKwljYXNlIDA6CisJCS8qIHN1Y2Nlc3MgKi8KKwkJYnJlYWs7CisJY2FzZSAtRUNPTk5SRVNFVDoKKwljYXNlIC1FTk9FTlQ6CisJY2FzZSAtRVNIVVRET1dOOgorCQkvKiB0aGlzIHVyYiBpcyB0ZXJtaW5hdGVkLCBjbGVhbiB1cCAqLworCQlkYmcoIiVzIC0gdXJiIHNodXR0aW5nIGRvd24gd2l0aCBzdGF0dXM6ICVkIiwgX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyk7CisJCXJldHVybjsKKwlkZWZhdWx0OgorCQlkYmcoIiVzIC0gbm9uemVybyB1cmIgc3RhdHVzIHJlY2VpdmVkOiAlZCIsIF9fRlVOQ1RJT05fXywgdXJiLT5zdGF0dXMpOworCQlnb3RvIGV4aXQ7CisJfQorCisgCS8qIHNlZSBpZiB0aGUgbWVzc2FnZSBpcyBkYXRhIG9yIGEgc3RhdHVzIGludGVycnVwdCAqLworCXN3aXRjaCAoZGF0YVswXSkgeworCWNhc2UgMDoKKwkJLyogcmVzdCBvZiBtZXNzYWdlIGlzIHJ4IGRhdGEgKi8KKwkJaWYgKHVyYi0+YWN0dWFsX2xlbmd0aCkgeworCQkJZm9yIChpID0gMTsgaSA8IHVyYi0+YWN0dWFsX2xlbmd0aCA7ICsraSkgeworCQkJCXR0eV9pbnNlcnRfZmxpcF9jaGFyKHR0eSwgZGF0YVtpXSwgMCk7CisJCQl9CisJCQl0dHlfZmxpcF9idWZmZXJfcHVzaCh0dHkpOworCQl9CisJCWJyZWFrOworCWNhc2UgMToKKwkJLyogc3RhdHVzIGludGVycnVwdCAqLworCQlkYmcoIiByeCBpbnQsIGQxPSVkLCBkMj0lZCIsIGRhdGFbMV0sIGRhdGFbMl0pOworCQlzd2l0Y2ggKGRhdGFbMV0pIHsKKwkJY2FzZSAxOiAvKiBtb2RlbWxpbmUgY2hhbmdlICovCisJCQlicmVhazsKKwkJY2FzZSAyOiAvKiB0eCB1bnRocm90dGxlIGludGVycnVwdCAqLworCQkJcHJpdi0+dHhfdGhyb3R0bGVkID0gMDsKKwkJCS8qIHF1ZXVlIHVwIGEgd2FrZXVwIGF0IHNjaGVkdWxlciB0aW1lICovCisJCQlzY2hlZHVsZV93b3JrKCZwcml2LT53YWtldXBfd29yayk7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWJyZWFrOworCQl9CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWJyZWFrOworCX0KKworZXhpdDoKKwlzdGF0dXMgPSB1c2Jfc3VibWl0X3VyYiAodXJiLCBHRlBfQVRPTUlDKTsKKwlpZiAoc3RhdHVzKQorCQllcnIgKCIlcyAtIHVzYl9zdWJtaXRfdXJiIGZhaWxlZCB3aXRoIHJlc3VsdCAlZCIsCisJCSAgICAgX19GVU5DVElPTl9fLCBzdGF0dXMpOworfQorCisKK3N0YXRpYyB2b2lkIGtleXNwYW5fcGRhX3J4X3Rocm90dGxlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCS8qIHN0b3AgcmVjZWl2aW5nIGNoYXJhY3RlcnMuIFdlIGp1c3QgdHVybiBvZmYgdGhlIFVSQiByZXF1ZXN0LCBhbmQKKwkgICBsZXQgY2hhcnMgcGlsZSB1cCBpbiB0aGUgZGV2aWNlLiBJZiB3ZSdyZSBkb2luZyBoYXJkd2FyZQorCSAgIGZsb3djb250cm9sLCB0aGUgZGV2aWNlIHdpbGwgc2lnbmFsIHRoZSBvdGhlciBlbmQgd2hlbiBpdHMgYnVmZmVyCisJICAgZmlsbHMgdXAuIElmIHdlJ3JlIGRvaW5nIFhPTi9YT0ZGLCB0aGlzIHdvdWxkIGJlIGEgZ29vZCB0aW1lIHRvCisJICAgc2VuZCBhbiBYT0ZGLCBhbHRob3VnaCBpdCBtaWdodCBtYWtlIHNlbnNlIHRvIGZvaXN0IHRoYXQgb2ZmCisJICAgdXBvbiB0aGUgZGV2aWNlIHRvby4gKi8KKworCWRiZygia2V5c3Bhbl9wZGFfcnhfdGhyb3R0bGUgcG9ydCAlZCIsIHBvcnQtPm51bWJlcik7CisJdXNiX2tpbGxfdXJiKHBvcnQtPmludGVycnVwdF9pbl91cmIpOworfQorCisKK3N0YXRpYyB2b2lkIGtleXNwYW5fcGRhX3J4X3VudGhyb3R0bGUgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpCit7CisJLyoganVzdCByZXN0YXJ0IHRoZSByZWNlaXZlIGludGVycnVwdCBVUkIgKi8KKwlkYmcoImtleXNwYW5fcGRhX3J4X3VudGhyb3R0bGUgcG9ydCAlZCIsIHBvcnQtPm51bWJlcik7CisJcG9ydC0+aW50ZXJydXB0X2luX3VyYi0+ZGV2ID0gcG9ydC0+c2VyaWFsLT5kZXY7CisJaWYgKHVzYl9zdWJtaXRfdXJiKHBvcnQtPmludGVycnVwdF9pbl91cmIsIEdGUF9BVE9NSUMpKQorCQlkYmcoIiB1c2Jfc3VibWl0X3VyYihyZWFkIHVyYikgZmFpbGVkIik7CisJcmV0dXJuOworfQorCisKK3N0YXRpYyBpbnQga2V5c3Bhbl9wZGFfc2V0YmF1ZCAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwgaW50IGJhdWQpCit7CisJaW50IHJjOworCWludCBiaW5kZXg7CisKKwlzd2l0Y2goYmF1ZCkgeworCQljYXNlIDExMDogYmluZGV4ID0gMDsgYnJlYWs7CisJCWNhc2UgMzAwOiBiaW5kZXggPSAxOyBicmVhazsKKwkJY2FzZSAxMjAwOiBiaW5kZXggPSAyOyBicmVhazsKKwkJY2FzZSAyNDAwOiBiaW5kZXggPSAzOyBicmVhazsKKwkJY2FzZSA0ODAwOiBiaW5kZXggPSA0OyBicmVhazsKKwkJY2FzZSA5NjAwOiBiaW5kZXggPSA1OyBicmVhazsKKwkJY2FzZSAxOTIwMDogYmluZGV4ID0gNjsgYnJlYWs7CisJCWNhc2UgMzg0MDA6IGJpbmRleCA9IDc7IGJyZWFrOworCQljYXNlIDU3NjAwOiBiaW5kZXggPSA4OyBicmVhazsKKwkJY2FzZSAxMTUyMDA6IGJpbmRleCA9IDk7IGJyZWFrOworCQlkZWZhdWx0OiByZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiByYXRoZXIgdGhhbiBmaWd1cmUgb3V0IGhvdyB0byBzbGVlcCB3aGlsZSB3YWl0aW5nIGZvciB0aGlzCisJICAgdG8gY29tcGxldGUsIEkganVzdCB1c2UgdGhlICJsZWdhY3kiIEFQSS4gKi8KKwlyYyA9IHVzYl9jb250cm9sX21zZyhzZXJpYWwtPmRldiwgdXNiX3NuZGN0cmxwaXBlKHNlcmlhbC0+ZGV2LCAwKSwKKwkJCSAgICAgMCwgLyogc2V0IGJhdWQgKi8KKwkJCSAgICAgVVNCX1RZUEVfVkVORE9SIAorCQkJICAgICB8IFVTQl9SRUNJUF9JTlRFUkZBQ0UKKwkJCSAgICAgfCBVU0JfRElSX09VVCwgLyogdHlwZSAqLworCQkJICAgICBiaW5kZXgsIC8qIHZhbHVlICovCisJCQkgICAgIDAsIC8qIGluZGV4ICovCisJCQkgICAgIE5VTEwsIC8qICZkYXRhICovCisJCQkgICAgIDAsIC8qIHNpemUgKi8KKwkJCSAgICAgMjAwMCk7IC8qIHRpbWVvdXQgKi8KKwlyZXR1cm4ocmMpOworfQorCisKK3N0YXRpYyB2b2lkIGtleXNwYW5fcGRhX2JyZWFrX2N0bCAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgaW50IGJyZWFrX3N0YXRlKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgPSBwb3J0LT5zZXJpYWw7CisJaW50IHZhbHVlOworCWludCByZXN1bHQ7CisKKwlpZiAoYnJlYWtfc3RhdGUgPT0gLTEpCisJCXZhbHVlID0gMTsgLyogc3RhcnQgYnJlYWsgKi8KKwllbHNlCisJCXZhbHVlID0gMDsgLyogY2xlYXIgYnJlYWsgKi8KKwlyZXN1bHQgPSB1c2JfY29udHJvbF9tc2coc2VyaWFsLT5kZXYsIHVzYl9zbmRjdHJscGlwZShzZXJpYWwtPmRldiwgMCksCisJCQkJNCwgLyogc2V0IGJyZWFrICovCisJCQkJVVNCX1RZUEVfVkVORE9SIHwgVVNCX1JFQ0lQX0lOVEVSRkFDRSB8IFVTQl9ESVJfT1VULAorCQkJCXZhbHVlLCAwLCBOVUxMLCAwLCAyMDAwKTsKKwlpZiAocmVzdWx0IDwgMCkKKwkJZGJnKCIlcyAtIGVycm9yICVkIGZyb20gdXNiX2NvbnRyb2xfbXNnIiwgCisJCSAgICBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisJLyogdGhlcmUgaXMgc29tZXRoaW5nIGZ1bmt5IGFib3V0IHRoaXMuLiB0aGUgVENTQlJLIHRoYXQgJ2N1JyBwZXJmb3JtcworCSAgIG91Z2h0IHRvIHRyYW5zbGF0ZSBpbnRvIGEgYnJlYWtfY3RsKC0xKSxicmVha19jdGwoMCkgcGFpciBIWi80CisJICAgc2Vjb25kcyBhcGFydCwgYnV0IGl0IGZlZWxzIGxpa2UgdGhlIGJyZWFrIHNlbnQgaXNuJ3QgYXMgbG9uZyBhcyBpdAorCSAgIGlzIG9uIC9kZXYvdHR5UzAgKi8KK30KKworCitzdGF0aWMgdm9pZCBrZXlzcGFuX3BkYV9zZXRfdGVybWlvcyAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgCisJCQkJICAgICBzdHJ1Y3QgdGVybWlvcyAqb2xkX3Rlcm1pb3MpCit7CisJc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCA9IHBvcnQtPnNlcmlhbDsKKwl1bnNpZ25lZCBpbnQgY2ZsYWcgPSBwb3J0LT50dHktPnRlcm1pb3MtPmNfY2ZsYWc7CisKKwkvKiBjZmxhZyBzcGVjaWZpZXMgbG90cyBvZiBzdHVmZjogbnVtYmVyIG9mIHN0b3AgYml0cywgcGFyaXR5LCBudW1iZXIKKwkgICBvZiBkYXRhIGJpdHMsIGJhdWQuIFdoYXQgY2FuIHRoZSBkZXZpY2UgYWN0dWFsbHkgaGFuZGxlPzoKKwkgICBDU1RPUEIgKDEgc3RvcCBiaXQgb3IgMikKKwkgICBQQVJFTkIgKHBhcml0eSkKKwkgICBDU0laRSAoNWJpdCAuLiA4Yml0KQorCSAgIFRoZXJlIGlzIG1pbmltYWwgaHcgc3VwcG9ydCBmb3IgcGFyaXR5IChhIFBTVyBiaXQgc2VlbXMgdG8gaG9sZCB0aGUKKwkgICBwYXJpdHkgb2Ygd2hhdGV2ZXIgaXMgaW4gdGhlIGFjY3VtdWxhdG9yKS4gVGhlIFVBUlQgZWl0aGVyIGRlYWxzCisJICAgd2l0aCAxMCBiaXRzIChzdGFydCwgOCBkYXRhLCBzdG9wKSBvciAxMSBiaXRzIChzdGFydCwgOCBkYXRhLAorCSAgIDEgc3BlY2lhbCwgc3RvcCkuIFNvLCB3aXRoIGZpcm13YXJlIGNoYW5nZXMsIHdlIGNvdWxkIGRvOgorCSAgIDhOMTogMTAgYml0CisJICAgOE4yOiAxMSBiaXQsIGV4dHJhIGJpdCBhbHdheXMgKG1hcms/KQorCSAgIDhbRU9NU10xOiAxMSBiaXQsIGV4dHJhIGJpdCBpcyBwYXJpdHkKKwkgICA3W0VPTVNdMTogMTAgYml0LCBiMC9iNyBpcyBwYXJpdHkKKwkgICA3W0VPTVNdMjogMTEgYml0LCBiMC9iNyBpcyBwYXJpdHksIGV4dHJhIGJpdCBhbHdheXMgKG1hcms/KQorCisJICAgSFcgZmxvdyBjb250cm9sIGlzIGRpY3RhdGVkIGJ5IHRoZSB0dHktPnRlcm1pb3MtPmNfY2ZsYWdzICYgQ1JUU0NUUworCSAgIGJpdC4KKworCSAgIEZvciBub3csIGp1c3QgZG8gYmF1ZC4gKi8KKworCXN3aXRjaCAoY2ZsYWcgJiBDQkFVRCkgeworCQkvKiB3ZSBjb3VsZCBzdXBwb3J0IG1vcmUgdmFsdWVzIGhlcmUsIGp1c3QgbmVlZCB0byBjYWxjdWxhdGUKKwkJICAgdGhlIG5lY2Vzc2FyeSBkaXZpc29ycyBpbiB0aGUgZmlybXdhcmUuIDxhc20vdGVybWJpdHMuaD4KKwkJICAgaGFzIHRoZSBCbm5uIGNvbnN0YW50cy4gKi8KKwkJY2FzZSBCMTEwOiBrZXlzcGFuX3BkYV9zZXRiYXVkKHNlcmlhbCwgMTEwKTsgYnJlYWs7CisJCWNhc2UgQjMwMDoga2V5c3Bhbl9wZGFfc2V0YmF1ZChzZXJpYWwsIDMwMCk7IGJyZWFrOworCQljYXNlIEIxMjAwOiBrZXlzcGFuX3BkYV9zZXRiYXVkKHNlcmlhbCwgMTIwMCk7IGJyZWFrOworCQljYXNlIEIyNDAwOiBrZXlzcGFuX3BkYV9zZXRiYXVkKHNlcmlhbCwgMjQwMCk7IGJyZWFrOworCQljYXNlIEI0ODAwOiBrZXlzcGFuX3BkYV9zZXRiYXVkKHNlcmlhbCwgNDgwMCk7IGJyZWFrOworCQljYXNlIEI5NjAwOiBrZXlzcGFuX3BkYV9zZXRiYXVkKHNlcmlhbCwgOTYwMCk7IGJyZWFrOworCQljYXNlIEIxOTIwMDoga2V5c3Bhbl9wZGFfc2V0YmF1ZChzZXJpYWwsIDE5MjAwKTsgYnJlYWs7CisJCWNhc2UgQjM4NDAwOiBrZXlzcGFuX3BkYV9zZXRiYXVkKHNlcmlhbCwgMzg0MDApOyBicmVhazsKKwkJY2FzZSBCNTc2MDA6IGtleXNwYW5fcGRhX3NldGJhdWQoc2VyaWFsLCA1NzYwMCk7IGJyZWFrOworCQljYXNlIEIxMTUyMDA6IGtleXNwYW5fcGRhX3NldGJhdWQoc2VyaWFsLCAxMTUyMDApOyBicmVhazsKKwkJZGVmYXVsdDogZGJnKCJjYW4ndCBoYW5kbGUgcmVxdWVzdGVkIGJhdWQgcmF0ZSIpOyBicmVhazsKKwl9Cit9CisKKworLyogbW9kZW0gY29udHJvbCBwaW5zOiBEVFIgYW5kIFJUUyBhcmUgb3V0cHV0cyBhbmQgY2FuIGJlIGNvbnRyb2xsZWQuCisgICBEQ0QsIFJJLCBEU1IsIENUUyBhcmUgaW5wdXRzIGFuZCBjYW4gYmUgcmVhZC4gQWxsIG91dHB1dHMgY2FuIGFsc28gYmUKKyAgIHJlYWQuIFRoZSBieXRlIHBhc3NlZCBpczogRFRSKGI3KSBEQ0QgUkkgRFNSIENUUyBSVFMoYjIpIHVudXNlZCB1bnVzZWQgKi8KKworc3RhdGljIGludCBrZXlzcGFuX3BkYV9nZXRfbW9kZW1faW5mbyhzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLAorCQkJCSAgICAgIHVuc2lnbmVkIGNoYXIgKnZhbHVlKQoreworCWludCByYzsKKwl1bnNpZ25lZCBjaGFyIGRhdGE7CisJcmMgPSB1c2JfY29udHJvbF9tc2coc2VyaWFsLT5kZXYsIHVzYl9yY3ZjdHJscGlwZShzZXJpYWwtPmRldiwgMCksCisJCQkgICAgIDMsIC8qIGdldCBwaW5zICovCisJCQkgICAgIFVTQl9UWVBFX1ZFTkRPUnxVU0JfUkVDSVBfSU5URVJGQUNFfFVTQl9ESVJfSU4sCisJCQkgICAgIDAsIDAsICZkYXRhLCAxLCAyMDAwKTsKKwlpZiAocmMgPiAwKQorCQkqdmFsdWUgPSBkYXRhOworCXJldHVybiByYzsKK30KKworCitzdGF0aWMgaW50IGtleXNwYW5fcGRhX3NldF9tb2RlbV9pbmZvKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsCisJCQkJICAgICAgdW5zaWduZWQgY2hhciB2YWx1ZSkKK3sKKwlpbnQgcmM7CisJcmMgPSB1c2JfY29udHJvbF9tc2coc2VyaWFsLT5kZXYsIHVzYl9zbmRjdHJscGlwZShzZXJpYWwtPmRldiwgMCksCisJCQkgICAgIDMsIC8qIHNldCBwaW5zICovCisJCQkgICAgIFVTQl9UWVBFX1ZFTkRPUnxVU0JfUkVDSVBfSU5URVJGQUNFfFVTQl9ESVJfT1VULAorCQkJICAgICB2YWx1ZSwgMCwgTlVMTCwgMCwgMjAwMCk7CisJcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50IGtleXNwYW5fcGRhX3Rpb2NtZ2V0KHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgPSBwb3J0LT5zZXJpYWw7CisJaW50IHJjOworCXVuc2lnbmVkIGNoYXIgc3RhdHVzOworCWludCB2YWx1ZTsKKworCXJjID0ga2V5c3Bhbl9wZGFfZ2V0X21vZGVtX2luZm8oc2VyaWFsLCAmc3RhdHVzKTsKKwlpZiAocmMgPCAwKQorCQlyZXR1cm4gcmM7CisJdmFsdWUgPQorCQkoKHN0YXR1cyAmICgxPDw3KSkgPyBUSU9DTV9EVFIgOiAwKSB8CisJCSgoc3RhdHVzICYgKDE8PDYpKSA/IFRJT0NNX0NBUiA6IDApIHwKKwkJKChzdGF0dXMgJiAoMTw8NSkpID8gVElPQ01fUk5HIDogMCkgfAorCQkoKHN0YXR1cyAmICgxPDw0KSkgPyBUSU9DTV9EU1IgOiAwKSB8CisJCSgoc3RhdHVzICYgKDE8PDMpKSA/IFRJT0NNX0NUUyA6IDApIHwKKwkJKChzdGF0dXMgJiAoMTw8MikpID8gVElPQ01fUlRTIDogMCk7CisJcmV0dXJuIHZhbHVlOworfQorCitzdGF0aWMgaW50IGtleXNwYW5fcGRhX3Rpb2Ntc2V0KHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxlLAorCQkJCXVuc2lnbmVkIGludCBzZXQsIHVuc2lnbmVkIGludCBjbGVhcikKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsID0gcG9ydC0+c2VyaWFsOworCWludCByYzsKKwl1bnNpZ25lZCBjaGFyIHN0YXR1czsKKworCXJjID0ga2V5c3Bhbl9wZGFfZ2V0X21vZGVtX2luZm8oc2VyaWFsLCAmc3RhdHVzKTsKKwlpZiAocmMgPCAwKQorCQlyZXR1cm4gcmM7CisKKwlpZiAoc2V0ICYgVElPQ01fUlRTKQorCQlzdGF0dXMgfD0gKDE8PDIpOworCWlmIChzZXQgJiBUSU9DTV9EVFIpCisJCXN0YXR1cyB8PSAoMTw8Nyk7CisKKwlpZiAoY2xlYXIgJiBUSU9DTV9SVFMpCisJCXN0YXR1cyAmPSB+KDE8PDIpOworCWlmIChjbGVhciAmIFRJT0NNX0RUUikKKwkJc3RhdHVzICY9IH4oMTw8Nyk7CisJcmMgPSBrZXlzcGFuX3BkYV9zZXRfbW9kZW1faW5mbyhzZXJpYWwsIHN0YXR1cyk7CisJcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50IGtleXNwYW5fcGRhX2lvY3RsKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxlLAorCQkJICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKK3sKKwlzd2l0Y2ggKGNtZCkgeworCWNhc2UgVElPQ01JV0FJVDoKKwkJLyogd2FpdCBmb3IgYW55IG9mIHRoZSA0IG1vZGVtIGlucHV0cyAoRENELFJJLERTUixDVFMpKi8KKwkJLyogVE9ETyAqLworCWNhc2UgVElPQ0dJQ09VTlQ6CisJCS8qIHJldHVybiBjb3VudCBvZiBtb2RlbWxpbmUgdHJhbnNpdGlvbnMgKi8KKwkJcmV0dXJuIDA7IC8qIFRPRE8gKi8KKwl9CisJCisJcmV0dXJuIC1FTk9JT0NUTENNRDsKK30KKworc3RhdGljIGludCBrZXlzcGFuX3BkYV93cml0ZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCAKKwkJCSAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpCit7CisJc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCA9IHBvcnQtPnNlcmlhbDsKKwlpbnQgcmVxdWVzdF91bnRocm90dGxlID0gMDsKKwlpbnQgcmMgPSAwOworCXN0cnVjdCBrZXlzcGFuX3BkYV9wcml2YXRlICpwcml2OworCisJcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwkvKiBndWVzcyBob3cgbXVjaCByb29tIGlzIGxlZnQgaW4gdGhlIGRldmljZSdzIHJpbmcgYnVmZmVyLCBhbmQgaWYgd2UKKwkgICB3YW50IHRvIHNlbmQgbW9yZSB0aGFuIHRoYXQsIGNoZWNrIGZpcnN0LCB1cGRhdGluZyBvdXIgbm90aW9uIG9mCisJICAgd2hhdCBpcyBsZWZ0LiBJZiBvdXIgd3JpdGUgd2lsbCByZXN1bHQgaW4gbm8gcm9vbSBsZWZ0LCBhc2sgdGhlCisJICAgZGV2aWNlIHRvIGdpdmUgdXMgYW4gaW50ZXJydXB0IHdoZW4gdGhlIHJvb20gYXZhaWxhYmxlIHJpc2VzIGFib3ZlCisJICAgYSB0aHJlc2hvbGQsIGFuZCBob2xkIG9mZiBhbGwgd3JpdGVycyAoZXZlbnR1YWxseSwgdGhvc2UgdXNpbmcKKwkgICBzZWxlY3QoKSBvciBwb2xsKCkgdG9vKSB1bnRpbCB3ZSByZWNlaXZlIHRoYXQgdW50aHJvdHRsZSBpbnRlcnJ1cHQuCisJICAgQmxvY2sgaWYgd2UgY2FuJ3Qgd3JpdGUgYW55dGhpbmcgYXQgYWxsLCBvdGhlcndpc2Ugd3JpdGUgYXMgbXVjaCBhcworCSAgIHdlIGNhbi4gKi8KKwlkYmcoImtleXNwYW5fcGRhX3dyaXRlKCVkKSIsY291bnQpOworCWlmIChjb3VudCA9PSAwKSB7CisJCWRiZygiIHdyaXRlIHJlcXVlc3Qgb2YgMCBieXRlcyIpOworCQlyZXR1cm4gKDApOworCX0KKworCS8qIHdlIG1pZ2h0IGJsb2NrIGJlY2F1c2Ugb2Y6CisJICAgdGhlIFRYIHVyYiBpcyBpbi1mbGlnaHQgKHdhaXQgdW50aWwgaXQgY29tcGxldGVzKQorCSAgIHRoZSBkZXZpY2UgaXMgZnVsbCAod2FpdCB1bnRpbCBpdCBzYXlzIHRoZXJlIGlzIHJvb20pCisJKi8KKwlpZiAocG9ydC0+d3JpdGVfdXJiLT5zdGF0dXMgPT0gLUVJTlBST0dSRVNTIHx8IHByaXYtPnR4X3Rocm90dGxlZCApIHsKKwkJcmV0dXJuKCAwICk7CisJfQorCisJLyogQXQgdGhpcyBwb2ludCB0aGUgVVJCIGlzIGluIG91ciBjb250cm9sLCBub2JvZHkgZWxzZSBjYW4gc3VibWl0IGl0CisJICAgYWdhaW4gKHRoZSBvbmx5IHN1ZGRlbiB0cmFuc2l0aW9uIHdhcyB0aGUgb25lIGZyb20gRUlOUFJPR1JFU1MgdG8KKwkgICBmaW5pc2hlZCkuICBBbHNvLCB0aGUgdHggcHJvY2VzcyBpcyBub3QgdGhyb3R0bGVkLiBTbyB3ZSBhcmUKKwkgICByZWFkeSB0byB3cml0ZS4gKi8KKworCWNvdW50ID0gKGNvdW50ID4gcG9ydC0+YnVsa19vdXRfc2l6ZSkgPyBwb3J0LT5idWxrX291dF9zaXplIDogY291bnQ7CisKKwkvKiBDaGVjayBpZiB3ZSBtaWdodCBvdmVycnVuIHRoZSBUeCBidWZmZXIuICAgSWYgc28sIGFzayB0aGUKKwkgICBkZXZpY2UgaG93IG11Y2ggcm9vbSBpdCByZWFsbHkgaGFzLiAgVGhpcyBpcyBkb25lIG9ubHkgb24KKwkgICBzY2hlZHVsZXIgdGltZSwgc2luY2UgdXNiX2NvbnRyb2xfbXNnKCkgc2xlZXBzLiAqLworCWlmIChjb3VudCA+IHByaXYtPnR4X3Jvb20gJiYgIWluX2ludGVycnVwdCgpKSB7CisJCXVuc2lnbmVkIGNoYXIgcm9vbTsKKwkJcmMgPSB1c2JfY29udHJvbF9tc2coc2VyaWFsLT5kZXYsIAorCQkJCSAgICAgdXNiX3JjdmN0cmxwaXBlKHNlcmlhbC0+ZGV2LCAwKSwKKwkJCQkgICAgIDYsIC8qIHdyaXRlX3Jvb20gKi8KKwkJCQkgICAgIFVTQl9UWVBFX1ZFTkRPUiB8IFVTQl9SRUNJUF9JTlRFUkZBQ0UKKwkJCQkgICAgIHwgVVNCX0RJUl9JTiwKKwkJCQkgICAgIDAsIC8qIHZhbHVlOiAwIG1lYW5zICJyZW1haW5pbmcgcm9vbSIgKi8KKwkJCQkgICAgIDAsIC8qIGluZGV4ICovCisJCQkJICAgICAmcm9vbSwKKwkJCQkgICAgIDEsCisJCQkJICAgICAyMDAwKTsKKwkJaWYgKHJjIDwgMCkgeworCQkJZGJnKCIgcm9vbXF1ZXJ5IGZhaWxlZCIpOworCQkJZ290byBleGl0OworCQl9CisJCWlmIChyYyA9PSAwKSB7CisJCQlkYmcoIiByb29tcXVlcnkgcmV0dXJuZWQgMCBieXRlcyIpOworCQkJcmMgPSAtRUlPOyAvKiBkZXZpY2UgZGlkbid0IHJldHVybiBhbnkgZGF0YSAqLworCQkJZ290byBleGl0OworCQl9CisJCWRiZygiIHJvb21xdWVyeSBzYXlzICVkIiwgcm9vbSk7CisJCXByaXYtPnR4X3Jvb20gPSByb29tOworCX0KKwlpZiAoY291bnQgPiBwcml2LT50eF9yb29tKSB7CisJCS8qIHdlJ3JlIGFib3V0IHRvIGNvbXBsZXRlbHkgZmlsbCB0aGUgVHggYnVmZmVyLCBzbworCQkgICB3ZSdsbCBiZSB0aHJvdHRsZWQgYWZ0ZXJ3YXJkcy4gKi8KKwkJY291bnQgPSBwcml2LT50eF9yb29tOworCQlyZXF1ZXN0X3VudGhyb3R0bGUgPSAxOworCX0KKworCWlmIChjb3VudCkgeworCQkvKiBub3cgdHJhbnNmZXIgZGF0YSAqLworCQltZW1jcHkgKHBvcnQtPndyaXRlX3VyYi0+dHJhbnNmZXJfYnVmZmVyLCBidWYsIGNvdW50KTsKKwkJLyogc2VuZCB0aGUgZGF0YSBvdXQgdGhlIGJ1bGsgcG9ydCAqLworCQlwb3J0LT53cml0ZV91cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGggPSBjb3VudDsKKwkJCisJCXByaXYtPnR4X3Jvb20gLT0gY291bnQ7CisKKwkJcG9ydC0+d3JpdGVfdXJiLT5kZXYgPSBwb3J0LT5zZXJpYWwtPmRldjsKKwkJcmMgPSB1c2Jfc3VibWl0X3VyYihwb3J0LT53cml0ZV91cmIsIEdGUF9BVE9NSUMpOworCQlpZiAocmMpIHsKKwkJCWRiZygiIHVzYl9zdWJtaXRfdXJiKHdyaXRlIGJ1bGspIGZhaWxlZCIpOworCQkJZ290byBleGl0OworCQl9CisJfQorCWVsc2UgeworCQkvKiBUaGVyZSB3YXNuJ3QgYW55IHJvb20gbGVmdCwgc28gd2UgYXJlIHRocm90dGxlZCB1bnRpbAorCQkgICB0aGUgYnVmZmVyIGVtcHRpZXMgYSBiaXQgKi8KKwkJcmVxdWVzdF91bnRocm90dGxlID0gMTsKKwl9CisKKwlpZiAocmVxdWVzdF91bnRocm90dGxlKSB7CisJCXByaXYtPnR4X3Rocm90dGxlZCA9IDE7IC8qIGJsb2NrIHdyaXRlcnMgKi8KKwkJc2NoZWR1bGVfd29yaygmcHJpdi0+dW50aHJvdHRsZV93b3JrKTsKKwl9CisKKwlyYyA9IGNvdW50OworZXhpdDoKKwlyZXR1cm4gcmM7Cit9CisKKworc3RhdGljIHZvaWQga2V5c3Bhbl9wZGFfd3JpdGVfYnVsa19jYWxsYmFjayAoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ID0gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKil1cmItPmNvbnRleHQ7CisJc3RydWN0IGtleXNwYW5fcGRhX3ByaXZhdGUgKnByaXY7CisKKwlwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCisJLyogcXVldWUgdXAgYSB3YWtldXAgYXQgc2NoZWR1bGVyIHRpbWUgKi8KKwlzY2hlZHVsZV93b3JrKCZwcml2LT53YWtldXBfd29yayk7Cit9CisKKworc3RhdGljIGludCBrZXlzcGFuX3BkYV93cml0ZV9yb29tIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCBrZXlzcGFuX3BkYV9wcml2YXRlICpwcml2OworCisJcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKworCS8qIHVzZWQgYnkgbl90dHkuYyBmb3IgcHJvY2Vzc2luZyBvZiB0YWJzIGFuZCBzdWNoLiBHaXZpbmcgaXQgb3VyCisJICAgY29uc2VydmF0aXZlIGd1ZXNzIGlzIHByb2JhYmx5IGdvb2QgZW5vdWdoLCBidXQgbmVlZHMgdGVzdGluZyBieQorCSAgIHJ1bm5pbmcgYSBjb25zb2xlIHRocm91Z2ggdGhlIGRldmljZS4gKi8KKworCXJldHVybiAocHJpdi0+dHhfcm9vbSk7Cit9CisKKworc3RhdGljIGludCBrZXlzcGFuX3BkYV9jaGFyc19pbl9idWZmZXIgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpCit7CisJc3RydWN0IGtleXNwYW5fcGRhX3ByaXZhdGUgKnByaXY7CisJCisJcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwkKKwkvKiB3aGVuIHRocm90dGxlZCwgcmV0dXJuIGF0IGxlYXN0IFdBS0VVUF9DSEFSUyB0byB0ZWxsIHNlbGVjdCgpICh2aWEKKwkgICBuX3R0eS5jOm5vcm1hbF9wb2xsKCkgKSB0aGF0IHdlJ3JlIG5vdCB3cml0ZWFibGUuICovCisJaWYoIHBvcnQtPndyaXRlX3VyYi0+c3RhdHVzID09IC1FSU5QUk9HUkVTUyB8fCBwcml2LT50eF90aHJvdHRsZWQgKQorCQlyZXR1cm4gMjU2OworCXJldHVybiAwOworfQorCisKK3N0YXRpYyBpbnQga2V5c3Bhbl9wZGFfb3BlbiAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbHApCit7CisJc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCA9IHBvcnQtPnNlcmlhbDsKKwl1bnNpZ25lZCBjaGFyIHJvb207CisJaW50IHJjID0gMDsKKwlzdHJ1Y3Qga2V5c3Bhbl9wZGFfcHJpdmF0ZSAqcHJpdjsKKworCS8qIGZpbmQgb3V0IGhvdyBtdWNoIHJvb20gaXMgaW4gdGhlIFR4IHJpbmcgKi8KKwlyYyA9IHVzYl9jb250cm9sX21zZyhzZXJpYWwtPmRldiwgdXNiX3JjdmN0cmxwaXBlKHNlcmlhbC0+ZGV2LCAwKSwKKwkJCSAgICAgNiwgLyogd3JpdGVfcm9vbSAqLworCQkJICAgICBVU0JfVFlQRV9WRU5ET1IgfCBVU0JfUkVDSVBfSU5URVJGQUNFCisJCQkgICAgIHwgVVNCX0RJUl9JTiwKKwkJCSAgICAgMCwgLyogdmFsdWUgKi8KKwkJCSAgICAgMCwgLyogaW5kZXggKi8KKwkJCSAgICAgJnJvb20sCisJCQkgICAgIDEsCisJCQkgICAgIDIwMDApOworCWlmIChyYyA8IDApIHsKKwkJZGJnKCIlcyAtIHJvb21xdWVyeSBmYWlsZWQiLCBfX0ZVTkNUSU9OX18pOworCQlnb3RvIGVycm9yOworCX0KKwlpZiAocmMgPT0gMCkgeworCQlkYmcoIiVzIC0gcm9vbXF1ZXJ5IHJldHVybmVkIDAgYnl0ZXMiLCBfX0ZVTkNUSU9OX18pOworCQlyYyA9IC1FSU87CisJCWdvdG8gZXJyb3I7CisJfQorCXByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJcHJpdi0+dHhfcm9vbSA9IHJvb207CisJcHJpdi0+dHhfdGhyb3R0bGVkID0gcm9vbSA/IDAgOiAxOworCisJLyogdGhlIG5vcm1hbCBzZXJpYWwgZGV2aWNlIHNlZW1zIHRvIGFsd2F5cyB0dXJuIG9uIERUUiBhbmQgUlRTIGhlcmUsCisJICAgc28gZG8gdGhlIHNhbWUgKi8KKwlpZiAocG9ydC0+dHR5LT50ZXJtaW9zLT5jX2NmbGFnICYgQ0JBVUQpCisJCWtleXNwYW5fcGRhX3NldF9tb2RlbV9pbmZvKHNlcmlhbCwgKDE8PDcpIHwgKDE8PDIpICk7CisJZWxzZQorCQlrZXlzcGFuX3BkYV9zZXRfbW9kZW1faW5mbyhzZXJpYWwsIDApOworCisJLypTdGFydCByZWFkaW5nIGZyb20gdGhlIGRldmljZSovCisJcG9ydC0+aW50ZXJydXB0X2luX3VyYi0+ZGV2ID0gc2VyaWFsLT5kZXY7CisJcmMgPSB1c2Jfc3VibWl0X3VyYihwb3J0LT5pbnRlcnJ1cHRfaW5fdXJiLCBHRlBfS0VSTkVMKTsKKwlpZiAocmMpIHsKKwkJZGJnKCIlcyAtIHVzYl9zdWJtaXRfdXJiKHJlYWQgaW50KSBmYWlsZWQiLCBfX0ZVTkNUSU9OX18pOworCQlnb3RvIGVycm9yOworCX0KKworZXJyb3I6CisJcmV0dXJuIHJjOworfQorCisKK3N0YXRpYyB2b2lkIGtleXNwYW5fcGRhX2Nsb3NlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgPSBwb3J0LT5zZXJpYWw7CisKKwlpZiAoc2VyaWFsLT5kZXYpIHsKKwkJLyogdGhlIG5vcm1hbCBzZXJpYWwgZGV2aWNlIHNlZW1zIHRvIGFsd2F5cyBzaHV0IG9mZiBEVFIgYW5kIFJUUyBub3cgKi8KKwkJaWYgKHBvcnQtPnR0eS0+dGVybWlvcy0+Y19jZmxhZyAmIEhVUENMKQorCQkJa2V5c3Bhbl9wZGFfc2V0X21vZGVtX2luZm8oc2VyaWFsLCAwKTsKKworCQkvKiBzaHV0ZG93biBvdXIgYnVsayByZWFkcyBhbmQgd3JpdGVzICovCisJCXVzYl9raWxsX3VyYihwb3J0LT53cml0ZV91cmIpOworCQl1c2Jfa2lsbF91cmIocG9ydC0+aW50ZXJydXB0X2luX3VyYik7CisJfQorfQorCisKKy8qIGRvd25sb2FkIHRoZSBmaXJtd2FyZSB0byBhICJmYWtlIiBkZXZpY2UgKHByZS1yZW51bWVyYXRpb24pICovCitzdGF0aWMgaW50IGtleXNwYW5fcGRhX2Zha2Vfc3RhcnR1cCAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkKK3sKKwlpbnQgcmVzcG9uc2U7CisJY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgKnJlY29yZCA9IE5VTEw7CisKKwkvKiBkb3dubG9hZCB0aGUgZmlybXdhcmUgaGVyZSAuLi4gKi8KKwlyZXNwb25zZSA9IGV6dXNiX3NldF9yZXNldChzZXJpYWwsIDEpOworCisjaWZkZWYgS0VZU1BBTgorCWlmIChsZTE2X3RvX2NwdShzZXJpYWwtPmRldi0+ZGVzY3JpcHRvci5pZFZlbmRvcikgPT0gS0VZU1BBTl9WRU5ET1JfSUQpCisJCXJlY29yZCA9ICZrZXlzcGFuX3BkYV9maXJtd2FyZVswXTsKKyNlbmRpZgorI2lmZGVmIFhJUkNPTQorCWlmICgobGUxNl90b19jcHUoc2VyaWFsLT5kZXYtPmRlc2NyaXB0b3IuaWRWZW5kb3IpID09IFhJUkNPTV9WRU5ET1JfSUQpIHx8CisJICAgIChsZTE2X3RvX2NwdShzZXJpYWwtPmRldi0+ZGVzY3JpcHRvci5pZFZlbmRvcikgPT0gRU5UUkVHUkFfVkVORE9SX0lEKSkKKwkJcmVjb3JkID0gJnhpcmNvbV9wZ3NfZmlybXdhcmVbMF07CisjZW5kaWYKKwlpZiAocmVjb3JkID09IE5VTEwpIHsKKwkJZXJyKCIlczogdW5rbm93biB2ZW5kb3IsIGFib3J0aW5nLiIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCXdoaWxlKHJlY29yZC0+YWRkcmVzcyAhPSAweGZmZmYpIHsKKwkJcmVzcG9uc2UgPSBlenVzYl93cml0ZW1lbW9yeShzZXJpYWwsIHJlY29yZC0+YWRkcmVzcywKKwkJCQkJICAgICAodW5zaWduZWQgY2hhciAqKXJlY29yZC0+ZGF0YSwKKwkJCQkJICAgICByZWNvcmQtPmRhdGFfc2l6ZSwgMHhhMCk7CisJCWlmIChyZXNwb25zZSA8IDApIHsKKwkJCWVycigiZXp1c2Jfd3JpdGVtZW1vcnkgZmFpbGVkIGZvciBLZXlzcGFuIFBEQSAiCisJCQkgICAgImZpcm13YXJlICglZCAlMDRYICVwICVkKSIsCisJCQkgICAgcmVzcG9uc2UsIAorCQkJICAgIHJlY29yZC0+YWRkcmVzcywgcmVjb3JkLT5kYXRhLCByZWNvcmQtPmRhdGFfc2l6ZSk7CisJCQlicmVhazsKKwkJfQorCQlyZWNvcmQrKzsKKwl9CisJLyogYnJpbmcgZGV2aWNlIG91dCBvZiByZXNldC4gUmVudW1lcmF0aW9uIHdpbGwgb2NjdXIgaW4gYSBtb21lbnQKKwkgICBhbmQgdGhlIG5ldyBkZXZpY2Ugd2lsbCBiaW5kIHRvIHRoZSByZWFsIGRyaXZlciAqLworCXJlc3BvbnNlID0gZXp1c2Jfc2V0X3Jlc2V0KHNlcmlhbCwgMCk7CisKKwkvKiB3ZSB3YW50IHRoaXMgZGV2aWNlIHRvIGZhaWwgdG8gaGF2ZSBhIGRyaXZlciBhc3NpZ25lZCB0byBpdC4gKi8KKwlyZXR1cm4gKDEpOworfQorCitzdGF0aWMgaW50IGtleXNwYW5fcGRhX3N0YXJ0dXAgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7CisKKwlzdHJ1Y3Qga2V5c3Bhbl9wZGFfcHJpdmF0ZSAqcHJpdjsKKworCS8qIGFsbG9jYXRlIHRoZSBwcml2YXRlIGRhdGEgc3RydWN0dXJlcyBmb3IgYWxsIHBvcnRzLiBXZWxsLCBmb3IgYWxsCisJICAgb25lIHBvcnRzLiAqLworCisJcHJpdiA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBrZXlzcGFuX3BkYV9wcml2YXRlKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFwcml2KQorCQlyZXR1cm4gKDEpOyAvKiBlcnJvciAqLworCXVzYl9zZXRfc2VyaWFsX3BvcnRfZGF0YShzZXJpYWwtPnBvcnRbMF0sIHByaXYpOworCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnNlcmlhbC0+cG9ydFswXS0+d3JpdGVfd2FpdCk7CisJSU5JVF9XT1JLKCZwcml2LT53YWtldXBfd29yaywgKHZvaWQgKilrZXlzcGFuX3BkYV93YWtldXBfd3JpdGUsCisJCQkodm9pZCAqKShzZXJpYWwtPnBvcnRbMF0pKTsKKwlJTklUX1dPUksoJnByaXYtPnVudGhyb3R0bGVfd29yaywKKwkJCSh2b2lkICopa2V5c3Bhbl9wZGFfcmVxdWVzdF91bnRocm90dGxlLAorCQkJKHZvaWQgKikoc2VyaWFsKSk7CisJcmV0dXJuICgwKTsKK30KKworc3RhdGljIHZvaWQga2V5c3Bhbl9wZGFfc2h1dGRvd24gKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7CisJZGJnKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisJCisJa2ZyZWUodXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHNlcmlhbC0+cG9ydFswXSkpOworfQorCisjaWZkZWYgS0VZU1BBTgorc3RhdGljIHN0cnVjdCB1c2Jfc2VyaWFsX2RldmljZV90eXBlIGtleXNwYW5fcGRhX2Zha2VfZGV2aWNlID0geworCS5vd25lciA9CQlUSElTX01PRFVMRSwKKwkubmFtZSA9CQkJIktleXNwYW4gUERBIC0gKHByZXJlbnVtZXJhdGlvbikiLAorCS5zaG9ydF9uYW1lID0JCSJrZXlzcGFuX3BkYV9wcmUiLAorCS5pZF90YWJsZSA9CQlpZF90YWJsZV9mYWtlLAorCS5udW1faW50ZXJydXB0X2luID0JTlVNX0RPTlRfQ0FSRSwKKwkubnVtX2J1bGtfaW4gPQkJTlVNX0RPTlRfQ0FSRSwKKwkubnVtX2J1bGtfb3V0ID0JCU5VTV9ET05UX0NBUkUsCisJLm51bV9wb3J0cyA9CQkxLAorCS5hdHRhY2ggPQkJa2V5c3Bhbl9wZGFfZmFrZV9zdGFydHVwLAorfTsKKyNlbmRpZgorCisjaWZkZWYgWElSQ09NCitzdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUgeGlyY29tX3Bnc19mYWtlX2RldmljZSA9IHsKKwkub3duZXIgPQkJVEhJU19NT0RVTEUsCisJLm5hbWUgPQkJCSJYaXJjb20gLyBFbnRyZWdyYSBQR1MgLSAocHJlcmVudW1lcmF0aW9uKSIsCisJLnNob3J0X25hbWUgPQkJInhpcmNvbV9ub19maXJtIiwKKwkuaWRfdGFibGUgPQkJaWRfdGFibGVfZmFrZV94aXJjb20sCisJLm51bV9pbnRlcnJ1cHRfaW4gPQlOVU1fRE9OVF9DQVJFLAorCS5udW1fYnVsa19pbiA9CQlOVU1fRE9OVF9DQVJFLAorCS5udW1fYnVsa19vdXQgPQkJTlVNX0RPTlRfQ0FSRSwKKwkubnVtX3BvcnRzID0JCTEsCisJLmF0dGFjaCA9CQlrZXlzcGFuX3BkYV9mYWtlX3N0YXJ0dXAsCit9OworI2VuZGlmCisKK3N0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kZXZpY2VfdHlwZSBrZXlzcGFuX3BkYV9kZXZpY2UgPSB7CisJLm93bmVyID0JCVRISVNfTU9EVUxFLAorCS5uYW1lID0JCQkiS2V5c3BhbiBQREEiLAorCS5zaG9ydF9uYW1lID0JCSJrZXlzcGFuX3BkYSIsCisJLmlkX3RhYmxlID0JCWlkX3RhYmxlX3N0ZCwKKwkubnVtX2ludGVycnVwdF9pbiA9CTEsCisJLm51bV9idWxrX2luID0JCTAsCisJLm51bV9idWxrX291dCA9CQkxLAorCS5udW1fcG9ydHMgPQkJMSwKKwkub3BlbiA9CQkJa2V5c3Bhbl9wZGFfb3BlbiwKKwkuY2xvc2UgPQkJa2V5c3Bhbl9wZGFfY2xvc2UsCisJLndyaXRlID0JCWtleXNwYW5fcGRhX3dyaXRlLAorCS53cml0ZV9yb29tID0JCWtleXNwYW5fcGRhX3dyaXRlX3Jvb20sCisJLndyaXRlX2J1bGtfY2FsbGJhY2sgPSAJa2V5c3Bhbl9wZGFfd3JpdGVfYnVsa19jYWxsYmFjaywKKwkucmVhZF9pbnRfY2FsbGJhY2sgPQlrZXlzcGFuX3BkYV9yeF9pbnRlcnJ1cHQsCisJLmNoYXJzX2luX2J1ZmZlciA9CWtleXNwYW5fcGRhX2NoYXJzX2luX2J1ZmZlciwKKwkudGhyb3R0bGUgPQkJa2V5c3Bhbl9wZGFfcnhfdGhyb3R0bGUsCisJLnVudGhyb3R0bGUgPQkJa2V5c3Bhbl9wZGFfcnhfdW50aHJvdHRsZSwKKwkuaW9jdGwgPQkJa2V5c3Bhbl9wZGFfaW9jdGwsCisJLnNldF90ZXJtaW9zID0JCWtleXNwYW5fcGRhX3NldF90ZXJtaW9zLAorCS5icmVha19jdGwgPQkJa2V5c3Bhbl9wZGFfYnJlYWtfY3RsLAorCS50aW9jbWdldCA9CQlrZXlzcGFuX3BkYV90aW9jbWdldCwKKwkudGlvY21zZXQgPQkJa2V5c3Bhbl9wZGFfdGlvY21zZXQsCisJLmF0dGFjaCA9CQlrZXlzcGFuX3BkYV9zdGFydHVwLAorCS5zaHV0ZG93biA9CQlrZXlzcGFuX3BkYV9zaHV0ZG93biwKK307CisKKworc3RhdGljIGludCBfX2luaXQga2V5c3Bhbl9wZGFfaW5pdCAodm9pZCkKK3sKKwlpbnQgcmV0dmFsOworCXJldHZhbCA9IHVzYl9zZXJpYWxfcmVnaXN0ZXIoJmtleXNwYW5fcGRhX2RldmljZSk7CisJaWYgKHJldHZhbCkKKwkJZ290byBmYWlsZWRfcGRhX3JlZ2lzdGVyOworI2lmZGVmIEtFWVNQQU4KKwlyZXR2YWwgPSB1c2Jfc2VyaWFsX3JlZ2lzdGVyKCZrZXlzcGFuX3BkYV9mYWtlX2RldmljZSk7CisJaWYgKHJldHZhbCkKKwkJZ290byBmYWlsZWRfcGRhX2Zha2VfcmVnaXN0ZXI7CisjZW5kaWYKKyNpZmRlZiBYSVJDT00KKwlyZXR2YWwgPSB1c2Jfc2VyaWFsX3JlZ2lzdGVyKCZ4aXJjb21fcGdzX2Zha2VfZGV2aWNlKTsKKwlpZiAocmV0dmFsKQorCQlnb3RvIGZhaWxlZF94aXJjb21fcmVnaXN0ZXI7CisjZW5kaWYKKwlyZXR2YWwgPSB1c2JfcmVnaXN0ZXIoJmtleXNwYW5fcGRhX2RyaXZlcik7CisJaWYgKHJldHZhbCkKKwkJZ290byBmYWlsZWRfdXNiX3JlZ2lzdGVyOworCWluZm8oRFJJVkVSX0RFU0MgIiAiIERSSVZFUl9WRVJTSU9OKTsKKwlyZXR1cm4gMDsKK2ZhaWxlZF91c2JfcmVnaXN0ZXI6CQorI2lmZGVmIFhJUkNPTQorCXVzYl9zZXJpYWxfZGVyZWdpc3RlcigmeGlyY29tX3Bnc19mYWtlX2RldmljZSk7CitmYWlsZWRfeGlyY29tX3JlZ2lzdGVyOgorI2VuZGlmIC8qIFhJUkNPTSAqLworI2lmZGVmIEtFWVNQQU4KKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIoJmtleXNwYW5fcGRhX2Zha2VfZGV2aWNlKTsKKyNlbmRpZgorI2lmZGVmIEtFWVNQQU4KK2ZhaWxlZF9wZGFfZmFrZV9yZWdpc3RlcjoKKyNlbmRpZgorCXVzYl9zZXJpYWxfZGVyZWdpc3Rlcigma2V5c3Bhbl9wZGFfZGV2aWNlKTsKK2ZhaWxlZF9wZGFfcmVnaXN0ZXI6CisJcmV0dXJuIHJldHZhbDsKK30KKworCitzdGF0aWMgdm9pZCBfX2V4aXQga2V5c3Bhbl9wZGFfZXhpdCAodm9pZCkKK3sKKwl1c2JfZGVyZWdpc3RlciAoJmtleXNwYW5fcGRhX2RyaXZlcik7CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyICgma2V5c3Bhbl9wZGFfZGV2aWNlKTsKKyNpZmRlZiBLRVlTUEFOCisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyICgma2V5c3Bhbl9wZGFfZmFrZV9kZXZpY2UpOworI2VuZGlmCisjaWZkZWYgWElSQ09NCisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyICgmeGlyY29tX3Bnc19mYWtlX2RldmljZSk7CisjZW5kaWYKK30KKworCittb2R1bGVfaW5pdChrZXlzcGFuX3BkYV9pbml0KTsKK21vZHVsZV9leGl0KGtleXNwYW5fcGRhX2V4aXQpOworCitNT0RVTEVfQVVUSE9SKCBEUklWRVJfQVVUSE9SICk7CitNT0RVTEVfREVTQ1JJUFRJT04oIERSSVZFUl9ERVNDICk7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CisKK21vZHVsZV9wYXJhbShkZWJ1ZywgYm9vbCwgU19JUlVHTyB8IFNfSVdVU1IpOworTU9EVUxFX1BBUk1fREVTQyhkZWJ1ZywgIkRlYnVnIGVuYWJsZWQgb3Igbm90Iik7CisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3BkYV9mdy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fcGRhX2Z3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI1M2FjYwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3BkYV9mdy5oCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisgKiBVU0IgS2V5c3BhbiBQREEgRmlybXdhcmUKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAgQnJpYW4gV2FybmVyCTx3YXJuZXJAbG90aGFyLmNvbT4KKyAqCisgKglUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICoJaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqCXRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKgkoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIEdlbmVyYXRlZCBmcm9tIGtleXNwYW5fcGRhLnMgYnkgZXp1c2JfY29udmVydC5wbAorICoKKyAqLworCitzdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQga2V5c3Bhbl9wZGFfZmlybXdhcmVbXSA9IHsKK3sgMHgwMDAwLAkzLAl7MHgwMiwgMHgwMiwgMHgwMH0gfSwKK3sgMHgwMDIzLAk0LAl7MHgwMiwgMHgwNSwgMHg1ZiwgMHgwMH0gfSwKK3sgMHgwMDQzLAk0LAl7MHgwMiwgMHgwMSwgMHgwMCwgMHgwMH0gfSwKK3sgMHgwMDMwLAk1LAl7MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0gfSwKK3sgMHgwMTAwLAkxNiwJezB4MDIsIDB4MDIsIDB4OTYsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDB9IH0sCit7IDB4MDExMCwJMTYsCXsweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAwLCAweDAwLCAweDAwfSB9LAoreyAweDAxMjAsCTE2LAl7MHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwNCwgMHg2MSwgMHgwMCwgMHgwMiwgMHgwNCwgMHg4OSwgMHgwMH0gfSwKK3sgMHgwMjAwLAkxNiwJezB4NzUsIDB4ODEsIDB4NWUsIDB4ZTQsIDB4ZjUsIDB4MzIsIDB4ZjUsIDB4MzMsIDB4ZjUsIDB4MzAsIDB4ZjUsIDB4MzEsIDB4ZjUsIDB4MzQsIDB4YzIsIDB4MDB9IH0sCit7IDB4MDIxMCwJMTYsCXsweGMyLCAweDAxLCAweGE5LCAweDAwLCAweDc0LCAweGZlLCAweDkwLCAweDEwLCAweDAwLCAweGYwLCAweGEzLCAweGQ5LCAweGZjLCAweDc0LCAweGZkLCAweDkwfSB9LAoreyAweDAyMjAsCTE2LAl7MHgxMSwgMHgwMCwgMHhmMCwgMHhhMywgMHhkOSwgMHhmYywgMHg3NCwgMHgwMiwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHhmMCwgMHg3NCwgMHgwMCwgMHg5MCwgMHg3Zn0gfSwKK3sgMHgwMjMwLAkxNiwJezB4OTcsIDB4ZjAsIDB4NzQsIDB4ODYsIDB4OTAsIDB4N2YsIDB4OWUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTUsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4OTAsIDB4N2Z9IH0sCit7IDB4MDI0MCwJMTYsCXsweGFmLCAweGUwLCAweGQyLCAweGUwLCAweGYwLCAweDc0LCAweDAxLCAweDkwLCAweDdmLCAweGFiLCAweGYwLCAweDkwLCAweDdmLCAweGFlLCAweGYwLCAweDkwfSB9LAoreyAweDAyNTAsCTE2LAl7MHg3ZiwgMHhhYywgMHg3NCwgMHgwNCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZCwgMHg3NCwgMHgwNCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhmMCwgMHg3NH0gfSwKK3sgMHgwMjYwLAkxNiwJezB4ODQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZjAsIDB4NzQsIDB4MDAsIDB4ZjUsIDB4OTgsIDB4NzUsIDB4YzgsIDB4MzAsIDB4N2IsIDB4MDUsIDB4OTEsIDB4MjB9IH0sCit7IDB4MDI3MCwJMTYsCXsweGQyLCAweGNhLCAweDc1LCAweDk4LCAweDUwLCAweGQyLCAweGU4LCAweGQyLCAweGFmLCAweGQyLCAweGFjLCAweDc0LCAweDAwLCAweGY1LCAweDg2LCAweDkwfSB9LAoreyAweDAyODAsCTE2LAl7MHg3ZiwgMHhkNiwgMHg3NCwgMHgwMiwgMHhmMCwgMHg3OSwgMHgyZSwgMHg3YSwgMHgwMCwgMHg3YiwgMHgwMCwgMHhkYiwgMHhmZSwgMHhkYSwgMHhmYSwgMHhkOX0gfSwKK3sgMHgwMjkwLAkxNiwJezB4ZjYsIDB4NzQsIDB4MDYsIDB4ZjAsIDB4ODAsIDB4ZmUsIDB4YzAsIDB4ODYsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODV9IH0sCit7IDB4MDJhMCwJMTYsCXsweGMwLCAweGUwLCAweGU1LCAweDkxLCAweGMyLCAweGU0LCAweGY1LCAweDkxLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmfSB9LAoreyAweDAyYjAsCTE2LAl7MHhlOCwgMHhlMCwgMHhmOSwgMHhhMywgMHhlMCwgMHhmYSwgMHhhMywgMHhlMCwgMHhmYiwgMHhhMywgMHhlMCwgMHhmYywgMHhlOSwgMHg1NCwgMHg2MCwgMHhiNH0gfSwKK3sgMHgwMmMwLAkxNiwJezB4MDAsIDB4MDMsIDB4MDIsIDB4MDMsIDB4MzksIDB4YjQsIDB4NDAsIDB4NmUsIDB4YmEsIDB4MDAsIDB4MGIsIDB4MTIsIDB4MDQsIDB4MjAsIDB4NDAsIDB4MDN9IH0sCit7IDB4MDJkMCwJMTYsCXsweDAyLCAweDA0LCAweDAyLCAweDAyLCAweDA0LCAweDBhLCAweGJhLCAweDAxLCAweDAzLCAweDAyLCAweDA0LCAweDBhLCAweGJhLCAweDAyLCAweDAzLCAweDAyfSB9LAoreyAweDAyZTAsCTE2LAl7MHgwNCwgMHgwYSwgMHhiYSwgMHgwMywgMHgwMywgMHgwMiwgMHgwNCwgMHg0NCwgMHhiYSwgMHgwNCwgMHgxZSwgMHhiYiwgMHgwMCwgMHgwYSwgMHg5MCwgMHg3Zn0gfSwKK3sgMHgwMmYwLAkxNiwJezB4OTUsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MDIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4OTB9IH0sCit7IDB4MDMwMCwJMTYsCXsweDdmLCAweDk1LCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDAyLCAweDA0LCAweDAyLCAweGJhLCAweDA1LCAweDAzLCAweDAyLCAweDA0LCAweDBhLCAweGJhfSB9LAoreyAweDAzMTAsCTE2LAl7MHgwNiwgMHgxOSwgMHhiYiwgMHgwMCwgMHgwOCwgMHhlNSwgMHgzMywgMHhkMywgMHg5NSwgMHgzMiwgMHgwMiwgMHgwMywgMHhkZSwgMHhiYiwgMHgwMSwgMHgwOH0gfSwKK3sgMHgwMzIwLAkxNiwJezB4ZTUsIDB4MzIsIDB4YzMsIDB4OTUsIDB4MzMsIDB4MDIsIDB4MDMsIDB4ZGUsIDB4MDIsIDB4MDQsIDB4MGEsIDB4YmEsIDB4MDcsIDB4MDUsIDB4OGIsIDB4MzR9IH0sCit7IDB4MDMzMCwJMTYsCXsweDAyLCAweDA0LCAweDAyLCAweDAyLCAweDA0LCAweDBhLCAweDAyLCAweDA0LCAweDBhLCAweGJhLCAweDAwLCAweDIwLCAweGI5LCAweDgwLCAweDEwLCAweDkwfSB9LAoreyAweDAzNDAsCTE2LAl7MHg3ZiwgMHgwMCwgMHhlNCwgMHhmMCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNCwgMHgwMiwgMHhiOX0gfSwKK3sgMHgwMzUwLAkxNiwJezB4ODIsIDB4MDIsIDB4ODAsIDB4ZWIsIDB4YjksIDB4ODEsIDB4MDIsIDB4ODAsIDB4ZTYsIDB4MDIsIDB4MDQsIDB4MGEsIDB4YmEsIDB4MDEsIDB4MGYsIDB4YmJ9IH0sCit7IDB4MDM2MCwJMTYsCXsweDAwLCAweDAzLCAweDAyLCAweDA0LCAweDBhLCAweGJiLCAweDAxLCAweDAzLCAweDAyLCAweDA0LCAweDAyLCAweDAyLCAweDA0LCAweDBhLCAweGJhLCAweDAzfSB9LAoreyAweDAzNzAsCTE2LAl7MHgwZiwgMHhiYiwgMHgwMCwgMHgwMywgMHgwMiwgMHgwNCwgMHgwYSwgMHhiYiwgMHgwMSwgMHgwMywgMHgwMiwgMHgwNCwgMHgwMiwgMHgwMiwgMHgwNCwgMHgwYX0gfSwKK3sgMHgwMzgwLAkxNiwJezB4YmEsIDB4MDYsIDB4NTYsIDB4YmMsIDB4MDEsIDB4MGYsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4NzQsIDB4MDYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4NzR9IH0sCit7IDB4MDM5MCwJMTYsCXsweDEyLCAweGYwLCAweDAyLCAweDA0LCAweDAyLCAweGJjLCAweDAyLCAweDEyLCAweGJiLCAweDAwLCAweDZmLCAweDkwLCAweDdmLCAweGQ0LCAweDc0LCAweDA2fSB9LAoreyAweDAzYTAsCTE2LAl7MHhmMCwgMHg5MCwgMHg3ZiwgMHhkNSwgMHg3NCwgMHgyNCwgMHhmMCwgMHgwMiwgMHgwNCwgMHgwMiwgMHhiYywgMHgwMywgMHgyOSwgMHg3NCwgMHgwNCwgMHhjM30gfSwKK3sgMHgwM2IwLAkxNiwJezB4OWIsIDB4NDAsIDB4NTcsIDB4NjAsIDB4NTUsIDB4ZWIsIDB4MmIsIDB4OTAsIDB4MDYsIDB4NDQsIDB4MjUsIDB4ODIsIDB4ZjUsIDB4ODIsIDB4NzQsIDB4MDB9IH0sCit7IDB4MDNjMCwJMTYsCXsweDM1LCAweDgzLCAweGY1LCAweDgzLCAweGUwLCAweGY5LCAweGEzLCAweGUwLCAweGZhLCAweDkwLCAweDdmLCAweGQ0LCAweGU5LCAweGYwLCAweDkwLCAweDdmfSB9LAoreyAweDAzZDAsCTE2LAl7MHhkNSwgMHhlYSwgMHhmMCwgMHgwMiwgMHgwNCwgMHgwMiwgMHgwMiwgMHgwNCwgMHgwYSwgMHhiYSwgMHgwOCwgMHgwZiwgMHg3NCwgMHgwMSwgMHg5MCwgMHg3Zn0gfSwKK3sgMHgwM2UwLAkxNiwJezB4MDAsIDB4ZjAsIDB4NzQsIDB4MDEsIDB4OTAsIDB4N2YsIDB4YjUsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MDIsIDB4YmEsIDB4MDksIDB4MDMsIDB4MDIsIDB4MDR9IH0sCit7IDB4MDNmMCwJMTYsCXsweDAyLCAweGJhLCAweDBhLCAweDA1LCAweDc0LCAweDAwLCAweDAyLCAweDAzLCAweGRlLCAweGJhLCAweDBiLCAweDAzLCAweDAyLCAweDA0LCAweDAyLCAweDAyfSB9LAoreyAweDA0MDAsCTE2LAl7MHgwNCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHg3NCwgMHgwMiwgMHhmMCwgMHg4MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMX0gfSwKK3sgMHgwNDEwLAkxNiwJezB4ZjAsIDB4ODAsIDB4MDAsIDB4ZDAsIDB4ZTAsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODYsIDB4MzJ9IH0sCit7IDB4MDQyMCwJMTYsCXsweGViLCAweDIwLCAweGU3LCAweDFlLCAweGMzLCAweDk0LCAweDBhLCAweDUwLCAweDE5LCAweGViLCAweDIzLCAweDI0LCAweGZlLCAweGY1LCAweDgyLCAweDc0fSB9LAoreyAweDA0MzAsCTE2LAl7MHgwNSwgMHgzNCwgMHgwMCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHhjYiwgMHhmNSwgMHhjZCwgMHhhMywgMHhlMCwgMHhmNSwgMHhjYSwgMHhmNSwgMHhjY30gfSwKK3sgMHgwNDQwLAkxNiwJezB4YzMsIDB4MjIsIDB4ZDMsIDB4MjIsIDB4YjksIDB4NDEsIDB4MTEsIDB4ZWIsIDB4NjQsIDB4ZmYsIDB4NTQsIDB4ODQsIDB4ZmIsIDB4OTAsIDB4N2YsIDB4OTh9IH0sCit7IDB4MDQ1MCwJMTYsCXsweGUwLCAweDU0LCAweDdiLCAweDRiLCAweGYwLCAweDAyLCAweDA0LCAweDAyLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDY0LCAweGZmLCAweDAyLCAweDAzfSB9LAoreyAweDA0NjAsCTE2LAl7MHhkZSwgMHhjMCwgMHg4NiwgMHhjMCwgMHg4MiwgMHhjMCwgMHg4MywgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NSwgMHhjMCwgMHhlMCwgMHhlNSwgMHg5MSwgMHhjMn0gfSwKK3sgMHgwNDcwLAkxNiwJezB4ZTQsIDB4ZjUsIDB4OTEsIDB4OTAsIDB4N2YsIDB4YTksIDB4NzQsIDB4MDQsIDB4ZjAsIDB4MTIsIDB4MDUsIDB4YTAsIDB4ZDAsIDB4ZTAsIDB4ZDAsIDB4ODV9IH0sCit7IDB4MDQ4MCwJMTYsCXsweGQwLCAweDg0LCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweGQwLCAweDg2LCAweDMyLCAweGMwLCAweDg2LCAweGMwLCAweDgyLCAweGMwLCAweDgzLCAweGMwfSB9LAoreyAweDA0OTAsCTE2LAl7MHg4NCwgMHhjMCwgMHg4NSwgMHhjMCwgMHhlMCwgMHhlNSwgMHg5MSwgMHhjMiwgMHhlNCwgMHhmNSwgMHg5MSwgMHg5MCwgMHg3ZiwgMHhhYSwgMHg3NCwgMHgwNH0gfSwKK3sgMHgwNGEwLAkxNiwJezB4ZjAsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTAsIDB4ZjksIDB4ZTQsIDB4ZjUsIDB4ODYsIDB4OTAsIDB4N2QsIDB4YzAsIDB4NzUsIDB4ODUsIDB4MTAsIDB4ODV9IH0sCit7IDB4MDRiMCwJMTYsCXsweDMyLCAweDg0LCAweGUwLCAweDA1LCAweDg2LCAweDA1LCAweDg0LCAweGYwLCAweGU1LCAweDg0LCAweGI1LCAweDMzLCAweDAyLCAweDgwLCAweDA5LCAweDA1fSB9LAoreyAweDA0YzAsCTE2LAl7MHgzMiwgMHgwNSwgMHg4NiwgMHhhMywgMHhkOSwgMHhlYywgMHg4MCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhmMCwgMHhiMSwgMHgzMSwgMHhkMCwgMHhlMH0gfSwKK3sgMHgwNGQwLAkxNiwJezB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODYsIDB4MzIsIDB4ZTQsIDB4ZjUsIDB4ODYsIDB4OTAsIDB4N2Z9IH0sCit7IDB4MDRlMCwJMTYsCXsweGJjLCAweGUwLCAweDIwLCAweGUxLCAweDRiLCAweDkwLCAweDdkLCAweDAwLCAweGU1LCAweDMyLCAweGYwLCAweGEzLCAweGU1LCAweDMzLCAweGYwLCAweGEzfSB9LAoreyAweDA0ZjAsCTE2LAl7MHhlNSwgMHgzMCwgMHhmMCwgMHhhMywgMHhlNSwgMHgzMSwgMHhmMCwgMHhhMywgMHhlNCwgMHgzMCwgMHgwMCwgMHgwMSwgMHgwNCwgMHhmMCwgMHhhMywgMHgwNX0gfSwKK3sgMHgwNTAwLAkxNiwJezB4ODYsIDB4OTAsIDB4MTAsIDB4MDAsIDB4NzksIDB4MTAsIDB4ZTAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZDksIDB4ZjZ9IH0sCit7IDB4MDUxMCwJMTYsCXsweDA1LCAweDg2LCAweDc0LCAweGZjLCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweDkwLCAweDExLCAweDAwLCAweDc5LCAweDEwLCAweGUwLCAweGEzLCAweDA1fSB9LAoreyAweDA1MjAsCTE2LAl7MHg4NiwgMHhmMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhkOSwgMHhmNiwgMHhlNCwgMHhmNSwgMHg4NiwgMHg5MCwgMHg3ZiwgMHhiZCwgMHg3NCwgMHgyNiwgMHhmMH0gfSwKK3sgMHgwNTMwLAkxNiwJezB4MjIsIDB4MjAsIDB4MDAsIDB4MTMsIDB4ZTUsIDB4MzIsIDB4YjUsIDB4MzMsIDB4MDEsIDB4MjIsIDB4MDUsIDB4MzMsIDB4NzUsIDB4ODMsIDB4MTAsIDB4ODV9IH0sCit7IDB4MDU0MCwJMTYsCXsweDMzLCAweDgyLCAweGUwLCAweGY1LCAweDk5LCAweGQyLCAweDAwLCAweDc0LCAweDAwLCAweGI1LCAweDM0LCAweDAxLCAweDIyLCAweGU1LCAweDMzLCAweGQzfSB9LAoreyAweDA1NTAsCTE2LAl7MHg5NSwgMHgzMiwgMHhjMywgMHg5NSwgMHgzNCwgMHg0MCwgMHhmNSwgMHg3NSwgMHgzNCwgMHgwMCwgMHhkMiwgMHgwMSwgMHgwMiwgMHgwNSwgMHhhMCwgMHhjMH0gfSwKK3sgMHgwNTYwLAkxNiwJezB4ODYsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ZTAsIDB4MzAsIDB4OTksIDB4MDcsIDB4YzIsIDB4OTl9IH0sCit7IDB4MDU3MCwJMTYsCXsweGMyLCAweDAwLCAweDEyLCAweDA1LCAweDM0LCAweDMwLCAweDk4LCAweDA1LCAweDEyLCAweDA1LCAweDhhLCAweGMyLCAweDk4LCAweGQwLCAweGUwLCAweGQwfSB9LAoreyAweDA1ODAsCTE2LAl7MHg4NSwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhkMCwgMHg4NiwgMHgzMiwgMHg3NSwgMHg4MywgMHgxMSwgMHg4NSwgMHgzMCwgMHg4Mn0gfSwKK3sgMHgwNTkwLAkxNiwJezB4MDUsIDB4ODIsIDB4ZTUsIDB4OTksIDB4ZjAsIDB4ZTUsIDB4ODIsIDB4YjUsIDB4MzEsIDB4MDEsIDB4MjIsIDB4MDUsIDB4MzAsIDB4YjEsIDB4YTAsIDB4MjJ9IH0sCit7IDB4MDVhMCwJMTYsCXsweDkwLCAweDdmLCAweGI4LCAweGUwLCAweDIwLCAweGUxLCAweDM4LCAweDIwLCAweDAxLCAweDM2LCAweGU1LCAweDMwLCAweGI1LCAweDMxLCAweDAxLCAweDIyfSB9LAoreyAweDA1YjAsCTE2LAl7MHhlNCwgMHhmNSwgMHg4NiwgMHg3NSwgMHg4MywgMHgxMSwgMHgwNSwgMHg4NiwgMHg5MCwgMHg3ZSwgMHgwMCwgMHhmMCwgMHhhMywgMHgwNSwgMHg4NiwgMHg3OX0gfSwKK3sgMHgwNWMwLAkxNiwJezB4MDEsIDB4ZTUsIDB4MzAsIDB4YjUsIDB4MzEsIDB4MDIsIDB4ODAsIDB4MTAsIDB4MDUsIDB4MzEsIDB4ODUsIDB4MzEsIDB4ODIsIDB4ZTAsIDB4MDUsIDB4ODZ9IH0sCit7IDB4MDVkMCwJMTYsCXsweGYwLCAweGEzLCAweDA1LCAweDg2LCAweDA5LCAweGI5LCAweDQwLCAweGU5LCAweDkwLCAweDdmLCAweGI5LCAweGU5LCAweDYwLCAweDAxLCAweGYwLCAweDIyfSB9LAoreyAweDA1ZTAsCTE2LAl7MHhjMiwgMHgwMSwgMHhlNCwgMHhmNSwgMHg4NiwgMHg5MCwgMHg3ZSwgMHgwMCwgMHg3NCwgMHgwMSwgMHhmMCwgMHhhMywgMHg3NCwgMHgwMiwgMHhmMCwgMHg5MH0gfSwKK3sgMHgwNWYwLAkxNiwJezB4N2YsIDB4YjksIDB4ZjAsIDB4MjIsIDB4YzIsIDB4OTksIDB4ZjUsIDB4OTksIDB4MzAsIDB4OTksIDB4ZmQsIDB4YzIsIDB4OTksIDB4MjIsIDB4ZTUsIDB4NWV9IH0sCit7IDB4MDYwMCwJMTYsCXsweGY2LCAweDNjLCAweGZkLCAweDhmLCAweGZlLCAweGM4LCAweGZmLCAweDY0LCAweGZmLCAweGIyLCAweGZmLCAweGQ5LCAweGZmLCAweGVkLCAweGZmLCAweGYzfSB9LAoreyAweDA2MTAsCTE2LAl7MHhmZiwgMHhmYSwgMHgxMiwgMHgwMSwgMHgwMCwgMHgwMSwgMHhmZiwgMHhmZiwgMHhmZiwgMHg0MCwgMHhjZCwgMHgwNiwgMHgwNCwgMHgwMSwgMHg4OSwgMHhhYn0gfSwKK3sgMHgwNjIwLAkxNiwJezB4MDEsIDB4MDIsIDB4MDMsIDB4MDEsIDB4MDksIDB4MDIsIDB4MjAsIDB4MDAsIDB4MDEsIDB4MDEsIDB4MDAsIDB4ODAsIDB4MzIsIDB4MDksIDB4MDQsIDB4MDB9IH0sCit7IDB4MDYzMCwJMTYsCXsweDAwLCAweDAyLCAweGZmLCAweGZmLCAweGZmLCAweDAwLCAweDA3LCAweDA1LCAweDgyLCAweDAzLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDAyfSB9LAoreyAweDA2NDAsCTE2LAl7MHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNiwgMHg0YywgMHgwNiwgMHg1MCwgMHgwNiwgMHg3MiwgMHgwNiwgMHhhMCwgMHgwNCwgMHgwMywgMHgwMCwgMHgwMH0gfSwKK3sgMHgwNjUwLAkxNiwJezB4MjIsIDB4MDMsIDB4NDEsIDB4MDAsIDB4NDMsIDB4MDAsIDB4NGQsIDB4MDAsIDB4NDUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NzUsIDB4MDAsIDB4NzMsIDB4MDB9IH0sCit7IDB4MDY2MCwJMTYsCXsweDYyLCAweDAwLCAweDIwLCAweDAwLCAweDc3LCAweDAwLCAweDY5LCAweDAwLCAweDY0LCAweDAwLCAweDY3LCAweDAwLCAweDY1LCAweDAwLCAweDc0LCAweDAwfSB9LAoreyAweDA2NzAsCTE2LAl7MHg3MywgMHgwMCwgMHgyZSwgMHgwMywgMHg0MSwgMHgwMCwgMHg0MywgMHgwMCwgMHg0ZCwgMHgwMCwgMHg0NSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1NSwgMHgwMH0gfSwKK3sgMHgwNjgwLAkxNiwJezB4NTMsIDB4MDAsIDB4NDIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NzMsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjEsIDB4MDB9IH0sCit7IDB4MDY5MCwJMTYsCXsweDZjLCAweDAwLCAweDIwLCAweDAwLCAweDc3LCAweDAwLCAweDY5LCAweDAwLCAweDY0LCAweDAwLCAweDY3LCAweDAwLCAweDY1LCAweDAwLCAweDc0LCAweDAwfSB9LAoreyAweDA2YTAsCTYsCXsweDA2LCAweDAzLCAweDM0LCAweDAwLCAweDM3LCAweDAwfSB9LAoreyAweGZmZmYsCTAsCXsweDAwfSB9Cit9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMTh4X2Z3LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2ExOHhfZncuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2IzYmMwCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMTh4X2Z3LmgKQEAgLTAsMCArMSw0NDcgQEAKKy8qIGtleXNwYW5fdXNhMTh4X2Z3LmgKKworCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGFzIGtleXNwYW5fdXNhMTh4X2Z3LmggaXMKKworCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQorCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCisJCQorCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgorCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcworCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlIAorCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQgCisJS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKwlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUgCisJaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsIAorCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuIAorCisJVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGggIAorCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUgCisJa2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbiAKKwlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKKyovCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCBrZXlzcGFuX3VzYTE4eF9maXJtd2FyZVtdID0geworIHsweDAwMzMsICAzLCB7IDB4MDIsIDB4MTIsIDB4Zjd9fSwKKyB7MHgwMDAzLCAxNiwgeyAweGU0LCAweDkwLCAweDdmLCAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweDMwLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk2LCAweGYwfX0sCisgezB4MDAxMywgMTYsIHsgMHg5MCwgMHg3ZiwgMHg5NCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHg3NCwgMHhmZiwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NywgMHhmMCwgMHg5MH19LAorIHsweDAwMjMsIDE1LCB7IDB4N2YsIDB4OTUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4MDcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZjAsIDB4MjJ9fSwKKyB7MHgwMDQ2LCAxNiwgeyAweDMwLCAweDA5LCAweDE4LCAweDEyLCAweDEzLCAweDFiLCAweGVmLCAweGMzLCAweDk1LCAweDNjLCAweDQwLCAweDAzLCAweDAyLCAweDAwLCAweGQ4LCAweDkwfX0sCisgezB4MDA1NiwgMTYsIHsgMHg3ZiwgMHhiZiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhjMiwgMHgwOSwgMHhjMiwgMHgwMCwgMHg4MCwgMHg3NywgMHgzMCwgMHgwMywgMHgzYiwgMHg5MCwgMHg3Zn19LAorIHsweDAwNjYsIDE2LCB7IDB4YzYsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4NmQsIDB4MTIsIDB4MTMsIDB4MWIsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4NjQsIDB4OTAsIDB4N2V9fSwKKyB7MHgwMDc2LCAxNiwgeyAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDA5LCAweDkwLCAweDdmLCAweGM3LCAweGUwLCAweDE0LCAweGY1LCAweDE5LCAweDIwLCAweDAwLCAweDExLCAweDYwfX0sCisgezB4MDA4NiwgMTYsIHsgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg0MSwgMHg3NSwgMHgwYywgMHg3ZSwgMHg3NSwgMHgwZCwgMHg0MSwgMHgxMiwgMHgwYywgMHhiYX19LAorIHsweDAwOTYsIDE2LCB7IDB4YzIsIDB4MDMsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZjAsIDB4ODAsIDB4MzksIDB4OTAsIDB4N2YsIDB4YzgsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MzJ9fSwKKyB7MHgwMGE2LCAxNiwgeyAweDEyLCAweDEzLCAweDFiLCAweGVmLCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDI5LCAweDkwLCAweDdkLCAweGMwLCAweGUwLCAweDEzLCAweDkyLCAweDA5fX0sCisgezB4MDBiNiwgMTYsIHsgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlMCwgMHgxNCwgMHhmNSwgMHgxOSwgMHgyMCwgMHgwMCwgMHgxMSwgMHg2MCwgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3ZH19LAorIHsweDAwYzYsIDE2LCB7IDB4N2YsIDB4YzEsIDB4NzUsIDB4MGMsIDB4N2QsIDB4NzUsIDB4MGQsIDB4YzEsIDB4MTIsIDB4MGMsIDB4YmEsIDB4ZDIsIDB4MDMsIDB4ZTQsIDB4OTAsIDB4N2Z9fSwKKyB7MHgwMGQ2LCAxNiwgeyAweGM5LCAweGYwLCAweDkwLCAweDdmLCAweGI2LCAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDAxLCAweDYwLCAweDEyLCAweDExLCAweGQ2LCAweDhmfX0sCisgezB4MDBlNiwgMTYsIHsgMHgxOSwgMHgxMiwgMHgxMywgMHgyNywgMHg4ZiwgMHgzNiwgMHhlNSwgMHgxOSwgMHhjMywgMHg5NSwgMHgzYSwgMHg1MCwgMHgwZiwgMHgxMiwgMHgxMiwgMHhlYn19LAorIHsweDAwZjYsIDE2LCB7IDB4ZWYsIDB4MzAsIDB4ZTAsIDB4MDgsIDB4ZTUsIDB4MzYsIDB4MjAsIDB4ZTcsIDB4MDMsIDB4MzAsIDB4MGIsIDB4NWUsIDB4YzIsIDB4MGIsIDB4ZTUsIDB4MTl9fSwKKyB7MHgwMDM2LCAxMiwgeyAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyfX0sCisgezB4MDA0MywgIDMsIHsgMHgwMiwgMHgxMywgMHgwMH19LAorIHsweDAwMDAsICAzLCB7IDB4MDIsIDB4MGUsIDB4MDB9fSwKKyB7MHgwMTA2LCA2NCwgeyAweDYwLCAweDU4LCAweGI0LCAweDgwLCAweDAzLCAweDQzLCAweDM2LCAweDAyLCAweGU1LCAweDM2LCAweDMwLCAweGU3LCAweDI2LCAweGU1LCAweDE5LCAweGQzLCAweDk0LAorICAweDIwLCAweDQwLCAweDAzLCAweDc1LCAweDE5LCAweDIwLCAweDg1LCAweDE5LCAweDA4LCAweDdlLCAweDdlLCAweDdmLCAweDgwLCAweDc1LCAweDBjLCAweDdlLAorICAweDc1LCAweDBkLCAweDgwLCAweGFmLCAweDM2LCAweDEyLCAweDBmLCAweDRiLCAweGU1LCAweDE5LCAweDI1LCAweGUwLCAweDkwLCAweDdmLCAweGI3LCAweGYwLAorICAweDgwLCAweDI3LCAweGU1LCAweDE5LCAweGQzLCAweDk0LCAweDNmLCAweDQwLCAweDAzLCAweDc1LCAweDE5LCAweDNmLCAweDg1LCAweDE5LCAweDA4fX0sCisgezB4MDE0NiwgNjQsIHsgMHg5MCwgMHg3ZSwgMHg4MCwgMHhlNSwgMHgzNiwgMHhmMCwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg4MSwgMHg3NSwgMHgwYywgMHg3ZSwgMHg3NSwgMHgwZCwgMHg4MSwgMHgxMiwKKyAgMHgwYywgMHhkZiwgMHhlNSwgMHgxOSwgMHgwNCwgMHg5MCwgMHg3ZiwgMHhiNywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjZSwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNiwKKyAgMHgyMCwgMHgwNSwgMHgwMywgMHgwMiwgMHgwMywgMHhjMSwgMHhjMiwgMHgwNSwgMHhlNCwgMHhmNSwgMHgxOCwgMHg3NCwgMHg0MCwgMHgyNSwgMHgxOCwgMHhmNSwKKyAgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YywgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxOCwgMHg3YywgMHgwMCwgMHg3YiwgMHgwMSwgMHg3YX19LAorIHsweDAxODYsIDY0LCB7IDB4N2UsIDB4NzksIDB4MDAsIDB4MjQsIDB4MDAsIDB4ZjksIDB4ZWMsIDB4MzQsIDB4N2UsIDB4ZmEsIDB4ZWYsIDB4MTIsIDB4MGUsIDB4ZDIsIDB4MDUsIDB4MTgsIDB4ZTUsCisgIDB4MTgsIDB4YjQsIDB4MjAsIDB4ZDcsIDB4OTAsIDB4N2UsIDB4MDAsIDB4ZTAsIDB4NjAsIDB4NjgsIDB4OTAsIDB4N2UsIDB4MDMsIDB4ZTAsIDB4NjAsIDB4MjQsCisgIDB4N2YsIDB4MDEsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4YjEsIDB4N2YsIDB4MDMsIDB4N2QsIDB4Y2QsIDB4MTIsIDB4MTEsIDB4YjEsIDB4NDMsIDB4NDYsCisgIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4ZTQsIDB4OTB9fSwKKyB7MHgwMWM2LCA2NCwgeyAweDdlLCAweDEzLCAweGYwLCAweDgwLCAweDMwLCAweDkwLCAweDdlLCAweDAxLCAweGUwLCAweGZmLCAweDEyLCAweDEwLCAweDM1LCAweDkwLCAweDdlLCAweDAyLCAweGUwLAorICAweGZmLCAweDEyLCAweDEwLCAweDViLCAweDdmLCAweDAxLCAweDkwLCAweDdlLCAweDExLCAweGUwLCAweGZkLCAweDEyLCAweDExLCAweGIxLCAweDdmLCAweDAzLAorICAweDdkLCAweDA3LCAweDEyLCAweDExLCAweGIxLCAweDQzLCAweDQ2LCAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLAorICAweDAwLCAweGU1LCAweDQ2LCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweGU1LCAweDQwLCAweDQ0LCAweDA2LCAweDkwfX0sCisgezB4MDIwNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgwMywgMHhlMCwgMHg3MCwgMHgwNiwgMHg5MCwgMHg3ZSwgMHgxMywgMHhlMCwgMHg3MCwgMHgwOCwgMHhlNCwgMHg5MCwKKyAgMHg3ZSwgMHgxMywgMHhmMCwgMHg3NSwgMHgyNSwgMHhmZiwgMHg5MCwgMHg3ZSwgMHgwNSwgMHhlMCwgMHg2MCwgMHgxMiwgMHhhMywgMHhlMCwgMHg1NCwgMHgzZiwKKyAgMHhmNSwgMHg0NCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NCwgMHhmMCwgMHg5MCwgMHg3ZSwKKyAgMHgwNywgMHhlMCwgMHg2MCwgMHgyYiwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0MiwgMHg4MCwgMHg4MCwgMHgwMywgMHg1MywgMHg0Mn19LAorIHsweDAyNDYsIDY0LCB7IDB4N2YsIDB4NTMsIDB4NDIsIDB4ZmMsIDB4OTAsIDB4N2UsIDB4MDksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsIDB4NDIsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MTIsCisgIDB4MTAsIDB4YTcsIDB4OTAsIDB4N2UsIDB4MGIsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTAsIDB4Y2QsIDB4YWYsIDB4NDIsIDB4MTIsIDB4MTAsIDB4ODEsIDB4OTAsCisgIDB4N2UsIDB4MDMsIDB4ZTAsIDB4NjAsIDB4MDgsIDB4NTMsIDB4NDIsIDB4N2YsIDB4YWYsIDB4NDIsIDB4MTIsIDB4MTAsIDB4ODEsIDB4OTAsIDB4N2UsIDB4MGMsCisgIDB4ZTAsIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDYsIDB4MDIsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDYsIDB4ZmR9fSwKKyB7MHgwMjg2LCA2NCwgeyAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ2LCAweGYwLCAweDkwLCAweDdlLCAweDBlLCAweGUwLCAweDYwLAorICAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ2LCAweDAxLCAweDgwLCAweDAzLCAweDUzLCAweDQ2LCAweGZlLCAweDkwLCAweDdmLCAweDk4LAorICAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ2LCAweGYwLCAweDkwLCAweDdlLCAweDEyLCAweGUwLCAweGY1LCAweDNhLCAweGEzLAorICAweGUwLCAweDEzLCAweDkyLCAweDBkLCAweGEzLCAweGUwLCAweGY1LCAweDNjLCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ2LCAweDEwfX0sCisgezB4MDJjNiwgNjQsIHsgMHg4MCwgMHgwMywgMHg1MywgMHg0NiwgMHhlZiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NiwgMHhmMCwKKyAgMHg5MCwgMHg3ZSwgMHgxNiwgMHhlMCwgMHg2MCwgMHgzMiwgMHg1MywgMHg0NCwgMHhiZiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwKKyAgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHgxMiwgMHgxMiwgMHhkZiwKKyAgMHhlZiwgMHg1NCwgMHhmZSwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg1MywgMHgzZSwgMHhmZCwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZSwgMHgxMn19LAorIHsweDAzMDYsIDY0LCB7IDB4MTEsIDB4YjEsIDB4ZTQsIDB4ZjUsIDB4MmEsIDB4ZjUsIDB4MjksIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsIDB4MTcsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2UsCisgIDB4MDIsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2UsIDB4MTIsIDB4MTEsIDB4YjEsIDB4NzUsIDB4MjksIDB4MDEsIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsIDB4MTgsCisgIDB4ZTAsIDB4NjAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4ZTUsIDB4NDAsIDB4NDQsIDB4MDQsIDB4OTAsIDB4YzAsIDB4MDAsCisgIDB4ZjAsIDB4ZDIsIDB4MDAsIDB4OTAsIDB4N2UsIDB4MTksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsIDB4NDQsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTh9fSwKKyB7MHgwMzQ2LCA2NCwgeyAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDFhLCAweGUwLCAweDYwLCAweDBmLAorICAweDUzLCAweDNlLCAweGZlLCAweGU0LCAweGZmLCAweGFkLCAweDNlLCAweDEyLCAweDExLCAweGIxLCAweDc1LCAweDJiLCAweDAxLCAweGQyLCAweDA3LCAweDkwLAorICAweDdlLCAweDFiLCAweGUwLCAweDYwLCAweDBmLCAweDQzLCAweDNlLCAweDAxLCAweGU0LCAweGZmLCAweGFkLCAweDNlLCAweDEyLCAweDExLCAweGIxLCAweGU0LAorICAweGY1LCAweDJiLCAweGQyLCAweDA3LCAweDkwLCAweDdlLCAweDFjLCAweGUwLCAweDYwLCAweDBlLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyfX0sCisgezB4MDM4NiwgNjQsIHsgMHhmMCwgMHhlNSwgMHg0MCwgMHg0NCwgMHgwMiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgxZCwgMHhlMCwgMHg2MCwgMHgwMiwgMHhkMiwgMHgwYiwKKyAgMHg5MCwgMHg3ZSwgMHgxZSwgMHhlMCwgMHg2MCwgMHgwOCwgMHg3NSwgMHgyYywgMHgwMSwgMHhlNCwgMHhmNSwgMHgzOCwgMHhkMiwgMHgwNywgMHg5MCwgMHg3ZSwKKyAgMHgxZiwgMHhlMCwgMHg2MCwgMHgxMSwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxMSwgMHhmMCwgMHg3NCwgMHgzMSwgMHhmMCwgMHg3NCwgMHgxNSwgMHhmMCwKKyAgMHg3NCwgMHgzNSwgMHhmMCwgMHhkMiwgMHgwMywgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjZiwgMHhmMCwgMHgzMCwgMHgxYSwgMHg1MiwgMHhlNSwgMHgzOH19LAorIHsweDAzYzYsIDY0LCB7IDB4NjAsIDB4MDIsIDB4MTUsIDB4MzgsIDB4MjAsIDB4MTMsIDB4NDksIDB4ZTUsIDB4MTMsIDB4ZDMsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDQsIDB4MTUsIDB4MTMsIDB4ODAsCisgIDB4M2UsIDB4NzUsIDB4MTMsIDB4MGEsIDB4MzAsIDB4MWIsIDB4MDIsIDB4ZDIsIDB4MTMsIDB4MTIsIDB4MTIsIDB4ZGYsIDB4ZWYsIDB4NTQsIDB4MDEsIDB4ZjUsCisgIDB4MTksIDB4NjUsIDB4MmEsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MmEsIDB4ZDIsIDB4MDcsIDB4MTIsIDB4MTMsIDB4MzMsIDB4ZWYsIDB4NTQsIDB4ODAsCisgIDB4ZjUsIDB4MTksIDB4NjUsIDB4MjYsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MjYsIDB4ZDIsIDB4MDcsIDB4MzAsIDB4MGQsIDB4MTEsIDB4MTJ9fSwKKyB7MHgwNDA2LCA2NCwgeyAweDEzLCAweDMzLCAweGVmLCAweDU0LCAweDEwLCAweGY1LCAweDE5LCAweDY1LCAweDI1LCAweDYwLCAweDA1LCAweDg1LCAweDE5LCAweDI1LCAweGQyLCAweDA3LCAweDIwLAorICAweDFiLCAweDAzLCAweDAyLCAweDA3LCAweGVjLCAweDMwLCAweDBhLCAweDE4LCAweDEyLCAweDEzLCAweDZmLCAweGVmLCAweGMzLCAweDk1LCAweDNkLCAweDQwLAorICAweDAzLCAweDAyLCAweDA0LCAweGFlLCAweDkwLCAweDdmLCAweGMxLCAweDc0LCAweDAxLCAweGYwLCAweGMyLCAweDBhLCAweGMyLCAweDAwLCAweDgwLCAweDc3LAorICAweDMwLCAweDA0LCAweDNiLCAweDkwLCAweDdmLCAweGNhLCAweGUwLCAweDIwLCAweGUxLCAweDZkLCAweDEyLCAweDEzLCAweDZmLCAweGVmLCAweGMzfX0sCisgezB4MDQ0NiwgNjQsIHsgMHg5NCwgMHg0MCwgMHg1MCwgMHg2NCwgMHg5MCwgMHg3ZCwgMHg0MCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhlMCwgMHgxNCwgMHhmNSwKKyAgMHgxOSwgMHgyMCwgMHgwMCwgMHgxMSwgMHg2MCwgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHg0MSwgMHg3NSwgMHgwYywgMHg3ZCwgMHg3NSwKKyAgMHgwZCwgMHg0MSwgMHgxMiwgMHgwZCwgMHgwNCwgMHhjMiwgMHgwNCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhmMCwgMHg4MCwgMHgzOSwgMHg5MCwgMHg3ZiwKKyAgMHhjYywgMHhlMCwgMHgyMCwgMHhlMSwgMHgzMiwgMHgxMiwgMHgxMywgMHg2ZiwgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHgyOSwgMHg5MH19LAorIHsweDA0ODYsIDY0LCB7IDB4N2MsIDB4YzAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGEsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MTksIDB4MjAsIDB4MDAsIDB4MTEsIDB4NjAsCisgIDB4MGYsIDB4ZjUsIDB4MDgsIDB4N2UsIDB4N2MsIDB4N2YsIDB4YzEsIDB4NzUsIDB4MGMsIDB4N2MsIDB4NzUsIDB4MGQsIDB4YzEsIDB4MTIsIDB4MGQsIDB4MDQsCisgIDB4ZDIsIDB4MDQsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YmEsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDUsCisgIDB4MzYsIDB4MTIsIDB4MTIsIDB4MjAsIDB4OGYsIDB4MTksIDB4MTIsIDB4MTMsIDB4N2IsIDB4OGYsIDB4MzcsIDB4ZTUsIDB4MTksIDB4YzMsIDB4OTV9fSwKKyB7MHgwNGM2LCA2NCwgeyAweDNiLCAweDUwLCAweDBmLCAweDEyLCAweDEzLCAweDU3LCAweGVmLCAweDMwLCAweGUwLCAweDA4LCAweGU1LCAweDM3LCAweDIwLCAweGU3LCAweDAzLCAweDMwLCAweDBjLAorICAweDVlLCAweGMyLCAweDBjLCAweGU1LCAweDE5LCAweDYwLCAweDU4LCAweGI0LCAweDgwLCAweDAzLCAweDQzLCAweDM3LCAweDAyLCAweGU1LCAweDM3LCAweDMwLAorICAweGU3LCAweDI2LCAweGU1LCAweDE5LCAweGQzLCAweDk0LCAweDIwLCAweDQwLCAweDAzLCAweDc1LCAweDE5LCAweDIwLCAweDg1LCAweDE5LCAweDA4LCAweDdlLAorICAweDdkLCAweDdmLCAweDgwLCAweDc1LCAweDBjLCAweDdkLCAweDc1LCAweDBkLCAweDgwLCAweGFmLCAweDM3LCAweDEyLCAweDBmLCAweDg0LCAweGU1fX0sCisgezB4MDUwNiwgNjQsIHsgMHgxOSwgMHgyNSwgMHhlMCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHhmMCwgMHg4MCwgMHgyNywgMHhlNSwgMHgxOSwgMHhkMywgMHg5NCwgMHgzZiwgMHg0MCwgMHgwMywgMHg3NSwKKyAgMHgxOSwgMHgzZiwgMHg4NSwgMHgxOSwgMHgwOCwgMHg5MCwgMHg3ZCwgMHg4MCwgMHhlNSwgMHgzNywgMHhmMCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHg4MSwgMHg3NSwKKyAgMHgwYywgMHg3ZCwgMHg3NSwgMHgwZCwgMHg4MSwgMHgxMiwgMHgwZCwgMHgyOSwgMHhlNSwgMHgxOSwgMHgwNCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHhmMCwgMHg5MCwKKyAgMHg3ZiwgMHhkMCwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNiwgMHgyMCwgMHgwNiwgMHgwMywgMHgwMiwgMHgwNywgMHg5NywgMHhjMiwgMHgwNiwgMHhlNH19LAorIHsweDA1NDYsIDY0LCB7IDB4ZjUsIDB4MTgsIDB4NzQsIDB4YzAsIDB4MjUsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTgsCisgIDB4N2MsIDB4MDAsIDB4N2IsIDB4MDEsIDB4N2EsIDB4N2UsIDB4NzksIDB4MjAsIDB4MjQsIDB4MjAsIDB4ZjksIDB4ZWMsIDB4MzQsIDB4N2UsIDB4ZmEsIDB4ZWYsCisgIDB4MTIsIDB4MGUsIDB4ZDIsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MjAsIDB4ZDcsIDB4OTAsIDB4N2UsIDB4MjAsIDB4ZTAsIDB4NjAsIDB4NjgsCisgIDB4OTAsIDB4N2UsIDB4MjMsIDB4ZTAsIDB4NjAsIDB4MjQsIDB4N2YsIDB4MDEsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4N2YsIDB4MDN9fSwKKyB7MHgwNTg2LCA2NCwgeyAweDdkLCAweGNkLCAweDEyLCAweDExLCAweGZiLCAweDQzLCAweDQ3LCAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLAorICAweGU1LCAweDQ3LCAweGYwLCAweGU0LCAweDkwLCAweDdlLCAweDMzLCAweGYwLCAweDgwLCAweDMwLCAweDkwLCAweDdlLCAweDIxLCAweGUwLCAweGZmLCAweDEyLAorICAweDExLCAweDE5LCAweDkwLCAweDdlLCAweDIyLCAweGUwLCAweGZmLCAweDEyLCAweDExLCAweDNmLCAweDdmLCAweDAxLCAweDkwLCAweDdlLCAweDMxLCAweGUwLAorICAweGZkLCAweDEyLCAweDExLCAweGZiLCAweDdmLCAweDAzLCAweDdkLCAweDA3LCAweDEyLCAweDExLCAweGZiLCAweDQzLCAweDQ3LCAweDgwLCAweDkwfX0sCisgezB4MDVjNiwgNjQsIHsgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwKKyAgMHhlNSwgMHg0MSwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgyMywgMHhlMCwgMHg3MCwgMHgwNiwgMHg5MCwgMHg3ZSwKKyAgMHgzMywgMHhlMCwgMHg3MCwgMHgwOCwgMHhlNCwgMHg5MCwgMHg3ZSwgMHgzMywgMHhmMCwgMHg3NSwgMHgyZSwgMHhmZiwgMHg5MCwgMHg3ZSwgMHgyNSwgMHhlMCwKKyAgMHg2MCwgMHgxMiwgMHhhMywgMHhlMCwgMHg1NCwgMHgzZiwgMHhmNSwgMHg0NSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MH19LAorIHsweDA2MDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDUsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MjcsIDB4ZTAsIDB4NjAsIDB4MmIsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDMsCisgIDB4ODAsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDMsIDB4N2YsIDB4NTMsIDB4NDMsIDB4ZmMsIDB4OTAsIDB4N2UsIDB4MjksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsCisgIDB4NDMsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTEsIDB4NjUsIDB4OTAsIDB4N2UsIDB4MmIsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTEsIDB4OGIsCisgIDB4YWYsIDB4NDMsIDB4MTIsIDB4MTAsIDB4ZjMsIDB4OTAsIDB4N2UsIDB4MjMsIDB4ZTAsIDB4NjAsIDB4MDgsIDB4NTMsIDB4NDMsIDB4N2YsIDB4YWZ9fSwKKyB7MHgwNjQ2LCA2NCwgeyAweDQzLCAweDEyLCAweDEwLCAweGYzLCAweDkwLCAweDdlLCAweDJjLCAweGUwLCAweDYwLCAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ3LCAweDAyLAorICAweDgwLCAweDAzLCAweDUzLCAweDQ3LCAweGZkLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LAorICAweGYwLCAweDkwLCAweDdlLCAweDJlLCAweGUwLCAweDYwLCAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ3LCAweDAxLCAweDgwLCAweDAzLAorICAweDUzLCAweDQ3LCAweGZlLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LCAweGYwfX0sCisgezB4MDY4NiwgNjQsIHsgMHg5MCwgMHg3ZSwgMHgzMiwgMHhlMCwgMHhmNSwgMHgzYiwgMHhhMywgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwgMHhhMywgMHhlMCwgMHhmNSwgMHgzZCwgMHhhMywgMHhlMCwKKyAgMHg2MCwgMHgwNSwgMHg0MywgMHg0NywgMHgxMCwgMHg4MCwgMHgwMywgMHg1MywgMHg0NywgMHhlZiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwKKyAgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NywgMHhmMCwgMHg5MCwgMHg3ZSwgMHgzNiwgMHhlMCwgMHg2MCwgMHgzMiwgMHg1MywgMHg0NSwgMHhiZiwgMHg5MCwKKyAgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3Zn19LAorIHsweDA2YzYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MDksIDB4ZjAsIDB4MTIsIDB4MTMsIDB4NGIsIDB4ZWYsIDB4NTQsIDB4ZmUsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4NTMsIDB4M2YsIDB4ZmQsCisgIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2YsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4ZTQsIDB4ZjUsIDB4MzMsIDB4ZjUsIDB4MzIsIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsCisgIDB4MzcsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2YsIDB4MDIsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2YsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4NzUsIDB4MzIsCisgIDB4MDEsIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsIDB4MzgsIDB4ZTAsIDB4NjAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGEsIDB4ZjB9fSwKKyB7MHgwNzA2LCA2NCwgeyAweGU1LCAweDQxLCAweDQ0LCAweDA0LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGQyLCAweDAwLCAweDkwLCAweDdlLCAweDM5LCAweGUwLCAweDYwLCAweDExLCAweDQzLAorICAweDQ1LCAweDQwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLAorICAweDkwLCAweDdlLCAweDNhLCAweGUwLCAweDYwLCAweDBmLCAweDUzLCAweDNmLCAweGZlLCAweGU0LCAweGZmLCAweGFkLCAweDNmLCAweDEyLCAweDExLCAweGZiLAorICAweDc1LCAweDM0LCAweDAxLCAweGQyLCAweDA4LCAweDkwLCAweDdlLCAweDNiLCAweGUwLCAweDYwLCAweDBmLCAweDQzLCAweDNmLCAweDAxLCAweGU0fX0sCisgezB4MDc0NiwgNjQsIHsgMHhmZiwgMHhhZCwgMHgzZiwgMHgxMiwgMHgxMSwgMHhmYiwgMHhlNCwgMHhmNSwgMHgzNCwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwgMHgzYywgMHhlMCwgMHg2MCwgMHgwZSwKKyAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwgMHhlNSwgMHg0MSwgMHg0NCwgMHgwMiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwKKyAgMHgzZCwgMHhlMCwgMHg2MCwgMHgwMiwgMHhkMiwgMHgwYywgMHg5MCwgMHg3ZSwgMHgzZSwgMHhlMCwgMHg2MCwgMHgwOCwgMHg3NSwgMHgzNSwgMHgwMSwgMHhlNCwKKyAgMHhmNSwgMHgzOSwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwgMHgzZiwgMHhlMCwgMHg2MCwgMHgxMSwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxM319LAorIHsweDA3ODYsIDY0LCB7IDB4ZjAsIDB4NzQsIDB4MzMsIDB4ZjAsIDB4NzQsIDB4MTYsIDB4ZjAsIDB4NzQsIDB4MzYsIDB4ZjAsIDB4ZDIsIDB4MDQsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4ZDEsIDB4ZjAsCisgIDB4MzAsIDB4MWEsIDB4NTIsIDB4ZTUsIDB4MzksIDB4NjAsIDB4MDIsIDB4MTUsIDB4MzksIDB4MzAsIDB4MTMsIDB4NDksIDB4ZTUsIDB4MTMsIDB4ZDMsIDB4OTQsCisgIDB4MDAsIDB4NDAsIDB4MDQsIDB4MTUsIDB4MTMsIDB4ODAsIDB4M2UsIDB4NzUsIDB4MTMsIDB4MGEsIDB4MzAsIDB4MWIsIDB4MDIsIDB4YzIsIDB4MTMsIDB4MTIsCisgIDB4MTMsIDB4NGIsIDB4ZWYsIDB4NTQsIDB4MDEsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MzMsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MzMsIDB4ZDJ9fSwKKyB7MHgwN2M2LCA2NCwgeyAweDA4LCAweDEyLCAweDEzLCAweDg3LCAweGVmLCAweDU0LCAweDgwLCAweGY1LCAweDE5LCAweDY1LCAweDJmLCAweDYwLCAweDA1LCAweDg1LCAweDE5LCAweDJmLCAweGQyLAorICAweDA4LCAweDMwLCAweDBlLCAweDExLCAweDEyLCAweDEzLCAweDg3LCAweGVmLCAweDU0LCAweDEwLCAweGY1LCAweDE5LCAweDY1LCAweDJlLCAweDYwLCAweDA1LAorICAweDg1LCAweDE5LCAweDJlLCAweGQyLCAweDA4LCAweDMwLCAweDFhLCAweDJhLCAweDkwLCAweDdmLCAweGQyLCAweGUwLCAweDIwLCAweGUxLCAweDIzLCAweDkwLAorICAweDdiLCAweDQwLCAweGUwLCAweDYwLCAweDA5LCAweGUwLCAweGY1LCAweDE1LCAweDkwLCAweDdiLCAweDQyLCAweGUwLCAweGY1LCAweDE2LCAweDkwfX0sCisgezB4MDgwNiwgNjQsIHsgMHg3YiwgMHg0MSwgMHhlMCwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxNywgMHhmMCwgMHg3NCwgMHgzNywgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwKKyAgMHhkMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjMiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwOSwgMHgyMCwgMHhlNSwgMHgwYSwgMHg3MCwgMHg0MCwKKyAgMHgzMCwgMHgwNywgMHgzOSwgMHhlNSwgMHgzOCwgMHg3MCwgMHgzNSwgMHhjMiwgMHgwNywgMHhmNSwgMHgxOCwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwKKyAgMHgyNCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwZSwgMHg4YywgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNX19LAorIHsweDA4NDYsIDY0LCB7IDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZGIsCisgIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDksIDB4ZjAsIDB4NzUsIDB4MzgsIDB4MTAsIDB4ZTQsIDB4ZjUsIDB4MmMsIDB4NzUsIDB4MGEsIDB4MDEsIDB4MjIsCisgIDB4ZTUsIDB4MGEsIDB4NjQsIDB4MDEsIDB4NzAsIDB4NDAsIDB4MzAsIDB4MDgsIDB4MzksIDB4ZTUsIDB4MzksIDB4NzAsIDB4MzUsIDB4YzIsIDB4MDgsIDB4ZjUsCisgIDB4MTgsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MmQsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTJ9fSwKKyB7MHgwODg2LCA2NCwgeyAweDBlLCAweDhjLCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LAorICAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA5LCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDA5LCAweGYwLCAweDc1LCAweDM5LCAweDEwLCAweGU0LAorICAweGY1LCAweDM1LCAweDc1LCAweDBhLCAweDAyLCAweDIyLCAweGU1LCAweDBhLCAweDY0LCAweDAyLCAweDcwLCAweDM2LCAweDMwLCAweDE0LCAweDJmLCAweGMyLAorICAweDE0LCAweGY1LCAweDE4LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDBlLCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwfX0sCisgezB4MDhjNiwgNjQsIHsgMHhmYSwgMHgxMiwgMHgwZSwgMHg4YywgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwKKyAgMHhmMCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwNSwgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwNSwgMHhmMCwgMHg3NSwgMHgwYSwKKyAgMHgwMywgMHgyMiwgMHhlNSwgMHgxNSwgMHg2MCwgMHgzMCwgMHgxNSwgMHgxNSwgMHhlNCwgMHhmNSwgMHgxOCwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwKKyAgMHgxNCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwZSwgMHg4YywgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNX19LAorIHsweDA5MDYsIDY0LCB7IDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDMsIDB4ZGIsCisgIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MGEsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZTksIDB4ZTAsIDB4MTIsIDB4MGUsCisgIDB4ZTQsIDB4MGEsIDB4MDgsIDB4MDAsIDB4MGEsIDB4N2MsIDB4MDEsIDB4MGEsIDB4ZTgsIDB4MDMsIDB4MDksIDB4NDQsIDB4MDYsIDB4MDksIDB4ZmIsIDB4MDgsCisgIDB4MDksIDB4ZjUsIDB4MDksIDB4MDksIDB4ZGQsIDB4MGEsIDB4MDksIDB4ZWMsIDB4MGIsIDB4MDAsIDB4MDAsIDB4MGIsIDB4MzcsIDB4OTAsIDB4N2Z9fSwKKyB7MHgwOTQ2LCA2NCwgeyAweGViLCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE5LCAweDE0LCAweDYwLCAweDYxLCAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDA5LCAweGQzLCAweDc0LAorICAweDE5LCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweDc0LCAweDAwLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLAorICAweGVhLCAweGUwLCAweDcwLCAweDA0LCAweDdmLCAweDAyLCAweDgwLCAweDAyLCAweDdmLCAweDAzLCAweDc1LCAweDgyLCAweDgyLCAweDc1LCAweDgzLCAweDE5LAorICAweGVmLCAweGYwLCAweDc1LCAweDgyLCAweDdiLCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc1LCAweDgyLCAweDc0LCAweDc1LCAweDgzLCAweDE5fX0sCisgezB4MDk4NiwgNjQsIHsgMHhmMCwgMHg3NSwgMHg4MiwgMHg2NiwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NSwgMHg4MiwgMHg1OCwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg5MCwgMHg3ZiwKKyAgMHhlYSwgMHhlMCwgMHgwNCwgMHg3NSwgMHg4MiwgMHgxNywgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwKKyAgMHg3NCwgMHgxMiwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwZiwKKyAgMHgwYSwgMHhlYSwgMHg0OSwgMHg2MCwgMHgwZCwgMHhlYSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHhlOSwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMH19LAorIHsweDA5YzYsIDY0LCB7IDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsCisgIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MDksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsCisgIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MDksIDB4MDIsIDB4MGIsIDB4M2UsIDB4MTIsIDB4MGIsCisgIDB4NDYsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4MDAsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4ZjAsIDB4MDJ9fSwKKyB7MHgwYTA2LCA2NCwgeyAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweDdmLCAweDYwLCAweDI0LCAweDE0LCAweDYwLCAweDMxLCAweDI0LCAweDAyLCAweDcwLCAweDViLAorICAweGEyLCAweDEwLCAweGU0LCAweDMzLCAweGZmLCAweDI1LCAweGUwLCAweGZmLCAweGEyLCAweDE2LCAweGU0LCAweDMzLCAweDRmLCAweDkwLCAweDdmLCAweDAwLAorICAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweGU0LCAweDkwLCAweDdmLAorICAweDAwLCAweGYwLCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmfX0sCisgezB4MGE0NiwgNjQsIHsgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwKKyAgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwKKyAgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwKKyAgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxZCwgMHgyNCwgMHgwMn19LAorIHsweDBhODYsIDY0LCB7IDB4NjAsIDB4MDMsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDUsIDB4YzIsIDB4MTAsIDB4MDIsIDB4MGIsIDB4M2UsCisgIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MzgsCisgIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsCisgIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4OTAsIDB4N2Z9fSwKKyB7MHgwYWM2LCA2NCwgeyAweGVjLCAweGUwLCAweDU0LCAweDgwLCAweGZmLCAweDEzLCAweDEzLCAweDEzLCAweDU0LCAweDFmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDkwLCAweDdmLAorICAweGQ3LCAweGYwLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDgwLCAweDVmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLAorICAweDU2LCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE4LCAweDI0LCAweDAyLCAweDcwLCAweDRhLCAweDkwLCAweDdmLCAweGVhLAorICAweGUwLCAweGI0LCAweDAxLCAweDA0LCAweGQyLCAweDEwLCAweDgwLCAweDNmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwfX0sCisgezB4MGIwNiwgNjQsIHsgMHg4MCwgMHgzNiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwKKyAgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwKKyAgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgwNywKKyAgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgyMn19LAorIHsweDBiNDYsIDY0LCB7IDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZjAsIDB4OTAsCisgIDB4N2YsIDB4OTUsIDB4NzQsIDB4YzAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4M2YsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTgsCisgIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4OGUsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4ZjAsIDB4ZTQsIDB4ZjUsCisgIDB4MjQsIDB4NzUsIDB4MTgsIDB4MDEsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MjQsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZTQsIDB4MzQsIDB4MDAsIDB4ZmF9fSwKKyB7MHgwYjg2LCA2NCwgeyAweGU0LCAweDEyLCAweDBlLCAweGQyLCAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA5LCAweGVhLCAweDc1LCAweDNhLCAweDAxLCAweGU0LCAweGY1LCAweDM4LAorICAweGY1LCAweDEzLCAweGY1LCAweDM2LCAweGMyLCAweDA3LCAweGMyLCAweDBiLCAweGMyLCAweDA1LCAweGMyLCAweDAwLCAweGMyLCAweDA5LCAweGMyLCAweDEzLAorICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDc1LCAweDQ0LCAweDAzLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDAzLCAweGYwLCAweDdmLAorICAweDBjLCAweGU0LCAweGZkLCAweDEyLCAweDExLCAweGIxLCAweDdmLCAweDEwLCAweDhmLCAweDQyLCAweDEyLCAweDEwLCAweDgxLCAweDkwLCAweDdmfX0sCisgezB4MGJjNiwgNjQsIHsgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg3ZiwgMHgwMSwgMHg4ZiwgMHg0MCwgMHhlZiwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwKKyAgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg3NSwgMHg0NiwgMHg4MCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHg4MCwgMHhmMCwgMHgwZiwgMHhlNCwgMHhmZCwKKyAgMHgxMiwgMHgxMSwgMHhiMSwgMHhlNCwgMHhmZiwgMHg3ZSwgMHhhMywgMHhhZCwgMHgwNiwgMHg4ZCwgMHgzZSwgMHgxMiwgMHgxMSwgMHhiMSwgMHg5MCwgMHg3ZiwKKyAgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNCwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZCwgMHg3ZiwgMHgxMiwgMHgxMX19LAorIHsweDBjMDYsIDY0LCB7IDB4YjEsIDB4N2YsIDB4MDEsIDB4MTIsIDB4MTIsIDB4NmEsIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTEsIDB4YjEsIDB4MjAsIDB4MWIsIDB4MDMsIDB4MDIsCisgIDB4MGMsIDB4YjcsIDB4NzUsIDB4MmQsIDB4MDEsIDB4NzUsIDB4MTgsIDB4MDEsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MmQsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZTQsCisgIDB4MzQsIDB4MDAsIDB4ZmEsIDB4ZTQsIDB4MTIsIDB4MGUsIDB4ZDIsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZWEsIDB4NzUsIDB4M2IsCisgIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MzksIDB4ZjUsIDB4MTMsIDB4ZjUsIDB4MzcsIDB4YzIsIDB4MDgsIDB4YzIsIDB4MGMsIDB4YzIsIDB4MDYsIDB4YzJ9fSwKKyB7MHgwYzQ2LCA2NCwgeyAweDAwLCAweGMyLCAweDBhLCAweGMyLCAweDEzLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDc1LCAweDQ1LCAweDAzLCAweDkwLCAweGMwLCAweDAwLAorICAweDc0LCAweDAzLCAweGYwLCAweDdmLCAweDBjLCAweGU0LCAweGZkLCAweDEyLCAweDExLCAweGZiLCAweDdmLCAweDEwLCAweDhmLCAweDQzLCAweDEyLCAweDEwLAorICAweGYzLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweDdmLCAweDAxLCAweDhmLCAweDQxLCAweGVmLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLAorICAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDc1LCAweDQ3LCAweDgwLCAweDkwLCAweGMwLCAweDAwLCAweDc0fX0sCisgezB4MGM4NiwgNjQsIHsgMHg4MCwgMHhmMCwgMHgwZiwgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMSwgMHhmYiwgMHhlNCwgMHhmZiwgMHg3ZSwgMHhhMywgMHhhZCwgMHgwNiwgMHg4ZCwgMHgzZiwgMHgxMiwKKyAgMHgxMSwgMHhmYiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNCwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZCwKKyAgMHg3ZiwgMHgxMiwgMHgxMSwgMHhmYiwgMHg3ZiwgMHgwMSwgMHgxMiwgMHgxMiwgMHg4YiwgMHg3ZiwgMHgwMywgMHg3ZCwgMHgwNywgMHgxMiwgMHgxMSwgMHhmYiwKKyAgMHhkMiwgMHgxMiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHhhZiwgMHgwOCwgMHhlNSwgMHgwZCwgMHhmNSwgMHg4Mn19LAorIHsweDBjYzYsIDY0LCB7IDB4ZTUsIDB4MGMsIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4MDUsIDB4ODYsIDB4ZTAsIDB4YTMsIDB4MDUsIDB4ODYsCisgIDB4ZjAsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4YWYsIDB4MDgsCisgIDB4ZTUsIDB4MGQsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MGMsIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsCisgIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4MDUsIDB4ODYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2Z9fSwKKyB7MHgwZDA2LCA2NCwgeyAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweGFmLCAweDA4LCAweGU1LCAweDBkLCAweGY1LCAweDgyLCAweGU1LCAweDBjLCAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LAorICAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweDA1LCAweDg2LCAweGUwLCAweGEzLCAweDA1LCAweDg2LCAweGYwLCAweDA1LCAweDg2LCAweGRmLCAweGY3LCAweGQyLAorICAweGFmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweGFmLCAweDA4LCAweGU1LCAweDBkLCAweGY1LCAweDgyLCAweGU1LCAweDBjLAorICAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1fX0sCisgezB4MGQ0NiwgNjQsIHsgMHg4NiwgMHhkZiwgMHhmNywgMHgwNSwgMHg4NiwgMHhkMiwgMHhhZiwgMHgyMiwgMHg3NCwgMHgwMCwgMHhmNSwgMHg4NiwgMHg5MCwgMHhmZCwgMHhhNSwgMHg3YywgMHgwNSwKKyAgMHhhMywgMHhlNSwgMHg4MiwgMHg0NSwgMHg4MywgMHg3MCwgMHhmOSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg0MywKKyAgMHg4NywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMiwgMHhkMiwgMHgxOSwgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHg0NCwgMHgwMiwKKyAgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHhlMCwgMHhmZiwgMHhkMywgMHg5MiwgMHgxMCwgMHhlNCwgMHgzMywgMHhmZSwgMHhlZiwgMHg0ZSwgMHhmMH19LAorIHsweDBkODYsIDY0LCB7IDB4ZDIsIDB4ZTgsIDB4NDMsIDB4ZDgsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4ZjAsIDB4OTAsIDB4N2YsCisgIDB4YWIsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWEsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsCisgIDB4N2YsIDB4YWYsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZTAsIDB4NDQsIDB4MGQsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4ZDIsCisgIDB4MWEsIDB4MTIsIDB4MTIsIDB4NDUsIDB4YzIsIDB4MTEsIDB4ZTQsIDB4ZjUsIDB4MGIsIDB4ZjUsIDB4MTMsIDB4YzIsIDB4MTcsIDB4YzIsIDB4MTJ9fSwKKyB7MHgwZGM2LCA2NCwgeyAweDkwLCAweDdmLCAweGExLCAweDA0LCAweGYwLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweDY1LCAweDE3LCAweDYwLCAweDEwLCAweDMwLCAweDEyLCAweDA1LCAweGQyLAorICAweDFhLCAweDEyLCAweDAwLCAweDQ2LCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweGY1LCAweDE3LCAweDgwLCAweDA4LCAweDMwLCAweDEyLCAweDA1LCAweGMyLAorICAweDFhLCAweDEyLCAweDAwLCAweDQ2LCAweDMwLCAweDExLCAweDA3LCAweGMyLCAweDExLCAweDEyLCAweDA5LCAweDIxLCAweDgwLCAweGQ2LCAweDMwLCAweDE4LAorICAweGQzLCAweGMyLCAweDE4LCAweDEyLCAweDEzLCAweDkzLCAweDgwLCAweGNjLCAweDIyLCAweDc4LCAweDdmLCAweGU0LCAweGY2LCAweGQ4LCAweGZkfX0sCisgezB4MGUwNiwgNjQsIHsgMHg3NSwgMHg4MSwgMHg0NywgMHgwMiwgMHgwZSwgMHg0NywgMHgwMiwgMHgwZCwgMHg2ZiwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHg0MCwKKyAgMHgwMywgMHhmNiwgMHg4MCwgMHgwMSwgMHhmMiwgMHgwOCwgMHhkZiwgMHhmNCwgMHg4MCwgMHgyOSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHg1NCwgMHgwNywKKyAgMHgyNCwgMHgwYywgMHhjOCwgMHhjMywgMHgzMywgMHhjNCwgMHg1NCwgMHgwZiwgMHg0NCwgMHgyMCwgMHhjOCwgMHg4MywgMHg0MCwgMHgwNCwgMHhmNCwgMHg1NiwKKyAgMHg4MCwgMHgwMSwgMHg0NiwgMHhmNiwgMHhkZiwgMHhlNCwgMHg4MCwgMHgwYiwgMHgwMSwgMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MH19LAorIHsweDBlNDYsIDY0LCB7IDB4ODAsIDB4OTAsIDB4MTIsIDB4YWMsIDB4ZTQsIDB4N2UsIDB4MDEsIDB4OTMsIDB4NjAsIDB4YmMsIDB4YTMsIDB4ZmYsIDB4NTQsIDB4M2YsIDB4MzAsIDB4ZTUsIDB4MDksCisgIDB4NTQsIDB4MWYsIDB4ZmUsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NjAsIDB4MDEsIDB4MGUsIDB4Y2YsIDB4NTQsIDB4YzAsIDB4MjUsIDB4ZTAsIDB4NjAsIDB4YTgsCisgIDB4NDAsIDB4YjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZmEsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsCisgIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZjAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2F9fSwKKyB7MHgwZTg2LCA2NCwgeyAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweGJlLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDAyLAorICAweGU3LCAweDIyLCAweGJiLCAweGZlLCAweDAyLCAweGUzLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLAorICAweDBjLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDA2LCAweGU5LAorICAweDI1LCAweDgyLCAweGY4LCAweGU2LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyLCAweGU1fX0sCisgezB4MGVjNiwgNjQsIHsgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwKKyAgMHg4YSwgMHg4MywgMHhmMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwgMHhmMywgMHgyMiwgMHhkMCwgMHg4MywgMHhkMCwKKyAgMHg4MiwgMHhmOCwgMHhlNCwgMHg5MywgMHg3MCwgMHgxMiwgMHg3NCwgMHgwMSwgMHg5MywgMHg3MCwgMHgwZCwgMHhhMywgMHhhMywgMHg5MywgMHhmOCwgMHg3NCwKKyAgMHgwMSwgMHg5MywgMHhmNSwgMHg4MiwgMHg4OCwgMHg4MywgMHhlNCwgMHg3MywgMHg3NCwgMHgwMiwgMHg5MywgMHg2OCwgMHg2MCwgMHhlZiwgMHhhM319LAorIHsweDBmMDYsIDY0LCB7IDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGYsIDB4OGYsIDB4MTgsIDB4ZTQsIDB4ZjUsIDB4MTksIDB4NzUsIDB4MWEsIDB4ZmYsIDB4NzUsIDB4MWIsIDB4MTksIDB4NzUsIDB4MWMsCisgIDB4ODYsIDB4YWIsIDB4MWEsIDB4YWEsIDB4MWIsIDB4YTksIDB4MWMsIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4MGUsIDB4YTUsIDB4YjQsIDB4MDMsIDB4MWQsCisgIDB4YWYsIDB4MTksIDB4MDUsIDB4MTksIDB4ZWYsIDB4YjUsIDB4MTgsIDB4MDEsIDB4MjIsIDB4MTIsIDB4MGUsIDB4OGMsIDB4N2UsIDB4MDAsIDB4MjksIDB4ZmYsCisgIDB4ZWUsIDB4M2EsIDB4YTksIDB4MDcsIDB4NzUsIDB4MWEsIDB4ZmYsIDB4ZjUsIDB4MWIsIDB4ODksIDB4MWMsIDB4ODAsIDB4ZDQsIDB4N2IsIDB4MDB9fSwKKyB7MHgwZjQ2LCA2NCwgeyAweDdhLCAweDAwLCAweDc5LCAweDAwLCAweDIyLCAweDhmLCAweDFhLCAweDA1LCAweDBkLCAweGU1LCAweDBkLCAweGFlLCAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLAorICAweDE0LCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGU1LCAweDFhLCAweGYwLCAweDEyLCAweDAwLCAweDM2LCAweDA1LCAweDBkLCAweGU1LCAweDBkLCAweGFjLAorICAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDE1LCAweDA4LCAweGU1LCAweDA4LAorICAweDYwLCAweDBhLCAweDEyLCAweDEzLCAweDI3LCAweDhmLCAweDFhLCAweGVmLCAweDQyLCAweDM2LCAweDgwLCAweGNhLCAweDIyLCAweDhmLCAweDFhfX0sCisgezB4MGY4NiwgNjQsIHsgMHgwNSwgMHgwZCwgMHhlNSwgMHgwZCwgMHhhZSwgMHgwYywgMHg3MCwgMHgwMiwgMHgwNSwgMHgwYywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlNSwgMHgxYSwKKyAgMHhmMCwgMHgxMiwgMHgxMywgMHgzZiwgMHgwNSwgMHgwZCwgMHhlNSwgMHgwZCwgMHhhYywgMHgwYywgMHg3MCwgMHgwMiwgMHgwNSwgMHgwYywgMHgxNCwgMHhmNSwKKyAgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHgxNSwgMHgwOCwgMHhlNSwgMHgwOCwgMHg2MCwgMHgwYSwgMHgxMiwgMHgxMywgMHg3YiwgMHg4ZiwgMHgxYSwKKyAgMHhlZiwgMHg0MiwgMHgzNywgMHg4MCwgMHhjYSwgMHgyMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMH19LAorIHsweDBmYzYsIDY0LCB7IDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YzQsIDB4ZTQsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsCisgIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsCisgIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsCisgIDB4MTEsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDB9fSwKKyB7MHgxMDA2LCA2NCwgeyAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLAorICAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDE4LCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA4LAorICAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdmLAorICAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwfX0sCisgezB4MTA0NiwgNjQsIHsgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwKKyAgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwKKyAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywKKyAgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxM319LAorIHsweDEwODYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsCisgIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsCisgIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsCisgIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDR9fSwKKyB7MHgxMGM2LCA2NCwgeyAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LAorICAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE2LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LAorICAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAorICAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweDkwfX0sCisgezB4MTEwNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwKKyAgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwKKyAgMHg5OCwgMHg3NCwgMHgwOCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwKKyAgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MH19LAorIHsweDExNDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDksIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsCisgIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsCisgIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsCisgIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2Z9fSwKKyB7MHgxMTg2LCA2NCwgeyAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLAorICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBlLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLAorICAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLAorICAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE3LCAweGYwLCAweDkwfX0sCisgezB4MTFjNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZCwgMHhmMCwgMHgyMiwgMHgxMiwKKyAgMHgxMywgMHgwZiwgMHg4ZiwgMHgxYSwgMHgxMiwgMHgxMywgMHgwZiwgMHg4ZiwgMHgxYiwgMHhlNSwgMHgxYSwgMHg2NSwgMHgxYiwgMHg2MCwgMHgxMiwgMHgxMiwKKyAgMHgxMywgMHgwZiwgMHg4ZiwgMHgxYSwgMHhlNSwgMHgxYSwgMHg2NSwgMHgxYiwgMHg2MCwgMHgwNywgMHgxMiwgMHgxMywgMHgwZiwgMHg4ZiwgMHgxYiwgMHg4MCwKKyAgMHhlOCwgMHhhZiwgMHgxYSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MH19LAorIHsweDEyMDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGYsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsCisgIDB4NzQsIDB4MGQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWQsIDB4ZjAsIDB4MjIsIDB4MTIsIDB4MTMsIDB4NjMsIDB4OGYsIDB4MWEsIDB4MTIsIDB4MTMsCisgIDB4NjMsIDB4OGYsIDB4MWIsIDB4ZTUsIDB4MWEsIDB4NjUsIDB4MWIsIDB4NjAsIDB4MTIsIDB4MTIsIDB4MTMsIDB4NjMsIDB4OGYsIDB4MWEsIDB4ZTUsIDB4MWEsCisgIDB4NjUsIDB4MWIsIDB4NjAsIDB4MDcsIDB4MTIsIDB4MTMsIDB4NjMsIDB4OGYsIDB4MWIsIDB4ODAsIDB4ZTgsIDB4YWYsIDB4MWEsIDB4MjIsIDB4OTB9fSwKKyB7MHgxMjQ2LCA2NCwgeyAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDMwLCAweDFhLCAweDA0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLAorICAweDdmLCAweGY0LCAweDdlLCAweDAxLCAweDEyLCAweDEyLCAweGM4LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweGUwLCAweDQ0LAorICAweDA0LCAweGYwLCAweDIyLCAweGFlLCAweDA3LCAweGU0LCAweGZmLCAweGU1LCAweDNlLCAweDU0LCAweDdmLCAweGZkLCAweDEyLCAweDExLCAweGIxLCAweDkwLAorICAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDNlLCAweDQ0LCAweDgwfX0sCisgezB4MTI4NiwgNjQsIHsgMHhmZCwgMHgxMiwgMHgxMSwgMHhiMSwgMHgyMiwgMHhhZSwgMHgwNywgMHhlNCwgMHhmZiwgMHhlNSwgMHgzZiwgMHg1NCwgMHg3ZiwgMHhmZCwgMHgxMiwgMHgxMSwgMHhmYiwKKyAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZSwgMHhmMCwgMHhlNCwgMHhlNSwgMHgzZiwgMHg0NCwgMHg4MCwKKyAgMHhmZCwgMHgxMiwgMHgxMSwgMHhmYiwgMHgyMiwgMHgwNSwgMHgwZSwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMywgMHgxNCwgMHgwMywgMHgwMCwKKyAgMHgwMCwgMHhjMSwgMHgxMSwgMHhjMSwgMHgxOCwgMHhjMSwgMHg5NSwgMHhjMSwgMHgxMCwgMHhjMSwgMHgxNiwgMHgwMSwgMHgwYSwgMHgwMCwgMHhjMX19LAorIHsweDEyYzYsIDY0LCB7IDB4MWIsIDB4MDAsIDB4OGUsIDB4MTgsIDB4OGYsIDB4MTksIDB4ZTUsIDB4MTksIDB4MTUsIDB4MTksIDB4YWUsIDB4MTgsIDB4NzAsIDB4MDIsIDB4MTUsIDB4MTgsIDB4NGUsCisgIDB4NjAsIDB4MDUsIDB4MTIsIDB4MGQsIDB4NGUsIDB4ODAsIDB4ZWUsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsCisgIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsCisgIDB4NTMsIDB4ZDgsIDB4ZWYsIDB4MzIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MGYsIDB4ZTcsIDB4MDAsIDB4MDIsIDB4MTN9fSwKKyB7MHgxMzA2LCA2NCwgeyAweDA0LCAweDAwLCAweDAyLCAweDBmLCAweGJkLCAweDAwLCAweDAyLCAweDEwLCAweDBlLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLAorICAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLAorICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAorICAweDE2LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweDkwfX0sCisgezB4MTM0NiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwKKyAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKKyAgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MCwgMHhjMCwKKyAgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZn19LAorIHsweDEzODYsIDY0LCB7IDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4MTIsIDB4MDAsIDB4MDMsIDB4MTIsCisgIDB4MGQsIDB4NWYsIDB4MTIsIDB4MGIsIDB4NDYsIDB4MjIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxM2M2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTQwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE0NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNDg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTRjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE1MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNTQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTU4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE1YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNjA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTY0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE2ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNmM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTcwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE3NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNzg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTdjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE4MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxODQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTg4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE4YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MDEsIDB4MTAsIDB4MDEsIDB4ZmYsIDB4MDB9fSwKKyB7MHgxOTA2LCA2NCwgeyAweDAwLCAweDQwLCAweGNkLCAweDA2LCAweDEyLCAweDAxLCAweDAwLCAweDAwLCAweDAxLCAweDAyLCAweDAwLCAweDAyLCAweDA5LCAweDAyLCAweDc0LCAweDAwLCAweDAxLAorICAweDAxLCAweDAwLCAweGEwLCAweDMyLCAweDA5LCAweDA0LCAweDAwLCAweDAwLCAweDBlLCAweGZmLCAweDAwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAxLAorICAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAyLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAzLCAweDAyLCAweDQwLAorICAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA0LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA1LCAweDAyLCAweDQwLCAweDAwfX0sCisgezB4MTk0NiwgNjQsIHsgMHgwMCwgMHgwNywgMHgwNSwgMHgwNiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwKKyAgMHg4MSwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4MiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4MywgMHgwMiwKKyAgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NSwgMHgwMiwgMHg0MCwgMHgwMCwKKyAgMHgwMSwgMHgwNywgMHgwNSwgMHg4NiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMX19LAorIHsweDE5ODYsIDY0LCB7IDB4MDQsIDB4MDMsIDB4MDksIDB4MDQsIDB4NDgsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsCisgIDB4MDAsIDB4NmUsIDB4MDAsIDB4MmMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjksIDB4MDAsIDB4NzYsCisgIDB4MDAsIDB4NjksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NjksIDB4MDAsIDB4NmYsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NjYsCisgIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NmUsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NzksIDB4MDB9fSwKKyB7MHgxOWM2LCA2NCwgeyAweDczLCAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDYzLCAweDAwLCAweDJlLCAweDAwLCAweDM2LCAweDAzLCAweDRiLCAweDAwLCAweDY1LAorICAweDAwLCAweDc5LCAweDAwLCAweDczLCAweDAwLCAweDcwLCAweDAwLCAweDYxLCAweDAwLCAweDZlLCAweDAwLCAweDIwLCAweDAwLCAweDU1LCAweDAwLCAweDUzLAorICAweDAwLCAweDQyLCAweDAwLCAweDIwLCAweDAwLCAweDUzLCAweDAwLCAweDY1LCAweDAwLCAweDcyLCAweDAwLCAweDY5LCAweDAwLCAweDYxLCAweDAwLCAweDZjLAorICAweDAwLCAweDIwLCAweDAwLCAweDQxLCAweDAwLCAweDY0LCAweDAwLCAweDYxLCAweDAwLCAweDcwLCAweDAwLCAweDc0LCAweDAwLCAweDY1LCAweDAwfX0sCisgezB4MWEwNiwgMjAsIHsgMHg3MiwgMHgwMCwgMHgxMCwgMHgwMywgMHgzMCwgMHgwMCwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwMCwgMHgzMCwKKyAgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweGZmZmYsCTAsCXsweDAwfSB9Cit9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMTlfZncuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTE5X2Z3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjAyM2M1MgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTE5X2Z3LmgKQEAgLTAsMCArMSwyODUgQEAKKy8qIGtleXNwYW5fdXNhMTlfZncuaAorIAorCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGFzIGtleXNwYW5fdXNhMTlfZncuaCBpcworCisJCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCisJCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKKwkJCisJYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCisJcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCisJZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUgCisJcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dCAKKwlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZSAKKwlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwgCisJaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4gCisKKwlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aCAgCisJS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZSAKKwlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluIAorCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgorKi8KKworCitzdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQga2V5c3Bhbl91c2ExOV9maXJtd2FyZVtdID0geworIHsweDAwMjYsIDEwLCB7IDB4MTIsIDB4MGQsIDB4YmYsIDB4MTIsIDB4MGYsIDB4NDcsIDB4MTIsIDB4MGQsIDB4NmIsIDB4MjJ9fSwKKyB7MHgwMDMzLCAgMywgeyAweDAyLCAweDAwLCAweDFhfX0sCisgezB4MDAxYSwgIDQsIHsgMHg1MywgMHhkOCwgMHhlZiwgMHgzMn19LAorIHsweDAwMDMsIDE2LCB7IDB4OGUsIDB4MTMsIDB4OGYsIDB4MTQsIDB4ZTUsIDB4MTQsIDB4MTUsIDB4MTQsIDB4YWUsIDB4MTMsIDB4NzAsIDB4MDIsIDB4MTUsIDB4MTMsIDB4NGUsIDB4NjB9fSwKKyB7MHgwMDEzLCAgNywgeyAweDA1LCAweDEyLCAweDBmLCAweDM2LCAweDgwLCAweGVlLCAweDIyfX0sCisgezB4MDAyMywgIDMsIHsgMHgwMiwgMHgwMCwgMHg0Nn19LAorIHsweDAwNDYsIDE2LCB7IDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4YzAsIDB4ZDAsIDB4NzUsIDB4ZDAsIDB4MDh9fSwKKyB7MHgwMDU2LCAxNiwgeyAweDMwLCAweDk5LCAweDBlLCAweDMwLCAweDA4LCAweDA3LCAweGEyLCAweDBiLCAweDkyLCAweDliLCAweDg1LCAweDM1LCAweDk5LCAweGMyLCAweDk5LCAweGQyfX0sCisgezB4MDA2NiwgMTYsIHsgMHgwZiwgMHgyMCwgMHgwZiwgMHgwMywgMHgwMiwgMHgwNCwgMHgzMSwgMHhjMiwgMHgwZiwgMHgyMCwgMHgwMiwgMHgwMywgMHgwMiwgMHgwMiwgMHg1NiwgMHgyMH19LAorIHsweDAwNzYsIDE2LCB7IDB4MDgsIDB4MDMsIDB4MDIsIDB4MDEsIDB4MjcsIDB4ZTUsIDB4MzcsIDB4YzMsIDB4OTUsIDB4NTAsIDB4NTAsIDB4M2UsIDB4MjAsIDB4MDksIDB4MzYsIDB4MjB9fSwKKyB7MHgwMDg2LCAxNiwgeyAweDA2LCAweDMzLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDMwLCAweGUzLCAweDAzLCAweDIwLCAweDBlLCAweDI5LCAweDMwLCAweDBkLCAweDEyLCAweGFmfX0sCisgezB4MDA5NiwgMTYsIHsgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5Mn19LAorIHsweDAwYTYsIDE2LCB7IDB4MGIsIDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTB9fSwKKyB7MHgwMGI2LCAxNiwgeyAweGY1LCAweDM1LCAweDAyLCAweDA0LCAweDJmLCAweGMyLCAweDA4LCAweDAyLCAweDA0LCAweDJmLCAweDkwLCAweDdmLCAweGM3LCAweGU0LCAweGYwLCAweGMyfX0sCisgezB4MDBjNiwgMTYsIHsgMHgwMiwgMHgzMCwgMHgwYSwgMHgwYywgMHhjMiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhiYiwgMHgwNCwgMHhmMCwgMHhjMiwgMHgwOCwgMHgwMiwgMHgwNCwgMHgyZn19LAorIHsweDAwZDYsIDE2LCB7IDB4OTAsIDB4N2YsIDB4YzgsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDUsIDB4YzIsIDB4MDgsIDB4MDIsIDB4MDQsIDB4MmYsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTB9fSwKKyB7MHgwMGU2LCAxNiwgeyAweGY1LCAweDUwLCAweDkwLCAweDdkLCAweGMwLCAweGUwLCAweDEzLCAweDkyLCAweDBhLCAweDIwLCAweDA5LCAweDJkLCAweDIwLCAweDA2LCAweDJhLCAweDkwfX0sCisgezB4MDBmNiwgMTYsIHsgMHg3ZiwgMHg5YiwgMHhlMCwgMHgzMCwgMHhlMywgMHgwMywgMHgyMCwgMHgwZSwgMHgyMCwgMHgzMCwgMHgwZCwgMHgxMSwgMHg5MCwgMHg3ZCwgMHhjMSwgMHhlMH19LAorIHsweDAwNDMsICAzLCB7IDB4MDIsIDB4MGYsIDB4MDB9fSwKKyB7MHgwMDAwLCAgMywgeyAweDAyLCAweDBjLCAweDYxfX0sCisgezB4MDEwNiwgNjQsIHsgMHgxMywgMHg5MiwgMHgwYiwgMHhhMywgMHhlMCwgMHhmNSwgMHgzNSwgMHg3NSwgMHgzNywgMHgwMywgMHgwMiwgMHgwNCwgMHgyZiwgMHg3NSwgMHgzNywgMHgwMiwgMHg5MCwKKyAgMHg3ZCwgMHhjMSwgMHhlMCwgMHhmNSwgMHgzNSwgMHgwMiwgMHgwNCwgMHgyZiwgMHg3NSwgMHgzNywgMHgwMSwgMHhjMiwgMHgwOCwgMHgwMiwgMHgwNCwgMHgyZiwKKyAgMHhlNSwgMHgzNywgMHhjMywgMHg5NSwgMHg1MCwgMHg1MCwgMHgwMywgMHgwMiwgMHgwMSwgMHhjZiwgMHg5MCwgMHg3ZiwgMHhjNiwgMHhlMCwgMHgzMCwgMHhlMSwKKyAgMHgwNywgMHhjMiwgMHgxMCwgMHhjMiwgMHgwMywgMHgwMiwgMHgwNCwgMHgyZiwgMHg5MCwgMHg3ZiwgMHhjNywgMHhlMCwgMHhmNSwgMHg1MCwgMHg5MH19LAorIHsweDAxNDYsIDY0LCB7IDB4N2UsIDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGEsIDB4MzAsIDB4MDksIDB4MDMsIDB4MDIsIDB4MDEsIDB4YzcsIDB4MjAsIDB4MDYsIDB4NzIsIDB4MjAsIDB4MDAsCisgIDB4NmYsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MzAsIDB4ZTMsIDB4MDMsIDB4MjAsIDB4MGUsIDB4NjUsIDB4MzAsIDB4MGQsIDB4MTAsIDB4OTAsIDB4N2UsCisgIDB4NDEsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4OWIsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzUsIDB4MzcsIDB4MDMsIDB4ODAsIDB4MDksIDB4OTAsIDB4N2UsCisgIDB4NDEsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzUsIDB4MzcsIDB4MDIsIDB4ZTUsIDB4MzcsIDB4YzMsIDB4OTUsIDB4NTAsIDB4NDAsIDB4MTcsIDB4OTB9fSwKKyB7MHgwMTg2LCA2NCwgeyAweDdmLCAweGM3LCAweGU0LCAweGYwLCAweGMyLCAweDAyLCAweDIwLCAweDBhLCAweDAzLCAweDAyLCAweDA0LCAweDJmLCAweGMyLCAweDBhLCAweDkwLCAweDdmLCAweGJiLAorICAweDA0LCAweGYwLCAweDAyLCAweDA0LCAweDJmLCAweDMwLCAweDBkLCAweDEyLCAweGFmLCAweDM3LCAweDA1LCAweDM3LCAweDc0LCAweDQwLCAweDJmLCAweGY1LAorICAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBiLCAweGFmLCAweDM3LCAweDA1LCAweDM3LCAweDc0LCAweDQwLAorICAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDM1LCAweGQyLCAweDA4LCAweDAyLCAweDA0fX0sCisgezB4MDFjNiwgNjQsIHsgMHgyZiwgMHg3NSwgMHgzNywgMHgwMSwgMHhjMiwgMHgxMCwgMHgwMiwgMHgwNCwgMHgyZiwgMHgzMCwgMHgwOSwgMHgwMywgMHgwMiwgMHgwMiwgMHg1MSwgMHgyMCwgMHgwNiwKKyAgMHg3OSwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgzMCwgMHhlMywgMHgwMywgMHgyMCwgMHgwZSwgMHg2ZiwgMHgzMCwgMHgwZCwgMHgxMiwgMHhhZiwgMHgzNywKKyAgMHgwNSwgMHgzNywgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHg5YiwKKyAgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMH19LAorIHsweDAyMDYsIDY0LCB7IDB4ZjUsIDB4OTksIDB4ZTUsIDB4MzcsIDB4YzMsIDB4OTUsIDB4NTAsIDB4NDAsIDB4MTcsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTQsIDB4ZjAsIDB4YzIsIDB4MDIsIDB4MjAsCisgIDB4MGEsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MmYsIDB4YzIsIDB4MGEsIDB4OTAsIDB4N2YsIDB4YmIsIDB4MDQsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MmYsIDB4MzAsCisgIDB4MGQsIDB4MTIsIDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsCisgIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGIsIDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzR9fSwKKyB7MHgwMjQ2LCA2NCwgeyAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDM1LCAweGQyLCAweDA4LCAweDAyLCAweDA0LCAweDJmLCAweGMyLCAweDEwLCAweDAyLCAweDA0LCAweDJmLCAweDIwLAorICAweDA4LCAweDAzLCAweDAyLCAweDAzLCAweDA4LCAweGU1LCAweDM3LCAweGMzLCAweDk1LCAweDUwLCAweDUwLCAweDNlLCAweDIwLCAweDA5LCAweDM2LCAweDIwLAorICAweDA2LCAweDMzLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDMwLCAweGUzLCAweDAzLCAweDIwLCAweDBlLCAweDI5LCAweDMwLCAweDBkLCAweDEyLCAweGFmLAorICAweDM3LCAweDA1LCAweDM3LCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzfX0sCisgezB4MDI4NiwgNjQsIHsgMHg5MiwgMHgwYiwgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwKKyAgMHhmNSwgMHgzNSwgMHgwMiwgMHgwNCwgMHgyZiwgMHhjMiwgMHgwOCwgMHgwMiwgMHgwNCwgMHgyZiwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlNCwgMHhmMCwgMHhkMiwKKyAgMHgwMiwgMHgzMCwgMHgwYSwgMHgwYywgMHhjMiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhiYiwgMHgwNCwgMHhmMCwgMHhjMiwgMHgwOCwgMHgwMiwgMHgwNCwgMHgyZiwKKyAgMHg5MCwgMHg3ZiwgMHhjNiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNSwgMHhjMiwgMHgwOCwgMHgwMiwgMHgwNCwgMHgyZiwgMHg5MCwgMHg3ZiwgMHhjN319LAorIHsweDAyYzYsIDY0LCB7IDB4ZTAsIDB4ZjUsIDB4NTAsIDB4OTAsIDB4N2UsIDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGEsIDB4MjAsIDB4MDksIDB4MmQsIDB4MjAsIDB4MDYsIDB4MmEsIDB4OTAsCisgIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MzAsIDB4ZTMsIDB4MDMsIDB4MjAsIDB4MGUsIDB4MjAsIDB4MzAsIDB4MGQsIDB4MTEsIDB4OTAsIDB4N2UsIDB4NDEsIDB4ZTAsCisgIDB4MTMsIDB4OTIsIDB4MGIsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4MzUsIDB4NzUsIDB4MzcsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MmYsIDB4NzUsIDB4MzcsIDB4MDIsCisgIDB4OTAsIDB4N2UsIDB4NDEsIDB4ZTAsIDB4ZjUsIDB4MzUsIDB4MDIsIDB4MDQsIDB4MmYsIDB4NzUsIDB4MzcsIDB4MDEsIDB4YzIsIDB4MDgsIDB4MDJ9fSwKKyB7MHgwMzA2LCA2NCwgeyAweDA0LCAweDJmLCAweGU1LCAweDM3LCAweGMzLCAweDk1LCAweDUwLCAweDUwLCAweDAzLCAweDAyLCAweDAzLCAweGIwLCAweDkwLCAweDdmLCAweGM4LCAweGUwLCAweDMwLAorICAweGUxLCAweDA3LCAweGMyLCAweDEwLCAweGMyLCAweDAzLCAweDAyLCAweDA0LCAweDJmLCAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweGY1LCAweDUwLCAweDkwLAorICAweDdkLCAweGMwLCAweGUwLCAweDEzLCAweDkyLCAweDBhLCAweDMwLCAweDA5LCAweDAzLCAweDAyLCAweDAzLCAweGE4LCAweDIwLCAweDA2LCAweDcyLCAweDIwLAorICAweDAwLCAweDZmLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDMwLCAweGUzLCAweDAzLCAweDIwLCAweDBlLCAweDY1LCAweDMwLCAweDBkLCAweDEwfX0sCisgezB4MDM0NiwgNjQsIHsgMHg5MCwgMHg3ZCwgMHhjMSwgMHhlMCwgMHgxMywgMHg5MiwgMHg5YiwgMHhhMywgMHhlMCwgMHhmNSwgMHg5OSwgMHg3NSwgMHgzNywgMHgwMywgMHg4MCwgMHgwOSwgMHg5MCwKKyAgMHg3ZCwgMHhjMSwgMHhlMCwgMHhmNSwgMHg5OSwgMHg3NSwgMHgzNywgMHgwMiwgMHhlNSwgMHgzNywgMHhjMywgMHg5NSwgMHg1MCwgMHg0MCwgMHgxNywgMHg5MCwKKyAgMHg3ZiwgMHhjOSwgMHhlNCwgMHhmMCwgMHhkMiwgMHgwMiwgMHgyMCwgMHgwYSwgMHgwMywgMHgwMiwgMHgwNCwgMHgyZiwgMHhjMiwgMHgwYSwgMHg5MCwgMHg3ZiwKKyAgMHhiYiwgMHgwNCwgMHhmMCwgMHgwMiwgMHgwNCwgMHgyZiwgMHgzMCwgMHgwZCwgMHgxMiwgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHhjMH19LAorIHsweDAzODYsIDY0LCB7IDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGIsIDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsCisgIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4MzUsIDB4ZDIsIDB4MDgsIDB4MDIsIDB4MDQsCisgIDB4MmYsIDB4NzUsIDB4MzcsIDB4MDEsIDB4YzIsIDB4MTAsIDB4MDIsIDB4MDQsIDB4MmYsIDB4MzAsIDB4MDksIDB4MDMsIDB4MDIsIDB4MDQsIDB4MmQsIDB4MjAsCisgIDB4MDYsIDB4NzQsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MzAsIDB4ZTMsIDB4MDMsIDB4MjAsIDB4MGUsIDB4NmEsIDB4MzAsIDB4MGQsIDB4MTJ9fSwKKyB7MHgwM2M2LCA2NCwgeyAweGFmLCAweDM3LCAweDA1LCAweDM3LCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLAorICAweDliLCAweGFmLCAweDM3LCAweDA1LCAweDM3LCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLAorICAweGY1LCAweDk5LCAweGU1LCAweDM3LCAweGMzLCAweDk1LCAweDUwLCAweDQwLCAweDEzLCAweDkwLCAweDdmLCAweGM5LCAweGU0LCAweGYwLCAweGQyLCAweDAyLAorICAweDMwLCAweDBhLCAweDM1LCAweGMyLCAweDBhLCAweDkwLCAweDdmLCAweGJiLCAweDA0LCAweGYwLCAweDgwLCAweDJjLCAweDMwLCAweDBkLCAweDEyfX0sCisgezB4MDQwNiwgNjQsIHsgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwKKyAgMHgwYiwgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwKKyAgMHhmNSwgMHgzNSwgMHhkMiwgMHgwOCwgMHg4MCwgMHgwMiwgMHhjMiwgMHgxMCwgMHhkMiwgMHgxMiwgMHgyMCwgMHg5OCwgMHgwMywgMHgwMiwgMHgwNSwgMHg2ZCwKKyAgMHhjMiwgMHg5OCwgMHgyMCwgMHgwMSwgMHgwMywgMHgwMiwgMHgwNCwgMHhkYSwgMHgyMCwgMHgxMSwgMHgyNywgMHhhZiwgMHgzNiwgMHgwNSwgMHgzNn19LAorIHsweDA0NDYsIDY0LCB7IDB4NzQsIDB4ODAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTksIDB4ZjAsIDB4MzAsIDB4MGQsIDB4NGQsIDB4YWYsCisgIDB4MzYsIDB4MDUsIDB4MzYsIDB4NzQsIDB4ODAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTgsIDB4ZjAsCisgIDB4ODAsIDB4M2EsIDB4ODUsIDB4OTksIDB4MTAsIDB4ZTUsIDB4MTAsIDB4YjUsIDB4NDQsIDB4MDQsIDB4ZDIsIDB4MDYsIDB4ODAsIDB4MmUsIDB4ZTUsIDB4MTAsCisgIDB4YjUsIDB4NDMsIDB4MDQsIDB4YzIsIDB4MDYsIDB4ODAsIDB4MjUsIDB4YWYsIDB4MzYsIDB4MDUsIDB4MzYsIDB4NzQsIDB4ODAsIDB4MmYsIDB4ZjV9fSwKKyB7MHgwNDg2LCA2NCwgeyAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDEwLCAweGYwLCAweDMwLCAweDBkLCAweDExLCAweGFmLCAweDM2LCAweDA1LCAweDM2LCAweDc0LAorICAweDgwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk4LCAweGYwLCAweGQyLCAweDBjLCAweGU1LCAweDM2LAorICAweGMzLCAweDk1LCAweDQwLCAweDUwLCAweDAzLCAweDAyLCAweDA1LCAweDZiLCAweDkwLCAweDdmLCAweGI4LCAweGUwLCAweDMwLCAweGUxLCAweDE2LCAweGU1LAorICAweDM2LCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDAzLCAweDAyLCAweDA1LCAweDZiLCAweDE1LCAweDM2LCAweDE1LCAweDM2LCAweDA1LCAweDJifX0sCisgezB4MDRjNiwgNjQsIHsgMHg0MywgMHgzMywgMHgwMSwgMHgwMiwgMHgwNSwgMHg2YiwgMHg5MCwgMHg3ZiwgMHhiNywgMHhlNSwgMHgzNiwgMHhmMCwgMHg3NSwgMHgzNiwgMHgwMCwgMHhjMiwgMHgwMSwKKyAgMHgwMiwgMHgwNSwgMHg2YiwgMHgyMCwgMHgxMSwgMHgyNywgMHhhZiwgMHgzNiwgMHgwNSwgMHgzNiwgMHg3NCwgMHgwMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwKKyAgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg5OSwgMHhmMCwgMHgzMCwgMHgwZCwgMHg0ZCwgMHhhZiwgMHgzNiwgMHgwNSwgMHgzNiwgMHg3NCwgMHgwMCwKKyAgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg5OCwgMHhmMCwgMHg4MCwgMHgzYSwgMHg4NSwgMHg5OX19LAorIHsweDA1MDYsIDY0LCB7IDB4MTAsIDB4ZTUsIDB4MTAsIDB4YjUsIDB4NDQsIDB4MDQsIDB4ZDIsIDB4MDYsIDB4ODAsIDB4MmUsIDB4ZTUsIDB4MTAsIDB4YjUsIDB4NDMsIDB4MDQsIDB4YzIsIDB4MDYsCisgIDB4ODAsIDB4MjUsIDB4YWYsIDB4MzYsIDB4MDUsIDB4MzYsIDB4NzQsIDB4MDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsCisgIDB4ZTUsIDB4MTAsIDB4ZjAsIDB4MzAsIDB4MGQsIDB4MTEsIDB4YWYsIDB4MzYsIDB4MDUsIDB4MzYsIDB4NzQsIDB4MDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsCisgIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTgsIDB4ZjAsIDB4ZDIsIDB4MGMsIDB4ZTUsIDB4MzYsIDB4YzMsIDB4OTUsIDB4NDAsIDB4NDB9fSwKKyB7MHgwNTQ2LCA2NCwgeyAweDI0LCAweDkwLCAweDdmLCAweGI2LCAweGUwLCAweDMwLCAweGUxLCAweDEyLCAweGU1LCAweDM2LCAweGMzLCAweDk0LCAweDQwLCAweDQwLCAweDE2LCAweDE1LCAweDM2LAorICAweDE1LCAweDM2LCAweDA1LCAweDJiLCAweDQzLCAweDMzLCAweDAxLCAweDgwLCAweDBiLCAweDkwLCAweDdmLCAweGI5LCAweGU1LCAweDM2LCAweGYwLCAweDc1LAorICAweDM2LCAweDAwLCAweGQyLCAweDAxLCAweGQyLCAweDEyLCAweDMwLCAweDEyLCAweDA1LCAweGMyLCAweDEyLCAweDAyLCAweDAwLCAweDU2LCAweGQwLCAweGQwLAorICAweGQwLCAweDg2LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdmLCAweGNhLCAweGUwLCAweDMwLCAweGUxfX0sCisgezB4MDU4NiwgNjQsIHsgMHgwMywgMHgwMiwgMHgwNiwgMHhhYiwgMHhlNCwgMHhmNSwgMHgxMywgMHg3NCwgMHg0MCwgMHgyNSwgMHgxMywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwKKyAgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxMywgMHg3YywgMHgwMCwgMHg3YiwgMHgwMCwgMHgyNCwgMHgzOCwgMHhmOSwgMHhlYywgMHgzNCwgMHgwMCwgMHhmYSwKKyAgMHhlZiwgMHgxMiwgMHgwZCwgMHgzMywgMHgwNSwgMHgxMywgMHhlNSwgMHgxMywgMHhiNCwgMHgxOCwgMHhkYiwgMHhlNSwgMHgzOCwgMHg2MCwgMHgwYywgMHg3NSwKKyAgMHhjOSwgMHgyMCwgMHg3NSwgMHhjOCwgMHgzNCwgMHg4NSwgMHgzOSwgMHhjYSwgMHg4NSwgMHgzYSwgMHhjYiwgMHhlNSwgMHgzYiwgMHgxMywgMHg5Mn19LAorIHsweDA1YzYsIDY0LCB7IDB4MGQsIDB4OTIsIDB4OWYsIDB4ZTUsIDB4M2MsIDB4MTMsIDB4OTIsIDB4MGUsIDB4ZTUsIDB4M2QsIDB4MTMsIDB4OTIsIDB4MTEsIDB4ZTUsIDB4M2UsIDB4NjAsIDB4MDksCisgIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsCisgIDB4ZTUsIDB4M2YsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4OTgsCisgIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NjAsIDB4MGIsIDB4YzIsIDB4MDksIDB4YzIsIDB4MDYsIDB4OTAsIDB4N2YsIDB4OTV9fSwKKyB7MHgwNjA2LCA2NCwgeyAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDQ2LCAweDYwLCAweDBjLCAweGQyLCAweDA2LCAweDQzLCAweDMzLCAweDAxLCAweDkwLCAweDdmLCAweDk1LCAweGUwLAorICAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDQ3LCAweDYwLCAweDBkLCAweGMyLCAweGFmLCAweGMyLCAweDA4LCAweGQyLCAweDAwLCAweGU0LCAweGY1LCAweDUwLAorICAweGY1LCAweDM3LCAweGQyLCAweGFmLCAweGU1LCAweDQ4LCAweDYwLCAweDA1LCAweDMwLCAweDExLCAweDAyLCAweGQyLCAweDA2LCAweGU1LCAweDQ5LCAweDYwLAorICAweDE1LCAweDkwLCAweDdmLCAweDk1LCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweGUwLCAweDQ0LCAweDAyLCAweGYwfX0sCisgezB4MDY0NiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHhlNSwgMHg0YSwgMHg2MCwgMHgwYSwgMHhkMiwgMHg5YywgMHhjMiwgMHg5OCwgMHg3NSwgMHgyYywKKyAgMHgwMSwgMHg3NSwgMHgzMSwgMHgxZSwgMHhlNSwgMHg0YiwgMHg2MCwgMHgwNywgMHhjMiwgMHg5YywgMHhlNCwgMHhmNSwgMHgzNiwgMHhmNSwgMHgyYywgMHhlNSwKKyAgMHg0YywgMHg2MCwgMHgwMywgMHhlNCwgMHhmNSwgMHgzNiwgMHhlNSwgMHg0ZCwgMHg2MCwgMHgwMiwgMHhkMiwgMHgwNCwgMHhlNSwgMHg0ZSwgMHg2MCwgMHgwYSwKKyAgMHhlNSwgMHg0YSwgMHg3MCwgMHgwMiwgMHhmNSwgMHgzMSwgMHhlNSwgMHg0ZSwgMHg0MiwgMHgzMywgMHhlNSwgMHg0ZiwgMHg2MCwgMHgxZiwgMHg5MH19LAorIHsweDA2ODYsIDY0LCB7IDB4N2YsIDB4ZDcsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4NzQsIDB4MzEsIDB4ZjAsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4NzQsIDB4MzIsIDB4ZjAsIDB4NzQsIDB4MTMsIDB4ZjAsCisgIDB4NzQsIDB4MzMsIDB4ZjAsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4NzQsIDB4MzQsIDB4ZjAsIDB4ZDIsIDB4MDIsIDB4ZDIsIDB4MDEsIDB4ZDIsIDB4MDUsIDB4ZTQsCisgIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZjAsIDB4YTIsIDB4MDksIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4NjUsIDB4MjksIDB4NjAsIDB4MDUsIDB4OGYsIDB4MjksIDB4NDMsCisgIDB4MzMsIDB4MDEsIDB4YTIsIDB4MDYsIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4NjUsIDB4MmEsIDB4NjAsIDB4MDUsIDB4OGYsIDB4MmEsIDB4NDMsIDB4MzN9fSwKKyB7MHgwNmM2LCA2NCwgeyAweDAxLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU0LCAweDA4LCAweGI1LCAweDI1LCAweDBhLCAweGUwLCAweDU0LCAweDA4LCAweDY0LCAweDA4LCAweGY1LCAweDI1LAorICAweDQzLCAweDMzLCAweDAxLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU0LCAweDEwLCAweGI1LCAweDI2LCAweDBhLCAweGUwLCAweDU0LCAweDEwLCAweDY0LAorICAweDEwLCAweGY1LCAweDI2LCAweDQzLCAweDMzLCAweDAxLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU0LCAweDQwLCAweGI1LCAweDI3LCAweDBhLCAweGUwLAorICAweDU0LCAweDQwLCAweDY0LCAweDQwLCAweGY1LCAweDI3LCAweDQzLCAweDMzLCAweDAxLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU0LCAweDIwfX0sCisgezB4MDcwNiwgNjQsIHsgMHhiNSwgMHgyOCwgMHgwYSwgMHhlMCwgMHg1NCwgMHgyMCwgMHg2NCwgMHgyMCwgMHhmNSwgMHgyOCwgMHg0MywgMHgzMywgMHgwMSwgMHgzMCwgMHgwNCwgMHgzNSwgMHhjMiwKKyAgMHhhZiwgMHgzMCwgMHgwMSwgMHgxOCwgMHg5MCwgMHg3ZiwgMHhiOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgyNywgMHhlNSwgMHgzNiwgMHg2MCwgMHgwOSwgMHg5MCwKKyAgMHg3ZiwgMHhiNywgMHhmMCwgMHhlNCwgMHhmNSwgMHgzNiwgMHhjMiwgMHgwMSwgMHhjMiwgMHgwNCwgMHg4MCwgMHgxNiwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwKKyAgMHgyMCwgMHhlMSwgMHgwZiwgMHhlNSwgMHgzNiwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhiOSwgMHhmMCwgMHhlNCwgMHhmNSwgMHgzNiwgMHhkMn19LAorIHsweDA3NDYsIDY0LCB7IDB4MDEsIDB4YzIsIDB4MDQsIDB4ZDIsIDB4YWYsIDB4MjAsIDB4MDMsIDB4MzcsIDB4MzAsIDB4MDIsIDB4MWIsIDB4OTAsIDB4N2YsIDB4YzYsIDB4ZTAsIDB4MjAsIDB4ZTEsCisgIDB4MmQsIDB4OTAsIDB4N2UsIDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGEsIDB4NzUsIDB4MzcsIDB4MDEsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4ZjUsCisgIDB4NTAsIDB4ZDIsIDB4MDMsIDB4ODAsIDB4MTksIDB4OTAsIDB4N2YsIDB4YzgsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MTIsIDB4OTAsIDB4N2QsIDB4YzAsIDB4ZTAsCisgIDB4MTMsIDB4OTIsIDB4MGEsIDB4NzUsIDB4MzcsIDB4MDEsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTAsIDB4ZjUsIDB4NTAsIDB4ZDIsIDB4MDMsIDB4MjB9fSwKKyB7MHgwNzg2LCA2NCwgeyAweDEwLCAweDMzLCAweDIwLCAweDAwLCAweDA2LCAweGU1LCAweDM3LCAweDY1LCAweDUwLCAweDcwLCAweDJhLCAweDMwLCAweDAzLCAweDFhLCAweDMwLCAweDAyLCAweDA5LAorICAweGU0LCAweDkwLCAweDdmLCAweGM3LCAweGYwLCAweGMyLCAweDAyLCAweDgwLCAweDA3LCAweGU0LCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweGQyLCAweDAyLAorICAweGMyLCAweDAzLCAweGU0LCAweGY1LCAweDUwLCAweGY1LCAweDM3LCAweDMwLCAweDBhLCAweDBhLCAweGMyLCAweDBhLCAweGMyLCAweDAwLCAweDkwLCAweDdmLAorICAweGJiLCAweDc0LCAweDAxLCAweGYwLCAweDMwLCAweDEwLCAweDAzLCAweDAyLCAweDA4LCAweGM1LCAweDIwLCAweDAzLCAweDAzLCAweDAyLCAweDA4fX0sCisgezB4MDdjNiwgNjQsIHsgMHhjNSwgMHgzMCwgMHgwZSwgMHgwYSwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgzMCwgMHhlMywgMHgwMywgMHgwMiwgMHgwOCwgMHhjNSwgMHgzMCwgMHgwNiwgMHgwMywKKyAgMHgwMiwgMHgwOCwgMHhjNSwgMHgzMCwgMHgwOSwgMHgwMywgMHgwMiwgMHgwOCwgMHhjNSwgMHgzMCwgMHgwMiwgMHg2MiwgMHgzMCwgMHgwZCwgMHgxMiwgMHhhZiwKKyAgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwKKyAgMHgxOSwgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4M319LAorIHsweDA4MDYsIDY0LCB7IDB4ZTAsIDB4ZjUsIDB4MTQsIDB4ZTUsIDB4MzcsIDB4YzMsIDB4OTUsIDB4NTAsIDB4NTAsIDB4MmEsIDB4MzAsIDB4MGQsIDB4MTIsIDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsCisgIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGIsIDB4YWYsIDB4MzcsCisgIDB4MDUsIDB4MzcsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4MzUsIDB4ZDIsCisgIDB4MDgsIDB4ODAsIDB4NmIsIDB4YzIsIDB4MDgsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZjAsIDB4YzIsIDB4MDIsIDB4ODAsIDB4NjAsIDB4MzB9fSwKKyB7MHgwODQ2LCA2NCwgeyAweDBkLCAweDEyLCAweGFmLCAweDM3LCAweDA1LCAweDM3LCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLAorICAweDEzLCAweDkyLCAweDE5LCAweGFmLCAweDM3LCAweDA1LCAweDM3LCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LAorICAweDgzLCAweGUwLCAweGY1LCAweDE0LCAweGU1LCAweDM3LCAweGMzLCAweDk1LCAweDUwLCAweDUwLCAweDJhLCAweDMwLCAweDBkLCAweDEyLCAweGFmLCAweDM3LAorICAweDA1LCAweDM3LCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyfX0sCisgezB4MDg4NiwgNjQsIHsgMHgwYiwgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwKKyAgMHgzNSwgMHhkMiwgMHgwOCwgMHg4MCwgMHgwOSwgMHhjMiwgMHgwOCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhmMCwgMHhkMiwgMHgwMiwgMHgzMCwgMHgwZCwKKyAgMHgwNCwgMHhhMiwgMHgxOSwgMHg5MiwgMHg5YiwgMHhkMiwgMHgxMCwgMHhjMiwgMHhhZiwgMHg4NSwgMHgxNCwgMHg5OSwgMHgyMCwgMHgwOCwgMHgwZCwgMHgzMCwKKyAgMHgwYSwgMHgwYSwgMHhjMiwgMHgwYSwgMHhjMiwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMiwgMHhhZiwgMHg5MH19LAorIHsweDA4YzYsIDY0LCB7IDB4N2YsIDB4YmMsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4NTEsIDB4ZTUsIDB4MzMsIDB4NjAsIDB4NGQsIDB4ZTUsIDB4MzEsIDB4NzAsIDB4NDksIDB4ZTUsIDB4MzMsIDB4MzAsCisgIDB4ZTEsIDB4MDgsIDB4ZTQsIDB4ZjUsIDB4MmYsIDB4NzUsIDB4MzMsIDB4MDEsIDB4ODAsIDB4MGIsIDB4YTIsIDB4MDUsIDB4ZTQsIDB4MzMsIDB4ZjUsIDB4MmYsCisgIDB4YzIsIDB4MDUsIDB4ZTQsIDB4ZjUsIDB4MzMsIDB4ZTQsIDB4ZjUsIDB4MTMsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MjQsIDB4MjUsIDB4MTMsCisgIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MGMsIDB4ZWQsIDB4ZmYsIDB4NzQsIDB4MDAsIDB4MjUsIDB4MTMsIDB4ZjUsIDB4ODJ9fSwKKyB7MHgwOTA2LCA2NCwgeyAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDEzLCAweGU1LCAweDEzLCAweGI0LCAweDBjLCAweGRiLCAweDkwLCAweDdmLCAweGJkLAorICAweDc0LCAweDBjLCAweGYwLCAweDc1LCAweDMxLCAweDEwLCAweDIyLCAweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDEyLCAweDBkLCAweDQ1LCAweDBhLCAweDAzLAorICAweDAwLCAweDBhLCAweDc3LCAweDAxLCAweDBhLCAweGUzLCAweDAzLCAweDA5LCAweDQxLCAweDA2LCAweDA5LCAweGY0LCAweDA4LCAweDA5LCAweGU4LCAweDA5LAorICAweDA5LCAweGQwLCAweDBhLCAweDA5LCAweGRmLCAweDBiLCAweDAwLCAweDAwLCAweDBiLCAweDMyLCAweDkwLCAweDdmLCAweGViLCAweGUwLCAweDI0fX0sCisgezB4MDk0NiwgNjQsIHsgMHhmZSwgMHg2MCwgMHgxNiwgMHgxNCwgMHg2MCwgMHg1NywgMHgyNCwgMHgwMiwgMHg3MCwgMHg3NiwgMHg3NCwgMHgwZiwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHg3NCwKKyAgMHg2NCwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzOSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgwNCwgMHg3ZiwgMHgwMiwKKyAgMHg4MCwgMHgwMiwgMHg3ZiwgMHgwMywgMHg3NSwgMHg4MiwgMHhiNSwgMHg3NSwgMHg4MywgMHgwZiwgMHhlZiwgMHhmMCwgMHg3NSwgMHg4MiwgMHhhZSwgMHg3NSwKKyAgMHg4MywgMHgwZiwgMHhmMCwgMHg3NSwgMHg4MiwgMHhhNywgMHg3NSwgMHg4MywgMHgwZiwgMHhmMCwgMHg3NSwgMHg4MiwgMHhhMCwgMHg3NSwgMHg4M319LAorIHsweDA5ODYsIDY0LCB7IDB4MGYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4MDQsIDB4NzUsIDB4ODIsIDB4N2IsIDB4NzUsIDB4ODMsIDB4MGYsIDB4ZjAsIDB4NzQsIDB4MGYsIDB4OTAsCisgIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4NzYsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MzksIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsCisgIDB4ZmYsIDB4MTIsIDB4MGUsIDB4NDgsIDB4ZWEsIDB4NDksIDB4NjAsIDB4MGQsIDB4ZWEsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4ZTksIDB4OTAsIDB4N2YsCisgIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MzksIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4Mzl9fSwKKyB7MHgwOWM2LCA2NCwgeyAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDM5LCAweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDE5LCAweGYwLCAweDkwLAorICAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDM5LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDE5LCAweDAyLCAweDBiLAorICAweDM5LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDE4LCAweDEyLCAweDBkLCAweDZiLCAweDAyLCAweDBiLCAweDM5LCAweDkwLCAweDdmLCAweDAwLAorICAweGU1LCAweDE4LCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDM5LCAweDkwLCAweDdmLCAweGU4fX0sCisgezB4MGEwNiwgNjQsIHsgMHhlMCwgMHgyNCwgMHg3ZiwgMHg2MCwgMHgyNCwgMHgxNCwgMHg2MCwgMHgzMSwgMHgyNCwgMHgwMiwgMHg3MCwgMHg1YiwgMHhhMiwgMHgxMywgMHhlNCwgMHgzMywgMHhmZiwKKyAgMHgyNSwgMHhlMCwgMHhmZiwgMHhhMiwgMHgxNywgMHhlNCwgMHgzMywgMHg0ZiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg5MCwKKyAgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzOSwgMHhlNCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhhMywgMHhmMCwgMHg5MCwKKyAgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzOSwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MH19LAorIHsweDBhNDYsIDY0LCB7IDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsCisgIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsCisgIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MzksIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MzksCisgIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MWQsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGIsIDB4Mzl9fSwKKyB7MHgwYTg2LCA2NCwgeyAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDA1LCAweGMyLCAweDEzLCAweDAyLCAweDBiLCAweDM5LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LAorICAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDM5LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDM4LCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LAorICAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LAorICAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweDU0LCAweDgwLCAweGZmfX0sCisgezB4MGFjNiwgNjQsIHsgMHgxMywgMHgxMywgMHgxMywgMHg1NCwgMHgxZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHg5MCwgMHg3ZiwgMHhkNywgMHhmMCwgMHhlMCwgMHg0NCwgMHgyMCwKKyAgMHhmMCwgMHg4MCwgMHg1ZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHg1NiwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwKKyAgMHgyNCwgMHhmZSwgMHg2MCwgMHgxOCwgMHgyNCwgMHgwMiwgMHg3MCwgMHg0YSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNCwgMHhkMiwKKyAgMHgxMywgMHg4MCwgMHgzZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgzNiwgMHg5MCwgMHg3ZiwgMHhlYX19LAorIHsweDBiMDYsIDY0LCB7IDB4ZTAsIDB4NzAsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsCisgIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsCisgIDB4ODAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsCisgIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MjIsIDB4MjAsIDB4MTUsIDB4MDMsIDB4MDIsIDB4MGJ9fSwKKyB7MHgwYjQ2LCA2NCwgeyAweGQzLCAweGU1LCAweDMxLCAweDYwLCAweDAyLCAweDE1LCAweDMxLCAweGU1LCAweDM2LCAweDYwLCAweDRmLCAweDY1LCAweDM0LCAweDcwLCAweDQ1LCAweGU1LCAweDMyLAorICAweGY0LCAweDYwLCAweDAyLCAweDA1LCAweDMyLCAweGU1LCAweDMyLCAweGMzLCAweDk1LCAweDQxLCAweDQwLCAweDNkLCAweGMyLCAweGFmLCAweDMwLCAweDAxLAorICAweDE4LCAweDkwLCAweDdmLCAweGI4LCAweGUwLCAweDIwLCAweGUxLCAweDI3LCAweDkwLCAweDdmLCAweGI3LCAweGU1LCAweDM2LCAweGYwLCAweGMyLCAweDAxLAorICAweGU0LCAweGY1LCAweDM2LCAweGY1LCAweDMyLCAweGY1LCAweDM0LCAweDgwLCAweDE2LCAweDkwLCAweDdmLCAweGI2LCAweGUwLCAweDIwLCAweGUxfX0sCisgezB4MGI4NiwgNjQsIHsgMHgwZiwgMHg5MCwgMHg3ZiwgMHhiOSwgMHhlNSwgMHgzNiwgMHhmMCwgMHhkMiwgMHgwMSwgMHhlNCwgMHhmNSwgMHgzNiwgMHhmNSwgMHgzMiwgMHhmNSwgMHgzNCwgMHhkMiwKKyAgMHhhZiwgMHg4MCwgMHgwNiwgMHg4NSwgMHgzNiwgMHgzNCwgMHhlNCwgMHhmNSwgMHgzMiwgMHhlNSwgMHgyYywgMHg2MCwgMHgyZiwgMHgyMCwgMHgwYywgMHgwNywKKyAgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgzMCwgMHhlMCwgMHgwZiwgMHhlNSwgMHgyZCwgMHg2MCwgMHgwNiwgMHhlNCwgMHhmNSwgMHgyZCwgMHg0MywgMHgzMywKKyAgMHgwMSwgMHhlNCwgMHhmNSwgMHgzMCwgMHg4MCwgMHgxNCwgMHhlNSwgMHgzMCwgMHhkMywgMHg5NSwgMHg0MiwgMHg1MCwgMHgwZCwgMHhlNSwgMHgzMH19LAorIHsweDBiYzYsIDY0LCB7IDB4YjUsIDB4NDIsIDB4MDYsIDB4NzUsIDB4MmQsIDB4MDEsIDB4NDMsIDB4MzMsIDB4MDEsIDB4MDUsIDB4MzAsIDB4YzIsIDB4MGMsIDB4MjIsIDB4NzUsIDB4MTIsIDB4MDEsCisgIDB4YzIsIDB4MTQsIDB4YzIsIDB4MTgsIDB4YzIsIDB4MTMsIDB4YzIsIDB4MTcsIDB4YzIsIDB4MTUsIDB4YzIsIDB4MTIsIDB4ZDIsIDB4MTYsIDB4ZTQsIDB4ZjUsCisgIDB4MTgsIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZTAsIDB4ZmYsIDB4ZDMsIDB4OTIsIDB4MTMsCisgIDB4ZTQsIDB4MzMsIDB4ZmUsIDB4ZWYsIDB4NGUsIDB4ZjAsIDB4ZDIsIDB4ZTgsIDB4NDMsIDB4ZDgsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4NzR9fSwKKyB7MHgwYzA2LCA2NCwgeyAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGRmLCAweGYwLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweGZmLCAweGYwLCAweDkwLCAweDdmLCAweGE5LCAweGYwLCAweDkwLAorICAweDdmLCAweGFhLCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFmLCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGFlLAorICAweGUwLCAweDQ0LCAweDBkLCAweGYwLCAweGQyLCAweGFmLCAweGQyLCAweGJjLCAweGQyLCAweDE5LCAweDEyLCAweDBlLCAweGRhLCAweGMyLCAweDE0LCAweDMwLAorICAweDE1LCAweDAzLCAweDEyLCAweDA1LCAweDgwLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweDY1LCAweDExLCAweDYwLCAweDA4LCAweGUwLCAweGY1fX0sCisgezB4MGM0NiwgNjQsIHsgMHgxMSwgMHgxMiwgMHgwYiwgMHg0MSwgMHg4MCwgMHhlYSwgMHgzMCwgMHgxNCwgMHgwNywgMHhjMiwgMHgxNCwgMHgxMiwgMHgwOSwgMHgxZSwgMHg4MCwgMHhlMCwgMHgzMCwKKyAgMHgxOCwgMHhkZCwgMHhjMiwgMHgxOCwgMHgxMiwgMHgwMCwgMHgyNiwgMHg4MCwgMHhkNiwgMHgyMiwgMHg3OCwgMHg3ZiwgMHhlNCwgMHhmNiwgMHhkOCwgMHhmZCwKKyAgMHg3NSwgMHg4MSwgMHg1MCwgMHgwMiwgMHgwYywgMHhhOCwgMHgwMiwgMHgwYiwgMHhkNCwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywKKyAgMHg0MCwgMHgwMywgMHhmNiwgMHg4MCwgMHgwMSwgMHhmMiwgMHgwOCwgMHhkZiwgMHhmNCwgMHg4MCwgMHgyOSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOH19LAorIHsweDBjODYsIDY0LCB7IDB4NTQsIDB4MDcsIDB4MjQsIDB4MGMsIDB4YzgsIDB4YzMsIDB4MzMsIDB4YzQsIDB4NTQsIDB4MGYsIDB4NDQsIDB4MjAsIDB4YzgsIDB4ODMsIDB4NDAsIDB4MDQsIDB4ZjQsCisgIDB4NTYsIDB4ODAsIDB4MDEsIDB4NDYsIDB4ZjYsIDB4ZGYsIDB4ZTQsIDB4ODAsIDB4MGIsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsCisgIDB4ODAsIDB4OTAsIDB4MGUsIDB4MDQsIDB4ZTQsIDB4N2UsIDB4MDEsIDB4OTMsIDB4NjAsIDB4YmMsIDB4YTMsIDB4ZmYsIDB4NTQsIDB4M2YsIDB4MzAsIDB4ZTUsCisgIDB4MDksIDB4NTQsIDB4MWYsIDB4ZmUsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NjAsIDB4MDEsIDB4MGUsIDB4Y2YsIDB4NTQsIDB4YzAsIDB4MjUsIDB4ZTB9fSwKKyB7MHgwY2M2LCA2NCwgeyAweDYwLCAweGE4LCAweDQwLCAweGI4LCAweGU0LCAweDkzLCAweGEzLCAweGZhLCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweGM4LCAweGM1LAorICAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGYwLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLAorICAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweGJlLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDIyLCAweDUwLAorICAweDAyLCAweGU3LCAweDIyLCAweGJiLCAweGZlLCAweDAyLCAweGUzLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweDIyfX0sCisgezB4MGQwNiwgNjQsIHsgMHhiYiwgMHgwMSwgMHgwYywgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwNiwKKyAgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlNiwgMHgyMiwgMHhiYiwgMHhmZSwgMHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlMiwgMHgyMiwgMHhlNSwKKyAgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwKKyAgMHg4MiwgMHg4YSwgMHg4MywgMHhmMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwgMHhmMywgMHgyMiwgMHhkMH19LAorIHsweDBkNDYsIDY0LCB7IDB4ODMsIDB4ZDAsIDB4ODIsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4NzAsIDB4MTIsIDB4NzQsIDB4MDEsIDB4OTMsIDB4NzAsIDB4MGQsIDB4YTMsIDB4YTMsIDB4OTMsIDB4ZjgsCisgIDB4NzQsIDB4MDEsIDB4OTMsIDB4ZjUsIDB4ODIsIDB4ODgsIDB4ODMsIDB4ZTQsIDB4NzMsIDB4NzQsIDB4MDIsIDB4OTMsIDB4NjgsIDB4NjAsIDB4ZWYsIDB4YTMsCisgIDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGYsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4OTAsCisgIDB4N2YsIDB4OTYsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTQsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4MDR9fSwKKyB7MHgwZDg2LCA2NCwgeyAweGYwLCAweDkwLCAweDdmLCAweDk3LCAweDc0LCAweDIwLCAweGYwLCAweDkwLCAweDdmLCAweDk1LCAweDc0LCAweDAzLCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LAorICAweDg0LCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk4LCAweGYwLCAweDkwLCAweDdmLCAweGM3LCAweGYwLCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweDkwLAorICAweDdmLCAweGNiLCAweGYwLCAweDc1LCAweDk4LCAweDQwLCAweDQzLCAweGE4LCAweDEwLCAweDkwLCAweDdmLCAweGRlLCAweDc0LCAweDFmLCAweGYwLCAweDkwLAorICAweDdmLCAweGRmLCAweDc0LCAweDBmLCAweGYwLCAweGQyLCAweDE1LCAweDIyLCAweGU0LCAweDkwLCAweDdmLCAweDk1LCAweGYwLCAweDkwLCAweDdmfX0sCisgezB4MGRjNiwgNjQsIHsgMHg5NCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NywgMHhlMCwKKyAgMHg0NCwgMHgwMiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHgyMCwgMHhmMCwKKyAgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHhlMCwgMHg0NCwgMHhmZCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NywKKyAgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHhmZiwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhmMCwgMHgyMiwgMHgwYywgMHgyNH19LAorIHsweDBlMDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MzAsIDB4MDAsIDB4MDEsIDB4MzMsCisgIDB4MDEsIDB4MDEsIDB4MzIsIDB4MDAsIDB4MDEsIDB4MzcsIDB4MDAsIDB4MDEsIDB4NTAsIDB4MDAsIDB4MDEsIDB4MzYsIDB4MDAsIDB4MDEsIDB4MzQsIDB4MDAsCisgIDB4YzEsIDB4MDUsIDB4YzEsIDB4MGMsIDB4YzEsIDB4MDMsIDB4YzEsIDB4MGYsIDB4YzEsIDB4MDQsIDB4YzEsIDB4MGUsIDB4YzEsIDB4MTEsIDB4YzEsIDB4MGEsCisgIDB4YzEsIDB4MTAsIDB4YzEsIDB4MDgsIDB4YzEsIDB4MDksIDB4YzEsIDB4MDYsIDB4YzEsIDB4MDAsIDB4YzEsIDB4MGQsIDB4YzEsIDB4ODEsIDB4YzF9fSwKKyB7MHgwZTQ2LCA2NCwgeyAweDgyLCAweDAwLCAweDhmLCAweDEzLCAweGU0LCAweGY1LCAweDE0LCAweDc1LCAweDE1LCAweGZmLCAweDc1LCAweDE2LCAweDBmLCAweDc1LCAweDE3LCAweGI5LCAweGFiLAorICAweDE1LCAweGFhLCAweDE2LCAweGE5LCAweDE3LCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweDBkLCAweDA2LCAweGI0LCAweDAzLCAweDFkLCAweGFmLCAweDE0LAorICAweDA1LCAweDE0LCAweGVmLCAweGI1LCAweDEzLCAweDAxLCAweDIyLCAweDEyLCAweDBjLCAweGVkLCAweDdlLCAweDAwLCAweDI5LCAweGZmLCAweGVlLCAweDNhLAorICAweGE5LCAweDA3LCAweDc1LCAweDE1LCAweGZmLCAweGY1LCAweDE2LCAweDg5LCAweDE3LCAweDgwLCAweGQ0LCAweDdiLCAweDAwLCAweDdhLCAweDAwfX0sCisgezB4MGU4NiwgNjQsIHsgMHg3OSwgMHgwMCwgMHgyMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwKKyAgMHgwMCwgMHg5MCwgMHg3ZiwgMHhjNCwgMHhlNCwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwNCwgMHhmMCwgMHhkMCwKKyAgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywKKyAgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhkMiwgMHgxNCwgMHg1MywgMHg5MX19LAorIHsweDBlYzYsIDY0LCB7IDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsCisgIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MTksCisgIDB4MDQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4N2YsIDB4ZjQsIDB4N2UsIDB4MDEsIDB4MTIsIDB4MDAsIDB4MDMsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsCisgIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4MjIsIDB4MDAsIDB4MDIsIDB4MGUsIDB4YjMsIDB4MDAsIDB4MDIsIDB4MGZ9fSwKKyB7MHgwZjA2LCA2NCwgeyAweDA0LCAweDAwLCAweDAyLCAweDBlLCAweDg5LCAweDAwLCAweDAyLCAweDBmLCAweDBmLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LAorICAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDE4LCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LAorICAweDA4LCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDc0LAorICAweDAwLCAweGY1LCAweDg2LCAweDkwLCAweGZkLCAweGE1LCAweDdjLCAweDA1LCAweGEzLCAweGU1LCAweDgyLCAweDQ1LCAweDgzLCAweDcwLCAweGY5fX0sCisgezB4MGY0NiwgNjQsIHsgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg0MywgMHg4NywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMiwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMiwgMHgwMSwgMHgxMCwKKyAgMHgwMSwgMHhmZiwgMHgwMCwgMHgwMCwgMHg0MCwgMHhjZCwgMHgwNiwgMHgwNywgMHgwMSwgMHgwMSwgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMCwgMHgwMiwgMHgwOSwKKyAgMHgwMiwgMHg0MywgMHgwMCwgMHgwMSwgMHgwMSwgMHgwMCwgMHg4MCwgMHgzMiwgMHgwOSwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwNywgMHhmZiwgMHgwMH19LAorIHsweDBmODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDEsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsCisgIDB4MDUsIDB4MDMsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4ODEsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODIsCisgIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODMsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODQsIDB4MDIsIDB4NDAsCisgIDB4MDAsIDB4MDEsIDB4MDQsIDB4MDMsIDB4MDksIDB4MDQsIDB4MTAsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzksIDB4MDAsIDB4NzN9fSwKKyB7MHgwZmM2LCAyMywgeyAweDAwLCAweDcwLCAweDAwLCAweDYxLCAweDAwLCAweDZlLCAweDAwLCAweDBlLCAweDAzLCAweDUzLCAweDAwLCAweDY1LCAweDAwLCAweDcyLCAweDAwLCAweDY5LCAweDAwLAorICAweDYxLCAweDAwLCAweDZjLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4ZmZmZiwJMCwJezB4MDB9IH0KK307CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2ExOXFpX2Z3LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2ExOXFpX2Z3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWEyNjQ3MgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTE5cWlfZncuaApAQCAtMCwwICsxLDI4NCBAQAorLyoga2V5c3Bhbl91c2ExOXFpX2Z3LmgKKyAKKwlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBhcyBrZXlzcG5fdXNhMTlxaV9mdy5oIGlzCisKKwkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKKwkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQorCQkKKwlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKKwlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKKwlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZSAKKwlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlIAorCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbCAKKwlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLiAKKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoICAKKwlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlIAorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gCisJcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCisKKyovCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCBrZXlzcGFuX3VzYTE5cWlfZmlybXdhcmVbXSA9IHsKKyB7MHgwMDMzLCAgMywgeyAweDAyLCAweDAwLCAweDFhfX0sCisgezB4MDAxYSwgIDQsIHsgMHg1MywgMHhkOCwgMHhlZiwgMHgzMn19LAorIHsweDAwMDMsIDE2LCB7IDB4OGUsIDB4MTEsIDB4OGYsIDB4MTIsIDB4ZTUsIDB4MTIsIDB4MTUsIDB4MTIsIDB4YWUsIDB4MTEsIDB4NzAsIDB4MDIsIDB4MTUsIDB4MTEsIDB4NGUsIDB4NjB9fSwKKyB7MHgwMDEzLCAgNywgeyAweDA1LCAweDEyLCAweDBmLCAweDg0LCAweDgwLCAweGVlLCAweDIyfX0sCisgezB4MDAyMywgIDMsIHsgMHgwMiwgMHgwMCwgMHg0Nn19LAorIHsweDAwNDYsIDE2LCB7IDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4YzAsIDB4ZDAsIDB4NzUsIDB4ZDAsIDB4MDh9fSwKKyB7MHgwMDU2LCAxNiwgeyAweDMwLCAweDk5LCAweDBlLCAweDMwLCAweDBiLCAweDA3LCAweGEyLCAweDBlLCAweDkyLCAweDliLCAweDg1LCAweDM2LCAweDk5LCAweGMyLCAweDk5LCAweGQyfX0sCisgezB4MDA2NiwgMTYsIHsgMHgxMiwgMHgyMCwgMHgxMiwgMHgwMywgMHgwMiwgMHgwNCwgMHgxZSwgMHhjMiwgMHgxMiwgMHgyMCwgMHgwMywgMHgwMywgMHgwMiwgMHgwMiwgMHg0ZSwgMHgyMH19LAorIHsweDAwNzYsIDE2LCB7IDB4MGIsIDB4MDMsIDB4MDIsIDB4MDEsIDB4MjYsIDB4ZTUsIDB4M2EsIDB4YzMsIDB4OTUsIDB4NTMsIDB4NTAsIDB4M2MsIDB4MjAsIDB4MGMsIDB4MzQsIDB4MjB9fSwKKyB7MHgwMDg2LCAxNiwgeyAweDA5LCAweDMxLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU1LCAweDM4LCAweDcwLCAweDI5LCAweDMwLCAweDEwLCAweDEyLCAweGFmLCAweDNhLCAweDA1fX0sCisgezB4MDA5NiwgMTYsIHsgMHgzYSwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwgMHhhZn19LAorIHsweDAwYTYsIDE2LCB7IDB4M2EsIDB4MDUsIDB4M2EsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4MzZ9fSwKKyB7MHgwMGI2LCAxNiwgeyAweDAyLCAweDA0LCAweDFjLCAweGMyLCAweDBiLCAweDAyLCAweDA0LCAweDFjLCAweDkwLCAweDdmLCAweGM3LCAweGU0LCAweGYwLCAweGMyLCAweDAzLCAweDMwfX0sCisgezB4MDBjNiwgMTYsIHsgMHgwZCwgMHgwYywgMHhjMiwgMHgwZCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHgwNCwgMHhmMCwgMHhjMiwgMHgwYiwgMHgwMiwgMHgwNCwgMHgxYywgMHg5MCwgMHg3Zn19LAorIHsweDAwZDYsIDE2LCB7IDB4YzgsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDUsIDB4YzIsIDB4MGIsIDB4MDIsIDB4MDQsIDB4MWMsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTAsIDB4ZjUsIDB4NTN9fSwKKyB7MHgwMGU2LCAxNiwgeyAweDkwLCAweDdkLCAweGMwLCAweGUwLCAweDEzLCAweDkyLCAweDBkLCAweDc1LCAweDE2LCAweGZmLCAweDIwLCAweDBjLCAweDJiLCAweDIwLCAweDA5LCAweDI4fX0sCisgezB4MDBmNiwgMTYsIHsgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHg1NSwgMHgzOCwgMHg3MCwgMHgyMCwgMHgzMCwgMHgxMCwgMHgxMSwgMHg5MCwgMHg3ZCwgMHhjMSwgMHhlMCwgMHgxM319LAorIHsweDAwNDMsICAzLCB7IDB4MDIsIDB4MGUsIDB4MDB9fSwKKyB7MHgwMDAwLCAgMywgeyAweDAyLCAweDAwLCAweDI2fX0sCisgezB4MDAyNiwgMTIsIHsgMHg3OCwgMHg3ZiwgMHhlNCwgMHhmNiwgMHhkOCwgMHhmZCwgMHg3NSwgMHg4MSwgMHg1NCwgMHgwMiwgMHgwYiwgMHgyOH19LAorIHsweDAxMDYsIDY0LCB7IDB4OTIsIDB4MGUsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4MzYsIDB4NzUsIDB4M2EsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MWMsIDB4NzUsIDB4M2EsIDB4MDIsIDB4OTAsIDB4N2QsCisgIDB4YzEsIDB4ZTAsIDB4ZjUsIDB4MzYsIDB4MDIsIDB4MDQsIDB4MWMsIDB4NzUsIDB4M2EsIDB4MDEsIDB4YzIsIDB4MGIsIDB4MDIsIDB4MDQsIDB4MWMsIDB4ZTUsCisgIDB4M2EsIDB4YzMsIDB4OTUsIDB4NTMsIDB4NTAsIDB4MDMsIDB4MDIsIDB4MDEsIDB4YzksIDB4OTAsIDB4N2YsIDB4YzYsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDcsCisgIDB4YzIsIDB4MTQsIDB4YzIsIDB4MDUsIDB4MDIsIDB4MDQsIDB4MWMsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4ZjUsIDB4NTMsIDB4OTAsIDB4N2V9fSwKKyB7MHgwMTQ2LCA2NCwgeyAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDBkLCAweDc1LCAweDE2LCAweGZmLCAweDIwLCAweDBjLCAweDcwLCAweDIwLCAweDA5LCAweDZkLCAweDkwLCAweDdmLCAweDliLAorICAweGUwLCAweDU1LCAweDM4LCAweDcwLCAweDY1LCAweDMwLCAweDEwLCAweDEwLCAweDkwLCAweDdlLCAweDQxLCAweGUwLCAweDEzLCAweDkyLCAweDliLCAweGEzLAorICAweGUwLCAweGY1LCAweDk5LCAweDc1LCAweDNhLCAweDAzLCAweDgwLCAweDA5LCAweDkwLCAweDdlLCAweDQxLCAweGUwLCAweGY1LCAweDk5LCAweDc1LCAweDNhLAorICAweDAyLCAweGU1LCAweDNhLCAweGMzLCAweDk1LCAweDUzLCAweDQwLCAweDE3LCAweDkwLCAweDdmLCAweGM3LCAweGU0LCAweGYwLCAweGMyLCAweDAzfX0sCisgezB4MDE4NiwgNjQsIHsgMHgyMCwgMHgwZCwgMHgwMywgMHgwMiwgMHgwNCwgMHgxYywgMHhjMiwgMHgwZCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHgwNCwgMHhmMCwgMHgwMiwgMHgwNCwgMHgxYywgMHgzMCwKKyAgMHgxMCwgMHgxMiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywKKyAgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwKKyAgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHgzNiwgMHhkMiwgMHgwYiwgMHgwMiwgMHgwNCwgMHgxYywgMHg3NSwgMHgzYSwgMHgwMSwgMHhjMiwgMHgxNH19LAorIHsweDAxYzYsIDY0LCB7IDB4MDIsIDB4MDQsIDB4MWMsIDB4MzAsIDB4MGMsIDB4MDMsIDB4MDIsIDB4MDIsIDB4NDksIDB4MjAsIDB4MDksIDB4NzcsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4NTUsCisgIDB4MzgsIDB4NzAsIDB4NmYsIDB4MzAsIDB4MTAsIDB4MTIsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsCisgIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4OWIsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsCisgIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4ZTUsIDB4M2EsIDB4YzMsIDB4OTUsIDB4NTMsIDB4NDB9fSwKKyB7MHgwMjA2LCA2NCwgeyAweDE3LCAweDkwLCAweDdmLCAweGM3LCAweGU0LCAweGYwLCAweGMyLCAweDAzLCAweDIwLCAweDBkLCAweDAzLCAweDAyLCAweDA0LCAweDFjLCAweGMyLCAweDBkLCAweDkwLAorICAweDdmLCAweGJiLCAweDA0LCAweGYwLCAweDAyLCAweDA0LCAweDFjLCAweDMwLCAweDEwLCAweDEyLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweDQwLAorICAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGFmLCAweDNhLCAweDA1LCAweDNhLAorICAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDM2LCAweGQyLCAweDBifX0sCisgezB4MDI0NiwgNjQsIHsgMHgwMiwgMHgwNCwgMHgxYywgMHhjMiwgMHgxNCwgMHgwMiwgMHgwNCwgMHgxYywgMHgyMCwgMHgwYiwgMHgwMywgMHgwMiwgMHgwMiwgMHhmZiwgMHhlNSwgMHgzYSwgMHhjMywKKyAgMHg5NSwgMHg1MywgMHg1MCwgMHgzYywgMHgyMCwgMHgwYywgMHgzNCwgMHgyMCwgMHgwOSwgMHgzMSwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHg1NSwgMHgzOCwKKyAgMHg3MCwgMHgyOSwgMHgzMCwgMHgxMCwgMHgxMiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwKKyAgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNX19LAorIHsweDAyODYsIDY0LCB7IDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4MzYsIDB4MDIsIDB4MDQsIDB4MWMsIDB4YzIsIDB4MGIsIDB4MDIsIDB4MDQsIDB4MWMsCisgIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTQsIDB4ZjAsIDB4ZDIsIDB4MDMsIDB4MzAsIDB4MGQsIDB4MGMsIDB4YzIsIDB4MGQsIDB4OTAsIDB4N2YsIDB4YmIsIDB4MDQsCisgIDB4ZjAsIDB4YzIsIDB4MGIsIDB4MDIsIDB4MDQsIDB4MWMsIDB4OTAsIDB4N2YsIDB4YzYsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDUsIDB4YzIsIDB4MGIsIDB4MDIsCisgIDB4MDQsIDB4MWMsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4ZjUsIDB4NTMsIDB4OTAsIDB4N2UsIDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGR9fSwKKyB7MHgwMmM2LCA2NCwgeyAweDc1LCAweDE2LCAweGZmLCAweDIwLCAweDBjLCAweDJiLCAweDIwLCAweDA5LCAweDI4LCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU1LCAweDM4LCAweDcwLCAweDIwLAorICAweDMwLCAweDEwLCAweDExLCAweDkwLCAweDdlLCAweDQxLCAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGEzLCAweGUwLCAweGY1LCAweDM2LCAweDc1LCAweDNhLAorICAweDAzLCAweDAyLCAweDA0LCAweDFjLCAweDc1LCAweDNhLCAweDAyLCAweDkwLCAweDdlLCAweDQxLCAweGUwLCAweGY1LCAweDM2LCAweDAyLCAweDA0LCAweDFjLAorICAweDc1LCAweDNhLCAweDAxLCAweGMyLCAweDBiLCAweDAyLCAweDA0LCAweDFjLCAweGU1LCAweDNhLCAweGMzLCAweDk1LCAweDUzLCAweDUwLCAweDAzfX0sCisgezB4MDMwNiwgNjQsIHsgMHgwMiwgMHgwMywgMHhhMiwgMHg5MCwgMHg3ZiwgMHhjOCwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNywgMHhjMiwgMHgxNCwgMHhjMiwgMHgwNSwgMHgwMiwgMHgwNCwgMHgxYywKKyAgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlMCwgMHhmNSwgMHg1MywgMHg5MCwgMHg3ZCwgMHhjMCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwZCwgMHg3NSwgMHgxNiwgMHhmZiwKKyAgMHgyMCwgMHgwYywgMHg3MCwgMHgyMCwgMHgwOSwgMHg2ZCwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHg1NSwgMHgzOCwgMHg3MCwgMHg2NSwgMHgzMCwgMHgxMCwKKyAgMHgxMCwgMHg5MCwgMHg3ZCwgMHhjMSwgMHhlMCwgMHgxMywgMHg5MiwgMHg5YiwgMHhhMywgMHhlMCwgMHhmNSwgMHg5OSwgMHg3NSwgMHgzYSwgMHgwM319LAorIHsweDAzNDYsIDY0LCB7IDB4ODAsIDB4MDksIDB4OTAsIDB4N2QsIDB4YzEsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzUsIDB4M2EsIDB4MDIsIDB4ZTUsIDB4M2EsIDB4YzMsIDB4OTUsIDB4NTMsIDB4NDAsCisgIDB4MTcsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTQsIDB4ZjAsIDB4ZDIsIDB4MDMsIDB4MjAsIDB4MGQsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MWMsIDB4YzIsIDB4MGQsCisgIDB4OTAsIDB4N2YsIDB4YmIsIDB4MDQsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MWMsIDB4MzAsIDB4MTAsIDB4MTIsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4NzQsCisgIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGUsIDB4YWYsIDB4M2F9fSwKKyB7MHgwMzg2LCA2NCwgeyAweDA1LCAweDNhLCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDM2LCAweGQyLCAweDBiLAorICAweDAyLCAweDA0LCAweDFjLCAweDc1LCAweDNhLCAweDAxLCAweGMyLCAweDE0LCAweDAyLCAweDA0LCAweDFjLCAweDIwLCAweDBjLCAweDc1LCAweDIwLCAweDA5LAorICAweDcyLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU1LCAweDM4LCAweDcwLCAweDZhLCAweDMwLCAweDEwLCAweDEyLCAweGFmLCAweDNhLCAweDA1LCAweDNhLAorICAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDliLCAweGFmfX0sCisgezB4MDNjNiwgNjQsIHsgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHg5OSwgMHhlNSwKKyAgMHgzYSwgMHhjMywgMHg5NSwgMHg1MywgMHg0MCwgMHgxMywgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlNCwgMHhmMCwgMHhkMiwgMHgwMywgMHgzMCwgMHgwZCwgMHgzNSwKKyAgMHhjMiwgMHgwZCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHgwNCwgMHhmMCwgMHg4MCwgMHgyYywgMHgzMCwgMHgxMCwgMHgxMiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwKKyAgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwgMHhhZn19LAorIHsweDA0MDYsIDY0LCB7IDB4M2EsIDB4MDUsIDB4M2EsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4MzYsIDB4ZDIsCisgIDB4MGIsIDB4ODAsIDB4MDIsIDB4YzIsIDB4MTQsIDB4ZDIsIDB4MDEsIDB4MjAsIDB4OTgsIDB4MDMsIDB4MDIsIDB4MDUsIDB4NWEsIDB4YzIsIDB4OTgsIDB4MjAsCisgIDB4MDIsIDB4MDMsIDB4MDIsIDB4MDQsIDB4YzcsIDB4MjAsIDB4MTYsIDB4MjcsIDB4YWYsIDB4MzksIDB4MDUsIDB4MzksIDB4NzQsIDB4ODAsIDB4MmYsIDB4ZjUsCisgIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTksIDB4ZjAsIDB4MzAsIDB4MTAsIDB4NGQsIDB4YWYsIDB4MzksIDB4MDV9fSwKKyB7MHgwNDQ2LCA2NCwgeyAweDM5LCAweDc0LCAweDgwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk4LCAweGYwLCAweDgwLCAweDNhLCAweDg1LAorICAweDk5LCAweDEwLCAweGU1LCAweDEwLCAweGI1LCAweDQ3LCAweDA0LCAweGQyLCAweDA5LCAweDgwLCAweDJlLCAweGU1LCAweDEwLCAweGI1LCAweDQ2LCAweDA0LAorICAweGMyLCAweDA5LCAweDgwLCAweDI1LCAweGFmLCAweDM5LCAweDA1LCAweDM5LCAweDc0LCAweDgwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLAorICAweGY1LCAweDgzLCAweGU1LCAweDEwLCAweGYwLCAweDMwLCAweDEwLCAweDExLCAweGFmLCAweDM5LCAweDA1LCAweDM5LCAweDc0LCAweDgwLCAweDJmfX0sCisgezB4MDQ4NiwgNjQsIHsgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg5OCwgMHhmMCwgMHhkMiwgMHgwZiwgMHhlNSwgMHgzOSwgMHhjMywgMHg5NSwgMHg0MywKKyAgMHg1MCwgMHgwMywgMHgwMiwgMHgwNSwgMHg1OCwgMHg5MCwgMHg3ZiwgMHhiOCwgMHhlMCwgMHgzMCwgMHhlMSwgMHgxNiwgMHhlNSwgMHgzOSwgMHhjMywgMHg5NCwKKyAgMHg0MCwgMHg1MCwgMHgwMywgMHgwMiwgMHgwNSwgMHg1OCwgMHgxNSwgMHgzOSwgMHgxNSwgMHgzOSwgMHgwNSwgMHgyYiwgMHg0MywgMHgzNCwgMHgwMSwgMHgwMiwKKyAgMHgwNSwgMHg1OCwgMHg5MCwgMHg3ZiwgMHhiNywgMHhlNSwgMHgzOSwgMHhmMCwgMHg3NSwgMHgzOSwgMHgwMCwgMHhjMiwgMHgwMiwgMHgwMiwgMHgwNX19LAorIHsweDA0YzYsIDY0LCB7IDB4NTgsIDB4MjAsIDB4MTYsIDB4MjcsIDB4YWYsIDB4MzksIDB4MDUsIDB4MzksIDB4NzQsIDB4MDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsCisgIDB4ODMsIDB4ZTUsIDB4OTksIDB4ZjAsIDB4MzAsIDB4MTAsIDB4NGQsIDB4YWYsIDB4MzksIDB4MDUsIDB4MzksIDB4NzQsIDB4MDAsIDB4MmYsIDB4ZjUsIDB4ODIsCisgIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTgsIDB4ZjAsIDB4ODAsIDB4M2EsIDB4ODUsIDB4OTksIDB4MTAsIDB4ZTUsIDB4MTAsIDB4YjUsCisgIDB4NDcsIDB4MDQsIDB4ZDIsIDB4MDksIDB4ODAsIDB4MmUsIDB4ZTUsIDB4MTAsIDB4YjUsIDB4NDYsIDB4MDQsIDB4YzIsIDB4MDksIDB4ODAsIDB4MjV9fSwKKyB7MHgwNTA2LCA2NCwgeyAweGFmLCAweDM5LCAweDA1LCAweDM5LCAweDc0LCAweDAwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDEwLCAweGYwLAorICAweDMwLCAweDEwLCAweDExLCAweGFmLCAweDM5LCAweDA1LCAweDM5LCAweDc0LCAweDAwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LAorICAweDgzLCAweGU1LCAweDk4LCAweGYwLCAweGQyLCAweDBmLCAweGU1LCAweDM5LCAweGMzLCAweDk1LCAweDQzLCAweDQwLCAweDI0LCAweDkwLCAweDdmLCAweGI2LAorICAweGUwLCAweDMwLCAweGUxLCAweDEyLCAweGU1LCAweDM5LCAweGMzLCAweDk0LCAweDQwLCAweDQwLCAweDE2LCAweDE1LCAweDM5LCAweDE1LCAweDM5fX0sCisgezB4MDU0NiwgNjQsIHsgMHgwNSwgMHgyYiwgMHg0MywgMHgzNCwgMHgwMSwgMHg4MCwgMHgwYiwgMHg5MCwgMHg3ZiwgMHhiOSwgMHhlNSwgMHgzOSwgMHhmMCwgMHg3NSwgMHgzOSwgMHgwMCwgMHhkMiwKKyAgMHgwMiwgMHhkMiwgMHgwMSwgMHgzMCwgMHgwMSwgMHgwNSwgMHhjMiwgMHgwMSwgMHgwMiwgMHgwMCwgMHg1NiwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4NiwgMHhkMCwKKyAgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHg5MCwgMHg3ZiwgMHhiYywgMHhlMCwgMHgyMCwgMHhlMSwgMHg1MSwgMHhlNSwgMHgzNCwgMHg2MCwKKyAgMHg0ZCwgMHhlNSwgMHgzMSwgMHg3MCwgMHg0OSwgMHhlNSwgMHgzNCwgMHgzMCwgMHhlMSwgMHgwOCwgMHhlNCwgMHhmNSwgMHgyZiwgMHg3NSwgMHgzNH19LAorIHsweDA1ODYsIDY0LCB7IDB4MDEsIDB4ODAsIDB4MGIsIDB4YTIsIDB4MDgsIDB4ZTQsIDB4MzMsIDB4ZjUsIDB4MmYsIDB4YzIsIDB4MDgsIDB4ZTQsIDB4ZjUsIDB4MzQsIDB4ZTQsIDB4ZjUsIDB4MTEsCisgIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MjQsIDB4MjUsIDB4MTEsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MGQsIDB4MDYsCisgIDB4ZmYsIDB4NzQsIDB4MDAsIDB4MjUsIDB4MTEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTEsCisgIDB4ZTUsIDB4MTEsIDB4YjQsIDB4MGMsIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YmQsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4NzUsIDB4MzEsIDB4MTAsIDB4OTB9fSwKKyB7MHgwNWM2LCA2NCwgeyAweDdmLCAweGNhLCAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDA2LCAweGYzLCAweGU0LCAweGY1LCAweDExLCAweDc0LCAweDQwLCAweDI1LCAweDExLCAweGY1LAorICAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDExLCAweDdjLCAweDAwLCAweDdiLCAweDAwLCAweDI0LCAweDNiLAorICAweGY5LCAweGVjLCAweDM0LCAweDAwLCAweGZhLCAweGVmLCAweDEyLCAweDBkLCAweDFmLCAweDA1LCAweDExLCAweGU1LCAweDExLCAweGI0LCAweDE4LCAweGRiLAorICAweGU1LCAweDNiLCAweDYwLCAweDExLCAweDc1LCAweGM5LCAweDIwLCAweDc1LCAweGM4LCAweDM2LCAweDg1LCAweDNjLCAweGNhLCAweDg1LCAweDNkfX0sCisgezB4MDYwNiwgNjQsIHsgMHhjYiwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5ZiwgMHhmMCwgMHhlNSwgMHgzZSwgMHgxMywgMHg5MiwgMHgxMCwgMHg5MiwgMHg5ZiwgMHg4NSwgMHgzZiwgMHgzOCwgMHhlNSwKKyAgMHg0MCwgMHgxMywgMHg5MiwgMHgxNiwgMHhlNSwgMHg0MSwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHg4MCwKKyAgMHgwNywgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwgMHg0NCwgMHgwNCwgMHhmMCwgMHhlNSwgMHg0MiwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwKKyAgMHg1NCwgMHg3ZiwgMHhmMCwgMHg4MCwgMHgwNywgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHhlNSwgMHg0OCwgMHg2MH19LAorIHsweDA2NDYsIDY0LCB7IDB4MGIsIDB4YzIsIDB4MGMsIDB4YzIsIDB4MDksIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4NDksIDB4NjAsIDB4MGMsIDB4ZDIsCisgIDB4MDksIDB4NDMsIDB4MzQsIDB4MDEsIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4NGEsIDB4NjAsIDB4MGQsIDB4YzIsCisgIDB4YWYsIDB4YzIsIDB4MGIsIDB4ZDIsIDB4MDAsIDB4ZTQsIDB4ZjUsIDB4NTMsIDB4ZjUsIDB4M2EsIDB4ZDIsIDB4YWYsIDB4ZTUsIDB4NGIsIDB4NjAsIDB4MDUsCisgIDB4MzAsIDB4MTYsIDB4MDIsIDB4ZDIsIDB4MDksIDB4ZTUsIDB4NGMsIDB4NjAsIDB4MTUsIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZTAsIDB4NTQsIDB4ZmR9fSwKKyB7MHgwNjg2LCA2NCwgeyAweGYwLCAweDkwLCAweDdmLCAweDllLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweGU1LCAweDRkLAorICAweDYwLCAweDBhLCAweGQyLCAweDljLCAweGMyLCAweDk4LCAweDc1LCAweDJjLCAweDAxLCAweDc1LCAweDMxLCAweDFlLCAweGU1LCAweDRlLCAweDYwLCAweDA3LAorICAweGMyLCAweDljLCAweGU0LCAweGY1LCAweDM5LCAweGY1LCAweDJjLCAweGU1LCAweDRmLCAweDYwLCAweDAzLCAweGU0LCAweGY1LCAweDM5LCAweGU1LCAweDUwLAorICAweDYwLCAweDAyLCAweGQyLCAweDA3LCAweGU1LCAweDUxLCAweDYwLCAweDBhLCAweGU1LCAweDRkLCAweDcwLCAweDAyLCAweGY1LCAweDMxLCAweGU1fX0sCisgezB4MDZjNiwgNjQsIHsgMHg1MSwgMHg0MiwgMHgzNCwgMHhlNSwgMHg1MiwgMHg2MCwgMHgxZiwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxMSwgMHhmMCwgMHg3NCwgMHgzMSwgMHhmMCwgMHg3NCwKKyAgMHgxMiwgMHhmMCwgMHg3NCwgMHgzMiwgMHhmMCwgMHg3NCwgMHgxMywgMHhmMCwgMHg3NCwgMHgzMywgMHhmMCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg3NCwgMHgzNCwKKyAgMHhmMCwgMHhkMiwgMHgwMywgMHhkMiwgMHgwMiwgMHhkMiwgMHgwOCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhmMCwgMHhhMiwgMHgwYywgMHhlNCwgMHgzMywKKyAgMHhmZiwgMHg2NSwgMHgyOSwgMHg2MCwgMHgwNSwgMHg4ZiwgMHgyOSwgMHg0MywgMHgzNCwgMHgwMSwgMHhhMiwgMHgwOSwgMHhlNCwgMHgzMywgMHhmZn19LAorIHsweDA3MDYsIDY0LCB7IDB4NjUsIDB4MmEsIDB4NjAsIDB4MDUsIDB4OGYsIDB4MmEsIDB4NDMsIDB4MzQsIDB4MDEsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4ZmYsIDB4NTQsIDB4MDgsIDB4NjQsCisgIDB4MDgsIDB4ZmUsIDB4NjUsIDB4MjUsIDB4NjAsIDB4MDUsIDB4OGUsIDB4MjUsIDB4NDMsIDB4MzQsIDB4MDEsIDB4ZWYsIDB4NTQsIDB4MTAsIDB4NjQsIDB4MTAsCisgIDB4ZmUsIDB4NjUsIDB4MjYsIDB4NjAsIDB4MDUsIDB4OGUsIDB4MjYsIDB4NDMsIDB4MzQsIDB4MDEsIDB4ZWYsIDB4NTQsIDB4NDAsIDB4NjQsIDB4NDAsIDB4ZmUsCisgIDB4NjUsIDB4MjcsIDB4NjAsIDB4MDUsIDB4OGUsIDB4MjcsIDB4NDMsIDB4MzQsIDB4MDEsIDB4ZWYsIDB4NTQsIDB4MjAsIDB4NjQsIDB4MjAsIDB4ZmV9fSwKKyB7MHgwNzQ2LCA2NCwgeyAweDY1LCAweDI4LCAweDYwLCAweDA1LCAweDhlLCAweDI4LCAweDQzLCAweDM0LCAweDAxLCAweDkwLCAweDdmLCAweDlhLCAweGUwLCAweDU0LCAweDQwLCAweDY0LCAweDQwLAorICAweGZlLCAweDY1LCAweDJlLCAweDYwLCAweDA1LCAweDhlLCAweDJlLCAweDQzLCAweDM0LCAweDAxLCAweDMwLCAweDA3LCAweDM1LCAweGMyLCAweGFmLCAweDMwLAorICAweDAyLCAweDE4LCAweDkwLCAweDdmLCAweGI4LCAweGUwLCAweDIwLCAweGUxLCAweDI3LCAweGU1LCAweDM5LCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweGI3LAorICAweGYwLCAweGU0LCAweGY1LCAweDM5LCAweGMyLCAweDAyLCAweGMyLCAweDA3LCAweDgwLCAweDE2LCAweDkwLCAweDdmLCAweGI2LCAweGUwLCAweDIwfX0sCisgezB4MDc4NiwgNjQsIHsgMHhlMSwgMHgwZiwgMHhlNSwgMHgzOSwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhiOSwgMHhmMCwgMHhlNCwgMHhmNSwgMHgzOSwgMHhkMiwgMHgwMiwgMHhjMiwgMHgwNywKKyAgMHhkMiwgMHhhZiwgMHgyMCwgMHgwNSwgMHgzZCwgMHgzMCwgMHgwMywgMHgxZSwgMHg5MCwgMHg3ZiwgMHhjNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHgzMywgMHg5MCwKKyAgMHg3ZSwgMHg0MCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwZCwgMHg3NSwgMHgzYSwgMHgwMSwgMHg5MCwgMHg3ZiwgMHhjNywgMHhlMCwgMHhmNSwgMHg1MywgMHhkMiwKKyAgMHgwNSwgMHg3NSwgMHgxNiwgMHhmZiwgMHg4MCwgMHgxYywgMHg5MCwgMHg3ZiwgMHhjOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgxNSwgMHg5MCwgMHg3ZH19LAorIHsweDA3YzYsIDY0LCB7IDB4YzAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGQsIDB4NzUsIDB4M2EsIDB4MDEsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTAsIDB4ZjUsIDB4NTMsIDB4ZDIsIDB4MDUsIDB4NzUsCisgIDB4MTYsIDB4ZmYsIDB4MjAsIDB4MTQsIDB4MzMsIDB4MjAsIDB4MDAsIDB4MDYsIDB4ZTUsIDB4M2EsIDB4NjUsIDB4NTMsIDB4NzAsIDB4MmEsIDB4MzAsIDB4MDUsCisgIDB4MWEsIDB4MzAsIDB4MDMsIDB4MDksIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZjAsIDB4YzIsIDB4MDMsIDB4ODAsIDB4MDcsIDB4ZTQsIDB4OTAsIDB4N2YsCisgIDB4YzksIDB4ZjAsIDB4ZDIsIDB4MDMsIDB4YzIsIDB4MDUsIDB4ZTQsIDB4ZjUsIDB4NTMsIDB4ZjUsIDB4M2EsIDB4MzAsIDB4MGQsIDB4MGEsIDB4YzJ9fSwKKyB7MHgwODA2LCA2NCwgeyAweDBkLCAweGMyLCAweDAwLCAweDkwLCAweDdmLCAweGJiLCAweDc0LCAweDAxLCAweGYwLCAweDMwLCAweDE0LCAweDAzLCAweDAyLCAweDA5LCAweDE0LCAweDIwLCAweDA1LAorICAweDAzLCAweDAyLCAweDA5LCAweDE0LCAweDMwLCAweDBjLCAweDAzLCAweDAyLCAweDA5LCAweDE0LCAweDMwLCAweDA5LCAweDAzLCAweDAyLCAweDA5LCAweDE0LAorICAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU1LCAweDM4LCAweDYwLCAweDAzLCAweDAyLCAweDA5LCAweDE0LCAweDMwLCAweDAzLCAweDYxLCAweDMwLCAweDEwLAorICAweDEyLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzfX0sCisgezB4MDg0NiwgNjQsIHsgMHhlMCwgMHgxMywgMHg5MiwgMHgxYiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwKKyAgMHg4MywgMHhlMCwgMHhmZSwgMHhlNSwgMHgzYSwgMHhjMywgMHg5NSwgMHg1MywgMHg1MCwgMHgyYSwgMHgzMCwgMHgxMCwgMHgxMiwgMHhhZiwgMHgzYSwgMHgwNSwKKyAgMHgzYSwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwgMHhhZiwKKyAgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNX19LAorIHsweDA4ODYsIDY0LCB7IDB4MzYsIDB4ZDIsIDB4MGIsIDB4ODAsIDB4NmEsIDB4YzIsIDB4MGIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZjAsIDB4YzIsIDB4MDMsIDB4ODAsIDB4NWYsIDB4MzAsCisgIDB4MTAsIDB4MTIsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsCisgIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MWIsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsCisgIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmUsIDB4ZTUsIDB4M2EsIDB4YzMsIDB4OTUsIDB4NTMsIDB4NTAsIDB4MmEsIDB4MzAsIDB4MTAsIDB4MTIsIDB4YWZ9fSwKKyB7MHgwOGM2LCA2NCwgeyAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBlLAorICAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweGY1LAorICAweDM2LCAweGQyLCAweDBiLCAweDgwLCAweDA5LCAweGMyLCAweDBiLCAweGU0LCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweGQyLCAweDAzLCAweDMwLCAweDEwLAorICAweDA0LCAweGEyLCAweDFiLCAweDkyLCAweDliLCAweGQyLCAweDE0LCAweGMyLCAweGFmLCAweDhlLCAweDk5LCAweDIwLCAweDBiLCAweDBkLCAweDMwfX0sCisgezB4MDkwNiwgNjQsIHsgMHgwZCwgMHgwYSwgMHhjMiwgMHgwZCwgMHhjMiwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMiwgMHhhZiwgMHgyMiwgMHg5MCwgMHg3ZiwKKyAgMHhlOSwgMHhlMCwgMHgxMiwgMHgwZCwgMHgzMSwgMHgwYSwgMHgxMSwgMHgwMCwgMHgwYSwgMHg3ZSwgMHgwMSwgMHgwYSwgMHhkYiwgMHgwMywgMHgwOSwgMHgzOCwKKyAgMHgwNiwgMHgwYSwgMHgwMiwgMHgwOCwgMHgwOSwgMHhmNiwgMHgwOSwgMHgwOSwgMHhkZSwgMHgwYSwgMHgwOSwgMHhlZCwgMHgwYiwgMHgwMCwgMHgwMCwgMHgwYiwKKyAgMHgxOSwgMHg5MCwgMHg3ZiwgMHhlYiwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxOSwgMHgxNCwgMHg2MCwgMHg1YSwgMHgyNCwgMHgwMiwgMHg2MH19LAorIHsweDA5NDYsIDY0LCB7IDB4MDMsIDB4MDIsIDB4MGIsIDB4MTksIDB4NzQsIDB4MGQsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4ODcsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsCisgIDB4MGIsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MDQsIDB4N2YsIDB4MDIsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MDMsIDB4NzUsIDB4ODIsCisgIDB4ZDgsIDB4NzUsIDB4ODMsIDB4MGQsIDB4ZWYsIDB4ZjAsIDB4NzUsIDB4ODIsIDB4ZDEsIDB4NzUsIDB4ODMsIDB4MGQsIDB4ZjAsIDB4NzUsIDB4ODIsIDB4Y2EsCisgIDB4NzUsIDB4ODMsIDB4MGQsIDB4ZjAsIDB4NzUsIDB4ODIsIDB4YzMsIDB4NzUsIDB4ODMsIDB4MGQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTB9fSwKKyB7MHgwOTg2LCA2NCwgeyAweDA0LCAweDc1LCAweDgyLCAweDllLCAweDc1LCAweDgzLCAweDBkLCAweGYwLCAweDc0LCAweDBkLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweDc0LCAweDk5LCAweDkwLAorICAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDBiLCAweDIwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDBiLCAweDc1LCAweDExLCAweGZmLCAweDc1LAorICAweDEyLCAweDBkLCAweDc1LCAweDEzLCAweGRjLCAweDgwLCAweDFiLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDBiLCAweDc1LCAweDExLAorICAweGZmLCAweDc1LCAweDEyLCAweDBkLCAweDc1LCAweDEzLCAweGUwLCAweDgwLCAweDA5LCAweDc1LCAweDExLCAweGZmLCAweDc1LCAweDEyLCAweDBkfX0sCisgezB4MDljNiwgNjQsIHsgMHg3NSwgMHgxMywgMHhmMCwgMHhhYSwgMHgxMiwgMHhhOSwgMHgxMywgMHhhZSwgMHgwMiwgMHhlZSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHhhZiwgMHgwMSwgMHhlZiwKKyAgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgyMCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhlNSwgMHgxNSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwKKyAgMHg3NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgxNSwgMHgwMiwgMHgwYiwgMHgyMCwgMHgxMiwKKyAgMHgwYywgMHhiMSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgxNCwgMHgwMiwgMHgwYiwgMHgyMCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhlNX19LAorIHsweDBhMDYsIDY0LCB7IDB4MTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4N2YsCisgIDB4NjAsIDB4MjcsIDB4MTQsIDB4NjAsIDB4MzQsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGIsIDB4MTksIDB4YTIsIDB4MTcsIDB4ZTQsIDB4MzMsCisgIDB4ZmYsIDB4MjUsIDB4ZTAsIDB4ZmYsIDB4YTIsIDB4MTksIDB4ZTQsIDB4MzMsIDB4NGYsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsCisgIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4YTN9fSwKKyB7MHgwYTQ2LCA2NCwgeyAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLCAweDIwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLAorICAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LAorICAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZkLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLAorICAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLCAweDIwLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE3fX0sCisgezB4MGE4NiwgNjQsIHsgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwYiwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg2NCwgMHgwMSwgMHg2MCwgMHgwMywgMHgwMiwgMHgwYiwKKyAgMHgxOSwgMHhjMiwgMHgxNywgMHgwMiwgMHgwYiwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHg3NiwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwKKyAgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwKKyAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHg1NCwgMHg4MH19LAorIHsweDBhYzYsIDY0LCB7IDB4ZmYsIDB4MTMsIDB4MTMsIDB4MTMsIDB4NTQsIDB4MWYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4ZjAsIDB4ZTAsIDB4NDQsCisgIDB4MjAsIDB4ZjAsIDB4ODAsIDB4NDUsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTAsIDB4MjQsIDB4MDIsIDB4NzAsIDB4MzksCisgIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NjQsIDB4MDEsIDB4NzAsIDB4MmEsIDB4ZDIsIDB4MTcsIDB4ODAsIDB4MmQsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsCisgIDB4NzAsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTB9fSwKKyB7MHgwYjA2LCA2NCwgeyAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLAorICAweDgwLCAweDA3LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLAorICAweDIyLCAweGMyLCAweDEwLCAweGU0LCAweGY1LCAweDE0LCAweGY1LCAweDM0LCAweGMyLCAweDA5LCAweGMyLCAweDBjLCAweGMyLCAweDBiLCAweGMyLCAweDE0LAorICAweGMyLCAweDBkLCAweGMyLCAweDE2LCAweGMyLCAweDExLCAweGMyLCAweDA3LCAweGMyLCAweDEyLCAweGMyLCAweDBmLCAweGMyLCAweDA4LCAweGY1fX0sCisgezB4MGI0NiwgNjQsIHsgMHgzNSwgMHhmNSwgMHgzOSwgMHhmNSwgMHg1MywgMHhmNSwgMHgzYSwgMHhmNSwgMHgzMywgMHhmNSwgMHgzMCwgMHhmNSwgMHgyZiwgMHhmNSwgMHgyZSwgMHhmNSwgMHgyZCwKKyAgMHhmNSwgMHgyYywgMHhmNSwgMHgyYiwgMHhmNSwgMHgyYSwgMHhmNSwgMHgyOSwgMHhmNSwgMHgyOCwgMHhmNSwgMHgyNywgMHhmNSwgMHgyNiwgMHhmNSwgMHgyNSwKKyAgMHhmNSwgMHgyNCwgMHhjMiwgMHgwNSwgMHhjMiwgMHgxOCwgMHhjMiwgMHgxYSwgMHhjMiwgMHgxNywgMHhjMiwgMHgxOSwgMHhjMiwgMHgxNSwgMHhjMiwgMHgwNCwKKyAgMHhkMiwgMHgxMywgMHhjMiwgMHgwNiwgMHhjMiwgMHgwMSwgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHhkMiwgMHhlOH19LAorIHsweDBiODYsIDY0LCB7IDB4NDMsIDB4ZDgsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsCisgIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWEsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWYsCisgIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZTAsIDB4NDQsIDB4MGYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWMsIDB4NzQsIDB4MGUsCisgIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4ZDIsIDB4YmMsIDB4ZDIsIDB4MWIsIDB4MTIsIDB4MGYsIDB4NWYsIDB4YzIsIDB4MTgsIDB4MzAsIDB4MDQsIDB4MDN9fSwKKyB7MHgwYmM2LCA2NCwgeyAweDEyLCAweDA1LCAweDZkLCAweDMwLCAweDA0LCAweDJhLCAweDMwLCAweDA2LCAweDI3LCAweGMyLCAweDA2LCAweGU1LCAweDE2LCAweDYwLCAweDE2LCAweDE1LCAweDE2LAorICAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweDMwLCAweGU2LCAweDA0LCAweDdmLCAweDAwLCAweDgwLCAweDAyLCAweDdmLCAweDIwLCAweDkwLCAweDdmLCAweDk2LAorICAweGVmLCAweGYwLCAweDgwLCAweDA2LCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweDIwLCAweGYwLCAweDEyLCAweDBjLCAweDBiLCAweDgwLCAweGNkLCAweDMwLAorICAweDE4LCAweDA3LCAweGMyLCAweDE4LCAweDEyLCAweDA5LCAweDE1LCAweDgwLCAweGMzLCAweDMwLCAweDFhLCAweGMwLCAweGMyLCAweDFhLCAweDEyfX0sCisgezB4MGMwNiwgNjQsIHsgMHgwZiwgMHhiYiwgMHg4MCwgMHhiOSwgMHgyMiwgMHhlNSwgMHgzMSwgMHg2MCwgMHgwMiwgMHgxNSwgMHgzMSwgMHhlNSwgMHgzOSwgMHg2MCwgMHg1NSwgMHg2NSwgMHgzNSwKKyAgMHg3MCwgMHg0YiwgMHhlNSwgMHgzMywgMHhmNCwgMHg2MCwgMHgwMiwgMHgwNSwgMHgzMywgMHhlNSwgMHgzMywgMHhjMywgMHg5NSwgMHg0NCwgMHg0MCwgMHg0MywKKyAgMHhjMiwgMHhhZiwgMHgzMCwgMHgwMiwgMHgxYiwgMHg5MCwgMHg3ZiwgMHhiOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgyZCwgMHg5MCwgMHg3ZiwgMHhiNywgMHhlNSwKKyAgMHgzOSwgMHhmMCwgMHhjMiwgMHgwMiwgMHhlNCwgMHhmNSwgMHgzOSwgMHhmNSwgMHgzMywgMHhmNSwgMHgzNSwgMHg3NSwgMHgxNiwgMHhmZiwgMHg4MH19LAorIHsweDBjNDYsIDY0LCB7IDB4MTksIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MTIsIDB4OTAsIDB4N2YsIDB4YjksIDB4ZTUsIDB4MzksIDB4ZjAsIDB4ZDIsIDB4MDIsIDB4ZTQsCisgIDB4ZjUsIDB4MzksIDB4ZjUsIDB4MzMsIDB4ZjUsIDB4MzUsIDB4NzUsIDB4MTYsIDB4ZmYsIDB4ZDIsIDB4YWYsIDB4ODAsIDB4MDYsIDB4ODUsIDB4MzksIDB4MzUsCisgIDB4ZTQsIDB4ZjUsIDB4MzMsIDB4ZTUsIDB4MmMsIDB4NjAsIDB4MzAsIDB4MjAsIDB4MGYsIDB4MDcsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MzAsIDB4ZTAsCisgIDB4MGYsIDB4ZTUsIDB4MmQsIDB4NjAsIDB4MDYsIDB4ZTQsIDB4ZjUsIDB4MmQsIDB4NDMsIDB4MzQsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MzAsIDB4ODB9fSwKKyB7MHgwYzg2LCA2NCwgeyAweDE0LCAweGU1LCAweDMwLCAweGQzLCAweDk1LCAweDQ1LCAweDUwLCAweDBkLCAweGU1LCAweDMwLCAweGI1LCAweDQ1LCAweDA2LCAweDc1LCAweDJkLCAweDAxLCAweDQzLAorICAweDM0LCAweDAxLCAweDA1LCAweDMwLCAweGMyLCAweDBmLCAweDIyLCAweDkwLCAweDdmLCAweGQ5LCAweGUwLCAweDMwLCAweGUyLCAweDA0LCAweDdmLCAweDAwLAorICAweDgwLCAweDAyLCAweDdmLCAweDIwLCAweDkwLCAweDdmLCAweDk2LCAweGVmLCAweGYwLCAweDIyLCAweGU0LCAweDkwLCAweDdmLCAweDkzLCAweGYwLCAweDkwLAorICAweDdmLCAweDljLCAweDc0LCAweDMwLCAweGYwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweDIwLCAweGYwLCAweDkwLCAweDdmLCAweDk0LCAweDc0fX0sCisgezB4MGNjNiwgNjQsIHsgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NywgMHg3NCwgMHg4NiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NSwKKyAgMHg3NCwgMHgwMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHg4NCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwKKyAgMHhjNywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhmMCwgMHg3NSwgMHg5OCwgMHg0MCwgMHg0MywgMHhhOCwgMHgxMCwKKyAgMHg5MCwgMHg3ZiwgMHhkZSwgMHg3NCwgMHgxZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHg3NCwgMHgwZiwgMHhmMCwgMHhkMiwgMHgwNCwgMHgyMn19LAorIHsweDBkMDYsIDY0LCB7IDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDIsIDB4ZTcsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDIsIDB4ZTMsCisgIDB4MjIsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZjAsCisgIDB4MjIsIDB4NTAsIDB4MDIsIDB4ZjcsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDEsIDB4ZjMsIDB4MjIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4ZjgsIDB4ZTQsCisgIDB4OTMsIDB4NzAsIDB4MTIsIDB4NzQsIDB4MDEsIDB4OTMsIDB4NzAsIDB4MGQsIDB4YTMsIDB4YTMsIDB4OTMsIDB4ZjgsIDB4NzQsIDB4MDEsIDB4OTN9fSwKKyB7MHgwZDQ2LCA2NCwgeyAweGY1LCAweDgyLCAweDg4LCAweDgzLCAweGU0LCAweDczLCAweDc0LCAweDAyLCAweDkzLCAweDY4LCAweDYwLCAweGVmLCAweGEzLCAweGEzLCAweGEzLCAweDgwLCAweGRmLAorICAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweDkwLAorICAweDdmLCAweGM0LCAweGU0LCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA0LCAweGYwLCAweGQwLCAweDg2LCAweGQwLAorICAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MGQ4NiwgNjQsIHsgMHgwMCwgMHgxMiwgMHgwMSwgMHgxMCwgMHgwMSwgMHhmZiwgMHgwMCwgMHgwMCwgMHg0MCwgMHhjZCwgMHgwNiwgMHgwYywgMHgwMSwgMHgwMSwgMHgwMCwgMHgwMSwgMHgwMiwKKyAgMHgwMCwgMHgwMiwgMHgwOSwgMHgwMiwgMHg0MywgMHgwMCwgMHgwMSwgMHgwMSwgMHgwMCwgMHg4MCwgMHgzMiwgMHgwOSwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwNywKKyAgMHhmZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMSwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMiwgMHgwMiwgMHg0MCwKKyAgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHg4MSwgMHgwMiwgMHg0MCwgMHgwMH19LAorIHsweDBkYzYsIDY0LCB7IDB4MDEsIDB4MDcsIDB4MDUsIDB4ODIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODMsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsCisgIDB4ODQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDQsIDB4MDMsIDB4MDksIDB4MDQsIDB4MTAsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzksCisgIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MGUsIDB4MDMsIDB4NTMsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsCisgIDB4MDAsIDB4NjksIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MGUsIDB4YTIsIDB4MDAsIDB4MDIsIDB4MGV9fSwKKyB7MHgwZTA2LCA2NCwgeyAweDdiLCAweDAwLCAweDAyLCAweDBkLCAweDU3LCAweDAwLCAweDAyLCAweDBlLCAweGM5LCAweDAwLCAweDAyLCAweDBlLCAweDEwLCAweDAwLCAweDAyLCAweDBlLCAweDE0LAorICAweDAwLCAweDAyLCAweDBlLCAweDE4LCAweDAwLCAweDAyLCAweDBlLCAweDFjLCAweDAwLCAweDAyLCAweDBlLCAweGYwLCAweDAwLCAweDAyLCAweDBlLCAweDI0LAorICAweDAwLCAweDAyLCAweDBmLCAweDE1LCAweDAwLCAweDAyLCAweDBlLCAweDJjLCAweDAwLCAweDAyLCAweDBmLCAweDNhLCAweGU0LCAweDkwLCAweDdmLCAweDk1LAorICAweGYwLCAweDkwLCAweDdmLCAweDk0LCAweGYwLCAweDkwLCAweDdmLCAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweGUwLCAweDQ0LCAweDAyfX0sCisgezB4MGU0NiwgNjQsIHsgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NywgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHgxMCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwKKyAgMHg5NiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHg3NCwgMHhmZSwgMHhmMCwgMHgzMCwgMHgxNywgMHgwNCwgMHg3ZiwgMHg4MCwgMHg4MCwgMHgwMiwgMHg3ZiwKKyAgMHgwMCwgMHg5MCwgMHg3ZiwgMHg5NywgMHhlZiwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHhmMCwgMHg5MCwKKyAgMHg3ZiwgMHg5OCwgMHhmMCwgMHgyMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMH19LAorIHsweDBlODYsIDY0LCB7IDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4ZDIsIDB4MDYsIDB4ZDAsIDB4ODYsCisgIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsCisgIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsIDB4MTgsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsCisgIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODN9fSwKKyB7MHgwZWM2LCA2NCwgeyAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LAorICAweDAwLCAweGQyLCAweDFhLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA4LCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LAorICAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLAorICAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGE5LCAweDc0fX0sCisgezB4MGYwNiwgNjQsIHsgMHgwMiwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHhjMCwgMHhlMCwKKyAgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg1MywgMHg5MSwgMHhlZiwKKyAgMHg5MCwgMHg3ZiwgMHhhOSwgMHg3NCwgMHgwNCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywKKyAgMHhkMCwgMHhlMCwgMHgzMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4Nn19LAorIHsweDBmNDYsIDY0LCB7IDB4NzUsIDB4ODYsIDB4MDAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YTksIDB4NzQsIDB4MDgsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsCisgIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsCisgIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MWIsIDB4MDQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4N2YsIDB4ZjQsIDB4N2UsIDB4MDEsIDB4MTIsIDB4MDAsCisgIDB4MDMsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4MjIsIDB4NzQsIDB4MDB9fSwKKyB7MHgwZjg2LCA2NCwgeyAweGY1LCAweDg2LCAweDkwLCAweGZkLCAweGE1LCAweDdjLCAweDA1LCAweGEzLCAweGU1LCAweDgyLCAweDQ1LCAweDgzLCAweDcwLCAweGY5LCAweDIyLCAweDkwLCAweDdmLAorICAweGQ2LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDQzLCAweDg3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDIyLCAweDkwLCAweDdmLAorICAweGQ2LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDdmLCAweDBkLCAweDdlLCAweDAwLCAweDEyLCAweDAwLCAweDAzLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLAorICAweDU0LCAweGZlLCAweGYwLCAweDIyLCAweDEyLCAweDBlLCAweDMzLCAweDEyLCAweDBmLCAweDk1LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDMwfX0sCisgezB4MGZjNiwgIDksIHsgMHhlNywgMHgwMywgMHgxMiwgMHgwZiwgMHhhNSwgMHgxMiwgMHgwYywgMHhiMSwgMHgyMn19LAorIHsweGZmZmYsCTAsCXsweDAwfX0KK307CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2ExOXF3X2Z3LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2ExOXF3X2Z3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDgwM2Y4YgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTE5cXdfZncuaApAQCAtMCwwICsxLDQ0OCBAQAorLyoga2V5c3Bhbl91c2ExOXF3X2Z3LmgKKworCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGFzIGtleXNwYW5fdXNhMTl3cV9mdy5oIGlzCisKKwkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKKwkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQorCQkKKwlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKKwlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKKwlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZSAKKwlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlIAorCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbCAKKwlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLiAKKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoICAKKwlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlIAorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gCisJcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCisKKyovCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCBrZXlzcGFuX3VzYTE5cXdfZmlybXdhcmVbXSA9IHsKKyB7MHgwMDMzLCAgMywgeyAweDAyLCAweDAwLCAweDJkfX0sCisgezB4MDAyZCwgIDQsIHsgMHg1MywgMHhkOCwgMHhlZiwgMHgzMn19LAorIHsweDAwNDYsIDE2LCB7IDB4MzAsIDB4MTAsIDB4MTksIDB4MTIsIDB4MGUsIDB4MGYsIDB4ZWYsIDB4YzMsIDB4OTUsIDB4MTQsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDAsIDB4ZGYsIDB4OTB9fSwKKyB7MHgwMDU2LCAxNiwgeyAweDdmLCAweGJmLCAweDc0LCAweDAxLCAweGYwLCAweGMyLCAweDEwLCAweGMyLCAweDBiLCAweDAyLCAweDAwLCAweGRmLCAweDMwLCAweDBkLCAweDNlLCAweDkwfX0sCisgezB4MDA2NiwgMTYsIHsgMHg3ZiwgMHhjNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHg3MywgMHgxMiwgMHgwZSwgMHgwZiwgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHg2YSwgMHg5MH19LAorIHsweDAwNzYsIDE2LCB7IDB4N2UsIDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTAsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MzYsIDB4MjAsIDB4MGIsIDB4MTF9fSwKKyB7MHgwMDg2LCAxNiwgeyAweDYwLCAweDBmLCAweGY1LCAweDI0LCAweDdlLCAweDdlLCAweDdmLCAweDQxLCAweDc1LCAweDI5LCAweDdlLCAweDc1LCAweDJhLCAweDQxLCAweDEyLCAweDA5fX0sCisgezB4MDA5NiwgMTYsIHsgMHgxMCwgMHhjMiwgMHgwZCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHg3NSwgMHgyNiwgMHhmZiwgMHg4MCwgMHgzYywgMHg5MCwgMHg3ZiwgMHhjOH19LAorIHsweDAwYTYsIDE2LCB7IDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MzUsIDB4MTIsIDB4MGUsIDB4MGYsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4MmMsIDB4OTAsIDB4N2QsIDB4YzB9fSwKKyB7MHgwMGI2LCAxNiwgeyAweGUwLCAweDEzLCAweDkyLCAweDEwLCAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweDE0LCAweGY1LCAweDM2LCAweDIwLCAweDBiLCAweDExLCAweDYwLCAweDBmfX0sCisgezB4MDBjNiwgMTYsIHsgMHhmNSwgMHgyNCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHhjMSwgMHg3NSwgMHgyOSwgMHg3ZCwgMHg3NSwgMHgyYSwgMHhjMSwgMHgxMiwgMHgwOSwgMHgxMCwgMHhkMn19LAorIHsweDAwZDYsIDE2LCB7IDB4MGQsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZjAsIDB4NzUsIDB4MjYsIDB4ZmYsIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDN9fSwKKyB7MHgwMGU2LCAxNiwgeyAweDAyLCAweDAxLCAweDY4LCAweDEyLCAweDBjLCAweGZmLCAweDhmLCAweDM2LCAweDEyLCAweDBlLCAweDFiLCAweDhmLCAweDExLCAweGU1LCAweDM2LCAweGMzfX0sCisgezB4MDBmNiwgMTYsIHsgMHg5NSwgMHgxMywgMHg1MCwgMHgwZiwgMHgxMiwgMHgwZCwgMHhkZSwgMHhlZiwgMHgzMCwgMHhlMCwgMHgwOCwgMHhlNSwgMHgxMSwgMHgyMCwgMHhlNywgMHgwM319LAorIHsweDAwMzYsIDEyLCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjJ9fSwKKyB7MHgwMDQzLCAgMywgeyAweDAyLCAweDBlLCAweDAwfX0sCisgezB4MDAwMywgMTYsIHsgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg5MH19LAorIHsweDAwMTMsIDE2LCB7IDB4N2YsIDB4YzQsIDB4ZTQsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDB9fSwKKyB7MHgwMDIzLCAxMCwgeyAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfX0sCisgezB4MDAwMCwgIDMsIHsgMHgwMiwgMHgwOSwgMHhjNX19LAorIHsweDAxMDYsIDY0LCB7IDB4MzAsIDB4MTMsIDB4NWYsIDB4YzIsIDB4MTMsIDB4ZTUsIDB4MzYsIDB4NjAsIDB4NTksIDB4YjQsIDB4ODAsIDB4MDMsIDB4NDMsIDB4MTEsIDB4MDIsIDB4ZTUsIDB4MTEsCisgIDB4MzAsIDB4ZTcsIDB4MjQsIDB4ZTUsIDB4MzYsIDB4ZDMsIDB4OTQsIDB4MjAsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MzYsIDB4MjAsIDB4ODUsIDB4MzYsIDB4MjQsCisgIDB4N2UsIDB4N2UsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MjksIDB4N2UsIDB4NzUsIDB4MmEsIDB4ODAsIDB4MTIsIDB4MGIsIDB4OWEsIDB4ZTUsIDB4MzYsIDB4MjUsCisgIDB4ZTAsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZjAsIDB4ODAsIDB4MmEsIDB4ZTUsIDB4MzYsIDB4ZDMsIDB4OTQsIDB4M2YsIDB4NDAsIDB4MDMsIDB4NzV9fSwKKyB7MHgwMTQ2LCA2NCwgeyAweDM2LCAweDNmLCAweDg1LCAweDM2LCAweDI0LCAweDkwLCAweDdlLCAweDgwLCAweGU1LCAweDExLCAweGYwLCAweDdlLCAweDdlLCAweDdmLCAweDgxLCAweDc1LCAweDI5LAorICAweDdlLCAweDc1LCAweDJhLCAweDgxLCAweDEyLCAweDA5LCAweDM1LCAweGU1LCAweDM2LCAweDA0LCAweDkwLCAweDdmLCAweGI3LCAweGYwLCAweDc1LCAweDI2LAorICAweGZmLCAweDkwLCAweDdmLCAweGNlLCAweGUwLCAweDMwLCAweGUxLCAweDA2LCAweDIwLCAweDBlLCAweDAzLCAweDAyLCAweDAzLCAweGM0LCAweGU0LCAweGY1LAorICAweDM1LCAweDc0LCAweDQwLCAweDI1LCAweDM1LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdjLCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1fX0sCisgezB4MDE4NiwgNjQsIHsgMHgzNSwgMHg3YywgMHgwMCwgMHg3YiwgMHgwMSwgMHg3YSwgMHg3ZSwgMHg3OSwgMHgwMCwgMHgyNCwgMHgwMCwgMHhmOSwgMHhlYywgMHgzNCwgMHg3ZSwgMHhmYSwgMHhlZiwKKyAgMHgxMiwgMHgwYSwgMHg5NywgMHgwNSwgMHgzNSwgMHhlNSwgMHgzNSwgMHhiNCwgMHgyMCwgMHhkNywgMHg5MCwgMHg3ZSwgMHgwMCwgMHhlMCwgMHg2MCwgMHg2ZSwKKyAgMHg3ZiwgMHgwMSwgMHg5MCwgMHg3ZSwgMHgxMSwgMHhlMCwgMHhmZCwgMHgxMiwgMHgwYywgMHhkYSwgMHg5MCwgMHg3ZSwgMHgwMSwgMHhlMCwgMHhmZiwgMHgxMiwKKyAgMHgwYywgMHgxYywgMHg5MCwgMHg3ZSwgMHgwMiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwYywgMHg0MiwgMHhkMiwgMHgxMSwgMHhkMiwgMHgxMiwgMHg3NX19LAorIHsweDAxYzYsIDY0LCB7IDB4MzYsIDB4MDQsIDB4OTAsIDB4N2UsIDB4MDMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4YzIsIDB4MTIsIDB4NDMsIDB4MzYsIDB4YzAsIDB4OTAsIDB4N2UsIDB4MDQsIDB4ZTAsCisgIDB4YjQsIDB4MDEsIDB4MDcsIDB4YzIsIDB4MTIsIDB4NDMsIDB4MzYsIDB4MGIsIDB4ODAsIDB4MTAsIDB4OTAsIDB4N2UsIDB4MDQsIDB4ZTAsIDB4NjAsIDB4MDcsCisgIDB4YzIsIDB4MTEsIDB4NDMsIDB4MzYsIDB4MDksIDB4ODAsIDB4MDMsIDB4NDMsIDB4MzYsIDB4MDIsIDB4N2YsIDB4MDMsIDB4YWQsIDB4MzYsIDB4MTIsIDB4MGMsCisgIDB4ZGEsIDB4NDMsIDB4MWEsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4MWF9fSwKKyB7MHgwMjA2LCA2NCwgeyAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweGU1LCAweDE3LCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLAorICAweDA1LCAweGUwLCAweDYwLCAweDEyLCAweGEzLCAweGUwLCAweDU0LCAweDNmLCAweGY1LCAweDE5LCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLAorICAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDE5LCAweGYwLCAweDkwLCAweDdlLCAweDA3LCAweGUwLCAweDYwLCAweDQyLCAweDkwLCAweDdlLCAweDEzLCAweGUwLAorICAweDYwLCAweDA1LCAweDQzLCAweDE2LCAweDA0LCAweDgwLCAweDAzLCAweDUzLCAweDE2LCAweGZiLCAweGU0LCAweGZmLCAweGFkLCAweDE2LCAweDEyfX0sCisgezB4MDI0NiwgNjQsIHsgMHgwYywgMHhkYSwgMHg5MCwgMHg3ZSwgMHgwOCwgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHgxOCwgMHg4MCwgMHg4MCwgMHgwMywgMHg1MywgMHgxOCwgMHg3ZiwgMHg1MywKKyAgMHgxOCwgMHhmYywgMHg5MCwgMHg3ZSwgMHgwOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywgMHgxOCwgMHgwMiwgMHhhMywgMHhlMCwgMHhmZiwgMHgxMiwgMHgwYywKKyAgMHg4ZSwgMHg5MCwgMHg3ZSwgMHgwYiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwYywgMHhiNCwgMHhhZiwgMHgxOCwgMHgxMiwgMHgwYywgMHg2OCwgMHg5MCwgMHg3ZSwKKyAgMHgwZSwgMHhlMCwgMHg2MCwgMHgxOCwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHgxYSwgMHgwMSwgMHg4MCwgMHgwMywgMHg1MywgMHgxYX19LAorIHsweDAyODYsIDY0LCB7IDB4ZmUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4MWEsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MGMsIDB4ZTAsCisgIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4MWEsIDB4MDIsIDB4ODAsIDB4MDMsIDB4NTMsIDB4MWEsIDB4ZmQsIDB4OTAsIDB4N2YsCisgIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4MWEsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MTIsIDB4ZTAsIDB4ZjUsIDB4MTMsCisgIDB4YTMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTQsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4MTQsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4MWF9fSwKKyB7MHgwMmM2LCA2NCwgeyAweDEwLCAweDgwLCAweDAzLCAweDUzLCAweDFhLCAweGVmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDFhLAorICAweGYwLCAweDkwLCAweDdlLCAweDE2LCAweGUwLCAweDYwLCAweDMyLCAweDUzLCAweDE5LCAweGJmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLAorICAweGU1LCAweDE5LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDEyLCAweDBkLAorICAweGQyLCAweGVmLCAweDU0LCAweGZlLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDUzLCAweDE2LCAweGZkLCAweGU0LCAweGZmLCAweGFkLCAweDE2fX0sCisgezB4MDMwNiwgNjQsIHsgMHgxMiwgMHgwYywgMHhkYSwgMHhlNCwgMHhmNSwgMHgwZSwgMHhmNSwgMHgwZCwgMHhkMiwgMHgwZiwgMHg5MCwgMHg3ZSwgMHgxNywgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywKKyAgMHgxNiwgMHgwMiwgMHhlNCwgMHhmZiwgMHhhZCwgMHgxNiwgMHgxMiwgMHgwYywgMHhkYSwgMHg3NSwgMHgwZCwgMHgwMSwgMHhkMiwgMHgwZiwgMHg5MCwgMHg3ZSwKKyAgMHgxOCwgMHhlMCwgMHg2MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHhlNSwgMHgxNywgMHg0NCwgMHgwNCwgMHg5MCwgMHhjMCwKKyAgMHgwMCwgMHhmMCwgMHhkMiwgMHgwYiwgMHg5MCwgMHg3ZSwgMHgxOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywgMHgxOSwgMHg0MCwgMHg5MCwgMHg3Zn19LAorIHsweDAzNDYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4MTksIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MWEsIDB4ZTAsIDB4NjAsCisgIDB4MGYsIDB4NTMsIDB4MTYsIDB4ZmUsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4MTYsIDB4MTIsIDB4MGMsIDB4ZGEsIDB4NzUsIDB4MGYsIDB4MDEsIDB4ZDIsIDB4MGYsCisgIDB4OTAsIDB4N2UsIDB4MWIsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4MTYsIDB4MDEsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4MTYsIDB4MTIsIDB4MGMsIDB4ZGEsCisgIDB4ZTQsIDB4ZjUsIDB4MGYsIDB4ZDIsIDB4MGYsIDB4OTAsIDB4N2UsIDB4MWMsIDB4ZTAsIDB4NjAsIDB4MGUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzR9fSwKKyB7MHgwMzg2LCA2NCwgeyAweDEyLCAweGYwLCAweGU1LCAweDE3LCAweDQ0LCAweDAyLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDFkLCAweGUwLCAweDYwLCAweDAyLCAweGQyLAorICAweDEzLCAweDkwLCAweDdlLCAweDFlLCAweGUwLCAweDYwLCAweDA4LCAweDc1LCAweDEwLCAweDAxLCAweGU0LCAweGY1LCAweDEyLCAweGQyLCAweDBmLCAweDkwLAorICAweDdlLCAweDFmLCAweGUwLCAweDYwLCAweDExLCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDExLCAweGYwLCAweDc0LCAweDMxLCAweGYwLCAweDc0LCAweDE1LAorICAweGYwLCAweDc0LCAweDM1LCAweGYwLCAweGQyLCAweDBkLCAweGMyLCAweDBlLCAweGU0LCAweDkwLCAweDdmLCAweGNmLCAweGYwLCAweDMwLCAweDE2fX0sCisgezB4MDNjNiwgNjQsIHsgMHg3MSwgMHhlNSwgMHgxMiwgMHg2MCwgMHgwMiwgMHgxNSwgMHgxMiwgMHhlNSwgMHgzMCwgMHhkMywgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNCwgMHgxNSwgMHgzMCwgMHg4MCwKKyAgMHg2MCwgMHg3NSwgMHgzMCwgMHgwYSwgMHgxMiwgMHgwZCwgMHhkMiwgMHhlZiwgMHg1NCwgMHgwMSwgMHhmNSwgMHgzNiwgMHg2NSwgMHgwZSwgMHg2MCwgMHgwNywKKyAgMHg4NSwgMHgzNiwgMHgwZSwgMHhkMiwgMHgwZiwgMHg4MCwgMHgxMSwgMHgxMiwgMHgwZSwgMHgyNywgMHhlZiwgMHg1NCwgMHgxMCwgMHhmNSwgMHgzNiwgMHg2NSwKKyAgMHgwOSwgMHg2MCwgMHgwNSwgMHg4NSwgMHgzNiwgMHgwOSwgMHhkMiwgMHgwZiwgMHgxMiwgMHgwZSwgMHgyNywgMHhlZiwgMHg1NCwgMHg4MCwgMHhmNX19LAorIHsweDA0MDYsIDY0LCB7IDB4MzYsIDB4NjUsIDB4MGEsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MzYsIDB4MGEsIDB4ZDIsIDB4MGYsIDB4MTIsIDB4MGUsIDB4MjcsIDB4ZWYsIDB4NTQsIDB4MjAsIDB4ZjUsCisgIDB4MzYsIDB4NjUsIDB4MGIsIDB4NjAsIDB4MDgsIDB4ODUsIDB4MzYsIDB4MGIsIDB4MzAsIDB4MTEsIDB4MDIsIDB4ZDIsIDB4MGYsIDB4MTIsIDB4MGUsIDB4MjcsCisgIDB4ZWYsIDB4NTQsIDB4NDAsIDB4ZjUsIDB4MzYsIDB4NjUsIDB4MGMsIDB4NjAsIDB4MDgsIDB4ODUsIDB4MzYsIDB4MGMsIDB4MzAsIDB4MTIsIDB4MDIsIDB4ZDIsCisgIDB4MGYsIDB4MzAsIDB4MTYsIDB4MmEsIDB4OTAsIDB4N2YsIDB4ZDIsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MjMsIDB4OTAsIDB4N2IsIDB4NDAsIDB4ZTB9fSwKKyB7MHgwNDQ2LCA2NCwgeyAweDYwLCAweDA5LCAweGUwLCAweGY1LCAweDMyLCAweDkwLCAweDdiLCAweDQyLCAweGUwLCAweGY1LCAweDMzLCAweDkwLCAweDdiLCAweDQxLCAweGUwLCAweDYwLCAweDA5LAorICAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDE3LCAweGYwLCAweDc0LCAweDM3LCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweGQzLCAweGYwLCAweDkwLCAweDdmLAorICAweGMyLCAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDA1LCAweDI5LCAweGU1LCAweDI3LCAweDcwLCAweDQwLCAweDMwLCAweDBmLCAweDM5LCAweGU1LAorICAweDEyLCAweDcwLCAweDM1LCAweGMyLCAweDBmLCAweGY1LCAweDM1LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDA4LCAweDI1LCAweDM1fX0sCisgezB4MDQ4NiwgNjQsIHsgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwYSwgMHg1MSwgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgzNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwKKyAgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgzNSwgMHhlNSwgMHgzNSwgMHhiNCwgMHgwOSwgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwKKyAgMHgwOSwgMHhmMCwgMHg3NSwgMHgxMiwgMHgxMCwgMHhlNCwgMHhmNSwgMHgxMCwgMHg3NSwgMHgyNywgMHgwMiwgMHgyMiwgMHhlNSwgMHgyNywgMHg2NCwgMHgwMiwKKyAgMHg3MCwgMHgzNiwgMHgzMCwgMHgwNSwgMHgyZiwgMHhjMiwgMHgwNSwgMHhmNSwgMHgzNSwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyYn19LAorIHsweDA0YzYsIDY0LCB7IDB4MjUsIDB4MzUsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MGEsIDB4NTEsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MzUsIDB4ZjUsIDB4ODIsCisgIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MzUsIDB4ZTUsIDB4MzUsIDB4YjQsIDB4MDUsIDB4ZGIsIDB4OTAsIDB4N2YsCisgIDB4YzMsIDB4NzQsIDB4MDUsIDB4ZjAsIDB4NzUsIDB4MjcsIDB4MDMsIDB4MjIsIDB4ZTUsIDB4MzIsIDB4NjAsIDB4MzMsIDB4NzUsIDB4MzEsIDB4MDMsIDB4MTUsCisgIDB4MzIsIDB4ZTQsIDB4ZjUsIDB4MzUsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MzEsIDB4MjUsIDB4MzUsIDB4ZjksIDB4ZWUsIDB4MzR9fSwKKyB7MHgwNTA2LCA2NCwgeyAweDAwLCAweGZhLCAweDEyLCAweDBhLCAweDUxLCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDM1LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLAorICAweGVmLCAweGYwLCAweDA1LCAweDM1LCAweGU1LCAweDM1LCAweGI0LCAweDAzLCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDAzLCAweGYwLCAweGU0LAorICAweGY1LCAweDI3LCAweDIyLCAweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDEyLCAweDBhLCAweGE5LCAweDA2LCAweDA4LCAweDAwLCAweDA2LCAweDdjLCAweDAxLAorICAweDA2LCAweGU5LCAweDAzLCAweDA1LCAweDRkLCAweDA2LCAweDA1LCAweGY5LCAweDA4LCAweDA1LCAweGVkLCAweDA5LCAweDA1LCAweGQ1LCAweDBhfX0sCisgezB4MDU0NiwgNjQsIHsgMHgwNSwgMHhlNCwgMHgwYiwgMHgwMCwgMHgwMCwgMHgwNywgMHgzOSwgMHg5MCwgMHg3ZiwgMHhlYiwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxNiwgMHgxNCwgMHg2MCwKKyAgMHg1MCwgMHgyNCwgMHgwMiwgMHg3MCwgMHg2ZiwgMHg3NCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHg3NCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhkNSwKKyAgMHhmMCwgMHgwMiwgMHgwNywgMHg0MCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgwNCwgMHg3ZiwgMHgwMiwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgwMywKKyAgMHg3NSwgMHg4MiwgMHg4MiwgMHg3NSwgMHg4MywgMHgxOSwgMHhlZiwgMHhmMCwgMHg3NSwgMHg4MiwgMHg3NCwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMH19LAorIHsweDA1ODYsIDY0LCB7IDB4NzUsIDB4ODIsIDB4NTgsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4MDQsIDB4NzUsIDB4ODIsIDB4MTcsIDB4NzUsIDB4ODMsCisgIDB4MTksIDB4ZjAsIDB4NzQsIDB4MTksIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4MTIsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MDcsCisgIDB4NDAsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MGIsIDB4MWMsIDB4ZWEsIDB4NDksIDB4NjAsIDB4MGQsIDB4ZWEsIDB4OTAsIDB4N2YsCisgIDB4ZDQsIDB4ZjAsIDB4ZTksIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4NDAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDR9fSwKKyB7MHgwNWM2LCA2NCwgeyAweDAxLCAweGYwLCAweDAyLCAweDA3LCAweDQwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA3LCAweDQwLCAweDkwLCAweDdmLAorICAweDAwLCAweGU1LCAweDI1LCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDAyLCAweDA3LCAweDQwLCAweDkwLCAweDdmLCAweGVhLAorICAweGUwLCAweGY1LCAweDI1LCAweDAyLCAweDA3LCAweDQwLCAweDEyLCAweDA3LCAweDQ4LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDIzLCAweDAyLAorICAweDA3LCAweDQwLCAweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDIzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDAyfX0sCisgezB4MDYwNiwgNjQsIHsgMHgwNywgMHg0MCwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHg3ZiwgMHg2MCwgMHgyNCwgMHgxNCwgMHg2MCwgMHgzMSwgMHgyNCwgMHgwMiwgMHg3MCwgMHg1YiwKKyAgMHhhMiwgMHgwMSwgMHhlNCwgMHgzMywgMHhmZiwgMHgyNSwgMHhlMCwgMHhmZiwgMHhhMiwgMHgwNywgMHhlNCwgMHgzMywgMHg0ZiwgMHg5MCwgMHg3ZiwgMHgwMCwKKyAgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNywgMHg0MCwgMHhlNCwgMHg5MCwgMHg3ZiwKKyAgMHgwMCwgMHhmMCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNywgMHg0MCwgMHg5MCwgMHg3Zn19LAorIHsweDA2NDYsIDY0LCB7IDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsCisgIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsCisgIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4NDAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsCisgIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4NDAsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MWUsIDB4MjQsIDB4MDJ9fSwKKyB7MHgwNjg2LCA2NCwgeyAweDYwLCAweDAzLCAweDAyLCAweDA3LCAweDQwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDA2LCAweDEyLCAweDBkLCAweGY5LCAweDAyLCAweDA3LAorICAweDQwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA3LCAweDQwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLAorICAweDM4LCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LAorICAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDkwfX0sCisgezB4MDZjNiwgNjQsIHsgMHg3ZiwgMHhlYywgMHhlMCwgMHg1NCwgMHg4MCwgMHhmZiwgMHgxMywgMHgxMywgMHgxMywgMHg1NCwgMHgxZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHg5MCwKKyAgMHg3ZiwgMHhkNywgMHhmMCwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg4MCwgMHg2MCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwKKyAgMHg4MCwgMHg1NywgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxOSwgMHgyNCwgMHgwMiwgMHg3MCwgMHg0YiwgMHg5MCwgMHg3ZiwKKyAgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNSwgMHgxMiwgMHgwZCwgMHhmNiwgMHg4MCwgMHgzZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NH19LAorIHsweDA3MDYsIDY0LCB7IDB4MDEsIDB4ZjAsIDB4ODAsIDB4MzYsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsCisgIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsCisgIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsCisgIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDJ9fSwKKyB7MHgwNzQ2LCA2NCwgeyAweGYwLCAweDIyLCAweGU0LCAweDkwLCAweDdmLCAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweDMwLCAweGYwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LAorICAweDIwLCAweGYwLCAweDkwLCAweDdmLCAweDk1LCAweDc0LCAweGMwLCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweDNmLCAweGYwLCAweDkwLCAweDdmLAorICAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweGU0LCAweGY1LCAweDhlLCAweDkwLCAweDdmLCAweGRmLCAweDc0LCAweGZmLCAweGYwLCAweDkwLCAweDdmLCAweGRlLAorICAweGYwLCAweGU0LCAweGY1LCAweDA4LCAweDdmLCAweDAxLCAweDdiLCAweDAwLCAweDc0LCAweDA4LCAweDJmLCAweGY5LCAweGU0LCAweDM0LCAweDAwfX0sCisgezB4MDc4NiwgNjQsIHsgMHhmYSwgMHhlNCwgMHgxMiwgMHgwYSwgMHg5NywgMHgwZiwgMHhiZiwgMHgwOSwgMHhlZSwgMHg3NSwgMHgxMywgMHgwMSwgMHhlNCwgMHhmNSwgMHgxMiwgMHhmNSwgMHgzMCwKKyAgMHhmNSwgMHgxMSwgMHhjMiwgMHgwZiwgMHhjMiwgMHgxMywgMHhjMiwgMHgwZSwgMHhjMiwgMHgwYiwgMHhjMiwgMHgxMCwgMHhjMiwgMHgwNCwgMHg5MCwgMHg3ZiwKKyAgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg3NSwgMHgxOSwgMHgwMywgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHgwMywgMHhmMCwgMHg3ZiwgMHgwYywgMHhlNCwKKyAgMHhmZCwgMHgxMiwgMHgwYywgMHhkYSwgMHg3ZiwgMHgxMCwgMHg4ZiwgMHgxOCwgMHgxMiwgMHgwYywgMHg2OCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NH19LAorIHsweDA3YzYsIDY0LCB7IDB4MTIsIDB4ZjAsIDB4N2YsIDB4MDEsIDB4OGYsIDB4MTcsIDB4ZWYsIDB4NDQsIDB4MDYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MGYsIDB4ZTQsIDB4ZmQsIDB4MTIsCisgIDB4MGMsIDB4ZGEsIDB4ZTQsIDB4ZmYsIDB4N2UsIDB4YTMsIDB4YWQsIDB4MDYsIDB4OGQsIDB4MTYsIDB4MTIsIDB4MGMsIDB4ZGEsIDB4OTAsIDB4N2YsIDB4OTgsCisgIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTQsIDB4ZjAsIDB4N2YsIDB4MDUsIDB4N2QsIDB4N2YsIDB4MTIsIDB4MGMsIDB4ZGEsIDB4N2YsCisgIDB4MDEsIDB4MTIsIDB4MGQsIDB4NmEsIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MGMsIDB4ZGEsIDB4ZTQsIDB4ZmYsIDB4ZTUsIDB4MTZ9fSwKKyB7MHgwODA2LCA2NCwgeyAweDU0LCAweDdmLCAweGZkLCAweDEyLCAweDBjLCAweGRhLCAweDEyLCAweDBlLCAweDBmLCAweDhmLCAweDE1LCAweGU0LCAweGZmLCAweGU1LCAweDE2LCAweDQ0LCAweDgwLAorICAweGZkLCAweDEyLCAweDBjLCAweGRhLCAweGU1LCAweDE1LCAweDMwLCAweGU3LCAweDA0LCAweGMyLCAweDA4LCAweDgwLCAweDAyLCAweGQyLCAweDA4LCAweDkwLAorICAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDc1LCAweDFhLCAweDgwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDgwLCAweGYwLCAweGQyLCAweDAzLAorICAweDIyLCAweGQyLCAweDE1LCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDEyLCAweDBkLCAweGY5LCAweGQyLCAweGU4fX0sCisgezB4MDg0NiwgNjQsIHsgMHg0MywgMHhkOCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwKKyAgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYSwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhZiwKKyAgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHg3NCwgMHgwZCwgMHhmMCwgMHhkMiwgMHhhZiwgMHhkMiwgMHgxNiwgMHgxMiwgMHgwZCwKKyAgMHgyNCwgMHhjMiwgMHgwMiwgMHhlNCwgMHhmNSwgMHgyOCwgMHhmNSwgMHgzMCwgMHhjMiwgMHgwOSwgMHhmNSwgMHgyMywgMHhjMiwgMHgwMywgMHg5MH19LAorIHsweDA4ODYsIDY0LCB7IDB4N2YsIDB4YTEsIDB4MDQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4NjUsIDB4MzQsIDB4NjAsIDB4NDgsIDB4MzAsIDB4MDMsIDB4MDUsIDB4ZDIsIDB4MTYsCisgIDB4MTIsIDB4MDAsIDB4NDYsIDB4ZTUsIDB4MGYsIDB4NjAsIDB4MjIsIDB4ZTUsIDB4MjYsIDB4NjAsIDB4MTYsIDB4MTUsIDB4MjYsIDB4OTAsIDB4N2YsIDB4ZDgsCisgIDB4ZTAsIDB4MzAsIDB4ZTYsIDB4MDQsIDB4N2YsIDB4MjAsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MzAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZWYsIDB4ZjAsIDB4ODAsCisgIDB4MWEsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4ODAsIDB4MTIsIDB4OTAsIDB4N2YsIDB4ZDksIDB4ZTAsIDB4MzAsIDB4ZTJ9fSwKKyB7MHgwOGM2LCA2NCwgeyAweDA0LCAweDdmLCAweDMwLCAweDgwLCAweDAyLCAweDdmLCAweDIwLCAweDkwLCAweDdmLCAweDk2LCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweGY1LAorICAweDM0LCAweDgwLCAweDIwLCAweDMwLCAweDAzLCAweDA3LCAweGMyLCAweDE2LCAweDEyLCAweDAwLCAweDQ2LCAweDgwLCAweDE2LCAweGU1LCAweDBmLCAweDcwLAorICAweDEyLCAweDkwLCAweDdmLCAweGQ5LCAweGUwLCAweDMwLCAweGUyLCAweDA0LCAweDdmLCAweDMwLCAweDgwLCAweDAyLCAweDdmLCAweDIwLCAweDkwLCAweDdmLAorICAweDk2LCAweGVmLCAweGYwLCAweDMwLCAweDAyLCAweDA3LCAweGMyLCAweDAyLCAweDEyLCAweDA1LCAweDJhLCAweDgwLCAweDg2LCAweDMwLCAweDBhfX0sCisgezB4MDkwNiwgNjQsIHsgMHg4MywgMHhjMiwgMHgwYSwgMHgxMiwgMHgwYiwgMHg1ZCwgMHgwMiwgMHgwOCwgMHg4YSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHhhZiwKKyAgMHgyNCwgMHhlNSwgMHgyYSwgMHhmNSwgMHg4MiwgMHhlNSwgMHgyOSwgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMCwgMHgwMCwKKyAgMHgwNSwgMHg4NiwgMHhlMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhmMCwgMHgwNSwgMHg4NiwgMHhkZiwgMHhmNywgMHhkMiwgMHhhZiwgMHgyMiwgMHg5MCwgMHg3ZiwKKyAgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHhhZiwgMHgyNCwgMHhlNSwgMHgyYSwgMHhmNSwgMHg4MiwgMHhlNSwgMHgyOSwgMHhmNSwgMHg4MywgMHhjMn19LAorIHsweDA5NDYsIDY0LCB7IDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4MDUsIDB4ODYsCisgIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4YWYsIDB4MjQsIDB4ZTUsIDB4MmEsIDB4ZjUsIDB4ODIsIDB4ZTUsCisgIDB4MjksIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4MDUsIDB4ODYsIDB4ZTAsIDB4YTMsIDB4MDUsIDB4ODYsCisgIDB4ZjAsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4YWZ9fSwKKyB7MHgwOTg2LCA2NCwgeyAweDI0LCAweGU1LCAweDJhLCAweGY1LCAweDgyLCAweGU1LCAweDI5LCAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweGUwLAorICAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweGRmLCAweGY3LCAweDA1LCAweDg2LCAweGQyLCAweGFmLCAweDIyLCAweDc0LCAweDAwLCAweGY1LAorICAweDg2LCAweDkwLCAweGZkLCAweGE1LCAweDdjLCAweDA1LCAweGEzLCAweGU1LCAweDgyLCAweDQ1LCAweDgzLCAweDcwLCAweGY5LCAweDIyLCAweDkwLCAweDdmLAorICAweGQ2LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDQzLCAweDg3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDIyLCAweDc4fX0sCisgezB4MDljNiwgNjQsIHsgMHg3ZiwgMHhlNCwgMHhmNiwgMHhkOCwgMHhmZCwgMHg3NSwgMHg4MSwgMHgzOSwgMHgwMiwgMHgwYSwgMHgwYywgMHgwMiwgMHgwOCwgMHgzOCwgMHhlNCwgMHg5MywgMHhhMywKKyAgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHg0MCwgMHgwMywgMHhmNiwgMHg4MCwgMHgwMSwgMHhmMiwgMHgwOCwgMHhkZiwgMHhmNCwgMHg4MCwgMHgyOSwgMHhlNCwKKyAgMHg5MywgMHhhMywgMHhmOCwgMHg1NCwgMHgwNywgMHgyNCwgMHgwYywgMHhjOCwgMHhjMywgMHgzMywgMHhjNCwgMHg1NCwgMHgwZiwgMHg0NCwgMHgyMCwgMHhjOCwKKyAgMHg4MywgMHg0MCwgMHgwNCwgMHhmNCwgMHg1NiwgMHg4MCwgMHgwMSwgMHg0NiwgMHhmNiwgMHhkZiwgMHhlNCwgMHg4MCwgMHgwYiwgMHgwMSwgMHgwMn19LAorIHsweDBhMDYsIDY0LCB7IDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4OTAsIDB4MGQsIDB4OGIsIDB4ZTQsIDB4N2UsIDB4MDEsIDB4OTMsIDB4NjAsIDB4YmMsIDB4YTMsIDB4ZmYsCisgIDB4NTQsIDB4M2YsIDB4MzAsIDB4ZTUsIDB4MDksIDB4NTQsIDB4MWYsIDB4ZmUsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NjAsIDB4MDEsIDB4MGUsIDB4Y2YsIDB4NTQsCisgIDB4YzAsIDB4MjUsIDB4ZTAsIDB4NjAsIDB4YTgsIDB4NDAsIDB4YjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZmEsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsCisgIDB4OTMsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZjAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODJ9fSwKKyB7MHgwYTQ2LCA2NCwgeyAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweGJlLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLAorICAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDAyLCAweGU3LCAweDIyLCAweGJiLCAweGZlLCAweDAyLCAweGUzLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLAorICAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLCAweDBjLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLAorICAweGUwLCAweDIyLCAweDUwLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGU2LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1fX0sCisgezB4MGE4NiwgNjQsIHsgMHg4MiwgMHhmOCwgMHhlMiwgMHgyMiwgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwKKyAgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhmMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwKKyAgMHhmMywgMHgyMiwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhmOCwgMHhlNCwgMHg5MywgMHg3MCwgMHgxMiwgMHg3NCwgMHgwMSwgMHg5MywgMHg3MCwgMHgwZCwKKyAgMHhhMywgMHhhMywgMHg5MywgMHhmOCwgMHg3NCwgMHgwMSwgMHg5MywgMHhmNSwgMHg4MiwgMHg4OCwgMHg4MywgMHhlNCwgMHg3MywgMHg3NCwgMHgwMn19LAorIHsweDBhYzYsIDY0LCB7IDB4OTMsIDB4NjgsIDB4NjAsIDB4ZWYsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGYsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsCisgIDB4NzQsIDB4MjAsIDB4ZjAsIDB4MzAsIDB4MDEsIDB4MDMsIDB4ZmYsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MDAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZWYsIDB4ZjAsCisgIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZjAsCisgIDB4MzAsIDB4MDgsIDB4MTEsIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2Z9fSwKKyB7MHgwYjA2LCA2NCwgeyAweDk4LCAweDc0LCAweDIwLCAweGYwLCAweDIyLCAweGU0LCAweDkwLCAweDdmLCAweDk1LCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweGRmLCAweGYwLCAweGU0LAorICAweDkwLCAweDdmLCAweDk4LCAweGYwLCAweDIyLCAweDhmLCAweDM1LCAweGU0LCAweGY1LCAweDM2LCAweDc1LCAweDM3LCAweGZmLCAweDc1LCAweDM4LCAweDE5LAorICAweDc1LCAweDM5LCAweDg2LCAweGFiLCAweDM3LCAweGFhLCAweDM4LCAweGE5LCAweDM5LCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweDBhLCAweDZhLCAweGI0LAorICAweDAzLCAweDFkLCAweGFmLCAweDM2LCAweDA1LCAweDM2LCAweGVmLCAweGI1LCAweDM1LCAweDAxLCAweDIyLCAweDEyLCAweDBhLCAweDUxLCAweDdlfX0sCisgezB4MGI0NiwgNjQsIHsgMHgwMCwgMHgyOSwgMHhmZiwgMHhlZSwgMHgzYSwgMHhhOSwgMHgwNywgMHg3NSwgMHgzNywgMHhmZiwgMHhmNSwgMHgzOCwgMHg4OSwgMHgzOSwgMHg4MCwgMHhkNCwgMHg3YiwKKyAgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgwMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkOCwgMHhlMCwgMHhmNSwgMHgzNSwgMHgxMiwgMHgwYSwgMHhjZiwgMHgyMCwKKyAgMHgwOCwgMHgwNywgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwKKyAgMHgxMiwgMHgwOSwgMHhiNSwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHgzMCwgMHhlNywgMHgwZSwgMHgzMCwgMHgwMSwgMHgwNSwgMHgxMiwgMHgwZH19LAorIHsweDBiODYsIDY0LCB7IDB4YmMsIDB4ODAsIDB4MDYsIDB4MTIsIDB4MGQsIDB4NDksIDB4ZWYsIDB4NjAsIDB4ZTEsIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MTIsCisgIDB4MDcsIDB4NDgsIDB4MjIsIDB4MDUsIDB4MmEsIDB4ZTUsIDB4MmEsIDB4YWUsIDB4MjksIDB4NzAsIDB4MDIsIDB4MDUsIDB4MjksIDB4MTQsIDB4ZjUsIDB4ODIsCisgIDB4OGUsIDB4ODMsIDB4ZTUsIDB4MTEsIDB4ZjAsIDB4MTIsIDB4MDAsIDB4MzYsIDB4MDUsIDB4MmEsIDB4ZTUsIDB4MmEsIDB4YWMsIDB4MjksIDB4NzAsIDB4MDIsCisgIDB4MDUsIDB4MjksIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MTUsIDB4MjQsIDB4ZTUsIDB4MjQsIDB4NjAsIDB4MDd9fSwKKyB7MHgwYmM2LCA2NCwgeyAweDEyLCAweDBlLCAweDFiLCAweDhmLCAweDExLCAweDgwLCAweGNkLCAweDIyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLAorICAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDAyLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDAxLAorICAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLAorICAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDBhfX0sCisgezB4MGMwNiwgNjQsIHsgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwOCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwKKyAgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwKKyAgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKKyAgMHgxMywgMHhmMCwgMHhlNSwgMHgxOSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NH19LAorIHsweDBjNDYsIDY0LCB7IDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsCisgIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4MTksIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsCisgIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsCisgIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTV9fSwKKyB7MHgwYzg2LCA2NCwgeyAweDE5LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLAorICAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLAorICAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDE5LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LAorICAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE2LCAweGYwfX0sCisgezB4MGNjNiwgNjQsIHsgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHgxOSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwKKyAgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHgxOSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwKKyAgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKKyAgMHgxNSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZCwgMHhmMCwgMHgyMiwgMHgxMiwgMHgwZCwgMHhlYSwgMHg4ZiwgMHgzNywgMHgxMiwgMHgwZH19LAorIHsweDBkMDYsIDY0LCB7IDB4ZWEsIDB4OGYsIDB4MzgsIDB4ZTUsIDB4MzcsIDB4NjUsIDB4MzgsIDB4NjAsIDB4MTIsIDB4MTIsIDB4MGQsIDB4ZWEsIDB4OGYsIDB4MzcsIDB4ZTUsIDB4MzcsIDB4NjUsCisgIDB4MzgsIDB4NjAsIDB4MDcsIDB4MTIsIDB4MGQsIDB4ZWEsIDB4OGYsIDB4MzgsIDB4ODAsIDB4ZTgsIDB4YWYsIDB4MzcsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDYsCisgIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MTYsIDB4MDQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4N2YsCisgIDB4ZjQsIDB4N2UsIDB4MDEsIDB4MTIsIDB4MGQsIDB4YTUsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4ZTAsIDB4NDR9fSwKKyB7MHgwZDQ2LCA2NCwgeyAweDA0LCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweGY1LCAweDM2LCAweDEyLCAweDA3LCAweDQ4LCAweDEyLCAweDBlLCAweDI3LCAweGVmLCAweDMwLAorICAweGU2LCAweDBiLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweDY1LCAweDM2LCAweDYwLCAweGYxLCAweDdmLCAweDAxLCAweDIyLCAweDEyLCAweDBhLCAweGNmLAorICAweDdmLCAweDAwLCAweDIyLCAweGFlLCAweDA3LCAweGU0LCAweGZmLCAweGU1LCAweDE2LCAweDU0LCAweDdmLCAweGZkLCAweDEyLCAweDBjLCAweGRhLCAweDkwLAorICAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDE2LCAweDQ0LCAweDgwfX0sCisgezB4MGQ4NiwgNjQsIHsgMHhmZCwgMHgxMiwgMHgwYywgMHhkYSwgMHgyMiwgMHgwNSwgMHgyYiwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMywgMHgzMSwgMHgwMywgMHgwMCwgMHgwMCwKKyAgMHhjMSwgMHg4NiwgMHhjMSwgMHgwMiwgMHhjMSwgMHgwYSwgMHhjMSwgMHgwMSwgMHhjMSwgMHgwNywgMHgwMSwgMHgyNywgMHgwMCwgMHgwMCwgMHg4ZSwgMHgzNiwKKyAgMHg4ZiwgMHgzNywgMHhlNSwgMHgzNywgMHgxNSwgMHgzNywgMHhhZSwgMHgzNiwgMHg3MCwgMHgwMiwgMHgxNSwgMHgzNiwgMHg0ZSwgMHg2MCwgMHgwNSwgMHgxMiwKKyAgMHgwOSwgMHhhNCwgMHg4MCwgMHhlZSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg3ZiwgMHgwZCwgMHg3ZX19LAorIHsweDBkYzYsIDY0LCB7IDB4MDAsIDB4MTIsIDB4MGQsIDB4YTUsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsCisgIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsCisgIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4ZDIsCisgIDB4MDEsIDB4MjIsIDB4YzIsIDB4MDEsIDB4MjIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MGIsIDB4Y2UsIDB4MDAsIDB4MDIsIDB4MGV9fSwKKyB7MHgwZTA2LCA2NCwgeyAweDA0LCAweDAwLCAweDAyLCAweDAwLCAweDAzLCAweDAwLCAweDAyLCAweDBiLCAweGY1LCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLAorICAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLAorICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE2LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MGU0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDBlODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgwZWM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MGYwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDBmNDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgwZjg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MGZjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDEwMDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxMDQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTA4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDEwYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxMTA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTE0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDExODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxMWM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTIwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDEyNDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxMjg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTJjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDEzMDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxMzQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTM4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDEzYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNDA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTQ0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE0ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNGM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTUwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE1NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNTg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTVjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE2MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNjQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTY4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE2YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNzA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTc0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE3ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxN2M2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTgwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE4NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxODg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MThjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMiwgMHgwMSwgMHgxMCwgMHgwMSwgMHhmZiwgMHgwMH19LAorIHsweDE5MDYsIDY0LCB7IDB4MDAsIDB4NDAsIDB4Y2QsIDB4MDYsIDB4MTksIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4MDIsIDB4MDksIDB4MDIsIDB4NzQsIDB4MDAsIDB4MDEsCisgIDB4MDEsIDB4MDAsIDB4YTAsIDB4MzIsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MGUsIDB4ZmYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDEsCisgIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDMsIDB4MDIsIDB4NDAsCisgIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDUsIDB4MDIsIDB4NDAsIDB4MDB9fSwKKyB7MHgxOTQ2LCA2NCwgeyAweDAwLCAweDA3LCAweDA1LCAweDA2LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA3LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LAorICAweDgxLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgzLCAweDAyLAorICAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg0LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg1LCAweDAyLCAweDQwLCAweDAwLAorICAweDAxLCAweDA3LCAweDA1LCAweDg2LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg3LCAweDAyLCAweDQwLCAweDAwLCAweDAxfX0sCisgezB4MTk4NiwgNjQsIHsgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHg0OCwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwKKyAgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyYywgMHgwMCwgMHgyMCwgMHgwMCwgMHg2MSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg3NiwKKyAgMHgwMCwgMHg2OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2NiwKKyAgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg1MywgMHgwMCwgMHg3OSwgMHgwMH19LAorIHsweDE5YzYsIDY0LCB7IDB4NzMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjMsIDB4MDAsIDB4MmUsIDB4MDAsIDB4MzYsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsCisgIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTUsIDB4MDAsIDB4NTMsCisgIDB4MDAsIDB4NDIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmMsCisgIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDEsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjUsIDB4MDB9fSwKKyB7MHgxYTA2LCAgNCwgeyAweDcyLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4ZmZmZiwgMCwJezB4MDB9fQorfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTE5d19mdy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMTl3X2Z3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzVkNjE5MQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTE5d19mdy5oCkBAIC0wLDAgKzEsNDQ2IEBACisvKiBrZXlzcGFuX3VzYTE5d19mdy5oCisKKwlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBhcyBrZXlzcGFuX3VzYTE5d19mdy5oIGlzCisKKwkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKKwkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQorCQkKKwlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKKwlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKKwlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZSAKKwlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlIAorCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbCAKKwlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLiAKKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoICAKKwlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlIAorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gCisJcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCisqLworCitzdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQga2V5c3Bhbl91c2ExOXdfZmlybXdhcmVbXSA9IHsKKyB7MHgwMDMzLCAgMywgeyAweDAyLCAweDBkLCAweDVjfX0sCisgezB4MDAwMywgMTYsIHsgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHgzMCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhmMH19LAorIHsweDAwMTMsIDE2LCB7IDB4OTAsIDB4N2YsIDB4OTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZjAsIDB4OTB9fSwKKyB7MHgwMDIzLCAxNSwgeyAweDdmLCAweDk1LCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweDE3LCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk4LCAweGYwLCAweDIyfX0sCisgezB4MDA0NiwgMTYsIHsgMHgzMCwgMHgwZiwgMHgxOCwgMHgxMiwgMHgwZCwgMHgzOCwgMHhlZiwgMHhjMywgMHg5NSwgMHgxNCwgMHg0MCwgMHgwMywgMHgwMiwgMHgwMCwgMHhkOCwgMHg5MH19LAorIHsweDAwNTYsIDE2LCB7IDB4N2YsIDB4YmYsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4YzIsIDB4MGYsIDB4YzIsIDB4MGEsIDB4ODAsIDB4NzcsIDB4MzAsIDB4MGMsIDB4M2IsIDB4OTAsIDB4N2Z9fSwKKyB7MHgwMDY2LCAxNiwgeyAweGM2LCAweGUwLCAweDIwLCAweGUxLCAweDZkLCAweDEyLCAweDBkLCAweDM4LCAweGVmLCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDY0LCAweDkwLCAweDdlfX0sCisgezB4MDA3NiwgMTYsIHsgMHg0MCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwZiwgMHg5MCwgMHg3ZiwgMHhjNywgMHhlMCwgMHgxNCwgMHhmNSwgMHgxYywgMHgyMCwgMHgwYSwgMHgxMSwgMHg2MH19LAorIHsweDAwODYsIDE2LCB7IDB4MGYsIDB4ZjUsIDB4MjMsIDB4N2UsIDB4N2UsIDB4N2YsIDB4NDEsIDB4NzUsIDB4MjcsIDB4N2UsIDB4NzUsIDB4MjgsIDB4NDEsIDB4MTIsIDB4MDgsIDB4MDF9fSwKKyB7MHgwMDk2LCAxNiwgeyAweGMyLCAweDBjLCAweGU0LCAweDkwLCAweDdmLCAweGM3LCAweGYwLCAweDgwLCAweDM5LCAweDkwLCAweDdmLCAweGM4LCAweGUwLCAweDIwLCAweGUxLCAweDMyfX0sCisgezB4MDBhNiwgMTYsIHsgMHgxMiwgMHgwZCwgMHgzOCwgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHgyOSwgMHg5MCwgMHg3ZCwgMHhjMCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwZn19LAorIHsweDAwYjYsIDE2LCB7IDB4OTAsIDB4N2YsIDB4YzksIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MWMsIDB4MjAsIDB4MGEsIDB4MTEsIDB4NjAsIDB4MGYsIDB4ZjUsIDB4MjMsIDB4N2UsIDB4N2R9fSwKKyB7MHgwMGM2LCAxNiwgeyAweDdmLCAweGMxLCAweDc1LCAweDI3LCAweDdkLCAweDc1LCAweDI4LCAweGMxLCAweDEyLCAweDA4LCAweDAxLCAweGQyLCAweDBjLCAweGU0LCAweDkwLCAweDdmfX0sCisgezB4MDBkNiwgMTYsIHsgMHhjOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwMSwgMHg1ZSwgMHgxMiwgMHgwYywgMHg0MSwgMHg4Zn19LAorIHsweDAwZTYsIDE2LCB7IDB4MWMsIDB4MTIsIDB4MGQsIDB4NDQsIDB4OGYsIDB4MTEsIDB4ZTUsIDB4MWMsIDB4YzMsIDB4OTUsIDB4MTMsIDB4NTAsIDB4MGYsIDB4MTIsIDB4MGQsIDB4MjB9fSwKKyB7MHgwMGY2LCAxNiwgeyAweGVmLCAweDMwLCAweGUwLCAweDA4LCAweGU1LCAweDExLCAweDIwLCAweGU3LCAweDAzLCAweDMwLCAweDEyLCAweDVjLCAweGMyLCAweDEyLCAweGU1LCAweDFjfX0sCisgezB4MDAzNiwgMTIsIHsgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMn19LAorIHsweDAwNDMsICAzLCB7IDB4MDIsIDB4MGUsIDB4MDB9fSwKKyB7MHgwMDAwLCAgMywgeyAweDAyLCAweDA4LCAweGI2fX0sCisgezB4MDEwNiwgNjQsIHsgMHg2MCwgMHg1NiwgMHhiNCwgMHg4MCwgMHgwMywgMHg0MywgMHgxMSwgMHgwMiwgMHhlNSwgMHgxMSwgMHgzMCwgMHhlNywgMHgyNCwgMHhlNSwgMHgxYywgMHhkMywgMHg5NCwKKyAgMHgyMCwgMHg0MCwgMHgwMywgMHg3NSwgMHgxYywgMHgyMCwgMHg4NSwgMHgxYywgMHgyMywgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg4MCwgMHg3NSwgMHgyNywgMHg3ZSwKKyAgMHg3NSwgMHgyOCwgMHg4MCwgMHgxMiwgMHgwYSwgMHg4NiwgMHhlNSwgMHgxYywgMHgyNSwgMHgxYywgMHg5MCwgMHg3ZiwgMHhiNywgMHhmMCwgMHg4MCwgMHgyNywKKyAgMHhlNSwgMHgxYywgMHhkMywgMHg5NCwgMHgzZiwgMHg0MCwgMHgwMywgMHg3NSwgMHgxYywgMHgzZiwgMHg4NSwgMHgxYywgMHgyMywgMHg5MCwgMHg3ZX19LAorIHsweDAxNDYsIDY0LCB7IDB4ODAsIDB4ZTUsIDB4MTEsIDB4ZjAsIDB4N2UsIDB4N2UsIDB4N2YsIDB4ODEsIDB4NzUsIDB4MjcsIDB4N2UsIDB4NzUsIDB4MjgsIDB4ODEsIDB4MTIsIDB4MDgsIDB4MjYsCisgIDB4ZTUsIDB4MWMsIDB4MDQsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4Y2UsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4MjAsIDB4MGQsCisgIDB4MDMsIDB4MDIsIDB4MDMsIDB4YmEsIDB4ZTQsIDB4ZjUsIDB4MWIsIDB4NzQsIDB4NDAsIDB4MjUsIDB4MWIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsCisgIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MWIsIDB4N2MsIDB4MDAsIDB4N2IsIDB4MDEsIDB4N2EsIDB4N2UsIDB4NzksIDB4MDAsIDB4MjR9fSwKKyB7MHgwMTg2LCA2NCwgeyAweDAwLCAweGY5LCAweGVjLCAweDM0LCAweDdlLCAweGZhLCAweGVmLCAweDEyLCAweDBhLCAweDBkLCAweDA1LCAweDFiLCAweGU1LCAweDFiLCAweGI0LCAweDIwLCAweGQ3LAorICAweDkwLCAweDdlLCAweDAwLCAweGUwLCAweDYwLCAweDZlLCAweDdmLCAweDAxLCAweDkwLCAweDdlLCAweDExLCAweGUwLCAweGZkLCAweDEyLCAweDBjLCAweDFjLAorICAweDkwLCAweDdlLCAweDAxLCAweGUwLCAweGZmLCAweDEyLCAweDBiLCAweDVlLCAweDkwLCAweDdlLCAweDAyLCAweGUwLCAweGZmLCAweDEyLCAweDBiLCAweDg0LAorICAweGQyLCAweDEwLCAweGQyLCAweDExLCAweDc1LCAweDFjLCAweDA0LCAweDkwLCAweDdlLCAweDAzLCAweGUwLCAweDYwLCAweDA1LCAweGMyLCAweDExfX0sCisgezB4MDFjNiwgNjQsIHsgMHg0MywgMHgxYywgMHhjMCwgMHg5MCwgMHg3ZSwgMHgwNCwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNywgMHhjMiwgMHgxMSwgMHg0MywgMHgxYywgMHgwYiwgMHg4MCwgMHgxMCwKKyAgMHg5MCwgMHg3ZSwgMHgwNCwgMHhlMCwgMHg2MCwgMHgwNywgMHhjMiwgMHgxMCwgMHg0MywgMHgxYywgMHgwOSwgMHg4MCwgMHgwMywgMHg0MywgMHgxYywgMHgwMiwKKyAgMHg3ZiwgMHgwMywgMHhhZCwgMHgxYywgMHgxMiwgMHgwYywgMHgxYywgMHg0MywgMHgxOSwgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwKKyAgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHgxOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0NH19LAorIHsweDAyMDYsIDY0LCB7IDB4MDYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MDUsIDB4ZTAsIDB4NjAsIDB4MTIsIDB4YTMsIDB4ZTAsIDB4NTQsIDB4M2YsIDB4ZjUsIDB4MTgsCisgIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4MTgsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MDcsIDB4ZTAsCisgIDB4NjAsIDB4NDIsIDB4OTAsIDB4N2UsIDB4MTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4MTUsIDB4MDQsIDB4ODAsIDB4MDMsIDB4NTMsIDB4MTUsIDB4ZmIsCisgIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4MTUsIDB4MTIsIDB4MGMsIDB4MWMsIDB4OTAsIDB4N2UsIDB4MDgsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4MTd9fSwKKyB7MHgwMjQ2LCA2NCwgeyAweDgwLCAweDgwLCAweDAzLCAweDUzLCAweDE3LCAweDdmLCAweDUzLCAweDE3LCAweGZjLCAweDkwLCAweDdlLCAweDA5LCAweGUwLCAweDYwLCAweDExLCAweDQzLCAweDE3LAorICAweDAyLCAweGEzLCAweGUwLCAweGZmLCAweDEyLCAweDBiLCAweGQwLCAweDkwLCAweDdlLCAweDBiLCAweGUwLCAweGZmLCAweDEyLCAweDBiLCAweGY2LCAweGFmLAorICAweDE3LCAweDEyLCAweDBiLCAweGFhLCAweDkwLCAweDdlLCAweDBlLCAweGUwLCAweDYwLCAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDE5LAorICAweDAxLCAweDgwLCAweDAzLCAweDUzLCAweDE5LCAweGZlLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwfX0sCisgezB4MDI4NiwgNjQsIHsgMHhlNSwgMHgxOSwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgwYywgMHhlMCwgMHg2MCwgMHgxOCwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHgxOSwgMHgwMiwgMHg4MCwKKyAgMHgwMywgMHg1MywgMHgxOSwgMHhmZCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHgxOSwgMHhmMCwKKyAgMHg5MCwgMHg3ZSwgMHgxMiwgMHhlMCwgMHhmNSwgMHgxMywgMHhhMywgMHhlMCwgMHgxMywgMHg5MiwgMHgxMywgMHhhMywgMHhlMCwgMHhmNSwgMHgxNCwgMHhhMywKKyAgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHgxOSwgMHgxMCwgMHg4MCwgMHgwMywgMHg1MywgMHgxOSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NH19LAorIHsweDAyYzYsIDY0LCB7IDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4MTksIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MTYsIDB4ZTAsIDB4NjAsIDB4MzIsIDB4NTMsIDB4MTgsIDB4YmYsCisgIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4MTgsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2YsCisgIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4MTIsIDB4MGQsIDB4MTQsIDB4ZWYsIDB4NTQsIDB4ZmUsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4NTMsIDB4MTUsCisgIDB4ZmQsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4MTUsIDB4MTIsIDB4MGMsIDB4MWMsIDB4ZTQsIDB4ZjUsIDB4MGUsIDB4ZjUsIDB4MGQsIDB4ZDIsIDB4MGV9fSwKKyB7MHgwMzA2LCA2NCwgeyAweDkwLCAweDdlLCAweDE3LCAweGUwLCAweDYwLCAweDBmLCAweDQzLCAweDE1LCAweDAyLCAweGU0LCAweGZmLCAweGFkLCAweDE1LCAweDEyLCAweDBjLCAweDFjLCAweDc1LAorICAweDBkLCAweDAxLCAweGQyLCAweDBlLCAweDkwLCAweDdlLCAweDE4LCAweGUwLCAweDYwLCAweDEwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLAorICAweGU1LCAweDE2LCAweDQ0LCAweDA0LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGQyLCAweDBhLCAweDkwLCAweDdlLCAweDE5LCAweGUwLCAweDYwLCAweDExLAorICAweDQzLCAweDE4LCAweDQwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDE4LCAweDU0LCAweDdmLCAweDkwLCAweGMwfX0sCisgezB4MDM0NiwgNjQsIHsgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgxYSwgMHhlMCwgMHg2MCwgMHgwZiwgMHg1MywgMHgxNSwgMHhmZSwgMHhlNCwgMHhmZiwgMHhhZCwgMHgxNSwgMHgxMiwgMHgwYywKKyAgMHgxYywgMHg3NSwgMHgwZiwgMHgwMSwgMHhkMiwgMHgwZSwgMHg5MCwgMHg3ZSwgMHgxYiwgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywgMHgxNSwgMHgwMSwgMHhlNCwKKyAgMHhmZiwgMHhhZCwgMHgxNSwgMHgxMiwgMHgwYywgMHgxYywgMHhlNCwgMHhmNSwgMHgwZiwgMHhkMiwgMHgwZSwgMHg5MCwgMHg3ZSwgMHgxYywgMHhlMCwgMHg2MCwKKyAgMHgwZSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0NCwgMHgwMiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMH19LAorIHsweDAzODYsIDY0LCB7IDB4OTAsIDB4N2UsIDB4MWQsIDB4ZTAsIDB4NjAsIDB4MDIsIDB4ZDIsIDB4MTIsIDB4OTAsIDB4N2UsIDB4MWUsIDB4ZTAsIDB4NjAsIDB4MDgsIDB4NzUsIDB4MTAsIDB4MDEsCisgIDB4ZTQsIDB4ZjUsIDB4MTIsIDB4ZDIsIDB4MGUsIDB4OTAsIDB4N2UsIDB4MWYsIDB4ZTAsIDB4NjAsIDB4MTEsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4NzQsIDB4MTEsCisgIDB4ZjAsIDB4NzQsIDB4MzEsIDB4ZjAsIDB4NzQsIDB4MTUsIDB4ZjAsIDB4NzQsIDB4MzUsIDB4ZjAsIDB4ZDIsIDB4MGMsIDB4YzIsIDB4MGQsIDB4ZTQsIDB4OTAsCisgIDB4N2YsIDB4Y2YsIDB4ZjAsIDB4MzAsIDB4MTUsIDB4NzEsIDB4ZTUsIDB4MTIsIDB4NjAsIDB4MDIsIDB4MTUsIDB4MTIsIDB4ZTUsIDB4MmUsIDB4ZDN9fSwKKyB7MHgwM2M2LCA2NCwgeyAweDk0LCAweDAwLCAweDQwLCAweDA0LCAweDE1LCAweDJlLCAweDgwLCAweDYwLCAweDc1LCAweDJlLCAweDBhLCAweDEyLCAweDBkLCAweDE0LCAweGVmLCAweDU0LCAweDAxLAorICAweGY1LCAweDFjLCAweDY1LCAweDBlLCAweDYwLCAweDA3LCAweDg1LCAweDFjLCAweDBlLCAweGQyLCAweDBlLCAweDgwLCAweDExLCAweDEyLCAweDBkLCAweDUwLAorICAweGVmLCAweDU0LCAweDEwLCAweGY1LCAweDFjLCAweDY1LCAweDA5LCAweDYwLCAweDA1LCAweDg1LCAweDFjLCAweDA5LCAweGQyLCAweDBlLCAweDEyLCAweDBkLAorICAweDUwLCAweGVmLCAweDU0LCAweDgwLCAweGY1LCAweDFjLCAweDY1LCAweDBhLCAweDYwLCAweDA1LCAweDg1LCAweDFjLCAweDBhLCAweGQyLCAweDBlfX0sCisgezB4MDQwNiwgNjQsIHsgMHgxMiwgMHgwZCwgMHg1MCwgMHhlZiwgMHg1NCwgMHgyMCwgMHhmNSwgMHgxYywgMHg2NSwgMHgwYiwgMHg2MCwgMHgwOCwgMHg4NSwgMHgxYywgMHgwYiwgMHgzMCwgMHgxMCwKKyAgMHgwMiwgMHhkMiwgMHgwZSwgMHgxMiwgMHgwZCwgMHg1MCwgMHhlZiwgMHg1NCwgMHg0MCwgMHhmNSwgMHgxYywgMHg2NSwgMHgwYywgMHg2MCwgMHgwOCwgMHg4NSwKKyAgMHgxYywgMHgwYywgMHgzMCwgMHgxMSwgMHgwMiwgMHhkMiwgMHgwZSwgMHgzMCwgMHgxNSwgMHgyYSwgMHg5MCwgMHg3ZiwgMHhkMiwgMHhlMCwgMHgyMCwgMHhlMSwKKyAgMHgyMywgMHg5MCwgMHg3YiwgMHg0MCwgMHhlMCwgMHg2MCwgMHgwOSwgMHhlMCwgMHhmNSwgMHgzMCwgMHg5MCwgMHg3YiwgMHg0MiwgMHhlMCwgMHhmNX19LAorIHsweDA0NDYsIDY0LCB7IDB4MzEsIDB4OTAsIDB4N2IsIDB4NDEsIDB4ZTAsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4ZDcsIDB4NzQsIDB4MTcsIDB4ZjAsIDB4NzQsIDB4MzcsIDB4ZjAsIDB4ZTQsCisgIDB4OTAsIDB4N2YsIDB4ZDMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YzIsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDUsIDB4MWYsIDB4ZTUsIDB4MjUsCisgIDB4NzAsIDB4NDAsIDB4MzAsIDB4MGUsIDB4MzksIDB4ZTUsIDB4MTIsIDB4NzAsIDB4MzUsIDB4YzIsIDB4MGUsIDB4ZjUsIDB4MWIsIDB4N2UsIDB4MDAsIDB4N2IsCisgIDB4MDAsIDB4NzQsIDB4MDgsIDB4MjUsIDB4MWIsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MDksIDB4YzcsIDB4ZmYsIDB4NzR9fSwKKyB7MHgwNDg2LCA2NCwgeyAweDgwLCAweDI1LCAweDFiLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDFiLCAweGU1LCAweDFiLCAweGI0LAorICAweDA5LCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDA5LCAweGYwLCAweDc1LCAweDEyLCAweDEwLCAweGU0LCAweGY1LCAweDEwLCAweDc1LCAweDI1LAorICAweDAyLCAweDIyLCAweGU1LCAweDI1LCAweDY0LCAweDAyLCAweDcwLCAweDM2LCAweDMwLCAweDA1LCAweDJmLCAweGMyLCAweDA1LCAweGY1LCAweDFiLCAweDdlLAorICAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDI5LCAweDI1LCAweDFiLCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDA5LCAweGM3fX0sCisgezB4MDRjNiwgNjQsIHsgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxYiwgMHhlNSwKKyAgMHgxYiwgMHhiNCwgMHgwNSwgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwNSwgMHhmMCwgMHg3NSwgMHgyNSwgMHgwMywgMHgyMiwgMHhlNSwgMHgzMCwKKyAgMHg2MCwgMHgzMywgMHg3NSwgMHgyZiwgMHgwMywgMHgxNSwgMHgzMCwgMHhlNCwgMHhmNSwgMHgxYiwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyZiwKKyAgMHgyNSwgMHgxYiwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwOSwgMHhjNywgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxYn19LAorIHsweDA1MDYsIDY0LCB7IDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MWIsIDB4ZTUsIDB4MWIsIDB4YjQsIDB4MDMsIDB4ZGIsIDB4OTAsCisgIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MjUsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZTksIDB4ZTAsIDB4MTIsIDB4MGEsIDB4MWYsCisgIDB4MDUsIDB4ZjYsIDB4MDAsIDB4MDYsIDB4NmEsIDB4MDEsIDB4MDYsIDB4ZDcsIDB4MDMsIDB4MDUsIDB4NDMsIDB4MDYsIDB4MDUsIDB4ZTksIDB4MDgsIDB4MDUsCisgIDB4ZTMsIDB4MDksIDB4MDUsIDB4Y2IsIDB4MGEsIDB4MDUsIDB4ZGEsIDB4MGIsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MjcsIDB4OTAsIDB4N2YsIDB4ZWJ9fSwKKyB7MHgwNTQ2LCA2NCwgeyAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE2LCAweDE0LCAweDYwLCAweDUwLCAweDI0LCAweDAyLCAweDcwLCAweDZmLCAweDc0LCAweDE5LCAweDkwLCAweDdmLCAweGQ0LAorICAweGYwLCAweDc0LCAweDAwLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDA3LCAweDJlLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDA0LAorICAweDdmLCAweDAyLCAweDgwLCAweDAyLCAweDdmLCAweDAzLCAweDc1LCAweDgyLCAweDgyLCAweDc1LCAweDgzLCAweDE5LCAweGVmLCAweGYwLCAweDc1LCAweDgyLAorICAweDc0LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc1LCAweDgyLCAweDU4LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDkwLCAweDdmLCAweGVhfX0sCisgezB4MDU4NiwgNjQsIHsgMHhlMCwgMHgwNCwgMHg3NSwgMHg4MiwgMHgxNywgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHg3NCwgMHgxMiwKKyAgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwNywgMHgyZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwYSwgMHg0NSwgMHhlYSwKKyAgMHg0OSwgMHg2MCwgMHgwZCwgMHhlYSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHhlOSwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwNywgMHgyZSwKKyAgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwNywgMHgyZSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NH19LAorIHsweDA1YzYsIDY0LCB7IDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4MmUsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MjQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsCisgIDB4MDIsIDB4MDcsIDB4MmUsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MjQsIDB4MDIsIDB4MDcsIDB4MmUsIDB4MTIsIDB4MDcsIDB4MzYsIDB4MDIsCisgIDB4MDcsIDB4MmUsIDB4OTAsIDB4N2YsIDB4MDAsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4MmUsIDB4OTAsCisgIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4N2YsIDB4NjAsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MzEsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NWIsIDB4YTJ9fSwKKyB7MHgwNjA2LCA2NCwgeyAweDAxLCAweGU0LCAweDMzLCAweGZmLCAweDI1LCAweGUwLCAweGZmLCAweGEyLCAweDA3LCAweGU0LCAweDMzLCAweDRmLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGU0LAorICAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA3LCAweDJlLCAweGU0LCAweDkwLCAweDdmLCAweDAwLCAweGYwLAorICAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA3LCAweDJlLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LAorICAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0fX0sCisgezB4MDY0NiwgNjQsIHsgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwKKyAgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNywgMHgyZSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwKKyAgMHgwMiwgMHgwNywgMHgyZSwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxZSwgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwKKyAgMHgwNywgMHgyZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNiwgMHgxMiwgMHgwZCwgMHg2MywgMHgwMiwgMHgwNywgMHgyZX19LAorIHsweDA2ODYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4MmUsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MzgsIDB4OTAsCisgIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsCisgIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsCisgIDB4NTQsIDB4ODAsIDB4ZmYsIDB4MTMsIDB4MTMsIDB4MTMsIDB4NTQsIDB4MWYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4OTAsIDB4N2Z9fSwKKyB7MHgwNmM2LCA2NCwgeyAweGQ3LCAweGYwLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDgwLCAweDYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDU3LAorICAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE5LCAweDI0LCAweDAyLCAweDcwLCAweDRiLCAweDkwLCAweDdmLCAweGVhLCAweGUwLAorICAweGI0LCAweDAxLCAweDA1LCAweDEyLCAweDBkLCAweDYwLCAweDgwLCAweDNmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLAorICAweDM2LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDIwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmfX0sCisgezB4MDcwNiwgNjQsIHsgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwKKyAgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgwNywKKyAgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgyMiwgMHhlNCwKKyAgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHgzMCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhmMH19LAorIHsweDA3NDYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4OTUsIDB4NzQsIDB4YzAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4M2YsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTgsCisgIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4OGUsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4ZjAsIDB4ZTQsIDB4ZjUsCisgIDB4MDgsIDB4N2YsIDB4MDEsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MDgsIDB4MmYsIDB4ZjksIDB4ZTQsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4ZTQsIDB4MTIsIDB4MGEsCisgIDB4MGQsIDB4MGYsIDB4YmYsIDB4MDksIDB4ZWUsIDB4NzUsIDB4MTMsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MTIsIDB4ZjUsIDB4MmUsIDB4ZjUsIDB4MTF9fSwKKyB7MHgwNzg2LCA2NCwgeyAweGMyLCAweDBlLCAweGMyLCAweDEyLCAweGMyLCAweDBkLCAweGMyLCAweDBhLCAweGMyLCAweDBmLCAweGMyLCAweDA0LCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLAorICAweGYwLCAweDc1LCAweDE4LCAweDAzLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDAzLCAweGYwLCAweDdmLCAweDBjLCAweGU0LCAweGZkLCAweDEyLCAweDBjLAorICAweDFjLCAweDdmLCAweDEwLCAweDhmLCAweDE3LCAweDEyLCAweDBiLCAweGFhLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweDdmLCAweDAxLAorICAweDhmLCAweDE2LCAweGVmLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDBmLCAweGU0LCAweGZkLCAweDEyLCAweDBjLCAweDFjfX0sCisgezB4MDdjNiwgNjQsIHsgMHhlNCwgMHhmZiwgMHg3ZSwgMHhhMywgMHhhZCwgMHgwNiwgMHg4ZCwgMHgxNSwgMHgxMiwgMHgwYywgMHgxYywgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwKKyAgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNCwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZCwgMHg3ZiwgMHgxMiwgMHgwYywgMHgxYywgMHg3ZiwgMHgwMSwgMHgxMiwgMHgwYywKKyAgMHhhYywgMHg3ZiwgMHgwMywgMHg3ZCwgMHgwNywgMHgxMiwgMHgwYywgMHgxYywgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg3NSwgMHgxOSwKKyAgMHg4MCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHg4MCwgMHhmMCwgMHhkMiwgMHgwMywgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMH19LAorIHsweDA4MDYsIDY0LCB7IDB4ZjAsIDB4YWYsIDB4MjMsIDB4ZTUsIDB4MjgsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MjcsIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsCisgIDB4MDAsIDB4MDUsIDB4ODYsIDB4ZTAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsCisgIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4YWYsIDB4MjMsIDB4ZTUsIDB4MjgsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MjcsIDB4ZjUsIDB4ODMsIDB4YzIsCisgIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4Zjd9fSwKKyB7MHgwODQ2LCA2NCwgeyAweDA1LCAweDg2LCAweGQyLCAweGFmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweGFmLCAweDIzLCAweGU1LCAweDI4LCAweGY1LCAweDgyLAorICAweGU1LCAweDI3LCAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweDA1LCAweDg2LCAweGUwLCAweGEzLCAweDA1LAorICAweDg2LCAweGYwLCAweDA1LCAweDg2LCAweGRmLCAweGY3LCAweGQyLCAweGFmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweGFmLAorICAweDIzLCAweGU1LCAweDI4LCAweGY1LCAweDgyLCAweGU1LCAweDI3LCAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwfX0sCisgezB4MDg4NiwgNjQsIHsgMHgwMCwgMHhlMCwgMHgwNSwgMHg4NiwgMHhmMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhkZiwgMHhmNywgMHgwNSwgMHg4NiwgMHhkMiwgMHhhZiwgMHgyMiwgMHg3NCwgMHgwMCwKKyAgMHhmNSwgMHg4NiwgMHg5MCwgMHhmZCwgMHhhNSwgMHg3YywgMHgwNSwgMHhhMywgMHhlNSwgMHg4MiwgMHg0NSwgMHg4MywgMHg3MCwgMHhmOSwgMHgyMiwgMHg5MCwKKyAgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg0MywgMHg4NywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMiwgMHg3OCwKKyAgMHg3ZiwgMHhlNCwgMHhmNiwgMHhkOCwgMHhmZCwgMHg3NSwgMHg4MSwgMHgzMSwgMHgwMiwgMHgwOCwgMHhmZCwgMHgwMiwgMHgwOSwgMHg0MiwgMHhlNH19LAorIHsweDA4YzYsIDY0LCB7IDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NDAsIDB4MDMsIDB4ZjYsIDB4ODAsIDB4MDEsIDB4ZjIsIDB4MDgsIDB4ZGYsIDB4ZjQsIDB4ODAsIDB4MjksCisgIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4NTQsIDB4MDcsIDB4MjQsIDB4MGMsIDB4YzgsIDB4YzMsIDB4MzMsIDB4YzQsIDB4NTQsIDB4MGYsIDB4NDQsIDB4MjAsCisgIDB4YzgsIDB4ODMsIDB4NDAsIDB4MDQsIDB4ZjQsIDB4NTYsIDB4ODAsIDB4MDEsIDB4NDYsIDB4ZjYsIDB4ZGYsIDB4ZTQsIDB4ODAsIDB4MGIsIDB4MDEsIDB4MDIsCisgIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4OTAsIDB4MGMsIDB4Y2QsIDB4ZTQsIDB4N2UsIDB4MDEsIDB4OTMsIDB4NjAsIDB4YmN9fSwKKyB7MHgwOTA2LCA2NCwgeyAweGEzLCAweGZmLCAweDU0LCAweDNmLCAweDMwLCAweGU1LCAweDA5LCAweDU0LCAweDFmLCAweGZlLCAweGU0LCAweDkzLCAweGEzLCAweDYwLCAweDAxLCAweDBlLCAweGNmLAorICAweDU0LCAweGMwLCAweDI1LCAweGUwLCAweDYwLCAweGE4LCAweDQwLCAweGI4LCAweGU0LCAweDkzLCAweGEzLCAweGZhLCAweGU0LCAweDkzLCAweGEzLCAweGY4LAorICAweGU0LCAweDkzLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGYwLCAweGEzLCAweGM4LCAweGM1LCAweDgyLAorICAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweGJlLCAweGQyLCAweDE0LCAweDkwLCAweDdmfX0sCisgezB4MDk0NiwgNjQsIHsgMHg5MiwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgxMiwgMHgwZCwgMHg2MywgMHhkMiwgMHhlOCwgMHg0MywgMHhkOCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHg3NCwKKyAgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOSwgMHhmMCwKKyAgMHg5MCwgMHg3ZiwgMHhhYSwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhZiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwKKyAgMHhhZSwgMHg3NCwgMHgwZCwgMHhmMCwgMHhkMiwgMHhhZiwgMHhkMiwgMHgxNSwgMHgxMiwgMHgwYywgMHg2NiwgMHhjMiwgMHgwMiwgMHhlNCwgMHhmNX19LAorIHsweDA5ODYsIDY0LCB7IDB4MjYsIDB4ZjUsIDB4MmUsIDB4YzIsIDB4MDgsIDB4YzIsIDB4MDMsIDB4OTAsIDB4N2YsIDB4YTEsIDB4MDQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4NjUsCisgIDB4MWEsIDB4NjAsIDB4MTAsIDB4MzAsIDB4MDMsIDB4MDUsIDB4ZDIsIDB4MTUsIDB4MTIsIDB4MDAsIDB4NDYsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4ZjUsCisgIDB4MWEsIDB4ODAsIDB4MDgsIDB4MzAsIDB4MDMsIDB4MDUsIDB4YzIsIDB4MTUsIDB4MTIsIDB4MDAsIDB4NDYsIDB4MzAsIDB4MDIsIDB4MDcsIDB4YzIsIDB4MDIsCisgIDB4MTIsIDB4MDUsIDB4MjAsIDB4ODAsIDB4ZDYsIDB4MzAsIDB4MDksIDB4ZDMsIDB4YzIsIDB4MDksIDB4MTIsIDB4MGEsIDB4YmEsIDB4ODAsIDB4Y2N9fSwKKyB7MHgwOWM2LCA2NCwgeyAweDIyLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDAyLCAweGU3LCAweDIyLCAweGJiLCAweGZlLCAweDAyLAorICAweGUzLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLCAweDBjLCAweGU1LCAweDgyLCAweDI5LCAweGY1LAorICAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGU2LCAweDIyLAorICAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1fX0sCisgezB4MGEwNiwgNjQsIHsgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhmMCwgMHgyMiwgMHg1MCwKKyAgMHgwMiwgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwgMHhmMywgMHgyMiwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhmOCwgMHhlNCwgMHg5MywgMHg3MCwKKyAgMHgxMiwgMHg3NCwgMHgwMSwgMHg5MywgMHg3MCwgMHgwZCwgMHhhMywgMHhhMywgMHg5MywgMHhmOCwgMHg3NCwgMHgwMSwgMHg5MywgMHhmNSwgMHg4MiwgMHg4OCwKKyAgMHg4MywgMHhlNCwgMHg3MywgMHg3NCwgMHgwMiwgMHg5MywgMHg2OCwgMHg2MCwgMHhlZiwgMHhhMywgMHhhMywgMHhhMywgMHg4MCwgMHhkZiwgMHg4Zn19LAorIHsweDBhNDYsIDY0LCB7IDB4MWIsIDB4ZTQsIDB4ZjUsIDB4MWMsIDB4NzUsIDB4MWQsIDB4ZmYsIDB4NzUsIDB4MWUsIDB4MTksIDB4NzUsIDB4MWYsIDB4ODYsIDB4YWIsIDB4MWQsIDB4YWEsIDB4MWUsCisgIDB4YTksIDB4MWYsIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4MDksIDB4ZTAsIDB4YjQsIDB4MDMsIDB4MWQsIDB4YWYsIDB4MWMsIDB4MDUsIDB4MWMsIDB4ZWYsCisgIDB4YjUsIDB4MWIsIDB4MDEsIDB4MjIsIDB4MTIsIDB4MDksIDB4YzcsIDB4N2UsIDB4MDAsIDB4MjksIDB4ZmYsIDB4ZWUsIDB4M2EsIDB4YTksIDB4MDcsIDB4NzUsCisgIDB4MWQsIDB4ZmYsIDB4ZjUsIDB4MWUsIDB4ODksIDB4MWYsIDB4ODAsIDB4ZDQsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4MDAsIDB4MjJ9fSwKKyB7MHgwYTg2LCA2NCwgeyAweDA1LCAweDI4LCAweGU1LCAweDI4LCAweGFlLCAweDI3LCAweDcwLCAweDAyLCAweDA1LCAweDI3LCAweDE0LCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGU1LCAweDExLAorICAweGYwLCAweDEyLCAweDAwLCAweDM2LCAweDA1LCAweDI4LCAweGU1LCAweDI4LCAweGFjLCAweDI3LCAweDcwLCAweDAyLCAweDA1LCAweDI3LCAweDE0LCAweGY1LAorICAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDE1LCAweDIzLCAweGU1LCAweDIzLCAweDYwLCAweDA3LCAweDEyLCAweDBkLCAweDQ0LCAweDhmLCAweDExLAorICAweDgwLCAweGNkLCAweDIyLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweGY1LCAweDFiLCAweDEyLCAweDAwLCAweDAzLCAweDkwLCAweDdmLCAweGQ2fX0sCisgezB4MGFjNiwgNjQsIHsgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHgxMiwgMHgwOCwgMHhhNiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHgzMCwgMHhlNywgMHgwZSwgMHgzMCwgMHgwMSwgMHgwNSwKKyAgMHgxMiwgMHgwYywgMHhmZSwgMHg4MCwgMHgwNiwgMHgxMiwgMHgwYywgMHg4YiwgMHhlZiwgMHg2MCwgMHhlMSwgMHgxMiwgMHgwNywgMHgzNiwgMHgyMiwgMHhjMCwKKyAgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg5MCwgMHg3ZiwKKyAgMHhjNCwgMHhlNCwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwNCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMH19LAorIHsweDBiMDYsIDY0LCB7IDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsCisgIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsIDB4MDIsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsCisgIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsCisgIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDB9fSwKKyB7MHgwYjQ2LCA2NCwgeyAweGQyLCAweDA5LCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA4LCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LAorICAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLAorICAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLAorICAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDE4LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmfX0sCisgezB4MGI4NiwgNjQsIHsgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwKKyAgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHgxOCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwKKyAgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwKKyAgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxM319LAorIHsweDBiYzYsIDY0LCB7IDB4ZjAsIDB4ZTUsIDB4MTgsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsCisgIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsCisgIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4MTgsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsCisgIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzR9fSwKKyB7MHgwYzA2LCA2NCwgeyAweDE2LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDE4LCAweDU0LCAweDdmLAorICAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDE4LCAweDU0LCAweDdmLCAweDkwLAorICAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE3LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLAorICAweDk4LCAweDc0LCAweDE1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVkLCAweGYwLCAweDIyLCAweDEyLCAweDBkLCAweDJjLCAweDhmLCAweDFkfX0sCisgezB4MGM0NiwgNjQsIHsgMHgxMiwgMHgwZCwgMHgyYywgMHg4ZiwgMHgxZSwgMHhlNSwgMHgxZCwgMHg2NSwgMHgxZSwgMHg2MCwgMHgxMiwgMHgxMiwgMHgwZCwgMHgyYywgMHg4ZiwgMHgxZCwgMHhlNSwKKyAgMHgxZCwgMHg2NSwgMHgxZSwgMHg2MCwgMHgwNywgMHgxMiwgMHgwZCwgMHgyYywgMHg4ZiwgMHgxZSwgMHg4MCwgMHhlOCwgMHhhZiwgMHgxZCwgMHgyMiwgMHg5MCwKKyAgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHhlMCwgMHg0NCwgMHgwOCwgMHhmMCwgMHgzMCwgMHgxNSwgMHgwNCwgMHhlMCwgMHg0NCwgMHgwMiwKKyAgMHhmMCwgMHg3ZiwgMHhmNCwgMHg3ZSwgMHgwMSwgMHgxMiwgMHgwYywgMHhlNywgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMH19LAorIHsweDBjODYsIDY0LCB7IDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4ZjUsIDB4MWMsIDB4MTIsIDB4MDcsIDB4MzYsIDB4MTIsIDB4MGQsIDB4NTAsCisgIDB4ZWYsIDB4MzAsIDB4ZTYsIDB4MGIsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4NjUsIDB4MWMsIDB4NjAsIDB4ZjEsIDB4N2YsIDB4MDEsIDB4MjIsIDB4MTIsCisgIDB4MDAsIDB4MDMsIDB4N2YsIDB4MDAsIDB4MjIsIDB4YWUsIDB4MDcsIDB4ZTQsIDB4ZmYsIDB4ZTUsIDB4MTUsIDB4NTQsIDB4N2YsIDB4ZmQsIDB4MTIsIDB4MGMsCisgIDB4MWMsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWUsIDB4ZjAsIDB4ZTQsIDB4ZTUsIDB4MTV9fSwKKyB7MHgwY2M2LCA2NCwgeyAweDQ0LCAweDgwLCAweGZkLCAweDEyLCAweDBjLCAweDFjLCAweDIyLCAweDA1LCAweDI5LCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAzLCAweDJmLCAweDAzLAorICAweDAwLCAweDAwLCAweGMxLCAweDg2LCAweGMxLCAweDAyLCAweGMxLCAweDA5LCAweGMxLCAweDAxLCAweGMxLCAweDA3LCAweDAxLCAweDI1LCAweDAwLCAweDAwLAorICAweDhlLCAweDFjLCAweDhmLCAweDFkLCAweGU1LCAweDFkLCAweDE1LCAweDFkLCAweGFlLCAweDFjLCAweDcwLCAweDAyLCAweDE1LCAweDFjLCAweDRlLCAweDYwLAorICAweDA1LCAweDEyLCAweDA4LCAweDk1LCAweDgwLCAweGVlLCAweDIyLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDdmfX0sCisgezB4MGQwNiwgNjQsIHsgMHgwZCwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwYywgMHhlNywgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwKKyAgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg5MCwKKyAgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwKKyAgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3Zn19LAorIHsweDBkNDYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MTUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTYsIDB4ZjAsIDB4OTAsCisgIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4NTMsIDB4ZDgsIDB4ZWYsIDB4MzIsIDB4ZDIsIDB4MDEsIDB4MjIsIDB4YzIsIDB4MDEsIDB4MjIsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgwZDg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MGRjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwYiwgMHgxMCwgMHgwMCwgMHgwMiwgMHgwZX19LAorIHsweDBlMDYsIDY0LCB7IDB4MDQsIDB4MDAsIDB4MDIsIDB4MGEsIDB4ZTYsIDB4MDAsIDB4MDIsIDB4MGIsIDB4MzcsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgwZTQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MGU4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDBlYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgwZjA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MGY0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDBmODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgwZmM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTAwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDEwNDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxMDg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTBjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDExMDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxMTQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTE4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDExYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxMjA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTI0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDEyODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxMmM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTMwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDEzNDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxMzg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTNjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE0MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNDQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTQ4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE0YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNTA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTU0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE1ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNWM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTYwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE2NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNjg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTZjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE3MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNzQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTc4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE3YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxODA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTg0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE4ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxOGM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDEyLCAweDAxLCAweDEwLCAweDAxLCAweGZmLCAweDAwfX0sCisgezB4MTkwNiwgNjQsIHsgMHgwMCwgMHg0MCwgMHhjZCwgMHgwNiwgMHgwOCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMCwgMHgwMiwgMHgwOSwgMHgwMiwgMHg3NCwgMHgwMCwgMHgwMSwKKyAgMHgwMSwgMHgwMCwgMHhhMCwgMHgzMiwgMHgwOSwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwZSwgMHhmZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMSwKKyAgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMywgMHgwMiwgMHg0MCwKKyAgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNSwgMHgwMiwgMHg0MCwgMHgwMH19LAorIHsweDE5NDYsIDY0LCB7IDB4MDAsIDB4MDcsIDB4MDUsIDB4MDYsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDcsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsCisgIDB4ODEsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODMsIDB4MDIsCisgIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODUsIDB4MDIsIDB4NDAsIDB4MDAsCisgIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODYsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODcsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDF9fSwKKyB7MHgxOTg2LCA2NCwgeyAweDA0LCAweDAzLCAweDA5LCAweDA0LCAweDQ4LCAweDAzLCAweDRiLCAweDAwLCAweDY1LCAweDAwLCAweDc5LCAweDAwLCAweDczLCAweDAwLCAweDcwLCAweDAwLCAweDYxLAorICAweDAwLCAweDZlLCAweDAwLCAweDJjLCAweDAwLCAweDIwLCAweDAwLCAweDYxLCAweDAwLCAweDIwLCAweDAwLCAweDY0LCAweDAwLCAweDY5LCAweDAwLCAweDc2LAorICAweDAwLCAweDY5LCAweDAwLCAweDczLCAweDAwLCAweDY5LCAweDAwLCAweDZmLCAweDAwLCAweDZlLCAweDAwLCAweDIwLCAweDAwLCAweDZmLCAweDAwLCAweDY2LAorICAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDZlLCAweDAwLCAweDZmLCAweDAwLCAweDUzLCAweDAwLCAweDc5LCAweDAwfX0sCisgezB4MTljNiwgNjQsIHsgMHg3MywgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2MywgMHgwMCwgMHgyZSwgMHgwMCwgMHgzNiwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwKKyAgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1NSwgMHgwMCwgMHg1MywKKyAgMHgwMCwgMHg0MiwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1MywgMHgwMCwgMHg2NSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2YywKKyAgMHgwMCwgMHgyMCwgMHgwMCwgMHg0MSwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2MSwgMHgwMCwgMHg3MCwgMHgwMCwgMHg3NCwgMHgwMCwgMHg2NSwgMHgwMH19LAorIHsweDFhMDYsICA0LCB7IDB4NzIsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHhmZmZmLAkwLAl7MHgwMH0gfQorfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTI2bXNnLmggYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyNm1zZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4MDg3MjcKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyNm1zZy5oCkBAIC0wLDAgKzEsMjYwIEBACisvKgorCXVzYTI2bXNnLmgKKworCUNvcHlyaWdodCAoQykgMTk5OC0yMDAwIElubm9TeXMgSW5jb3Jwb3JhdGVkLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZAorCVRoaXMgZmlsZSBpcyBhdmFpbGFibGUgdW5kZXIgYSBCU0Qtc3R5bGUgY29weXJpZ2h0CisKKwlLZXlzcGFuIFVTQiBBc3luYyBNZXNzYWdlIEZvcm1hdHMgZm9yIHRoZSBVU0EyOFgKKworCVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorCW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKwltZXQ6CisKKwkxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhpcyBsaWNlbmNlIHRleHQKKyAgIAl3aXRob3V0IG1vZGlmaWNhdGlvbiwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMsIGFuZCB0aGUgZm9sbG93aW5nCisgICAJZGlzY2xhaW1lci4gIFRoZSBmb2xsb3dpbmcgY29weXJpZ2h0IG5vdGljZSBtdXN0IGFwcGVhciBpbW1lZGlhdGVseSBhdAorICAgCXRoZSBiZWdpbm5pbmcgb2YgYWxsIHNvdXJjZSBmaWxlczoKKworICAgICAgICAJQ29weXJpZ2h0IChDKSAxOTk4LTIwMDAgSW5ub1N5cyBJbmNvcnBvcmF0ZWQuICBBbGwgUmlnaHRzIFJlc2VydmVkCisKKyAgICAgICAgCVRoaXMgZmlsZSBpcyBhdmFpbGFibGUgdW5kZXIgYSBCU0Qtc3R5bGUgY29weXJpZ2h0CisKKwkyLiBUaGUgbmFtZSBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlCisgICAJcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuCisgICAJcGVybWlzc2lvbi4KKworCVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgSU5OT1NZUyBDT1JQLiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCisJSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworCU9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOCisJTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULAorCUlORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworCShJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorCVNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisJQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisJTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorCU9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKwlTVUNIIERBTUFHRS4gICAgCisKKwlUaGlyZCByZXZpc2lvbjogVVNBMjhYIHZlcnNpb24gKGFrYSBVU0EyNikKKworCUJ1ZmZlciBmb3JtYXRzIGZvciBSWC9UWCBkYXRhIG1lc3NhZ2VzIGFyZSBub3QgZGVmaW5lZCBieQorCWEgc3RydWN0dXJlLCBidXQgYXJlIGRlc2NyaWJlZCBoZXJlOgorCisJVVNCIE9VVCAoaG9zdCAtPiBVU0F4eCwgdHJhbnNtaXQpIG1lc3NhZ2VzIGNvbnRhaW4gYSAKKwlSRVFVRVNUX0FDSyBpbmRpY2F0b3IgKHNldCB0byAweGZmIHRvIHJlcXVlc3QgYW4gQUNLIGF0IHRoZSAKKwljb21wbGV0aW9uIG9mIHRyYW5zbWl0OyAweDAwIG90aGVyd2lzZSksIGZvbGxvd2VkIGJ5IGRhdGE6CisKKwkJUlFTVEFDSyBEQVQgREFUIERBVCAuLi4KKworCXdpdGggYSB0b3RhbCBkYXRhIGxlbmd0aCBvZiA2My4KKworCVVTQiBJTiAoVVNBeHggLT4gaG9zdCwgcmVjZWl2ZSkgbWVzc2FnZXMgYmVnaW4gd2l0aCBhIHN0YXR1cworCWJ5dGUgaW4gd2hpY2ggdGhlIDB4ODAgYml0IGlzIGVpdGhlcjoKKworCQkoYSkJMHg4MCBiaXQgY2xlYXIKKwkJCWluZGljYXRlcyB0aGF0IHRoZSBieXRlcyBmb2xsb3dpbmcgaXQgYXJlIGFsbCBkYXRhCisJCQlieXRlczoKKworCQkJCVNUQVQgREFUQSBEQVRBIERBVEEgREFUQSBEQVRBIC4uLgorCisJCQlmb3IgYSB0b3RhbCBvZiB1cCB0byA2MyBEQVRBIGJ5dGVzLAorCisJb3I6CisKKwkJKGIpCTB4ODAgYml0IHNldAorCQkJaW5kaWF0ZXMgdGhhdCB0aGUgYnl0ZXMgZm9sbG93aW5nIGFsdGVybmF0ZSBkYXRhIGFuZAorCQkJc3RhdHVzIGJ5dGVzOgorCisJCQkJU1RBVCBEQVRBIFNUQVQgREFUQSBTVEFUIERBVEEgU1RBVCBEQVRBIC4uLgorCisJCQlmb3IgYSB0b3RhbCBvZiB1cCB0byAzMiBEQVRBIGJ5dGVzLgorCisJVGhlIHZhbGlkIGJpdHMgaW4gdGhlIFNUQVQgYnl0ZXMgYXJlOgorCisJCU9WRVJSVU4JMHgwMgorCQlQQVJJVFkJMHgwNAorCQlGUkFNSU5HCTB4MDgKKwkJQlJFQUsJMHgxMAorCisJTm90ZXM6CisKKwkoMSkgVGhlIE9WRVJSVU4gYml0IGNhbiBhcHBlYXIgaW4gZWl0aGVyIChhKSBvciAoYikgZm9ybWF0CisJCW1lc3NhZ2VzLCBidXQgdGhlIGJ1dCB0aGUgUEFSSVRZL0ZSQU1JTkcvQlJFQUsgYml0cworCQlvbmx5IGFwcGVhciBpbiAoYikgZm9ybWF0IG1lc3NhZ2VzLgorCSgyKSBGb3IgdGhlIGhvc3QgdG8gZGV0ZXJtaW5lIHRoZSBleGFjdCBwb2ludCBhdCB3aGljaCB0aGUKKwkJb3ZlcnJ1biBvY2N1cnJlZCAodG8gaWRlbnRpZnkgdGhlIHBvaW50IGluIHRoZSBkYXRhCisJCXN0cmVhbSBhdCB3aGljaCB0aGUgZGF0YSB3YXMgbG9zdCksIGl0IG5lZWRzIHRvIGNvdW50CisJCTEyOCBjaGFyYWN0ZXJzLCBzdGFydGluZyBhdCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZQorCQltZXNzYWdlIGluIHdoaWNoIE9WRVJSVU4gd2FzIHJlcG9ydGVkOyB0aGUgbG9zdCBjaGFyYWN0ZXIocykKKwkJd291bGQgaGF2ZSBiZWVuIHJlY2VpdmVkIGJldHdlZW4gdGhlIDEyOHRoIGFuZCAxMjl0aAorCQljaGFyYWN0ZXJzLgorCSgzKQlBbiBSWCBkYXRhIG1lc3NhZ2UgaW4gd2hpY2ggdGhlIGZpcnN0IGJ5dGUgaGFzIDB4ODAgY2xlYXIKKwkJc2VydmVzIGFzIGEgImJyZWFrIG9mZiIgaW5kaWNhdG9yLgorCisJcmV2aXNpb24gaGlzdG9yeToKKworCTE5OTlmZWIxMAlhZGQgcmVwb3J0SHNraWFDaGFuZ2VzIHRvIGFsbG93IHVzIHRvIGlnbm9yZSB0aGVtCisJMTk5OWZlYjEwCWFkZCB0eEFja1RocmVzaG9sZCBmb3IgZmFzdCtsb29zZSB0aHJvdWdocHV0IGVuaGFuY2VtZW50CisJMTk5OW1hcjMwCWJlZWYgdXAgc3VwcG9ydCBmb3IgUlggZXJyb3IgcmVwb3J0aW5nCisJMTk5OWFwcjE0CWFkZCByZXNldERhdGFUb2dnbGUgdG8gY29udHJvbCBtZXNzYWdlCisJMjAwMGphbjA0CW1lcmdlIHdpdGggdXNhMTdtc2cuaAorCTIwMDBqdW4wMQlhZGQgZXh0ZW5kZWQgQlNELXN0eWxlIGNvcHlyaWdodCB0ZXh0CisJMjAwMWp1bDA1CWNoYW5nZSBtZXNzYWdlIGZvcm1hdCB0byBpbXByb3ZlIE9WRVJSVU4gY2FzZQorCisJTm90ZSBvbiBzaGFyZWQgbmFtZXM6CisKKwlJbiB0aGUgY2FzZSBvZiBmaWVsZHMgd2hpY2ggaGF2ZSBiZWVuIG1lcmdlZCBiZXR3ZWVuIHRoZSBVU0ExNworCWFuZCBVU0EyNiBkZWZpbml0aW9ucywgdGhlIFVTQTI2IGRlZmluaXRpb24gaXMgdGhlIGZpcnN0IHBhcnQKKwlvZiB0aGUgbmFtZSBhbmQgdGhlIFVTQTE3IGRlZmluaXRpb24gaXMgdGhlIHNlY29uZCBwYXJ0IG9mIHRoZQorCW5hbWU7IGJvdGggbWVhbmluZ3MgYXJlIGRlc2NyaWJlZCBiZWxvdy4KKyovCisKKyNpZm5kZWYJX19VU0EyNk1TR19fCisjZGVmaW5lCV9fVVNBMjZNU0dfXworCisKK3N0cnVjdCBrZXlzcGFuX3VzYTI2X3BvcnRDb250cm9sTWVzc2FnZQoreworCS8qCisJCXRoZXJlIGFyZSB0aHJlZSB0eXBlcyBvZiAiY29tbWFuZHMiIHNlbnQgaW4gdGhlIGNvbnRyb2wgbWVzc2FnZToKKworCQkxLgljb25maWd1cmF0aW9uIGNoYW5nZXMgd2hpY2ggbXVzdCBiZSByZXF1ZXN0ZWQgYnkgc2V0dGluZworCQkJdGhlIGNvcnJlc3BvbmRpbmcgInNldCIgZmxhZyAoYW5kIHNob3VsZCBvbmx5IGJlIHJlcXVlc3RlZAorCQkJd2hlbiBuZWNlc3NhcnksIHRvIHJlZHVjZSBvdmVyaGVhZCBvbiB0aGUgVVNBMjYpOgorCSovCisJdTgJc2V0Q2xvY2tpbmcsCS8vIEJPVEg6IGhvc3QgcmVxdWVzdHMgYmF1ZCByYXRlIGJlIHNldAorCQliYXVkTG8sCQkvLyBCT1RIOiBob3N0IGRvZXMgYmF1ZCBkaXZpc29yIGNhbGN1bGF0aW9uCisJCWJhdWRIaSwJCS8vIEJPVEg6IGJhdWRIaSBpcyBvbmx5IHVzZWQgZm9yIGZpcnN0IHBvcnQgKGdpdmVzIGxvd2VyIHJhdGVzKQorCQlleHRlcm5hbENsb2NrX3R4Q2xvY2tpbmcsCisJCQkJCS8vIFVTQTI2OiAwPWludGVybmFsLCBvdGhlcj1leHRlcm5hbAorCQkJCQkvLyBVU0ExNzogMD1pbnRlcm5hbCwgb3RoZXI9ZXh0ZXJuYWwvUkkKKwkJcnhDbG9ja2luZywJCS8vIFVTQTE3OiAwPWludGVybmFsLCAxPWV4dGVybmFsL1JJLCBvdGhlcj1leHRlcm5hbC9EU1IKKworCisJCXNldExjciwJCQkvLyBCT1RIOiBob3N0IHJlcXVlc3RzIGxjciBiZSBzZXQKKwkJbGNyLAkJCS8vIEJPVEg6IHVzZSBQQVJJVFksIFNUT1BCSVRTLCBEQVRBQklUUyBiZWxvdworCisJCXNldEZsb3dDb250cm9sLAkJLy8gQk9USDogaG9zdCByZXF1ZXN0cyBmbG93IGNvbnRyb2wgYmUgc2V0CisJCWN0c0Zsb3dDb250cm9sLAkJLy8gQk9USDogMT11c2UgQ1RTIGZsb3cgY29udHJvbCwgMD1kb24ndAorCQl4b25GbG93Q29udHJvbCwJCS8vIEJPVEg6IDE9dXNlIFhPTi9YT0ZGIGZsb3cgY29udHJvbCwgMD1kb24ndAorCQl4b25DaGFyLAkJLy8gQk9USDogc3BlY2lmaWVkIGluIGN1cnJlbnQgY2hhcmFjdGVyIGZvcm1hdAorCQl4b2ZmQ2hhciwJCS8vIEJPVEg6IHNwZWNpZmllZCBpbiBjdXJyZW50IGNoYXJhY3RlciBmb3JtYXQKKworCQlzZXRUeFRyaVN0YXRlX3NldFJ0cywKKwkJCQkJLy8gVVNBMjY6IGhvc3QgcmVxdWVzdHMgVFggdHJpLXN0YXRlIGJlIHNldAorCQkJCQkvLyBVU0ExNzogaG9zdCByZXF1ZXN0cyBSVFMgb3V0cHV0IGJlIHNldAorCQl0eFRyaVN0YXRlX3J0cywJCS8vIEJPVEg6IDE9YWN0aXZlIChub3JtYWwpLCAwPXRyaXN0YXRlIChvZmYpCisKKwkJc2V0SHNrb2Ffc2V0RHRyLAorCQkJCQkvLyBVU0EyNjogaG9zdCByZXF1ZXN0cyBIU0tPQSBvdXRwdXQgYmUgc2V0CisJCQkJCS8vIFVTQTE3OiBob3N0IHJlcXVlc3RzIERUUiBvdXRwdXQgYmUgc2V0CisJCWhza29hX2R0ciwJCS8vIEJPVEg6IDE9b24sIDA9b2ZmCisKKwkJc2V0UHJlc2NhbGVyLAkJLy8gVVNBMjY6IGhvc3QgcmVxdWVzdHMgcHJlc2NhbGFyIGJlIHNldCAoZGVmYXVsdDogMTMpCisJCXByZXNjYWxlcjsJCS8vIEJPVEg6IHNwZWNpZmllZCBhcyBOLzg7IHZhbHVlcyA4LWZmIGFyZSB2YWxpZAorCQkJCQkvLyBtdXN0IGJlIHNldCBhbnkgdGltZSBpbnRlcm5hbCBiYXVkIHJhdGUgaXMgc2V0OworCQkJCQkvLyBtdXN0IG5vdCBiZSBzZXQgd2hlbiBleHRlcm5hbCBjbG9ja2luZyBpcyB1c2VkCisJCQkJCS8vIG5vdGU6IGluIFVTQTE3LCBwcmVzY2FsZXIgaXMgYXBwbGllZCB3aGVuZXZlcgorCQkJCQkvLyBzZXRDbG9ja2luZyBpcyByZXF1ZXN0ZWQKKworCS8qCisJCTMuCWNvbmZpZ3VyYXRpb24gZGF0YSB3aGljaCBpcyBzaW1wbHkgdXNlZCBhcyBpcyAobm8gb3ZlcmhlYWQsCisJCQlidXQgbXVzdCBiZSBzcGVjaWZpZWQgY29ycmVjdGx5IGluIGV2ZXJ5IGhvc3QgbWVzc2FnZSkuCisJKi8KKwl1OAlmb3J3YXJkaW5nTGVuZ3RoLCAgLy8gQk9USDogZm9yd2FyZCB3aGVuIHRoaXMgbnVtYmVyIG9mIGNoYXJzIGF2YWlsYWJsZQorCQlyZXBvcnRIc2tpYUNoYW5nZXNfZHNyRmxvd0NvbnRyb2wsCisJCQkJCQkvLyBVU0EyNjogMT1ub3JtYWw7IDA9aWdub3JlIGV4dGVybmFsIGNsb2NrCisJCQkJCQkvLyBVU0ExNzogMT11c2UgRFNSIGZsb3cgY29udHJvbCwgMD1kb24ndAorCQl0eEFja1RocmVzaG9sZCwJLy8gQk9USDogMD1ub3QgYWxsb3dlZCwgMT1ub3JtYWwsIDItMjU1IGRlbGl2ZXIgQUNLIGZhc3RlcgorCQlsb29wYmFja01vZGU7CS8vIEJPVEg6IDA9bm8gbG9vcGJhY2ssIDE9bG9vcGJhY2sgZW5hYmxlZAorCisJLyoKKwkJNC4JY29tbWFuZHMgd2hpY2ggYXJlIGZsYWdzIG9ubHk7IHRoZXNlIGFyZSBwcm9jZXNzZWQgaW4gb3JkZXIKKwkJCShzbyB0aGF0LCBlLmcuLCBpZiBib3RoIF90eE9uIGFuZCBfdHhPZmYgZmxhZ3MgYXJlIHNldCwgdGhlCisJCQlwb3J0IGVuZHMgaW4gYSBUWF9PRkYgc3RhdGUpOyBhbnkgbm9uLXplcm8gdmFsdWUgaXMgcmVzcGVjdGVkCisJKi8KKwl1OAlfdHhPbiwJCQkvLyBCT1RIOiBlbmFibGUgdHJhbnNtaXR0aW5nIChhbmQgY29udGludWUgaWYgdGhlcmUncyBkYXRhKQorCQlfdHhPZmYsCQkJLy8gQk9USDogc3RvcCB0cmFuc21pdHRpbmcKKwkJdHhGbHVzaCwJCS8vIEJPVEg6IHRvc3Mgb3V0Ym91bmQgZGF0YQorCQl0eEJyZWFrLAkJLy8gQk9USDogdHVybiBvbiBicmVhayAoY2xlYXJlZCBieSBfdHhPbikKKwkJcnhPbiwJCQkvLyBCT1RIOiB0dXJuIG9uIHJlY2VpdmVyCisJCXJ4T2ZmLAkJCS8vIEJPVEg6IHR1cm4gb2ZmIHJlY2VpdmVyCisJCXJ4Rmx1c2gsCQkvLyBCT1RIOiB0b3NzIGluYm91bmQgZGF0YQorCQlyeEZvcndhcmQsCQkvLyBCT1RIOiBmb3J3YXJkIGFsbCBpbmJvdW5kIGRhdGEsIE5PVyAoYXMgaWYgZndkTGVuPT0xKQorCQlyZXR1cm5TdGF0dXMsCS8vIEJPVEg6IHJldHVybiBjdXJyZW50IHN0YXR1cyAoZXZlbiBpZiBpdCBoYXNuJ3QgY2hhbmdlZCkKKwkJcmVzZXREYXRhVG9nZ2xlOy8vIEJPVEg6IHJlc2V0IGRhdGEgdG9nZ2xlIHN0YXRlIHRvIERBVEEwCisJCit9OworCisvLyBkZWZpbmVzIGZvciBiaXRzIGluIGxjcgorI2RlZmluZQlVU0FfREFUQUJJVFNfNQkJMHgwMAorI2RlZmluZQlVU0FfREFUQUJJVFNfNgkJMHgwMQorI2RlZmluZQlVU0FfREFUQUJJVFNfNwkJMHgwMgorI2RlZmluZQlVU0FfREFUQUJJVFNfOAkJMHgwMworI2RlZmluZQlTVE9QQklUU181Njc4XzEJMHgwMAkvLyAxIHN0b3AgYml0IGZvciBhbGwgYnl0ZSBzaXplcworI2RlZmluZQlTVE9QQklUU181XzFwNQkweDA0CS8vIDEuNSBzdG9wIGJpdHMgZm9yIDUtYml0IGJ5dGUKKyNkZWZpbmUJU1RPUEJJVFNfNjc4XzIJMHgwNAkvLyAyIHN0b3AgYml0cyBmb3IgNi83LzgtYml0IGJ5dGUKKyNkZWZpbmUJVVNBX1BBUklUWV9OT05FCQkweDAwCisjZGVmaW5lCVVTQV9QQVJJVFlfT0RECQkweDA4CisjZGVmaW5lCVVTQV9QQVJJVFlfRVZFTgkJMHgxOAorI2RlZmluZQlQQVJJVFlfMQkJMHgyOAorI2RlZmluZQlQQVJJVFlfMAkJMHgzOAorCisvLyBhbGwgdGhpbmdzIGNhbGxlZCAiU3RhdHVzTWVzc2FnZSIgYXJlIHNlbnQgb24gdGhlIHN0YXR1cyBlbmRwb2ludAorCitzdHJ1Y3Qga2V5c3Bhbl91c2EyNl9wb3J0U3RhdHVzTWVzc2FnZQkvLyBvbmUgZm9yIGVhY2ggcG9ydAoreworCXU4CXBvcnQsCQkJLy8gQk9USDogMD1maXJzdCwgMT1zZWNvbmQsIG90aGVyPXNlZSBiZWxvdworCQloc2tpYV9jdHMsCQkvLyBVU0EyNjogcmVwb3J0cyBIU0tJQSBwaW4KKwkJCQkJCS8vIFVTQTE3OiByZXBvcnRzIENUUyBwaW4KKwkJZ3BpYV9kY2QsCQkvLyBVU0EyNjogcmVwb3J0cyBHUElBIHBpbgorCQkJCQkJLy8gVVNBMTc6IHJlcG9ydHMgRENEIHBpbgorCQlkc3IsCQkJLy8gVVNBMTc6IHJlcG9ydHMgRFNSIHBpbgorCQlyaSwJCQkJLy8gVVNBMTc6IHJlcG9ydHMgUkkgcGluCisJCV90eE9mZiwJCQkvLyBwb3J0IGhhcyBiZWVuIGRpc2FibGVkIChieSBob3N0KQorCQlfdHhYb2ZmLAkJLy8gcG9ydCBpcyBpbiBYT0ZGIHN0YXRlIChlaXRoZXIgaG9zdCBvciBSWCBYT0ZGKQorCQlyeEVuYWJsZWQsCQkvLyBhcyBjb25maWd1cmVkIGJ5IHJ4T24vcnhPZmYgMT1vbiwgMD1vZmYKKwkJY29udHJvbFJlc3BvbnNlOy8vIDE9YSBjb250cm9sIG1lc3NhZ2UgaGFzIGJlZW4gcHJvY2Vzc2VkCit9OworCisvLyBiaXRzIGluIFJYIGRhdGEgbWVzc2FnZSB3aGVuIFNUQVQgYnl0ZSBpcyBpbmNsdWRlZAorI2RlZmluZQlSWEVSUk9SX09WRVJSVU4JMHgwMgorI2RlZmluZQlSWEVSUk9SX1BBUklUWQkweDA0CisjZGVmaW5lCVJYRVJST1JfRlJBTUlORwkweDA4CisjZGVmaW5lCVJYRVJST1JfQlJFQUsJMHgxMAorCitzdHJ1Y3Qga2V5c3Bhbl91c2EyNl9nbG9iYWxDb250cm9sTWVzc2FnZQoreworCXU4CXNlbmRHbG9iYWxTdGF0dXMsCS8vIDI9cmVxdWVzdCBmb3IgdHdvIHN0YXR1cyByZXNwb25zZXMKKwkJcmVzZXRTdGF0dXNUb2dnbGUsCS8vIDE9cmVzZXQgZ2xvYmFsIHN0YXR1cyB0b2dnbGUKKwkJcmVzZXRTdGF0dXNDb3VudDsJLy8gYSBjeWNsaW5nIHZhbHVlCit9OworCitzdHJ1Y3Qga2V5c3Bhbl91c2EyNl9nbG9iYWxTdGF0dXNNZXNzYWdlCit7CisJdTgJcG9ydCwJCQkJLy8gMworCQlzZW5kR2xvYmFsU3RhdHVzLAkvLyBmcm9tIHJlcXVlc3QsIGRlY3JlbWVudGVkCisJCXJlc2V0U3RhdHVzQ291bnQ7CS8vIGFzIGluIHJlcXVlc3QKK307CisKK3N0cnVjdCBrZXlzcGFuX3VzYTI2X2dsb2JhbERlYnVnTWVzc2FnZQoreworCXU4CXBvcnQsCQkJCS8vIDIKKwkJYSwKKwkJYiwKKwkJYywKKwkJZDsKK307CisKKy8vIGllOiB0aGUgbWF4aW11bSBsZW5ndGggb2YgYW4gRVpVU0IgZW5kcG9pbnQgYnVmZmVyCisjZGVmaW5lCU1BWF9EQVRBX0xFTgkJCTY0CisKKy8vIHVwZGF0ZSBzdGF0dXMgYXBwcm94LiA2MCB0aW1lcyBhIHNlY29uZCAoMTYuNjY2NiBtcykKKyNkZWZpbmUJU1RBVFVTX1VQREFURV9JTlRFUlZBTAkxNgorCisvLyBzdGF0dXMgcmF0aW9uaW5nIHR1bmluZyB2YWx1ZSAoZWFjaCBwb3J0IGdldHMgY2hlY2tlZCBlYWNoIG4gbXMpCisjZGVmaW5lCVNUQVRVU19SQVRJT04JMTAKKworI2VuZGlmCisKKwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMjhfZncuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTI4X2Z3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQ4YjBhMgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTI4X2Z3LmgKQEAgLTAsMCArMSw0NjYgQEAKKy8qIGtleXNwYW5fdXNhMjhfZncuaAorCisJVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gYXMga2V5c3Bhbl91c2EyOF9mdy5oIGlzCisKKwkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKKwkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQorCQkKKwlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKKwlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKKwlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZSAKKwlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlIAorCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbCAKKwlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLiAKKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoICAKKwlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlIAorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gCisJcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCisKKyovCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCBrZXlzcGFuX3VzYTI4X2Zpcm13YXJlW10gPSB7CisgezB4MDAyNiwgMTAsIHsgMHgxMiwgMHgxNywgMHhkYiwgMHgxMiwgMHgxOCwgMHhiNSwgMHgxMiwgMHgxNCwgMHhjMywgMHgyMn19LAorIHsweDAwMzMsICAzLCB7IDB4MDIsIDB4MDAsIDB4MWR9fSwKKyB7MHgwMDFkLCAgNCwgeyAweDUzLCAweGQ4LCAweGVmLCAweDMyfX0sCisgezB4MDAwNiwgMTYsIHsgMHg4ZSwgMHgxMiwgMHg4ZiwgMHgxMywgMHhlNSwgMHgxMywgMHgxNSwgMHgxMywgMHhhZSwgMHgxMiwgMHg3MCwgMHgwMiwgMHgxNSwgMHgxMiwgMHg0ZSwgMHg2MH19LAorIHsweDAwMTYsICA3LCB7IDB4MDUsIDB4MTIsIDB4MTgsIDB4YTQsIDB4ODAsIDB4ZWUsIDB4MjJ9fSwKKyB7MHgwMDAzLCAgMywgeyAweDAyLCAweDAwLCAweDQ2fX0sCisgezB4MDA0NiwgMTYsIHsgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhjMCwgMHhkMCwgMHg3NSwgMHhkMCwgMHgwOH19LAorIHsweDAwNTYsIDE2LCB7IDB4MzAsIDB4OTksIDB4MGUsIDB4MzAsIDB4MTEsIDB4MDcsIDB4YTIsIDB4MTcsIDB4OTIsIDB4OWIsIDB4ODUsIDB4NDYsIDB4OTksIDB4YzIsIDB4OTksIDB4ZDJ9fSwKKyB7MHgwMDY2LCAxNiwgeyAweDFmLCAweDMwLCAweGMxLCAweDBlLCAweDMwLCAweDEyLCAweDA3LCAweGEyLCAweDE4LCAweDkyLCAweGMzLCAweDg1LCAweDQ3LCAweGMxLCAweGMyLCAweGMxfX0sCisgezB4MDA3NiwgMTYsIHsgMHhkMiwgMHgyMCwgMHgyMCwgMHgxZiwgMHgwMywgMHgwMiwgMHgwNCwgMHg0MiwgMHhjMiwgMHgxZiwgMHgyMCwgMHgwMywgMHgwMywgMHgwMiwgMHgwMiwgMHg2N319LAorIHsweDAwODYsIDE2LCB7IDB4MjAsIDB4MTEsIDB4MDMsIDB4MDIsIDB4MDEsIDB4MzgsIDB4ZTUsIDB4NGEsIDB4YzMsIDB4OTUsIDB4N2MsIDB4NTAsIDB4M2UsIDB4MjAsIDB4MTMsIDB4MzZ9fSwKKyB7MHgwMDk2LCAxNiwgeyAweDIwLCAweDBiLCAweDMzLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDIwLCAweGUzLCAweDAzLCAweDIwLCAweDFjLCAweDI5LCAweDMwLCAweDFiLCAweDEyfX0sCisgezB4MDBhNiwgMTYsIHsgMHhhZSwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHg0MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxM319LAorIHsweDAwYjYsIDE2LCB7IDB4OTIsIDB4MTcsIDB4YWUsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4NDAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODN9fSwKKyB7MHgwMGM2LCAxNiwgeyAweGUwLCAweGY1LCAweDQ2LCAweDAyLCAweDA0LCAweDQwLCAweGMyLCAweDExLCAweDAyLCAweDA0LCAweDQwLCAweDkwLCAweDdmLCAweGM3LCAweGU0LCAweGYwfX0sCisgezB4MDBkNiwgMTYsIHsgMHhjMiwgMHgwMywgMHgzMCwgMHgxNSwgMHgwYywgMHhjMiwgMHgxNSwgMHg5MCwgMHg3ZiwgMHhiZiwgMHgwNCwgMHhmMCwgMHhjMiwgMHgxMSwgMHgwMiwgMHgwNH19LAorIHsweDAwZTYsIDE2LCB7IDB4NDAsIDB4OTAsIDB4N2YsIDB4YzgsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDUsIDB4YzIsIDB4MTEsIDB4MDIsIDB4MDQsIDB4NDAsIDB4OTAsIDB4N2YsIDB4Yzl9fSwKKyB7MHgwMGY2LCAxNiwgeyAweGUwLCAweGY1LCAweDdjLCAweDkwLCAweDdkLCAweGMwLCAweGUwLCAweDEzLCAweDkyLCAweDE1LCAweDIwLCAweDEzLCAweDJkLCAweDIwLCAweDBiLCAweDJhfX0sCisgezB4MDA0MywgIDMsIHsgMHgwMiwgMHgxYiwgMHgwMH19LAorIHsweDAwMjMsICAzLCB7IDB4MDIsIDB4MDAsIDB4NDZ9fSwKKyB7MHgwMDNiLCAgMywgeyAweDAyLCAweDAwLCAweDQ2fX0sCisgezB4MDAwMCwgIDMsIHsgMHgwMiwgMHgxNiwgMHgzZH19LAorIHsweDAxMDYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MjAsIDB4ZTMsIDB4MDMsIDB4MjAsIDB4MWMsIDB4MjAsIDB4MzAsIDB4MWIsIDB4MTEsIDB4OTAsIDB4N2QsIDB4YzEsIDB4ZTAsCisgIDB4MTMsIDB4OTIsIDB4MTcsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4NDYsIDB4NzUsIDB4NGEsIDB4MDMsIDB4MDIsIDB4MDQsIDB4NDAsIDB4NzUsIDB4NGEsIDB4MDIsCisgIDB4OTAsIDB4N2QsIDB4YzEsIDB4ZTAsIDB4ZjUsIDB4NDYsIDB4MDIsIDB4MDQsIDB4NDAsIDB4NzUsIDB4NGEsIDB4MDEsIDB4YzIsIDB4MTEsIDB4MDIsIDB4MDQsCisgIDB4NDAsIDB4ZTUsIDB4NGEsIDB4YzMsIDB4OTUsIDB4N2MsIDB4NTAsIDB4MDMsIDB4MDIsIDB4MDEsIDB4ZTAsIDB4OTAsIDB4N2YsIDB4YzYsIDB4ZTB9fSwKKyB7MHgwMTQ2LCA2NCwgeyAweDMwLCAweGUxLCAweDA3LCAweGMyLCAweDIxLCAweGMyLCAweDA1LCAweDAyLCAweDA0LCAweDQwLCAweDkwLCAweDdmLCAweGM3LCAweGUwLCAweGY1LCAweDdjLCAweDkwLAorICAweDdlLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDE1LCAweDMwLCAweDEzLCAweDAzLCAweDAyLCAweDAxLCAweGQ4LCAweDIwLCAweDBiLCAweDcyLCAweDIwLAorICAweDAwLCAweDZmLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDIwLCAweGUzLCAweDAzLCAweDIwLCAweDFjLCAweDY1LCAweDMwLCAweDFiLCAweDEwLCAweDkwLAorICAweDdlLCAweDQxLCAweGUwLCAweDEzLCAweDkyLCAweDliLCAweGEzLCAweGUwLCAweGY1LCAweDk5LCAweDc1LCAweDRhLCAweDAzLCAweDgwLCAweDA5fX0sCisgezB4MDE4NiwgNjQsIHsgMHg5MCwgMHg3ZSwgMHg0MSwgMHhlMCwgMHhmNSwgMHg5OSwgMHg3NSwgMHg0YSwgMHgwMiwgMHhlNSwgMHg0YSwgMHhjMywgMHg5NSwgMHg3YywgMHg0MCwgMHgxNywgMHg5MCwKKyAgMHg3ZiwgMHhjNywgMHhlNCwgMHhmMCwgMHhjMiwgMHgwMywgMHgyMCwgMHgxNSwgMHgwMywgMHgwMiwgMHgwNCwgMHg0MCwgMHhjMiwgMHgxNSwgMHg5MCwgMHg3ZiwKKyAgMHhiZiwgMHgwNCwgMHhmMCwgMHgwMiwgMHgwNCwgMHg0MCwgMHgzMCwgMHgxYiwgMHgxMiwgMHhhZSwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHg0MCwgMHgyZSwKKyAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgxNywgMHhhZSwgMHg0YSwgMHgwNSwgMHg0YX19LAorIHsweDAxYzYsIDY0LCB7IDB4NzQsIDB4NDAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4NDYsIDB4ZDIsIDB4MTEsIDB4MDIsIDB4MDQsCisgIDB4NDAsIDB4NzUsIDB4NGEsIDB4MDEsIDB4YzIsIDB4MjEsIDB4MDIsIDB4MDQsIDB4NDAsIDB4MzAsIDB4MTMsIDB4MDMsIDB4MDIsIDB4MDIsIDB4NjIsIDB4MjAsCisgIDB4MGIsIDB4NzksIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MjAsIDB4ZTMsIDB4MDMsIDB4MjAsIDB4MWMsIDB4NmYsIDB4MzAsIDB4MWIsIDB4MTIsIDB4YWUsCisgIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4NDAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTN9fSwKKyB7MHgwMjA2LCA2NCwgeyAweDkyLCAweDliLCAweGFlLCAweDRhLCAweDA1LCAweDRhLCAweDc0LCAweDQwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLAorICAweGY1LCAweDk5LCAweGU1LCAweDRhLCAweGMzLCAweDk1LCAweDdjLCAweDQwLCAweDE3LCAweDkwLCAweDdmLCAweGM3LCAweGU0LCAweGYwLCAweGMyLCAweDAzLAorICAweDIwLCAweDE1LCAweDAzLCAweDAyLCAweDA0LCAweDQwLCAweGMyLCAweDE1LCAweDkwLCAweDdmLCAweGJmLCAweDA0LCAweGYwLCAweDAyLCAweDA0LCAweDQwLAorICAweDMwLCAweDFiLCAweDEyLCAweGFlLCAweDRhLCAweDA1LCAweDRhLCAweDc0LCAweDQwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlfX0sCisgezB4MDI0NiwgNjQsIHsgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgxNywgMHhhZSwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHg0MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwKKyAgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHg0NiwgMHhkMiwgMHgxMSwgMHgwMiwgMHgwNCwgMHg0MCwgMHhjMiwgMHgyMSwgMHgwMiwgMHgwNCwgMHg0MCwKKyAgMHgyMCwgMHgxMSwgMHgwMywgMHgwMiwgMHgwMywgMHgxOSwgMHhlNSwgMHg0YSwgMHhjMywgMHg5NSwgMHg3YywgMHg1MCwgMHgzZSwgMHgyMCwgMHgxMywgMHgzNiwKKyAgMHgyMCwgMHgwYiwgMHgzMywgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgyMCwgMHhlMywgMHgwMywgMHgyMCwgMHgxYywgMHgyOSwgMHgzMCwgMHgxYn19LAorIHsweDAyODYsIDY0LCB7IDB4MTIsIDB4YWUsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4YzAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsCisgIDB4OTIsIDB4MTcsIDB4YWUsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4YzAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsCisgIDB4ZTAsIDB4ZjUsIDB4NDYsIDB4MDIsIDB4MDQsIDB4NDAsIDB4YzIsIDB4MTEsIDB4MDIsIDB4MDQsIDB4NDAsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTQsIDB4ZjAsCisgIDB4ZDIsIDB4MDMsIDB4MzAsIDB4MTUsIDB4MGMsIDB4YzIsIDB4MTUsIDB4OTAsIDB4N2YsIDB4YmYsIDB4MDQsIDB4ZjAsIDB4YzIsIDB4MTEsIDB4MDJ9fSwKKyB7MHgwMmM2LCA2NCwgeyAweDA0LCAweDQwLCAweDkwLCAweDdmLCAweGM2LCAweGUwLCAweDMwLCAweGUxLCAweDA1LCAweGMyLCAweDExLCAweDAyLCAweDA0LCAweDQwLCAweDkwLCAweDdmLCAweGM3LAorICAweGUwLCAweGY1LCAweDdjLCAweDkwLCAweDdlLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDE1LCAweDIwLCAweDEzLCAweDJkLCAweDIwLCAweDBiLCAweDJhLAorICAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDIwLCAweGUzLCAweDAzLCAweDIwLCAweDFjLCAweDIwLCAweDMwLCAweDFiLCAweDExLCAweDkwLCAweDdlLCAweDQxLAorICAweGUwLCAweDEzLCAweDkyLCAweDE3LCAweGEzLCAweGUwLCAweGY1LCAweDQ2LCAweDc1LCAweDRhLCAweDAzLCAweDAyLCAweDA0LCAweDQwLCAweDc1fX0sCisgezB4MDMwNiwgNjQsIHsgMHg0YSwgMHgwMiwgMHg5MCwgMHg3ZSwgMHg0MSwgMHhlMCwgMHhmNSwgMHg0NiwgMHgwMiwgMHgwNCwgMHg0MCwgMHg3NSwgMHg0YSwgMHgwMSwgMHhjMiwgMHgxMSwgMHgwMiwKKyAgMHgwNCwgMHg0MCwgMHhlNSwgMHg0YSwgMHhjMywgMHg5NSwgMHg3YywgMHg1MCwgMHgwMywgMHgwMiwgMHgwMywgMHhjMSwgMHg5MCwgMHg3ZiwgMHhjOCwgMHhlMCwKKyAgMHgzMCwgMHhlMSwgMHgwNywgMHhjMiwgMHgyMSwgMHhjMiwgMHgwNSwgMHgwMiwgMHgwNCwgMHg0MCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlMCwgMHhmNSwgMHg3YywKKyAgMHg5MCwgMHg3ZCwgMHhjMCwgMHhlMCwgMHgxMywgMHg5MiwgMHgxNSwgMHgzMCwgMHgxMywgMHgwMywgMHgwMiwgMHgwMywgMHhiOSwgMHgyMCwgMHgwYn19LAorIHsweDAzNDYsIDY0LCB7IDB4NzIsIDB4MjAsIDB4MDAsIDB4NmYsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MjAsIDB4ZTMsIDB4MDMsIDB4MjAsIDB4MWMsIDB4NjUsIDB4MzAsIDB4MWIsIDB4MTAsCisgIDB4OTAsIDB4N2QsIDB4YzEsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4OWIsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzUsIDB4NGEsIDB4MDMsIDB4ODAsIDB4MDksCisgIDB4OTAsIDB4N2QsIDB4YzEsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzUsIDB4NGEsIDB4MDIsIDB4ZTUsIDB4NGEsIDB4YzMsIDB4OTUsIDB4N2MsIDB4NDAsIDB4MTcsCisgIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTQsIDB4ZjAsIDB4ZDIsIDB4MDMsIDB4MjAsIDB4MTUsIDB4MDMsIDB4MDIsIDB4MDQsIDB4NDAsIDB4YzIsIDB4MTV9fSwKKyB7MHgwMzg2LCA2NCwgeyAweDkwLCAweDdmLCAweGJmLCAweDA0LCAweGYwLCAweDAyLCAweDA0LCAweDQwLCAweDMwLCAweDFiLCAweDEyLCAweGFlLCAweDRhLCAweDA1LCAweDRhLCAweDc0LCAweGMwLAorICAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDE3LCAweGFlLCAweDRhLCAweDA1LCAweDRhLAorICAweDc0LCAweGMwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDQ2LCAweGQyLCAweDExLCAweDAyLAorICAweDA0LCAweDQwLCAweDc1LCAweDRhLCAweDAxLCAweGMyLCAweDIxLCAweDAyLCAweDA0LCAweDQwLCAweDMwLCAweDEzLCAweDAzLCAweDAyLCAweDA0fX0sCisgezB4MDNjNiwgNjQsIHsgMHgzZSwgMHgyMCwgMHgwYiwgMHg3NCwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgyMCwgMHhlMywgMHgwMywgMHgyMCwgMHgxYywgMHg2YSwgMHgzMCwgMHgxYiwgMHgxMiwKKyAgMHhhZSwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHhjMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywKKyAgMHg5MiwgMHg5YiwgMHhhZSwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHhjMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywKKyAgMHhlMCwgMHhmNSwgMHg5OSwgMHhlNSwgMHg0YSwgMHhjMywgMHg5NSwgMHg3YywgMHg0MCwgMHgxMywgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlNCwgMHhmMH19LAorIHsweDA0MDYsIDY0LCB7IDB4ZDIsIDB4MDMsIDB4MzAsIDB4MTUsIDB4MzUsIDB4YzIsIDB4MTUsIDB4OTAsIDB4N2YsIDB4YmYsIDB4MDQsIDB4ZjAsIDB4ODAsIDB4MmMsIDB4MzAsIDB4MWIsIDB4MTIsCisgIDB4YWUsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4YzAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsCisgIDB4OTIsIDB4MTcsIDB4YWUsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4YzAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsCisgIDB4ZTAsIDB4ZjUsIDB4NDYsIDB4ZDIsIDB4MTEsIDB4ODAsIDB4MDIsIDB4YzIsIDB4MjEsIDB4ZDIsIDB4MjUsIDB4MjAsIDB4MjAsIDB4MDMsIDB4MDJ9fSwKKyB7MHgwNDQ2LCA2NCwgeyAweDA4LCAweDBjLCAweGMyLCAweDIwLCAweDIwLCAweDA0LCAweDAzLCAweDAyLCAweDA2LCAweDMxLCAweDIwLCAweDEyLCAweDAzLCAweDAyLCAweDA1LCAweDAyLCAweGU1LAorICAweDRiLCAweGMzLCAweDk1LCAweDdkLCAweDUwLCAweDNlLCAweDIwLCAweDE0LCAweDM2LCAweDIwLCAweDBkLCAweDMzLCAweDkwLCAweDdmLCAweDlhLCAweGUwLAorICAweDIwLCAweGU1LCAweDAzLCAweDIwLCAweDFlLCAweDI5LCAweDMwLCAweDFkLCAweDEyLCAweGFlLCAweDRiLCAweDA1LCAweDRiLCAweDc0LCAweDQwLCAweDJlLAorICAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDE4LCAweGFlLCAweDRiLCAweDA1LCAweDRifX0sCisgezB4MDQ4NiwgNjQsIHsgMHg3NCwgMHg0MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHg0NywgMHgwMiwgMHgwOCwgMHgwYSwgMHhjMiwKKyAgMHgxMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhlNCwgMHhmMCwgMHhjMiwgMHgwNCwgMHgzMCwgMHgxNiwgMHgwYywgMHhjMiwgMHgxNiwKKyAgMHg5MCwgMHg3ZiwgMHhjMSwgMHgwNCwgMHhmMCwgMHhjMiwgMHgxMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjYywgMHhlMCwgMHgzMCwgMHhlMSwKKyAgMHgwNSwgMHhjMiwgMHgxMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhlMCwgMHhmNSwgMHg3ZCwgMHg5MCwgMHg3YywgMHhjMH19LAorIHsweDA0YzYsIDY0LCB7IDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTYsIDB4MjAsIDB4MTQsIDB4MmQsIDB4MjAsIDB4MGQsIDB4MmEsIDB4OTAsIDB4N2YsIDB4OWEsIDB4ZTAsIDB4MjAsIDB4ZTUsIDB4MDMsCisgIDB4MjAsIDB4MWUsIDB4MjAsIDB4MzAsIDB4MWQsIDB4MTEsIDB4OTAsIDB4N2MsIDB4YzEsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4ZjUsCisgIDB4NDcsIDB4NzUsIDB4NGIsIDB4MDMsIDB4MDIsIDB4MDgsIDB4MGEsIDB4NzUsIDB4NGIsIDB4MDIsIDB4OTAsIDB4N2MsIDB4YzEsIDB4ZTAsIDB4ZjUsIDB4NDcsCisgIDB4MDIsIDB4MDgsIDB4MGEsIDB4NzUsIDB4NGIsIDB4MDEsIDB4YzIsIDB4MTIsIDB4MDIsIDB4MDgsIDB4MGEsIDB4ZTUsIDB4NGIsIDB4YzMsIDB4OTV9fSwKKyB7MHgwNTA2LCA2NCwgeyAweDdkLCAweDUwLCAweDAzLCAweDAyLCAweDA1LCAweGFhLCAweDkwLCAweDdmLCAweGNhLCAweGUwLCAweDMwLCAweGUxLCAweDA3LCAweGMyLCAweDIyLCAweGMyLCAweDA2LAorICAweDAyLCAweDA4LCAweDBhLCAweDkwLCAweDdmLCAweGNiLCAweGUwLCAweGY1LCAweDdkLCAweDkwLCAweDdkLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDE2LAorICAweDMwLCAweDE0LCAweDAzLCAweDAyLCAweDA1LCAweGEyLCAweDIwLCAweDBkLCAweDcyLCAweDIwLCAweDAwLCAweDZmLCAweDkwLCAweDdmLCAweDlhLCAweGUwLAorICAweDIwLCAweGU1LCAweDAzLCAweDIwLCAweDFlLCAweDY1LCAweDMwLCAweDFkLCAweDEwLCAweDkwLCAweDdkLCAweDQxLCAweGUwLCAweDEzLCAweDkyfX0sCisgezB4MDU0NiwgNjQsIHsgMHhjMywgMHhhMywgMHhlMCwgMHhmNSwgMHhjMSwgMHg3NSwgMHg0YiwgMHgwMywgMHg4MCwgMHgwOSwgMHg5MCwgMHg3ZCwgMHg0MSwgMHhlMCwgMHhmNSwgMHhjMSwgMHg3NSwKKyAgMHg0YiwgMHgwMiwgMHhlNSwgMHg0YiwgMHhjMywgMHg5NSwgMHg3ZCwgMHg0MCwgMHgxNywgMHg5MCwgMHg3ZiwgMHhjYiwgMHhlNCwgMHhmMCwgMHhjMiwgMHgwNCwKKyAgMHgyMCwgMHgxNiwgMHgwMywgMHgwMiwgMHgwOCwgMHgwYSwgMHhjMiwgMHgxNiwgMHg5MCwgMHg3ZiwgMHhjMSwgMHgwNCwgMHhmMCwgMHgwMiwgMHgwOCwgMHgwYSwKKyAgMHgzMCwgMHgxZCwgMHgxMiwgMHhhZSwgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwgMHg0MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZH19LAorIHsweDA1ODYsIDY0LCB7IDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTgsIDB4YWUsIDB4NGIsIDB4MDUsIDB4NGIsIDB4NzQsIDB4NDAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsCisgIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4NDcsIDB4ZDIsIDB4MTIsIDB4MDIsIDB4MDgsIDB4MGEsIDB4NzUsIDB4NGIsIDB4MDEsIDB4YzIsIDB4MjIsCisgIDB4MDIsIDB4MDgsIDB4MGEsIDB4MzAsIDB4MTQsIDB4MDMsIDB4MDIsIDB4MDYsIDB4MmMsIDB4MjAsIDB4MGQsIDB4NzksIDB4OTAsIDB4N2YsIDB4OWEsIDB4ZTAsCisgIDB4MjAsIDB4ZTUsIDB4MDMsIDB4MjAsIDB4MWUsIDB4NmYsIDB4MzAsIDB4MWQsIDB4MTIsIDB4YWUsIDB4NGIsIDB4MDUsIDB4NGIsIDB4NzQsIDB4NDB9fSwKKyB7MHgwNWM2LCA2NCwgeyAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweGMzLCAweGFlLCAweDRiLCAweDA1LCAweDRiLCAweDc0LAorICAweDQwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweGMxLCAweGU1LCAweDRiLCAweGMzLCAweDk1LAorICAweDdkLCAweDQwLCAweDE3LCAweDkwLCAweDdmLCAweGNiLCAweGU0LCAweGYwLCAweGMyLCAweDA0LCAweDIwLCAweDE2LCAweDAzLCAweDAyLCAweDA4LCAweDBhLAorICAweGMyLCAweDE2LCAweDkwLCAweDdmLCAweGMxLCAweDA0LCAweGYwLCAweDAyLCAweDA4LCAweDBhLCAweDMwLCAweDFkLCAweDEyLCAweGFlLCAweDRifX0sCisgezB4MDYwNiwgNjQsIHsgMHgwNSwgMHg0YiwgMHg3NCwgMHg0MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgxOCwgMHhhZSwKKyAgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwgMHg0MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHg0NywKKyAgMHhkMiwgMHgxMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHhjMiwgMHgyMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHgyMCwgMHgxMiwgMHgwMywgMHgwMiwgMHgwNiwgMHhlMywKKyAgMHhlNSwgMHg0YiwgMHhjMywgMHg5NSwgMHg3ZCwgMHg1MCwgMHgzZSwgMHgyMCwgMHgxNCwgMHgzNiwgMHgyMCwgMHgwZCwgMHgzMywgMHg5MCwgMHg3Zn19LAorIHsweDA2NDYsIDY0LCB7IDB4OWEsIDB4ZTAsIDB4MjAsIDB4ZTUsIDB4MDMsIDB4MjAsIDB4MWUsIDB4MjksIDB4MzAsIDB4MWQsIDB4MTIsIDB4YWUsIDB4NGIsIDB4MDUsIDB4NGIsIDB4NzQsIDB4YzAsCisgIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTgsIDB4YWUsIDB4NGIsIDB4MDUsIDB4NGIsCisgIDB4NzQsIDB4YzAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4NDcsIDB4MDIsIDB4MDgsIDB4MGEsCisgIDB4YzIsIDB4MTIsIDB4MDIsIDB4MDgsIDB4MGEsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTQsIDB4ZjAsIDB4ZDIsIDB4MDQsIDB4MzAsIDB4MTYsIDB4MGN9fSwKKyB7MHgwNjg2LCA2NCwgeyAweGMyLCAweDE2LCAweDkwLCAweDdmLCAweGMxLCAweDA0LCAweGYwLCAweGMyLCAweDEyLCAweDAyLCAweDA4LCAweDBhLCAweDkwLCAweDdmLCAweGNhLCAweGUwLCAweDMwLAorICAweGUxLCAweDA1LCAweGMyLCAweDEyLCAweDAyLCAweDA4LCAweDBhLCAweDkwLCAweDdmLCAweGNiLCAweGUwLCAweGY1LCAweDdkLCAweDkwLCAweDdkLCAweDQwLAorICAweGUwLCAweDEzLCAweDkyLCAweDE2LCAweDIwLCAweDE0LCAweDJkLCAweDIwLCAweDBkLCAweDJhLCAweDkwLCAweDdmLCAweDlhLCAweGUwLCAweDIwLCAweGU1LAorICAweDAzLCAweDIwLCAweDFlLCAweDIwLCAweDMwLCAweDFkLCAweDExLCAweDkwLCAweDdkLCAweDQxLCAweGUwLCAweDEzLCAweDkyLCAweDE4LCAweGEzfX0sCisgezB4MDZjNiwgNjQsIHsgMHhlMCwgMHhmNSwgMHg0NywgMHg3NSwgMHg0YiwgMHgwMywgMHgwMiwgMHgwOCwgMHgwYSwgMHg3NSwgMHg0YiwgMHgwMiwgMHg5MCwgMHg3ZCwgMHg0MSwgMHhlMCwgMHhmNSwKKyAgMHg0NywgMHgwMiwgMHgwOCwgMHgwYSwgMHg3NSwgMHg0YiwgMHgwMSwgMHhjMiwgMHgxMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHhlNSwgMHg0YiwgMHhjMywgMHg5NSwKKyAgMHg3ZCwgMHg1MCwgMHgwMywgMHgwMiwgMHgwNywgMHg4YiwgMHg5MCwgMHg3ZiwgMHhjYywgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNywgMHhjMiwgMHgyMiwgMHhjMiwKKyAgMHgwNiwgMHgwMiwgMHgwOCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhlMCwgMHhmNSwgMHg3ZCwgMHg5MCwgMHg3YywgMHhjMCwgMHhlMCwgMHgxM319LAorIHsweDA3MDYsIDY0LCB7IDB4OTIsIDB4MTYsIDB4MzAsIDB4MTQsIDB4MDMsIDB4MDIsIDB4MDcsIDB4ODMsIDB4MjAsIDB4MGQsIDB4NzIsIDB4MjAsIDB4MDAsIDB4NmYsIDB4OTAsIDB4N2YsIDB4OWEsCisgIDB4ZTAsIDB4MjAsIDB4ZTUsIDB4MDMsIDB4MjAsIDB4MWUsIDB4NjUsIDB4MzAsIDB4MWQsIDB4MTAsIDB4OTAsIDB4N2MsIDB4YzEsIDB4ZTAsIDB4MTMsIDB4OTIsCisgIDB4YzMsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4YzEsIDB4NzUsIDB4NGIsIDB4MDMsIDB4ODAsIDB4MDksIDB4OTAsIDB4N2MsIDB4YzEsIDB4ZTAsIDB4ZjUsIDB4YzEsCisgIDB4NzUsIDB4NGIsIDB4MDIsIDB4ZTUsIDB4NGIsIDB4YzMsIDB4OTUsIDB4N2QsIDB4NDAsIDB4MTcsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTQsIDB4ZjB9fSwKKyB7MHgwNzQ2LCA2NCwgeyAweGQyLCAweDA0LCAweDIwLCAweDE2LCAweDAzLCAweDAyLCAweDA4LCAweDBhLCAweGMyLCAweDE2LCAweDkwLCAweDdmLCAweGMxLCAweDA0LCAweGYwLCAweDAyLCAweDA4LAorICAweDBhLCAweDMwLCAweDFkLCAweDEyLCAweGFlLCAweDRiLCAweDA1LCAweDRiLCAweDc0LCAweGMwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdjLAorICAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDE4LCAweGFlLCAweDRiLCAweDA1LCAweDRiLCAweDc0LCAweGMwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LAorICAweDM0LCAweDdjLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDQ3LCAweGQyLCAweDEyLCAweDAyLCAweDA4LCAweDBhLCAweDc1LCAweDRiLCAweDAxfX0sCisgezB4MDc4NiwgNjQsIHsgMHhjMiwgMHgyMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHgzMCwgMHgxNCwgMHgwMywgMHgwMiwgMHgwOCwgMHgwOCwgMHgyMCwgMHgwZCwgMHg3NCwgMHg5MCwgMHg3ZiwgMHg5YSwKKyAgMHhlMCwgMHgyMCwgMHhlNSwgMHgwMywgMHgyMCwgMHgxZSwgMHg2YSwgMHgzMCwgMHgxZCwgMHgxMiwgMHhhZSwgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwgMHhjMCwKKyAgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YywgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHhjMywgMHhhZSwgMHg0YiwgMHgwNSwgMHg0YiwKKyAgMHg3NCwgMHhjMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YywgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHhjMSwgMHhlNSwgMHg0Yn19LAorIHsweDA3YzYsIDY0LCB7IDB4YzMsIDB4OTUsIDB4N2QsIDB4NDAsIDB4MTMsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTQsIDB4ZjAsIDB4ZDIsIDB4MDQsIDB4MzAsIDB4MTYsIDB4MzUsIDB4YzIsIDB4MTYsCisgIDB4OTAsIDB4N2YsIDB4YzEsIDB4MDQsIDB4ZjAsIDB4ODAsIDB4MmMsIDB4MzAsIDB4MWQsIDB4MTIsIDB4YWUsIDB4NGIsIDB4MDUsIDB4NGIsIDB4NzQsIDB4YzAsCisgIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTgsIDB4YWUsIDB4NGIsIDB4MDUsIDB4NGIsCisgIDB4NzQsIDB4YzAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4NDcsIDB4ZDIsIDB4MTJ9fSwKKyB7MHgwODA2LCA2NCwgeyAweDgwLCAweDAyLCAweGMyLCAweDIyLCAweGQyLCAweDI1LCAweDIwLCAweDk4LCAweDAzLCAweDAyLCAweDA5LCAweDNlLCAweGMyLCAweDk4LCAweDIwLCAweDAxLCAweDAzLAorICAweDAyLCAweDA4LCAweGIwLCAweDIwLCAweDIzLCAweDI3LCAweGFlLCAweDQ4LCAweDA1LCAweDQ4LCAweDc0LCAweDgwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LAorICAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk5LCAweGYwLCAweDMwLCAweDFiLCAweDQ5LCAweGFlLCAweDQ4LCAweDA1LCAweDQ4LCAweDc0LCAweDgwLAorICAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk4LCAweGYwLCAweDgwLCAweDM2LCAweGFmLCAweDk5fX0sCisgezB4MDg0NiwgNjQsIHsgMHhlZiwgMHhiNSwgMHg1OCwgMHgwNCwgMHhkMiwgMHgwYiwgMHg4MCwgMHgyYywgMHhlZiwgMHhiNSwgMHg1NywgMHgwNCwgMHhjMiwgMHgwYiwgMHg4MCwgMHgyNCwgMHhhZSwKKyAgMHg0OCwgMHgwNSwgMHg0OCwgMHg3NCwgMHg4MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgzMCwKKyAgMHgxYiwgMHgxMSwgMHhhZSwgMHg0OCwgMHgwNSwgMHg0OCwgMHg3NCwgMHg4MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywKKyAgMHhlNSwgMHg5OCwgMHhmMCwgMHhkMiwgMHgxOSwgMHhlNSwgMHg0OCwgMHhjMywgMHg5NSwgMHg1NCwgMHg1MCwgMHgwMywgMHgwMiwgMHgwOSwgMHgzY319LAorIHsweDA4ODYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4YjgsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MTUsIDB4ZTUsIDB4NDgsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4MDMsIDB4MDIsIDB4MDksIDB4M2MsCisgIDB4MTUsIDB4NDgsIDB4MTUsIDB4NDgsIDB4MDUsIDB4MmQsIDB4ZDIsIDB4MGMsIDB4MDIsIDB4MDksIDB4M2MsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZTUsIDB4NDgsCisgIDB4ZjAsIDB4NzUsIDB4NDgsIDB4MDAsIDB4YzIsIDB4MDEsIDB4MDIsIDB4MDksIDB4M2MsIDB4MjAsIDB4MjMsIDB4MjcsIDB4YWUsIDB4NDgsIDB4MDUsIDB4NDgsCisgIDB4NzQsIDB4MDAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTksIDB4ZjAsIDB4MzAsIDB4MWJ9fSwKKyB7MHgwOGM2LCA2NCwgeyAweDQ5LCAweGFlLCAweDQ4LCAweDA1LCAweDQ4LCAweDc0LCAweDAwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk4LAorICAweGYwLCAweDgwLCAweDM2LCAweGFmLCAweDk5LCAweGVmLCAweGI1LCAweDU4LCAweDA0LCAweGQyLCAweDBiLCAweDgwLCAweDJjLCAweGVmLCAweGI1LCAweDU3LAorICAweDA0LCAweGMyLCAweDBiLCAweDgwLCAweDI0LCAweGFlLCAweDQ4LCAweDA1LCAweDQ4LCAweDc0LCAweDAwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LAorICAweDdlLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDMwLCAweDFiLCAweDExLCAweGFlLCAweDQ4LCAweDA1LCAweDQ4LCAweDc0LCAweDAwLCAweDJlfX0sCisgezB4MDkwNiwgNjQsIHsgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg5OCwgMHhmMCwgMHhkMiwgMHgxOSwgMHhlNSwgMHg0OCwgMHhjMywgMHg5NSwgMHg1NCwKKyAgMHg0MCwgMHgyMywgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgxMSwgMHhlNSwgMHg0OCwgMHhjMywgMHg5NCwgMHg0MCwgMHg0MCwgMHgxNSwKKyAgMHgxNSwgMHg0OCwgMHgxNSwgMHg0OCwgMHgwNSwgMHgyZCwgMHhkMiwgMHgwYywgMHg4MCwgMHgwYiwgMHg5MCwgMHg3ZiwgMHhiOSwgMHhlNSwgMHg0OCwgMHhmMCwKKyAgMHg3NSwgMHg0OCwgMHgwMCwgMHhkMiwgMHgwMSwgMHhkMiwgMHgyNSwgMHgyMCwgMHhjMCwgMHgwMywgMHgwMiwgMHgwYSwgMHg3MCwgMHhjMiwgMHhjMH19LAorIHsweDA5NDYsIDY0LCB7IDB4MjAsIDB4MDIsIDB4MDMsIDB4MDIsIDB4MDksIDB4ZTIsIDB4MjAsIDB4MjQsIDB4MjcsIDB4YWUsIDB4NDksIDB4MDUsIDB4NDksIDB4NzQsIDB4ODAsIDB4MmUsIDB4ZjUsCisgIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4YzEsIDB4ZjAsIDB4MzAsIDB4MWQsIDB4NDksIDB4YWUsIDB4NDksIDB4MDUsIDB4NDksCisgIDB4NzQsIDB4ODAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4YzAsIDB4ZjAsIDB4ODAsIDB4MzYsIDB4YWYsCisgIDB4YzEsIDB4ZWYsIDB4YjUsIDB4NzAsIDB4MDQsIDB4ZDIsIDB4MGQsIDB4ODAsIDB4MmMsIDB4ZWYsIDB4YjUsIDB4NmYsIDB4MDQsIDB4YzIsIDB4MGR9fSwKKyB7MHgwOTg2LCA2NCwgeyAweDgwLCAweDI0LCAweGFlLCAweDQ5LCAweDA1LCAweDQ5LCAweDc0LCAweDgwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGVmLAorICAweGYwLCAweDMwLCAweDFkLCAweDExLCAweGFlLCAweDQ5LCAweDA1LCAweDQ5LCAweDc0LCAweDgwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLAorICAweGY1LCAweDgzLCAweGU1LCAweGMwLCAweGYwLCAweGQyLCAweDFhLCAweGU1LCAweDQ5LCAweGMzLCAweDk1LCAweDZjLCAweDUwLCAweDAzLCAweDAyLCAweDBhLAorICAweDZlLCAweDkwLCAweDdmLCAweGJjLCAweGUwLCAweDMwLCAweGUxLCAweDE1LCAweGU1LCAweDQ5LCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDAzfX0sCisgezB4MDljNiwgNjQsIHsgMHgwMiwgMHgwYSwgMHg2ZSwgMHgxNSwgMHg0OSwgMHgxNSwgMHg0OSwgMHgwNSwgMHgzOSwgMHhkMiwgMHgwZSwgMHgwMiwgMHgwYSwgMHg2ZSwgMHg5MCwgMHg3ZiwgMHhiYiwKKyAgMHhlNSwgMHg0OSwgMHhmMCwgMHg3NSwgMHg0OSwgMHgwMCwgMHhjMiwgMHgwMiwgMHgwMiwgMHgwYSwgMHg2ZSwgMHgyMCwgMHgyNCwgMHgyNywgMHhhZSwgMHg0OSwKKyAgMHgwNSwgMHg0OSwgMHg3NCwgMHgwMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlNSwgMHhjMSwgMHhmMCwgMHgzMCwKKyAgMHgxZCwgMHg0OSwgMHhhZSwgMHg0OSwgMHgwNSwgMHg0OSwgMHg3NCwgMHgwMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNX19LAorIHsweDBhMDYsIDY0LCB7IDB4ODMsIDB4ZTUsIDB4YzAsIDB4ZjAsIDB4ODAsIDB4MzYsIDB4YWYsIDB4YzEsIDB4ZWYsIDB4YjUsIDB4NzAsIDB4MDQsIDB4ZDIsIDB4MGQsIDB4ODAsIDB4MmMsIDB4ZWYsCisgIDB4YjUsIDB4NmYsIDB4MDQsIDB4YzIsIDB4MGQsIDB4ODAsIDB4MjQsIDB4YWUsIDB4NDksIDB4MDUsIDB4NDksIDB4NzQsIDB4MDAsIDB4MmUsIDB4ZjUsIDB4ODIsCisgIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MzAsIDB4MWQsIDB4MTEsIDB4YWUsIDB4NDksIDB4MDUsIDB4NDksIDB4NzQsIDB4MDAsCisgIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4YzAsIDB4ZjAsIDB4ZDIsIDB4MWEsIDB4ZTUsIDB4NDl9fSwKKyB7MHgwYTQ2LCA2NCwgeyAweGMzLCAweDk1LCAweDZjLCAweDQwLCAweDIzLCAweDkwLCAweDdmLCAweGJhLCAweGUwLCAweDMwLCAweGUxLCAweDExLCAweGU1LCAweDQ5LCAweGMzLCAweDk0LCAweDQwLAorICAweDQwLCAweDE1LCAweDE1LCAweDQ5LCAweDE1LCAweDQ5LCAweDA1LCAweDM5LCAweGQyLCAweDBlLCAweDgwLCAweDBiLCAweDkwLCAweDdmLCAweGJkLCAweGU1LAorICAweDQ5LCAweGYwLCAweDc1LCAweDQ5LCAweDAwLCAweGQyLCAweDAyLCAweGQyLCAweDI1LCAweDMwLCAweDI1LCAweDA1LCAweGMyLCAweDI1LCAweDAyLCAweDAwLAorICAweDU2LCAweGQwLCAweGQwLCAweGQwLCAweDg2LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdmLCAweGNlfX0sCisgezB4MGE4NiwgNjQsIHsgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwYiwgMHhhNSwgMHhlNCwgMHhmNSwgMHgxMiwgMHg3NCwgMHg0MCwgMHgyNSwgMHgxMiwgMHhmNSwgMHg4MiwgMHhlNCwKKyAgMHgzNCwgMHg3YywgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxMiwgMHg3YywgMHgwMCwgMHg3YiwgMHgwMCwgMHgyNCwgMHg0YywgMHhmOSwgMHhlYywKKyAgMHgzNCwgMHgwMCwgMHhmYSwgMHhlZiwgMHgxMiwgMHgxNSwgMHhjZCwgMHgwNSwgMHgxMiwgMHhlNSwgMHgxMiwgMHhiNCwgMHgxOCwgMHhkYiwgMHhlNSwgMHg0YywKKyAgMHg2MCwgMHgwYywgMHg3NSwgMHhjOSwgMHgyMCwgMHg3NSwgMHhjOCwgMHgzNiwgMHg4NSwgMHg0ZCwgMHhjYSwgMHg4NSwgMHg0ZSwgMHhjYiwgMHhlNX19LAorIHsweDBhYzYsIDY0LCB7IDB4NGYsIDB4MTMsIDB4OTIsIDB4MWIsIDB4OTIsIDB4OWYsIDB4ZTUsIDB4NTAsIDB4MTMsIDB4OTIsIDB4MWMsIDB4ZTUsIDB4NTEsIDB4MTMsIDB4OTIsIDB4MjMsIDB4ZTUsCisgIDB4NTIsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsCisgIDB4NDQsIDB4MDQsIDB4ZjAsIDB4ZTUsIDB4NTMsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4ODAsIDB4MDcsCisgIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ZTUsIDB4NTksIDB4NjAsIDB4MGIsIDB4YzIsIDB4MTMsIDB4YzIsIDB4MGJ9fSwKKyB7MHgwYjA2LCA2NCwgeyAweDkwLCAweDdmLCAweDk1LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDVhLCAweDYwLCAweDBiLCAweGQyLCAweDBiLCAweGQyLCAweDBjLCAweDkwLCAweDdmLAorICAweDk1LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDViLCAweDYwLCAweDBkLCAweGMyLCAweGFmLCAweGMyLCAweDExLCAweGQyLCAweDAwLCAweGU0LAorICAweGY1LCAweDdjLCAweGY1LCAweDRhLCAweGQyLCAweGFmLCAweGU1LCAweDVjLCAweDYwLCAweDA1LCAweDMwLCAweDIzLCAweDAyLCAweGQyLCAweDBiLCAweGU1LAorICAweDVkLCAweDYwLCAweDE1LCAweDkwLCAweDdmLCAweDk1LCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweGUwLCAweDQ0fX0sCisgezB4MGI0NiwgNjQsIHsgMHgwMiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHhlNSwgMHg1ZSwgMHg2MCwgMHgwYSwgMHhkMiwgMHg5YywgMHhjMiwgMHg5OCwKKyAgMHg3NSwgMHgyZSwgMHgwMSwgMHg3NSwgMHg0MCwgMHgyOCwgMHhlNSwgMHg1ZiwgMHg2MCwgMHgwNywgMHhjMiwgMHg5YywgMHhlNCwgMHhmNSwgMHg0OCwgMHhmNSwKKyAgMHgyZSwgMHhlNSwgMHg2MCwgMHg2MCwgMHgwMywgMHhlNCwgMHhmNSwgMHg0OCwgMHhlNSwgMHg2MSwgMHg2MCwgMHgwMiwgMHhkMiwgMHgwNywgMHhlNSwgMHg2MiwKKyAgMHg2MCwgMHgwOCwgMHhlNSwgMHg1ZSwgMHg3MCwgMHgwMiwgMHhmNSwgMHg0MCwgMHhkMiwgMHgwYywgMHhlNSwgMHg2MywgMHg2MCwgMHgxOSwgMHg5MH19LAorIHsweDBiODYsIDY0LCB7IDB4N2YsIDB4ZDcsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4NzQsIDB4MzEsIDB4ZjAsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4NzQsIDB4MzIsIDB4ZjAsIDB4NzQsIDB4MTUsIDB4ZjAsCisgIDB4NzQsIDB4MzUsIDB4ZjAsIDB4ZDIsIDB4MDMsIDB4ZDIsIDB4MDEsIDB4ZDIsIDB4MDksIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2YsIDB4ZjAsIDB4YTIsIDB4MTMsCisgIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4NjUsIDB4MmIsIDB4NjAsIDB4MDQsIDB4OGYsIDB4MmIsIDB4ZDIsIDB4MGMsIDB4YTIsIDB4MGIsIDB4ZTQsIDB4MzMsIDB4ZmYsCisgIDB4NjUsIDB4MmMsIDB4NjAsIDB4MDQsIDB4OGYsIDB4MmMsIDB4ZDIsIDB4MGMsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4NTQsIDB4MDgsIDB4NjV9fSwKKyB7MHgwYmM2LCA2NCwgeyAweDI3LCAweDYwLCAweDA3LCAweGUwLCAweDU0LCAweDA4LCAweGY1LCAweDI3LCAweGQyLCAweDBjLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU0LCAweDQwLCAweGI1LAorICAweDI5LCAweDA5LCAweGUwLCAweDU0LCAweDQwLCAweDY0LCAweDQwLCAweGY1LCAweDI5LCAweGQyLCAweDBjLCAweDMwLCAweDA3LCAweDM1LCAweGMyLCAweGFmLAorICAweDMwLCAweDAxLCAweDE4LCAweDkwLCAweDdmLCAweGI4LCAweGUwLCAweDIwLCAweGUxLCAweDI3LCAweGU1LCAweDQ4LCAweDYwLCAweDA5LCAweDkwLCAweDdmLAorICAweGI3LCAweGYwLCAweGU0LCAweGY1LCAweDQ4LCAweGMyLCAweDAxLCAweGMyLCAweDA3LCAweDgwLCAweDE2LCAweDkwLCAweDdmLCAweGI2LCAweGUwfX0sCisgezB4MGMwNiwgNjQsIHsgMHgyMCwgMHhlMSwgMHgwZiwgMHhlNSwgMHg0OCwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhiOSwgMHhmMCwgMHhlNCwgMHhmNSwgMHg0OCwgMHhkMiwgMHgwMSwgMHhjMiwKKyAgMHgwNywgMHhkMiwgMHhhZiwgMHgyMCwgMHgwNSwgMHgzNywgMHgzMCwgMHgwMywgMHgxYiwgMHg5MCwgMHg3ZiwgMHhjNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHgyZCwKKyAgMHg5MCwgMHg3ZSwgMHg0MCwgMHhlMCwgMHgxMywgMHg5MiwgMHgxNSwgMHg3NSwgMHg0YSwgMHgwMSwgMHg5MCwgMHg3ZiwgMHhjNywgMHhlMCwgMHhmNSwgMHg3YywKKyAgMHhkMiwgMHgwNSwgMHg4MCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhjOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgxMiwgMHg5MCwgMHg3ZCwgMHhjMCwgMHhlMH19LAorIHsweDBjNDYsIDY0LCB7IDB4MTMsIDB4OTIsIDB4MTUsIDB4NzUsIDB4NGEsIDB4MDEsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTAsIDB4ZjUsIDB4N2MsIDB4ZDIsIDB4MDUsIDB4MjAsIDB4MjEsIDB4MzMsCisgIDB4MjAsIDB4MDAsIDB4MDYsIDB4ZTUsIDB4NGEsIDB4NjUsIDB4N2MsIDB4NzAsIDB4MmEsIDB4MzAsIDB4MDUsIDB4MWEsIDB4MzAsIDB4MDMsIDB4MDksIDB4ZTQsCisgIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZjAsIDB4YzIsIDB4MDMsIDB4ODAsIDB4MDcsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZjAsIDB4ZDIsIDB4MDMsIDB4YzIsCisgIDB4MDUsIDB4ZTQsIDB4ZjUsIDB4N2MsIDB4ZjUsIDB4NGEsIDB4MzAsIDB4MTUsIDB4MGEsIDB4YzIsIDB4MTUsIDB4YzIsIDB4MDAsIDB4OTAsIDB4N2Z9fSwKKyB7MHgwYzg2LCA2NCwgeyAweGJmLCAweDc0LCAweDAxLCAweGYwLCAweDMwLCAweDIxLCAweDAzLCAweDAyLCAweDBkLCAweDk0LCAweDIwLCAweDA1LCAweDAzLCAweDAyLCAweDBkLCAweDk0LCAweDMwLAorICAweDFjLCAweDBhLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDIwLCAweGUzLCAweDAzLCAweDAyLCAweDBkLCAweDk0LCAweDMwLCAweDBiLCAweDAzLCAweDAyLAorICAweDBkLCAweDk0LCAweDMwLCAweDEzLCAweDAzLCAweDAyLCAweDBkLCAweDk0LCAweDMwLCAweDAzLCAweDYyLCAweDMwLCAweDFiLCAweDEyLCAweGFmLCAweDRhLAorICAweDA1LCAweDRhLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyfX0sCisgezB4MGNjNiwgNjQsIHsgMHgyZCwgMHhhZiwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwKKyAgMHgxMywgMHhlNSwgMHg0YSwgMHhjMywgMHg5NSwgMHg3YywgMHg1MCwgMHgyYSwgMHgzMCwgMHgxYiwgMHgxMiwgMHhhZiwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwKKyAgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgxNywgMHhhZiwgMHg0YSwgMHgwNSwKKyAgMHg0YSwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHg0NiwgMHhkMn19LAorIHsweDBkMDYsIDY0LCB7IDB4MTEsIDB4ODAsIDB4NmIsIDB4YzIsIDB4MTEsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZjAsIDB4YzIsIDB4MDMsIDB4ODAsIDB4NjAsIDB4MzAsIDB4MWIsIDB4MTIsCisgIDB4YWYsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsCisgIDB4OTIsIDB4MmQsIDB4YWYsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsCisgIDB4ZTAsIDB4ZjUsIDB4MTMsIDB4ZTUsIDB4NGEsIDB4YzMsIDB4OTUsIDB4N2MsIDB4NTAsIDB4MmEsIDB4MzAsIDB4MWIsIDB4MTIsIDB4YWYsIDB4NGF9fSwKKyB7MHgwZDQ2LCA2NCwgeyAweDA1LCAweDRhLCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDE3LCAweGFmLAorICAweDRhLCAweDA1LCAweDRhLCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDQ2LAorICAweGQyLCAweDExLCAweDgwLCAweDA5LCAweGMyLCAweDExLCAweGU0LCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweGQyLCAweDAzLCAweDMwLCAweDFiLCAweDA0LAorICAweGEyLCAweDJkLCAweDkyLCAweDliLCAweGQyLCAweDIxLCAweGMyLCAweGFmLCAweDg1LCAweDEzLCAweDk5LCAweDIwLCAweDExLCAweDBkLCAweDMwfX0sCisgezB4MGQ4NiwgNjQsIHsgMHgxNSwgMHgwYSwgMHhjMiwgMHgxNSwgMHhjMiwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhiZiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMiwgMHhhZiwgMHg5MCwgMHg3ZiwgMHhkMCwKKyAgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwZSwgMHhiNSwgMHhlNCwgMHhmNSwgMHgxMiwgMHg3NCwgMHhjMCwgMHgyNSwgMHgxMiwgMHhmNSwgMHg4MiwKKyAgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxMiwgMHg3YywgMHgwMCwgMHg3YiwgMHgwMCwgMHgyNCwgMHg2NCwgMHhmOSwKKyAgMHhlYywgMHgzNCwgMHgwMCwgMHhmYSwgMHhlZiwgMHgxMiwgMHgxNSwgMHhjZCwgMHgwNSwgMHgxMiwgMHhlNSwgMHgxMiwgMHhiNCwgMHgxOCwgMHhkYn19LAorIHsweDBkYzYsIDY0LCB7IDB4ZTUsIDB4NjQsIDB4NjAsIDB4MGIsIDB4NzUsIDB4ODksIDB4NjAsIDB4NzUsIDB4ODgsIDB4NDAsIDB4ZDIsIDB4ZGYsIDB4ODUsIDB4NjUsIDB4OGQsIDB4ZTUsIDB4NjcsCisgIDB4MTMsIDB4OTIsIDB4MWQsIDB4OTIsIDB4YzcsIDB4ZTUsIDB4NjgsIDB4MTMsIDB4OTIsIDB4MWUsIDB4ZTUsIDB4NjksIDB4MTMsIDB4OTIsIDB4MjQsIDB4ZTUsCisgIDB4NmEsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZTAsIDB4NTQsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZTAsCisgIDB4NDQsIDB4MTAsIDB4ZjAsIDB4ZTUsIDB4NmIsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4ODB9fSwKKyB7MHgwZTA2LCA2NCwgeyAweDA3LCAweDkwLCAweDdmLCAweDk3LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGU1LCAweDcxLCAweDYwLCAweDBiLCAweGMyLCAweDE0LCAweGMyLCAweDBkLCAweDkwLAorICAweDdmLCAweDk0LCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweGU1LCAweDcyLCAweDYwLCAweDBiLCAweGQyLCAweDBkLCAweGQyLCAweDBlLCAweDkwLCAweDdmLAorICAweDk0LCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweGU1LCAweDczLCAweDYwLCAweDBkLCAweGMyLCAweGFmLCAweGMyLCAweDEyLCAweGQyLCAweDAwLCAweGU0LAorICAweGY1LCAweDdkLCAweGY1LCAweDRiLCAweGQyLCAweGFmLCAweGU1LCAweDc0LCAweDYwLCAweDA1LCAweDMwLCAweDI0LCAweDAyLCAweGQyLCAweDBkfX0sCisgezB4MGU0NiwgNjQsIHsgMHhlNSwgMHg3NSwgMHg2MCwgMHgxNSwgMHg5MCwgMHg3ZiwgMHg5NCwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHhlMCwgMHg0NCwgMHgwOCwKKyAgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NywgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHhlNSwgMHg3NiwgMHg2MCwgMHgwYSwgMHhkMiwgMHhjNCwgMHhjMiwgMHhjMCwKKyAgMHg3NSwgMHgzYSwgMHgwMSwgMHg3NSwgMHg0MSwgMHgyOCwgMHhlNSwgMHg3NywgMHg2MCwgMHgwNywgMHhjMiwgMHhjNCwgMHhlNCwgMHhmNSwgMHg0OSwgMHhmNSwKKyAgMHgzYSwgMHhlNSwgMHg3OCwgMHg2MCwgMHgwMywgMHhlNCwgMHhmNSwgMHg0OSwgMHhlNSwgMHg3OSwgMHg2MCwgMHgwMiwgMHhkMiwgMHgwOCwgMHhlNX19LAorIHsweDBlODYsIDY0LCB7IDB4N2EsIDB4NjAsIDB4MDgsIDB4ZTUsIDB4NzYsIDB4NzAsIDB4MDIsIDB4ZjUsIDB4NDEsIDB4ZDIsIDB4MGUsIDB4ZTUsIDB4N2IsIDB4NjAsIDB4MTksIDB4OTAsIDB4N2YsCisgIDB4ZDcsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4NzQsIDB4MzMsIDB4ZjAsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4NzQsIDB4MzQsIDB4ZjAsIDB4NzQsIDB4MTYsIDB4ZjAsCisgIDB4NzQsIDB4MzYsIDB4ZjAsIDB4ZDIsIDB4MDQsIDB4ZDIsIDB4MDIsIDB4ZDIsIDB4MGEsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4ZDEsIDB4ZjAsIDB4YTIsIDB4MTQsCisgIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4NjUsIDB4MzcsIDB4NjAsIDB4MDQsIDB4OGYsIDB4MzcsIDB4ZDIsIDB4MGUsIDB4YTIsIDB4MGQsIDB4ZTQsIDB4MzN9fSwKKyB7MHgwZWM2LCA2NCwgeyAweGZmLCAweDY1LCAweDM4LCAweDYwLCAweDA0LCAweDhmLCAweDM4LCAweGQyLCAweDBlLCAweDkwLCAweDdmLCAweDlhLCAweGUwLCAweDU0LCAweDIwLCAweDY1LCAweDMzLAorICAweDYwLCAweDA3LCAweGUwLCAweDU0LCAweDIwLCAweGY1LCAweDMzLCAweGQyLCAweDBlLCAweDkwLCAweDdmLCAweDlhLCAweGUwLCAweDU0LCAweDQwLCAweGI1LAorICAweDM1LCAweDA5LCAweGUwLCAweDU0LCAweDQwLCAweDY0LCAweDQwLCAweGY1LCAweDM1LCAweGQyLCAweDBlLCAweDMwLCAweDA4LCAweDM1LCAweGMyLCAweGFmLAorICAweDMwLCAweDAyLCAweDE4LCAweDkwLCAweDdmLCAweGJjLCAweGUwLCAweDIwLCAweGUxLCAweDI3LCAweGU1LCAweDQ5LCAweDYwLCAweDA5LCAweDkwfX0sCisgezB4MGYwNiwgNjQsIHsgMHg3ZiwgMHhiYiwgMHhmMCwgMHhlNCwgMHhmNSwgMHg0OSwgMHhjMiwgMHgwMiwgMHhjMiwgMHgwOCwgMHg4MCwgMHgxNiwgMHg5MCwgMHg3ZiwgMHhiYSwgMHhlMCwgMHgyMCwKKyAgMHhlMSwgMHgwZiwgMHhlNSwgMHg0OSwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhiZCwgMHhmMCwgMHhlNCwgMHhmNSwgMHg0OSwgMHhkMiwgMHgwMiwgMHhjMiwKKyAgMHgwOCwgMHhkMiwgMHhhZiwgMHgyMCwgMHgwNiwgMHgzNywgMHgzMCwgMHgwNCwgMHgxYiwgMHg5MCwgMHg3ZiwgMHhjYSwgMHhlMCwgMHgyMCwgMHhlMSwgMHgyZCwKKyAgMHg5MCwgMHg3ZCwgMHg0MCwgMHhlMCwgMHgxMywgMHg5MiwgMHgxNiwgMHg3NSwgMHg0YiwgMHgwMSwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhlMCwgMHhmNX19LAorIHsweDBmNDYsIDY0LCB7IDB4N2QsIDB4ZDIsIDB4MDYsIDB4ODAsIDB4MTksIDB4OTAsIDB4N2YsIDB4Y2MsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MTIsIDB4OTAsIDB4N2MsIDB4YzAsIDB4ZTAsIDB4MTMsCisgIDB4OTIsIDB4MTYsIDB4NzUsIDB4NGIsIDB4MDEsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTAsIDB4ZjUsIDB4N2QsIDB4ZDIsIDB4MDYsIDB4MjAsIDB4MjIsIDB4MzMsCisgIDB4MjAsIDB4MDAsIDB4MDYsIDB4ZTUsIDB4NGIsIDB4NjUsIDB4N2QsIDB4NzAsIDB4MmEsIDB4MzAsIDB4MDYsIDB4MWEsIDB4MzAsIDB4MDQsIDB4MDksIDB4ZTQsCisgIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZjAsIDB4YzIsIDB4MDQsIDB4ODAsIDB4MDcsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZjAsIDB4ZDIsIDB4MDR9fSwKKyB7MHgwZjg2LCA2NCwgeyAweGMyLCAweDA2LCAweGU0LCAweGY1LCAweDdkLCAweGY1LCAweDRiLCAweDMwLCAweDE2LCAweDBhLCAweGMyLCAweDE2LCAweGMyLCAweDAwLCAweDkwLCAweDdmLCAweGMxLAorICAweDc0LCAweDAxLCAweGYwLCAweDMwLCAweDIyLCAweDAzLCAweDAyLCAweDEwLCAweGE0LCAweDIwLCAweDA2LCAweDAzLCAweDAyLCAweDEwLCAweGE0LCAweDMwLAorICAweDFlLCAweDBhLCAweDkwLCAweDdmLCAweDlhLCAweGUwLCAweDIwLCAweGU1LCAweDAzLCAweDAyLCAweDEwLCAweGE0LCAweDMwLCAweDBkLCAweDAzLCAweDAyLAorICAweDEwLCAweGE0LCAweDMwLCAweDE0LCAweDAzLCAweDAyLCAweDEwLCAweGE0LCAweDMwLCAweDA0LCAweDYyLCAweDMwLCAweDFkLCAweDEyLCAweGFmfX0sCisgezB4MGZjNiwgNjQsIHsgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgyZCwKKyAgMHhhZiwgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwKKyAgMHgxMywgMHhlNSwgMHg0YiwgMHhjMywgMHg5NSwgMHg3ZCwgMHg1MCwgMHgyYSwgMHgzMCwgMHgxZCwgMHgxMiwgMHhhZiwgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwKKyAgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgxOCwgMHhhZiwgMHg0Yn19LAorIHsweDEwMDYsIDY0LCB7IDB4MDUsIDB4NGIsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4NDcsIDB4ZDIsIDB4MTIsCisgIDB4ODAsIDB4NmIsIDB4YzIsIDB4MTIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZjAsIDB4YzIsIDB4MDQsIDB4ODAsIDB4NjAsIDB4MzAsIDB4MWQsIDB4MTIsCisgIDB4YWYsIDB4NGIsIDB4MDUsIDB4NGIsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsCisgIDB4OTIsIDB4MmQsIDB4YWYsIDB4NGIsIDB4MDUsIDB4NGIsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsIDB4ZjV9fSwKKyB7MHgxMDQ2LCA2NCwgeyAweDgzLCAweGUwLCAweGY1LCAweDEzLCAweGU1LCAweDRiLCAweGMzLCAweDk1LCAweDdkLCAweDUwLCAweDJhLCAweDMwLCAweDFkLCAweDEyLCAweGFmLCAweDRiLCAweDA1LAorICAweDRiLCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdjLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDE4LCAweGFmLAorICAweDRiLCAweDA1LCAweDRiLCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdjLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDQ3LAorICAweGQyLCAweDEyLCAweDgwLCAweDA5LCAweGMyLCAweDEyLCAweGU0LCAweDkwLCAweDdmLCAweGNkLCAweGYwLCAweGQyLCAweDA0LCAweDMwLCAweDFkfX0sCisgezB4MTA4NiwgNjQsIHsgMHgwNCwgMHhhMiwgMHgyZCwgMHg5MiwgMHhjMywgMHhkMiwgMHgyMiwgMHhjMiwgMHhhZiwgMHg4NSwgMHgxMywgMHhjMSwgMHgyMCwgMHgxMiwgMHgwZCwgMHgzMCwgMHgxNiwKKyAgMHgwYSwgMHhjMiwgMHgxNiwgMHhjMiwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhjMSwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMiwgMHhhZiwgMHg5MCwgMHg3ZiwgMHhjMiwKKyAgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgxMSwgMHg3YSwgMHhlNSwgMHgxYSwgMHg3MCwgMHg0NiwgMHgzMCwgMHgwYywgMHgzZiwgMHhlNSwgMHg0MCwKKyAgMHg3MCwgMHgzYiwgMHhhMiwgMHgwOSwgMHgzMywgMHhmNSwgMHgzMSwgMHhjMiwgMHgwOSwgMHhjMiwgMHgwYywgMHhlNCwgMHhmNSwgMHgxMiwgMHg3ZX19LAorIHsweDEwYzYsIDY0LCB7IDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MjYsIDB4MjUsIDB4MTIsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MTUsIDB4ODcsIDB4ZmYsIDB4NzQsCisgIDB4ODAsIDB4MjUsIDB4MTIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTIsIDB4ZTUsIDB4MTIsCisgIDB4YjQsIDB4MGMsIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4NzUsIDB4NDAsIDB4MTAsIDB4MjIsIDB4NzUsIDB4MWEsIDB4MDEsCisgIDB4MjIsIDB4ZTUsIDB4MWEsIDB4NjQsIDB4MDEsIDB4NzAsIDB4NDUsIDB4MzAsIDB4MGUsIDB4M2UsIDB4ZTUsIDB4NDEsIDB4NzAsIDB4M2EsIDB4YTJ9fSwKKyB7MHgxMTA2LCA2NCwgeyAweDBhLCAweDMzLCAweGY1LCAweDNkLCAweGMyLCAweDBhLCAweGMyLCAweDBlLCAweGU0LCAweGY1LCAweDEyLCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDMyLAorICAweDI1LCAweDEyLCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDE1LCAweDg3LCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDEyLCAweGY1LAorICAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDEyLCAweGU1LCAweDEyLCAweGI0LCAweDBjLCAweGRiLCAweDkwLAorICAweDdmLCAweGMzLCAweDc0LCAweDBjLCAweGYwLCAweDc1LCAweDQxLCAweDEwLCAweDc1LCAweDFhLCAweDAyLCAweDIyLCAweGU1LCAweDFjLCAweDYwfX0sCisgezB4MTE0NiwgNjQsIHsgMHgzMCwgMHgxNSwgMHgxYywgMHhlNCwgMHhmNSwgMHgxMiwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgxYiwgMHgyNSwgMHgxMiwgMHhmOSwgMHhlZSwgMHgzNCwKKyAgMHgwMCwgMHhmYSwgMHgxMiwgMHgxNSwgMHg4NywgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwKKyAgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxMiwgMHhlNSwgMHgxMiwgMHhiNCwgMHgwMywgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwMywgMHhmMCwKKyAgMHhlNCwgMHhmNSwgMHgxYSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHgxMiwgMHgxNiwgMHgxNywgMHgxMiwgMHg0MCwgMHgwMCwgMHgxMn19LAorIHsweDExODYsIDY0LCB7IDB4YjQsIDB4MDEsIDB4MTMsIDB4MjAsIDB4MDMsIDB4MTEsIDB4OWUsIDB4MDYsIDB4MTIsIDB4MzMsIDB4MDgsIDB4MTIsIDB4MmQsIDB4MDksIDB4MTIsIDB4MjAsIDB4MGEsCisgIDB4MTMsIDB4NzYsIDB4MGIsIDB4MDAsIDB4MDAsIDB4MTMsIDB4NmYsIDB4OTAsIDB4N2YsIDB4ZWIsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTYsIDB4MTQsCisgIDB4NjAsIDB4NDAsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NjksIDB4NzQsIDB4MTksIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4MDAsIDB4OTAsIDB4N2YsCisgIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NzYsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTcsIDB4NGIsIDB4OGIsIDB4MTJ9fSwKKyB7MHgxMWM2LCA2NCwgeyAweDhhLCAweDEzLCAweDg5LCAweDE0LCAweGVhLCAweDQ5LCAweDYwLCAweDExLCAweGFlLCAweDAyLCAweGVlLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweGFmLCAweDAxLAorICAweGVmLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDEzLCAweDc2LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLAorICAweDEzLCAweDc2LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGZmLCAweDEyLCAweDE3LCAweDlhLCAweDhiLCAweDEyLCAweDhhLCAweDEzLCAweDg5LCAweDE0LAorICAweGVhLCAweDQ5LCAweDYwLCAweDExLCAweGFlLCAweDAyLCAweGVlLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweGFmLCAweDAxLCAweGVmLCAweDkwfX0sCisgezB4MTIwNiwgNjQsIHsgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgxMywgMHg3NiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgxMywgMHg3NiwgMHg5MCwKKyAgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgxMywgMHg3NiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwKKyAgMHg3ZiwgMHhiNSwgMHhmMCwgMHgwMiwgMHgxMywgMHg3NiwgMHgxMiwgMHgxNCwgMHhjMywgMHgwMiwgMHgxMywgMHg3NiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHg3NCwKKyAgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHhmMCwgMHgwMiwgMHgxMywgMHg3NiwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHg3Zn19LAorIHsweDEyNDYsIDY0LCB7IDB4NjAsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MzEsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NWIsIDB4YTIsIDB4MjYsIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4MjUsIDB4ZTAsIDB4ZmYsCisgIDB4YTIsIDB4MmIsIDB4ZTQsIDB4MzMsIDB4NGYsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsCisgIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NzYsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsCisgIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NzYsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTR9fSwKKyB7MHgxMjg2LCA2NCwgeyAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLAorICAweGUwLCAweDU0LCAweGZkLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLAorICAweDAyLCAweDEzLCAweDc2LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDEzLCAweDc2LCAweDkwLCAweDdmLCAweGU4LAorICAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDFkLCAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDEzLCAweDc2LCAweDkwLCAweDdmLCAweGVhfX0sCisgezB4MTJjNiwgNjQsIHsgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNSwgMHhjMiwgMHgyNiwgMHgwMiwgMHgxMywgMHg3NiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwKKyAgMHgxMywgMHg3NiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgzOCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwKKyAgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwKKyAgMHg3ZiwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHg1NCwgMHg4MCwgMHhmZiwgMHgxMywgMHgxMywgMHgxM319LAorIHsweDEzMDYsIDY0LCB7IDB4NTQsIDB4MWYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4ODAsIDB4NWYsCisgIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4NTYsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsCisgIDB4MTgsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NGEsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDQsIDB4ZDIsIDB4MjYsIDB4ODAsIDB4M2YsCisgIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MzYsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MjB9fSwKKyB7MHgxMzQ2LCA2NCwgeyAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LAorICAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweDgwLCAweDEwLCAweDkwLAorICAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDA3LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLAorICAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDIyLCAweDIwLCAweDI4LCAweDAzLCAweDAyLCAweDE0LCAweGMyLCAweGU1LCAweDQwfX0sCisgezB4MTM4NiwgNjQsIHsgMHg2MCwgMHgwMiwgMHgxNSwgMHg0MCwgMHhlNSwgMHg0OCwgMHg2MCwgMHg0ZiwgMHg2NSwgMHg0NCwgMHg3MCwgMHg0NSwgMHhlNSwgMHg0MiwgMHhmNCwgMHg2MCwgMHgwMiwKKyAgMHgwNSwgMHg0MiwgMHhlNSwgMHg0MiwgMHhjMywgMHg5NSwgMHg1NSwgMHg0MCwgMHgzZCwgMHhjMiwgMHhhZiwgMHgzMCwgMHgwMSwgMHgxOCwgMHg5MCwgMHg3ZiwKKyAgMHhiOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgyNywgMHg5MCwgMHg3ZiwgMHhiNywgMHhlNSwgMHg0OCwgMHhmMCwgMHhjMiwgMHgwMSwgMHhlNCwgMHhmNSwgMHg0OCwKKyAgMHhmNSwgMHg0MiwgMHhmNSwgMHg0NCwgMHg4MCwgMHgxNiwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHgwZiwgMHg5MCwgMHg3Zn19LAorIHsweDEzYzYsIDY0LCB7IDB4YjksIDB4ZTUsIDB4NDgsIDB4ZjAsIDB4ZDIsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4NDgsIDB4ZjUsIDB4NDIsIDB4ZjUsIDB4NDQsIDB4ZDIsIDB4YWYsIDB4ODAsIDB4MDYsCisgIDB4ODUsIDB4NDgsIDB4NDQsIDB4ZTQsIDB4ZjUsIDB4NDIsIDB4ZTUsIDB4MmUsIDB4NjAsIDB4MmQsIDB4MjAsIDB4MTksIDB4MDcsIDB4OTAsIDB4N2YsIDB4OWIsCisgIDB4ZTAsIDB4MzAsIDB4ZTAsIDB4MGUsIDB4ZTUsIDB4MmYsIDB4NjAsIDB4MDUsIDB4ZTQsIDB4ZjUsIDB4MmYsIDB4ZDIsIDB4MGMsIDB4ZTQsIDB4ZjUsIDB4M2UsCisgIDB4ODAsIDB4MTMsIDB4ZTUsIDB4M2UsIDB4ZDMsIDB4OTUsIDB4NTYsIDB4NTAsIDB4MGMsIDB4ZTUsIDB4M2UsIDB4YjUsIDB4NTYsIDB4MDUsIDB4NzV9fSwKKyB7MHgxNDA2LCA2NCwgeyAweDJmLCAweDAxLCAweGQyLCAweDBjLCAweDA1LCAweDNlLCAweGMyLCAweDE5LCAweGU1LCAweDQxLCAweDYwLCAweDAyLCAweDE1LCAweDQxLCAweGU1LCAweDQ5LCAweDYwLAorICAweDRmLCAweDY1LCAweDQ1LCAweDcwLCAweDQ1LCAweGU1LCAweDQzLCAweGY0LCAweDYwLCAweDAyLCAweDA1LCAweDQzLCAweGU1LCAweDQzLCAweGMzLCAweDk1LAorICAweDZkLCAweDQwLCAweDNkLCAweGMyLCAweGFmLCAweDMwLCAweDAyLCAweDE4LCAweDkwLCAweDdmLCAweGJjLCAweGUwLCAweDIwLCAweGUxLCAweDI3LCAweDkwLAorICAweDdmLCAweGJiLCAweGU1LCAweDQ5LCAweGYwLCAweGMyLCAweDAyLCAweGU0LCAweGY1LCAweDQ5LCAweGY1LCAweDQzLCAweGY1LCAweDQ1LCAweDgwfX0sCisgezB4MTQ0NiwgNjQsIHsgMHgxNiwgMHg5MCwgMHg3ZiwgMHhiYSwgMHhlMCwgMHgyMCwgMHhlMSwgMHgwZiwgMHg5MCwgMHg3ZiwgMHhiZCwgMHhlNSwgMHg0OSwgMHhmMCwgMHhkMiwgMHgwMiwgMHhlNCwKKyAgMHhmNSwgMHg0OSwgMHhmNSwgMHg0MywgMHhmNSwgMHg0NSwgMHhkMiwgMHhhZiwgMHg4MCwgMHgwNiwgMHg4NSwgMHg0OSwgMHg0NSwgMHhlNCwgMHhmNSwgMHg0MywKKyAgMHhlNSwgMHgzYSwgMHg2MCwgMHgyZCwgMHgyMCwgMHgxYSwgMHgwNywgMHg5MCwgMHg3ZiwgMHg5YSwgMHhlMCwgMHgzMCwgMHhlMiwgMHgwZSwgMHhlNSwgMHgzYiwKKyAgMHg2MCwgMHgwNSwgMHhlNCwgMHhmNSwgMHgzYiwgMHhkMiwgMHgwZSwgMHhlNCwgMHhmNSwgMHgzZiwgMHg4MCwgMHgxMywgMHhlNSwgMHgzZiwgMHhkM319LAorIHsweDE0ODYsIDY0LCB7IDB4OTUsIDB4NmUsIDB4NTAsIDB4MGMsIDB4ZTUsIDB4M2YsIDB4YjUsIDB4NmUsIDB4MDUsIDB4NzUsIDB4M2IsIDB4MDEsIDB4ZDIsIDB4MGUsIDB4MDUsIDB4M2YsIDB4YzIsCisgIDB4MWEsIDB4OTAsIDB4N2YsIDB4ZDIsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MjMsIDB4OTAsIDB4N2IsIDB4NDAsIDB4ZTAsIDB4NjAsIDB4MDksIDB4ZTAsIDB4ZjUsCisgIDB4MWMsIDB4OTAsIDB4N2IsIDB4NDIsIDB4ZTAsIDB4ZjUsIDB4MWQsIDB4OTAsIDB4N2IsIDB4NDEsIDB4ZTAsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4ZDcsCisgIDB4NzQsIDB4MTcsIDB4ZjAsIDB4NzQsIDB4MzcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4ZDMsIDB4ZjAsIDB4MjIsIDB4ZTQsIDB4OTAsIDB4N2Z9fSwKKyB7MHgxNGM2LCA2NCwgeyAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweDMwLCAweGYwLCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDQ0LCAweDEwLCAweGYwLCAweDkwLCAweDdmLAorICAweDk0LCAweDc0LCAweDBkLCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweDc0LCAweDlhLCAweGYwLCAweDkwLCAweDdmLCAweDk3LCAweGUwLCAweDU0LCAweGZkLAorICAweGYwLCAweDkwLCAweDdmLCAweDk1LCAweDc0LCAweDIzLCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweDg0LCAweGYwLCAweGU0LCAweDkwLCAweDdmLAorICAweGM3LCAweGYwLCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweDkwLCAweDdmLCAweGNmLCAweGYwLCAweDc1LCAweDk4LCAweDQwLCAweDQzLCAweGE4fX0sCisgezB4MTUwNiwgNjQsIHsgMHgxMCwgMHhjMiwgMHgxYiwgMHhjMiwgMHgwNSwgMHhjMiwgMHgyMSwgMHhjMiwgMHgwYiwgMHhjMiwgMHgxMywgMHhmNSwgMHg3YywgMHhmNSwgMHg0YSwgMHhjMiwgMHgxMSwKKyAgMHhjMiwgMHgxNSwgMHhmNSwgMHg0MiwgMHhjMiwgMHgxOSwgMHhmNSwgMHg0NCwgMHhmNSwgMHg0OCwgMHhjMiwgMHgyMywgMHhjMiwgMHgxYywgMHhmNSwgMHgyZCwKKyAgMHhmNSwgMHgyZiwgMHhjMiwgMHgwNywgMHhjMiwgMHgwMCwgMHhjMiwgMHgxZiwgMHhmNSwgMHgzZSwgMHhjMiwgMHgwOSwgMHhkMiwgMHgwYywgMHhmNSwgMHgyNiwKKyAgMHg5MCwgMHg3ZiwgMHhjYiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkMSwgMHhmMCwgMHg3NSwgMHhjMCwgMHg0MH19LAorIHsweDE1NDYsIDY0LCB7IDB4NDMsIDB4YTgsIDB4NDAsIDB4YzIsIDB4MWQsIDB4YzIsIDB4MDYsIDB4YzIsIDB4MjIsIDB4YzIsIDB4MGQsIDB4YzIsIDB4MTQsIDB4ZjUsIDB4N2QsIDB4ZjUsIDB4NGIsCisgIDB4YzIsIDB4MTIsIDB4YzIsIDB4MTYsIDB4ZjUsIDB4NDMsIDB4YzIsIDB4MWEsIDB4ZjUsIDB4NDUsIDB4ZjUsIDB4NDksIDB4YzIsIDB4MjQsIDB4YzIsIDB4MWUsCisgIDB4ZjUsIDB4MzksIDB4ZjUsIDB4M2IsIDB4YzIsIDB4MDgsIDB4YzIsIDB4MDAsIDB4YzIsIDB4MjAsIDB4ZjUsIDB4M2YsIDB4YzIsIDB4MGEsIDB4ZDIsIDB4MGUsCisgIDB4NzUsIDB4MzIsIDB4MDEsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4ZjAsIDB4ZDIsIDB4Mjh9fSwKKyB7MHgxNTg2LCA2NCwgeyAweDIyLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDAyLCAweGU3LCAweDIyLCAweGJiLCAweGZlLCAweDAyLAorICAweGUzLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLCAweDBjLCAweGU1LCAweDgyLCAweDI5LCAweGY1LAorICAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGU2LCAweDIyLAorICAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1fX0sCisgezB4MTVjNiwgNjQsIHsgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhmMCwgMHgyMiwgMHg1MCwKKyAgMHgwMiwgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwgMHhmMywgMHgyMiwgMHhiYiwgMHgwMSwgMHgxMCwgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwKKyAgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHhmMCwgMHhhMywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwOSwgMHhlOSwgMHgyNSwgMHg4MiwKKyAgMHhmOCwgMHg4NiwgMHhmMCwgMHgwOCwgMHhlNiwgMHgyMiwgMHhiYiwgMHhmZSwgMHgwYSwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlMiwgMHhmNX19LAorIHsweDE2MDYsIDY0LCB7IDB4ZjAsIDB4MDgsIDB4ZTIsIDB4MjIsIDB4ZTUsIDB4ODMsIDB4MmEsIDB4ZjUsIDB4ODMsIDB4ZTksIDB4OTMsIDB4ZjUsIDB4ZjAsIDB4YTMsIDB4ZTksIDB4OTMsIDB4MjIsCisgIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4NzAsIDB4MTIsIDB4NzQsIDB4MDEsIDB4OTMsIDB4NzAsIDB4MGQsIDB4YTMsIDB4YTMsCisgIDB4OTMsIDB4ZjgsIDB4NzQsIDB4MDEsIDB4OTMsIDB4ZjUsIDB4ODIsIDB4ODgsIDB4ODMsIDB4ZTQsIDB4NzMsIDB4NzQsIDB4MDIsIDB4OTMsIDB4NjgsIDB4NjAsCisgIDB4ZWYsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGYsIDB4NzgsIDB4N2YsIDB4ZTQsIDB4ZjYsIDB4ZDgsIDB4ZmQsIDB4NzUsIDB4ODEsIDB4N2R9fSwKKyB7MHgxNjQ2LCA2NCwgeyAweDAyLCAweDE2LCAweDg0LCAweDAyLCAweDE2LCAweGM5LCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweDQwLCAweDAzLCAweGY2LCAweDgwLAorICAweDAxLCAweGYyLCAweDA4LCAweGRmLCAweGY0LCAweDgwLCAweDI5LCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweDU0LCAweDA3LCAweDI0LCAweDBjLCAweGM4LAorICAweGMzLCAweDMzLCAweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDIwLCAweGM4LCAweDgzLCAweDQwLCAweDA0LCAweGY0LCAweDU2LCAweDgwLCAweDAxLCAweDQ2LAorICAweGY2LCAweGRmLCAweGU0LCAweDgwLCAweDBiLCAweDAxLCAweDAyLCAweDA0LCAweDA4LCAweDEwLCAweDIwLCAweDQwLCAweDgwLCAweDkwLCAweDE4fX0sCisgezB4MTY4NiwgNjQsIHsgMHhjNSwgMHhlNCwgMHg3ZSwgMHgwMSwgMHg5MywgMHg2MCwgMHhiYywgMHhhMywgMHhmZiwgMHg1NCwgMHgzZiwgMHgzMCwgMHhlNSwgMHgwOSwgMHg1NCwgMHgxZiwgMHhmZSwKKyAgMHhlNCwgMHg5MywgMHhhMywgMHg2MCwgMHgwMSwgMHgwZSwgMHhjZiwgMHg1NCwgMHhjMCwgMHgyNSwgMHhlMCwgMHg2MCwgMHhhOCwgMHg0MCwgMHhiOCwgMHhlNCwKKyAgMHg5MywgMHhhMywgMHhmYSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwKKyAgMHg4MywgMHhjYSwgMHhmMCwgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhkZiwgMHhlOSwgMHhkZX19LAorIHsweDE2YzYsIDY0LCB7IDB4ZTcsIDB4ODAsIDB4YmUsIDB4NzUsIDB4MTEsIDB4MDEsIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZTAsCisgIDB4ZmYsIDB4ZDMsIDB4OTIsIDB4MjYsIDB4ZTQsIDB4MzMsIDB4ZmUsIDB4ZWYsIDB4NGUsIDB4ZjAsIDB4ZDIsIDB4ZTgsIDB4NDMsIDB4ZDgsIDB4MjAsIDB4OTAsCisgIDB4N2YsIDB4ZGUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsCisgIDB4N2YsIDB4YTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWEsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWYsIDB4ZTAsIDB4NDR9fSwKKyB7MHgxNzA2LCA2NCwgeyAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGFlLCAweGUwLCAweDQ0LCAweDBkLCAweGYwLCAweGQyLCAweGFmLCAweGQyLCAweGJjLCAweGQyLCAweGJlLCAweGQyLCAweDJkLAorICAweDEyLCAweDE4LCAweDdmLCAweGMyLCAweDI3LCAweGMyLCAweDI1LCAweGMyLCAweDI4LCAweDMwLCAweDI4LCAweDAzLCAweDEyLCAweDBhLCAweDgzLCAweDkwLAorICAweDdmLCAweGQ4LCAweGUwLCAweDY1LCAweDEwLCAweDYwLCAweDA4LCAweGUwLCAweGY1LCAweDEwLCAweDEyLCAweDEzLCAweDdlLCAweDgwLCAweGVhLCAweDMwLAorICAweDI3LCAweDA3LCAweGMyLCAweDI3LCAweDEyLCAweDExLCAweDdiLCAweDgwLCAweGUwLCAweDMwLCAweDJjLCAweGRkLCAweGMyLCAweDJjLCAweDEyfX0sCisgezB4MTc0NiwgNjQsIHsgMHgwMCwgMHgyNiwgMHg4MCwgMHhkNiwgMHgyMiwgMHhlNCwgMHhmZSwgMHg3NSwgMHgxNywgMHhmZiwgMHg3NSwgMHgxOCwgMHgxOSwgMHg3NSwgMHgxOSwgMHgxMiwgMHhhYiwKKyAgMHgxNywgMHhhYSwgMHgxOCwgMHhhOSwgMHgxOSwgMHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHgxNSwgMHhhMCwgMHg2NCwgMHgwMiwgMHg3MCwgMHgyZCwgMHhhZCwKKyAgMHgwNiwgMHgwZSwgMHhlZCwgMHhiNSwgMHgwNywgMHgwMSwgMHgyMiwgMHg5MCwgMHgwMCwgMHgwMiwgMHgxMiwgMHgxNSwgMHhkZiwgMHg4NSwgMHhmMCwgMHgxNSwKKyAgMHhmNSwgMHgxNiwgMHg2MiwgMHgxNSwgMHhlNSwgMHgxNSwgMHg2MiwgMHgxNiwgMHhlNSwgMHgxNiwgMHg2MiwgMHgxNSwgMHgyOSwgMHhmZCwgMHhlNX19LAorIHsweDE3ODYsIDY0LCB7IDB4MTUsIDB4M2EsIDB4YTksIDB4MDUsIDB4NzUsIDB4MTcsIDB4ZmYsIDB4ZjUsIDB4MTgsIDB4ODksIDB4MTksIDB4ODAsIDB4YzMsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsCisgIDB4NzksIDB4MDAsIDB4MjIsIDB4OGYsIDB4MTUsIDB4ZTQsIDB4ZjUsIDB4MTYsIDB4NzUsIDB4MTcsIDB4ZmYsIDB4NzUsIDB4MTgsIDB4MTksIDB4NzUsIDB4MTksCisgIDB4ODYsIDB4YWIsIDB4MTcsIDB4YWEsIDB4MTgsIDB4YTksIDB4MTksIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4MTUsIDB4YTAsIDB4YjQsIDB4MDMsIDB4MWQsCisgIDB4YWYsIDB4MTYsIDB4MDUsIDB4MTYsIDB4ZWYsIDB4YjUsIDB4MTUsIDB4MDEsIDB4MjIsIDB4MTIsIDB4MTUsIDB4ODcsIDB4N2UsIDB4MDAsIDB4Mjl9fSwKKyB7MHgxN2M2LCA2NCwgeyAweGZmLCAweGVlLCAweDNhLCAweGE5LCAweDA3LCAweDc1LCAweDE3LCAweGZmLCAweGY1LCAweDE4LCAweDg5LCAweDE5LCAweDgwLCAweGQ0LCAweDdiLCAweDAwLCAweDdhLAorICAweDAwLCAweDc5LCAweDAwLCAweDIyLCAweGU0LCAweDkwLCAweDdmLCAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweGYwLCAweDkwLCAweDdmLCAweDk0LAorICAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweDc0LCAweDAyLCAweGYwLCAweDkwLCAweDdmLCAweDk3LCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk1LCAweGYwLAorICAweDkwLCAweDdmLCAweDllLCAweDc0LCAweGZmLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk4LCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweGYwfX0sCisgezB4MTgwNiwgNjQsIHsgMHgyMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg5MCwKKyAgMHg3ZiwgMHhjNCwgMHhlNCwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwNCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwKKyAgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwKKyAgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhkMiwgMHgyNywgMHg1MywgMHg5MSwgMHhlZiwgMHg5MH19LAorIHsweDE4NDYsIDY0LCB7IDB4N2YsIDB4YWIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsCisgIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsCisgIDB4ZDIsIDB4MmMsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsCisgIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjB9fSwKKyB7MHgxODg2LCA2NCwgeyAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDMwLCAweDJkLCAweDA0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDdmLCAweGY0LCAweDdlLCAweDAxLCAweDEyLCAweDAwLAorICAweDA2LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweDIyLCAweDc0LCAweDAwLCAweGY1LAorICAweDg2LCAweDkwLCAweGZkLCAweGE1LCAweDdjLCAweDA1LCAweGEzLCAweGU1LCAweDgyLCAweDQ1LCAweDgzLCAweDcwLCAweGY5LCAweDIyLCAweDkwLCAweDdmLAorICAweGQ2LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDQzLCAweDg3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDIyLCAweGMxfX0sCisgezB4MThjNiwgNjQsIHsgMHhhYSwgMHgwMSwgMHgxYSwgMHgwMCwgMHgwMywgMHgxYiwgMHgwMywgMHgwMCwgMHgwMCwgMHhjMSwgMHgyNywgMHhjMSwgMHgyYywgMHhjMSwgMHgyNiwgMHhjMSwgMHgyYiwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMiwgMHgwMSwgMHgxMCwgMHgwMSwgMHhmZiwgMHgwMH19LAorIHsweDE5MDYsIDY0LCB7IDB4MDAsIDB4NDAsIDB4Y2QsIDB4MDYsIDB4MGYsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4MDEsIDB4MDksIDB4MDIsIDB4NzQsIDB4MDAsIDB4MDEsCisgIDB4MDEsIDB4MDAsIDB4YTAsIDB4MzIsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MGUsIDB4ZmYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDEsCisgIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDMsIDB4MDIsIDB4NDAsCisgIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDUsIDB4MDIsIDB4NDAsIDB4MDB9fSwKKyB7MHgxOTQ2LCA2NCwgeyAweDAwLCAweDA3LCAweDA1LCAweDA2LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA3LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LAorICAweDgxLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgzLCAweDAyLAorICAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg0LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg1LCAweDAyLCAweDQwLCAweDAwLAorICAweDAxLCAweDA3LCAweDA1LCAweDg2LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg3LCAweDAyLCAweDQwLCAweDAwLCAweDAxfX0sCisgezB4MTk4NiwgNjQsIHsgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHg0OCwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwKKyAgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyYywgMHgwMCwgMHgyMCwgMHgwMCwgMHg2MSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg3NiwKKyAgMHgwMCwgMHg2OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2NiwKKyAgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg1MywgMHgwMCwgMHg3OSwgMHgwMH19LAorIHsweDE5YzYsIDY0LCB7IDB4NzMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjMsIDB4MDAsIDB4MmUsIDB4MDAsIDB4MzYsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsCisgIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTUsIDB4MDAsIDB4NTMsCisgIDB4MDAsIDB4NDIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmMsCisgIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDEsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjUsIDB4MDB9fSwKKyB7MHgxYTA2LCA2NCwgeyAweDcyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MWE0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDFhODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxYWM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDE4LCAweDMxLCAweDAwLCAweDAyLCAweDFifX0sCisgezB4MWIwNiwgIDksIHsgMHgwNCwgMHgwMCwgMHgwMiwgMHgxOCwgMHgwNywgMHgwMCwgMHgwMiwgMHgxOCwgMHg1OH19LAorIHsweGZmZmYsICAwLCB7MHgwMH19Cit9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMjhtc2cuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTI4bXNnLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGVlNDU0YwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTI4bXNnLmgKQEAgLTAsMCArMSwyMDEgQEAKKy8qCisJdXNhMjhtc2cuaAorCisJQ29weXJpZ2h0IChDKSAxOTk4LTIwMDAgSW5ub1N5cyBJbmNvcnBvcmF0ZWQuICBBbGwgUmlnaHRzIFJlc2VydmVkCisJVGhpcyBmaWxlIGlzIGF2YWlsYWJsZSB1bmRlciBhIEJTRC1zdHlsZSBjb3B5cmlnaHQKKworCUtleXNwYW4gVVNCIEFzeW5jIE1lc3NhZ2UgRm9ybWF0cyBmb3IgdGhlIFVTQTI2WAorCisJUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisJbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorCW1ldDoKKworCTEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGlzIGxpY2VuY2UgdGV4dAorICAgCXdpdGhvdXQgbW9kaWZpY2F0aW9uLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucywgYW5kIHRoZSBmb2xsb3dpbmcKKyAgIAlkaXNjbGFpbWVyLiAgVGhlIGZvbGxvd2luZyBjb3B5cmlnaHQgbm90aWNlIG11c3QgYXBwZWFyIGltbWVkaWF0ZWx5IGF0CisgICAJdGhlIGJlZ2lubmluZyBvZiBhbGwgc291cmNlIGZpbGVzOgorCisgICAgICAgIAlDb3B5cmlnaHQgKEMpIDE5OTgtMjAwMCBJbm5vU3lzIEluY29ycG9yYXRlZC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQKKworICAgICAgICAJVGhpcyBmaWxlIGlzIGF2YWlsYWJsZSB1bmRlciBhIEJTRC1zdHlsZSBjb3B5cmlnaHQKKworCTIuIFRoZSBuYW1lIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUKKyAgIAlwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4KKyAgIAlwZXJtaXNzaW9uLgorCisJVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBJTk5PU1lTIENPUlAuIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKKwlJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisJT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4KKwlOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsCisJSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisJKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisJU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKwlDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKwlMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisJT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorCVNVQ0ggREFNQUdFLiAgICAKKworCU5vdGU6IHRoZXNlIG1lc3NhZ2UgZm9ybWF0cyBhcmUgY29tbW9uIHRvIFVTQTE4LCBVU0ExOSwgYW5kIFVTQTI4OworCShmb3IgVVNBMjhYLCBzZWUgdXNhMjZtc2cuaCkKKworCUJ1ZmZlciBmb3JtYXRzIGZvciBSWC9UWCBkYXRhIG1lc3NhZ2VzIGFyZSBub3QgZGVmaW5lZCBieQorCWEgc3RydWN0dXJlLCBidXQgYXJlIGRlc2NyaWJlZCBoZXJlOgorCisJVVNCIE9VVCAoaG9zdCAtPiBVU0EyOCwgdHJhbnNtaXQpIG1lc3NhZ2VzIGNvbnRhaW4gYSAKKwlSRVFVRVNUX0FDSyBpbmRpY2F0b3IgKHNldCB0byAweGZmIHRvIHJlcXVlc3QgYW4gQUNLIGF0IHRoZSAKKwljb21wbGV0aW9uIG9mIHRyYW5zbWl0OyAweDAwIG90aGVyd2lzZSksIGZvbGxvd2VkIGJ5IGRhdGEuCisJSWYgdGhlIHBvcnQgaXMgY29uZmlndXJlZCBmb3IgcGFyaXR5LCB0aGUgZGF0YSB3aWxsIGJlIGFuIAorCWFsdGVybmF0aW5nIHN0cmluZyBvZiBwYXJpdHkgYW5kIGRhdGEgYnl0ZXMsIHNvIHRoZSBtZXNzYWdlCisJZm9ybWF0IHdpbGwgYmU6CisKKwkJUlFTVEFDSyBQQVIgREFUIFBBUiBEQVQgLi4uCisKKwlzbyB0aGUgbWF4aW11bSBsZW5ndGggaXMgNjMgYnl0ZXMgKDEgKyA2Miwgb3IgMzEgZGF0YSBieXRlcyk7CisJYWx3YXlzIGFuIG9kZCBudW1iZXIgZm9yIHRoZSB0b3RhbCBtZXNzYWdlIGxlbmd0aC4KKworCUlmIHRoZXJlIGlzIG5vIHBhcml0eSwgdGhlIGZvcm1hdCBpcyBzaW1wbHk6CisKKwkJUlFTVEFDSyBEQVQgREFUIERBVCAuLi4KKworCXdpdGggYSB0b3RhbCBkYXRhIGxlbmd0aCBvZiA2My4KKworCVVTQiBJTiAoVVNBMjggLT4gaG9zdCwgcmVjZWl2ZSkgbWVzc2FnZXMgY29udGFpbiBkYXRhIGFuZCBwYXJpdHkKKwlpZiBwYXJpdHkgaXMgY29uZmlncmVkLCB0aHVzbHk6CisJCisJCURBVCBQQVIgREFUIFBBUiBEQVQgUEFSIC4uLgorCisJZm9yIGEgdG90YWwgb2YgMzIgZGF0YSBieXRlczsKKwkKKwlJZiBwYXJpdHkgaXMgbm90IGNvbmZpZ3VyZWQsIHRoZSBmb3JtYXQgaXM6CisKKwkJREFUIERBVCBEQVQgLi4uCisKKwlmb3IgYSB0b3RhbCBvZiA2NCBkYXRhIGJ5dGVzLgorCisJSW4gdGhlIFRYIG1lc3NhZ2VzIChVU0IgT1VUKSwgdGhlIDB4MDEgYml0IG9mIHRoZSBQQVJpdHkgYnl0ZSBpcyAKKwl0aGUgcGFyaXR5IGJpdC4gIEluIHRoZSBSWCBtZXNzYWdlcyAoVVNCIElOKSwgdGhlIFBBUml0eSBieXRlIGlzIAorCXRoZSBjb250ZW50IG9mIHRoZSA4MDUxJ3Mgc3RhdHVzIHJlZ2lzdGVyOyB0aGUgcGFyaXR5IGJpdCAKKwkoUlhfUEFSSVRZX0JJVCkgaXMgdGhlIDB4MDQgYml0LgorCisJcmV2aXNpb24gaGlzdG9yeToKKworCTE5OTltYXkwNglhZGQgcmVzZXREYXRhVG9nZ2xlIHRvIGNvbnRyb2wgbWVzc2FnZQorCTIwMDBtYXIyMQlhZGQgcnMyMzJpbnZhbGlkIHRvIHN0YXR1cyByZXNwb25zZSBtZXNzYWdlCisJMjAwMGFwcjA0CWFkZCAyMzAuNEtiIGRlZmluaXRpb24gdG8gc2V0QmF1ZFJhdGUKKwkyMDAwYXByMTMJYWRkL3JlbW92ZSBsb29wYmFja01vZGUgc3dpdGNoCisJMjAwMGFwcjEzCWNoYW5nZSBkZWZpbml0aW9uIG9mIHNldEJhdWRSYXRlIHRvIGNvdmVyIDExNS4yS2IsIHRvbworCTIwMDBqdW4wMQlhZGQgZXh0ZW5kZWQgQlNELXN0eWxlIGNvcHlyaWdodCB0ZXh0CisqLworCisjaWZuZGVmCV9fVVNBMjhNU0dfXworI2RlZmluZQlfX1VTQTI4TVNHX18KKworCitzdHJ1Y3Qga2V5c3Bhbl91c2EyOF9wb3J0Q29udHJvbE1lc3NhZ2UKK3sKKwkvKgorCQl0aGVyZSBhcmUgZm91ciB0eXBlcyBvZiAiY29tbWFuZHMiIHNlbnQgaW4gdGhlIGNvbnRyb2wgbWVzc2FnZToKKworCQkxLgljb25maWd1cmF0aW9uIGNoYW5nZXMgd2hpY2ggbXVzdCBiZSByZXF1ZXN0ZWQgYnkgc2V0dGluZworCQkJdGhlIGNvcnJlc3BvbmRpbmcgInNldCIgZmxhZyAoYW5kIHNob3VsZCBvbmx5IGJlIHJlcXVlc3RlZAorCQkJd2hlbiBuZWNlc3NhcnksIHRvIHJlZHVjZSBvdmVyaGVhZCBvbiB0aGUgVVNBMjgpOgorCSovCisJdTgJc2V0QmF1ZFJhdGUsCS8vIDA9ZG9uJ3Qgc2V0LCAxPWJhdWRMby9IaSwgMj0xMTUuMkssIDM9MjMwLjRLCisJCWJhdWRMbywJCQkvLyBob3N0IGRvZXMgYmF1ZCBkaXZpc29yIGNhbGN1bGF0aW9uCisJCWJhdWRIaTsJCQkvLyBiYXVkSGkgaXMgb25seSB1c2VkIGZvciBmaXJzdCBwb3J0IChnaXZlcyBsb3dlciByYXRlcykKKworCS8qCisJCTIuCWNvbmZpZ3VyYXRpb24gY2hhbmdlcyB3aGljaCBhcmUgZG9uZSBldmVyeSB0aW1lIChiZWNhdXNlIGl0J3MKKwkJCWhhcmRseSBtb3JlIHRyb3VibGUgdG8gZG8gdGhlbSB0aGFuIHRvIGNoZWNrIHdoZXRoZXIgdG8gZG8gdGhlbSk6CisJKi8KKwl1OAlwYXJpdHksCQkJLy8gMT11c2UgcGFyaXR5LCAwPWRvbid0CisJCWN0c0Zsb3dDb250cm9sLAkgICAgICAgIC8vIGFsbCBleGNlcHQgMTlROiAxPXVzZSBDVFMgZmxvdyBjb250cm9sLCAwPWRvbid0CisJCQkJCS8vIDE5UTogMHgwODpDVFNmbG93Q29udHJvbCAweDEwOkRTUmZsb3dDb250cm9sCisJCXhvbkZsb3dDb250cm9sLAkvLyAxPXVzZSBYT04vWE9GRiBmbG93IGNvbnRyb2wsIDA9ZG9uJ3QKKwkJcnRzLAkJCS8vIDE9b24sIDA9b2ZmCisJCWR0cjsJCQkvLyAxPW9uLCAwPW9mZgorCisJLyoKKwkJMy4JY29uZmlndXJhdGlvbiBkYXRhIHdoaWNoIGlzIHNpbXBseSB1c2VkIGFzIGlzIChubyBvdmVyaGVhZCwKKwkJCWJ1dCBtdXN0IGJlIGNvcnJlY3QgaW4gZXZlcnkgaG9zdCBtZXNzYWdlKS4KKwkqLworCXU4CWZvcndhcmRpbmdMZW5ndGgsICAvLyBmb3J3YXJkIHdoZW4gdGhpcyBudW1iZXIgb2YgY2hhcnMgYXZhaWxhYmxlCisJCWZvcndhcmRNcywJCS8vIGZvcndhcmQgdGhpcyBtYW55IG1zIGFmdGVyIGxhc3QgcnggZGF0YQorCQlicmVha1RocmVzaG9sZCwJLy8gc3BlY2lmaWVkIGluIG1zLCAxLTI1NSAoc2VlIG5vdGUgYmVsb3cpCisJCXhvbkNoYXIsCQkvLyBzcGVjaWZpZWQgaW4gY3VycmVudCBjaGFyYWN0ZXIgZm9ybWF0CisJCXhvZmZDaGFyOwkJLy8gc3BlY2lmaWVkIGluIGN1cnJlbnQgY2hhcmFjdGVyIGZvcm1hdAorCisJLyoKKwkJNC4JY29tbWFuZHMgd2hpY2ggYXJlIGZsYWdzIG9ubHk7IHRoZXNlIGFyZSBwcm9jZXNzZWQgaW4gb3JkZXIKKwkJCShzbyB0aGF0LCBlLmcuLCBpZiBib3RoIF90eE9uIGFuZCBfdHhPZmYgZmxhZ3MgYXJlIHNldCwgdGhlCisJCQlwb3J0IGVuZHMgaW4gYSBUWF9PRkYgc3RhdGUpOyBhbnkgbm9uLXplcm8gdmFsdWUgaXMgcmVzcGVjdGVkCisJKi8KKwl1OAlfdHhPbiwJCQkvLyBlbmFibGUgdHJhbnNtaXR0aW5nIChhbmQgY29udGludWUgaWYgdGhlcmUncyBkYXRhKQorCQlfdHhPZmYsCQkJLy8gc3RvcCB0cmFuc21pdHRpbmcKKwkJdHhGbHVzaCwJCS8vIHRvc3Mgb3V0Ym91bmQgZGF0YQorCQl0eEZvcmNlWG9mZiwJLy8gcHJldGVuZCB3ZSd2ZSByZWNlaXZlZCBYT0ZGCisJCXR4QnJlYWssCQkvLyB0dXJuIG9uIGJyZWFrIChsZWF2ZSBvbiB1bnRpbCB0eE9uIGNsZWFycyBpdCkKKwkJcnhPbiwJCQkvLyB0dXJuIG9uIHJlY2VpdmVyCisJCXJ4T2ZmLAkJCS8vIHR1cm4gb2ZmIHJlY2VpdmVyCisJCXJ4Rmx1c2gsCQkvLyB0b3NzIGluYm91bmQgZGF0YQorCQlyeEZvcndhcmQsCQkvLyBmb3J3YXJkIGFsbCBpbmJvdW5kIGRhdGEsIE5PVworCQlyZXR1cm5TdGF0dXMsCS8vIHJldHVybiBjdXJyZW50IHN0YXR1cyBuIHRpbWVzICgxIG9yIDIpCisJCXJlc2V0RGF0YVRvZ2dsZTsvLyByZXNldCBkYXRhIHRvZ2dsZSBzdGF0ZSB0byBEQVRBMAorCQorfTsKKworc3RydWN0IGtleXNwYW5fdXNhMjhfcG9ydFN0YXR1c01lc3NhZ2UKK3sKKwl1OAlwb3J0LAkJCS8vIDA9Zmlyc3QsIDE9c2Vjb25kLCAyPWdsb2JhbCAoc2VlIGJlbG93KQorCQljdHMsCisJCWRzciwJCQkvLyAobm90IHVzZWQgaW4gYWxsIHByb2R1Y3RzKQorCQlkY2QsCisKKwkJcmksCQkJCS8vIChub3QgdXNlZCBpbiBhbGwgcHJvZHVjdHMpCisJCV90eE9mZiwJCQkvLyBwb3J0IGhhcyBiZWVuIGRpc2FibGVkIChieSBob3N0KQorCQlfdHhYb2ZmLAkJLy8gcG9ydCBpcyBpbiBYT0ZGIHN0YXRlIChlaXRoZXIgaG9zdCBvciBSWCBYT0ZGKQorCQlkYXRhTG9zdCwJCS8vIGNvdW50IG9mIGxvc3QgY2hhcnM7IHdyYXBzOyBub3QgZ3VhcmFudGVlZCBleGFjdAorCisJCXJ4RW5hYmxlZCwJCS8vIGFzIGNvbmZpZ3VyZWQgYnkgcnhPbi9yeE9mZiAxPW9uLCAwPW9mZgorCQlyeEJyZWFrLAkJLy8gMT13ZSdyZSBpbiBicmVhayBzdGF0ZQorCQlyczIzMmludmFsaWQsCS8vIDE9bm8gdmFsaWQgc2lnbmFscyBvbiBycy0yMzIgaW5wdXRzCisJCWNvbnRyb2xSZXNwb25zZTsvLyAxPWEgY29udHJvbCBtZXNzYWdlcyBoYXMgYmVlbiBwcm9jZXNzZWQKK307CisKKy8vIGJpdCBkZWZpbmVzIGluIHR4U3RhdGUKKyNkZWZpbmUJVFhfT0ZGCQkJMHgwMQkvLyByZXF1ZXN0ZWQgYnkgaG9zdCB0eE9mZiBjb21tYW5kCisjZGVmaW5lCVRYX1hPRkYJCQkweDAyCS8vIGVpdGhlciByZWFsLCBvciBzaW11bGF0ZWQgYnkgaG9zdAorCitzdHJ1Y3Qga2V5c3Bhbl91c2EyOF9nbG9iYWxDb250cm9sTWVzc2FnZQoreworCXU4CXNlbmRHbG9iYWxTdGF0dXMsCS8vIDI9cmVxdWVzdCBmb3IgdHdvIHN0YXR1cyByZXNwb25zZXMKKwkJcmVzZXRTdGF0dXNUb2dnbGUsCS8vIDE9cmVzZXQgZ2xvYmFsIHN0YXR1cyB0b2dnbGUKKwkJcmVzZXRTdGF0dXNDb3VudDsJLy8gYSBjeWNsaW5nIHZhbHVlCit9OworCitzdHJ1Y3Qga2V5c3Bhbl91c2EyOF9nbG9iYWxTdGF0dXNNZXNzYWdlCit7CisJdTgJcG9ydCwJCQkJLy8gMworCQlzZW5kR2xvYmFsU3RhdHVzLAkvLyBmcm9tIHJlcXVlc3QsIGRlY3JlbWVudGVkCisJCXJlc2V0U3RhdHVzQ291bnQ7CS8vIGFzIGluIHJlcXVlc3QKK307CisKK3N0cnVjdCBrZXlzcGFuX3VzYTI4X2dsb2JhbERlYnVnTWVzc2FnZQoreworCXU4CXBvcnQsCQkJCS8vIDIKKwkJbiwJCQkJCS8vIHR5cGljYWxseSBhIGNvdW50L3N0YXR1cyBieXRlCisJCWI7CQkJCQkvLyB0eXBpY2FsbHkgYSBkYXRhIGJ5dGUKK307CisKKy8vIGllOiB0aGUgbWF4aW11bSBsZW5ndGggb2YgYW4gRVpVU0IgZW5kcG9pbnQgYnVmZmVyCisjZGVmaW5lCU1BWF9EQVRBX0xFTgkJCTY0CisKKy8vIHRoZSBwYXJpdHkgYnl0ZXMgaGF2ZSBvbmx5IG9uZSBzaWduaWZpY2FudCBiaXQKKyNkZWZpbmUJUlhfUEFSSVRZX0JJVAkJCTB4MDQKKyNkZWZpbmUJVFhfUEFSSVRZX0JJVAkJCTB4MDEKKworLy8gdXBkYXRlIHN0YXR1cyBhcHByb3guIDYwIHRpbWVzIGEgc2Vjb25kICgxNi42NjY2IG1zKQorI2RlZmluZQlTVEFUVVNfVVBEQVRFX0lOVEVSVkFMCTE2CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyOHhfZncuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTI4eF9mdy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzODdlZDkKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyOHhfZncuaApAQCAtMCwwICsxLDQ0NyBAQAorLyoga2V5c3Bhbl91c2EyOHhfZncuaAorCisJVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gYXMga2V5c3Bhbl91c2EyOHhfZncuaCBpcworCisJCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCisJCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKKwkJCisJYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCisJcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCisJZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUgCisJcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dCAKKwlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZSAKKwlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwgCisJaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4gCisKKwlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aCAgCisJS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZSAKKwlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluIAorCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgorCisqLworCitzdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQga2V5c3Bhbl91c2EyOHhfZmlybXdhcmVbXSA9IHsKKyB7MHgwMDMzLCAgMywgeyAweDAyLCAweDEyLCAweGY3fX0sCisgezB4MDAwMywgMTYsIHsgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHgzMCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhmMH19LAorIHsweDAwMTMsIDE2LCB7IDB4OTAsIDB4N2YsIDB4OTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZjAsIDB4OTB9fSwKKyB7MHgwMDIzLCAxNSwgeyAweDdmLCAweDk1LCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweDA3LCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk4LCAweGYwLCAweDIyfX0sCisgezB4MDA0NiwgMTYsIHsgMHgzMCwgMHgwOSwgMHgxOCwgMHgxMiwgMHgxMywgMHgxYiwgMHhlZiwgMHhjMywgMHg5NSwgMHgzYywgMHg0MCwgMHgwMywgMHgwMiwgMHgwMCwgMHhkOCwgMHg5MH19LAorIHsweDAwNTYsIDE2LCB7IDB4N2YsIDB4YmYsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4YzIsIDB4MDksIDB4YzIsIDB4MDAsIDB4ODAsIDB4NzcsIDB4MzAsIDB4MDMsIDB4M2IsIDB4OTAsIDB4N2Z9fSwKKyB7MHgwMDY2LCAxNiwgeyAweGM2LCAweGUwLCAweDIwLCAweGUxLCAweDZkLCAweDEyLCAweDEzLCAweDFiLCAweGVmLCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDY0LCAweDkwLCAweDdlfX0sCisgezB4MDA3NiwgMTYsIHsgMHg0MCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhjNywgMHhlMCwgMHgxNCwgMHhmNSwgMHgxOSwgMHgyMCwgMHgwMCwgMHgxMSwgMHg2MH19LAorIHsweDAwODYsIDE2LCB7IDB4MGYsIDB4ZjUsIDB4MDgsIDB4N2UsIDB4N2UsIDB4N2YsIDB4NDEsIDB4NzUsIDB4MGMsIDB4N2UsIDB4NzUsIDB4MGQsIDB4NDEsIDB4MTIsIDB4MGMsIDB4YmF9fSwKKyB7MHgwMDk2LCAxNiwgeyAweGMyLCAweDAzLCAweGU0LCAweDkwLCAweDdmLCAweGM3LCAweGYwLCAweDgwLCAweDM5LCAweDkwLCAweDdmLCAweGM4LCAweGUwLCAweDIwLCAweGUxLCAweDMyfX0sCisgezB4MDBhNiwgMTYsIHsgMHgxMiwgMHgxMywgMHgxYiwgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHgyOSwgMHg5MCwgMHg3ZCwgMHhjMCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwOX19LAorIHsweDAwYjYsIDE2LCB7IDB4OTAsIDB4N2YsIDB4YzksIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MTksIDB4MjAsIDB4MDAsIDB4MTEsIDB4NjAsIDB4MGYsIDB4ZjUsIDB4MDgsIDB4N2UsIDB4N2R9fSwKKyB7MHgwMGM2LCAxNiwgeyAweDdmLCAweGMxLCAweDc1LCAweDBjLCAweDdkLCAweDc1LCAweDBkLCAweGMxLCAweDEyLCAweDBjLCAweGJhLCAweGQyLCAweDAzLCAweGU0LCAweDkwLCAweDdmfX0sCisgezB4MDBkNiwgMTYsIHsgMHhjOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwMSwgMHg2MCwgMHgxMiwgMHgxMSwgMHhkNiwgMHg4Zn19LAorIHsweDAwZTYsIDE2LCB7IDB4MTksIDB4MTIsIDB4MTMsIDB4MjcsIDB4OGYsIDB4MzYsIDB4ZTUsIDB4MTksIDB4YzMsIDB4OTUsIDB4M2EsIDB4NTAsIDB4MGYsIDB4MTIsIDB4MTIsIDB4ZWJ9fSwKKyB7MHgwMGY2LCAxNiwgeyAweGVmLCAweDMwLCAweGUwLCAweDA4LCAweGU1LCAweDM2LCAweDIwLCAweGU3LCAweDAzLCAweDMwLCAweDBiLCAweDVlLCAweGMyLCAweDBiLCAweGU1LCAweDE5fX0sCisgezB4MDAzNiwgMTIsIHsgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMn19LAorIHsweDAwNDMsICAzLCB7IDB4MDIsIDB4MTMsIDB4MDB9fSwKKyB7MHgwMDAwLCAgMywgeyAweDAyLCAweDBlLCAweDAwfX0sCisgezB4MDEwNiwgNjQsIHsgMHg2MCwgMHg1OCwgMHhiNCwgMHg4MCwgMHgwMywgMHg0MywgMHgzNiwgMHgwMiwgMHhlNSwgMHgzNiwgMHgzMCwgMHhlNywgMHgyNiwgMHhlNSwgMHgxOSwgMHhkMywgMHg5NCwKKyAgMHgyMCwgMHg0MCwgMHgwMywgMHg3NSwgMHgxOSwgMHgyMCwgMHg4NSwgMHgxOSwgMHgwOCwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg4MCwgMHg3NSwgMHgwYywgMHg3ZSwKKyAgMHg3NSwgMHgwZCwgMHg4MCwgMHhhZiwgMHgzNiwgMHgxMiwgMHgwZiwgMHg0YiwgMHhlNSwgMHgxOSwgMHgyNSwgMHhlMCwgMHg5MCwgMHg3ZiwgMHhiNywgMHhmMCwKKyAgMHg4MCwgMHgyNywgMHhlNSwgMHgxOSwgMHhkMywgMHg5NCwgMHgzZiwgMHg0MCwgMHgwMywgMHg3NSwgMHgxOSwgMHgzZiwgMHg4NSwgMHgxOSwgMHgwOH19LAorIHsweDAxNDYsIDY0LCB7IDB4OTAsIDB4N2UsIDB4ODAsIDB4ZTUsIDB4MzYsIDB4ZjAsIDB4N2UsIDB4N2UsIDB4N2YsIDB4ODEsIDB4NzUsIDB4MGMsIDB4N2UsIDB4NzUsIDB4MGQsIDB4ODEsIDB4MTIsCisgIDB4MGMsIDB4ZGYsIDB4ZTUsIDB4MTksIDB4MDQsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4Y2UsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDYsCisgIDB4MjAsIDB4MDUsIDB4MDMsIDB4MDIsIDB4MDMsIDB4YzEsIDB4YzIsIDB4MDUsIDB4ZTQsIDB4ZjUsIDB4MTgsIDB4NzQsIDB4NDAsIDB4MjUsIDB4MTgsIDB4ZjUsCisgIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTgsIDB4N2MsIDB4MDAsIDB4N2IsIDB4MDEsIDB4N2F9fSwKKyB7MHgwMTg2LCA2NCwgeyAweDdlLCAweDc5LCAweDAwLCAweDI0LCAweDAwLCAweGY5LCAweGVjLCAweDM0LCAweDdlLCAweGZhLCAweGVmLCAweDEyLCAweDBlLCAweGQyLCAweDA1LCAweDE4LCAweGU1LAorICAweDE4LCAweGI0LCAweDIwLCAweGQ3LCAweDkwLCAweDdlLCAweDAwLCAweGUwLCAweDYwLCAweDY4LCAweDkwLCAweDdlLCAweDAzLCAweGUwLCAweDYwLCAweDI0LAorICAweDdmLCAweDAxLCAweGU0LCAweGZkLCAweDEyLCAweDExLCAweGIxLCAweDdmLCAweDAzLCAweDdkLCAweGNkLCAweDEyLCAweDExLCAweGIxLCAweDQzLCAweDQ2LAorICAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ2LCAweGYwLCAweGU0LCAweDkwfX0sCisgezB4MDFjNiwgNjQsIHsgMHg3ZSwgMHgxMywgMHhmMCwgMHg4MCwgMHgzMCwgMHg5MCwgMHg3ZSwgMHgwMSwgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMCwgMHgzNSwgMHg5MCwgMHg3ZSwgMHgwMiwgMHhlMCwKKyAgMHhmZiwgMHgxMiwgMHgxMCwgMHg1YiwgMHg3ZiwgMHgwMSwgMHg5MCwgMHg3ZSwgMHgxMSwgMHhlMCwgMHhmZCwgMHgxMiwgMHgxMSwgMHhiMSwgMHg3ZiwgMHgwMywKKyAgMHg3ZCwgMHgwNywgMHgxMiwgMHgxMSwgMHhiMSwgMHg0MywgMHg0NiwgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwKKyAgMHgwMCwgMHhlNSwgMHg0NiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHhlNSwgMHg0MCwgMHg0NCwgMHgwNiwgMHg5MH19LAorIHsweDAyMDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MDMsIDB4ZTAsIDB4NzAsIDB4MDYsIDB4OTAsIDB4N2UsIDB4MTMsIDB4ZTAsIDB4NzAsIDB4MDgsIDB4ZTQsIDB4OTAsCisgIDB4N2UsIDB4MTMsIDB4ZjAsIDB4NzUsIDB4MjUsIDB4ZmYsIDB4OTAsIDB4N2UsIDB4MDUsIDB4ZTAsIDB4NjAsIDB4MTIsIDB4YTMsIDB4ZTAsIDB4NTQsIDB4M2YsCisgIDB4ZjUsIDB4NDQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDQsIDB4ZjAsIDB4OTAsIDB4N2UsCisgIDB4MDcsIDB4ZTAsIDB4NjAsIDB4MmIsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDIsIDB4ODAsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDJ9fSwKKyB7MHgwMjQ2LCA2NCwgeyAweDdmLCAweDUzLCAweDQyLCAweGZjLCAweDkwLCAweDdlLCAweDA5LCAweGUwLCAweDYwLCAweDExLCAweDQzLCAweDQyLCAweDAyLCAweGEzLCAweGUwLCAweGZmLCAweDEyLAorICAweDEwLCAweGE3LCAweDkwLCAweDdlLCAweDBiLCAweGUwLCAweGZmLCAweDEyLCAweDEwLCAweGNkLCAweGFmLCAweDQyLCAweDEyLCAweDEwLCAweDgxLCAweDkwLAorICAweDdlLCAweDAzLCAweGUwLCAweDYwLCAweDA4LCAweDUzLCAweDQyLCAweDdmLCAweGFmLCAweDQyLCAweDEyLCAweDEwLCAweDgxLCAweDkwLCAweDdlLCAweDBjLAorICAweGUwLCAweDYwLCAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ2LCAweDAyLCAweDgwLCAweDAzLCAweDUzLCAweDQ2LCAweGZkfX0sCisgezB4MDI4NiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NiwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgwZSwgMHhlMCwgMHg2MCwKKyAgMHgxOCwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0NiwgMHgwMSwgMHg4MCwgMHgwMywgMHg1MywgMHg0NiwgMHhmZSwgMHg5MCwgMHg3ZiwgMHg5OCwKKyAgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NiwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgxMiwgMHhlMCwgMHhmNSwgMHgzYSwgMHhhMywKKyAgMHhlMCwgMHgxMywgMHg5MiwgMHgwZCwgMHhhMywgMHhlMCwgMHhmNSwgMHgzYywgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0NiwgMHgxMH19LAorIHsweDAyYzYsIDY0LCB7IDB4ODAsIDB4MDMsIDB4NTMsIDB4NDYsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsCisgIDB4OTAsIDB4N2UsIDB4MTYsIDB4ZTAsIDB4NjAsIDB4MzIsIDB4NTMsIDB4NDQsIDB4YmYsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsCisgIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4MTIsIDB4MTIsIDB4ZGYsCisgIDB4ZWYsIDB4NTQsIDB4ZmUsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4NTMsIDB4M2UsIDB4ZmQsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2UsIDB4MTJ9fSwKKyB7MHgwMzA2LCA2NCwgeyAweDExLCAweGIxLCAweGU0LCAweGY1LCAweDJhLCAweGY1LCAweDI5LCAweGQyLCAweDA3LCAweDkwLCAweDdlLCAweDE3LCAweGUwLCAweDYwLCAweDBmLCAweDQzLCAweDNlLAorICAweDAyLCAweGU0LCAweGZmLCAweGFkLCAweDNlLCAweDEyLCAweDExLCAweGIxLCAweDc1LCAweDI5LCAweDAxLCAweGQyLCAweDA3LCAweDkwLCAweDdlLCAweDE4LAorICAweGUwLCAweDYwLCAweDEwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweGU1LCAweDQwLCAweDQ0LCAweDA0LCAweDkwLCAweGMwLCAweDAwLAorICAweGYwLCAweGQyLCAweDAwLCAweDkwLCAweDdlLCAweDE5LCAweGUwLCAweDYwLCAweDExLCAweDQzLCAweDQ0LCAweDQwLCAweDkwLCAweDdmLCAweDk4fX0sCisgezB4MDM0NiwgNjQsIHsgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgxYSwgMHhlMCwgMHg2MCwgMHgwZiwKKyAgMHg1MywgMHgzZSwgMHhmZSwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZSwgMHgxMiwgMHgxMSwgMHhiMSwgMHg3NSwgMHgyYiwgMHgwMSwgMHhkMiwgMHgwNywgMHg5MCwKKyAgMHg3ZSwgMHgxYiwgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywgMHgzZSwgMHgwMSwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZSwgMHgxMiwgMHgxMSwgMHhiMSwgMHhlNCwKKyAgMHhmNSwgMHgyYiwgMHhkMiwgMHgwNywgMHg5MCwgMHg3ZSwgMHgxYywgMHhlMCwgMHg2MCwgMHgwZSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMn19LAorIHsweDAzODYsIDY0LCB7IDB4ZjAsIDB4ZTUsIDB4NDAsIDB4NDQsIDB4MDIsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MWQsIDB4ZTAsIDB4NjAsIDB4MDIsIDB4ZDIsIDB4MGIsCisgIDB4OTAsIDB4N2UsIDB4MWUsIDB4ZTAsIDB4NjAsIDB4MDgsIDB4NzUsIDB4MmMsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MzgsIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsCisgIDB4MWYsIDB4ZTAsIDB4NjAsIDB4MTEsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4NzQsIDB4MzEsIDB4ZjAsIDB4NzQsIDB4MTUsIDB4ZjAsCisgIDB4NzQsIDB4MzUsIDB4ZjAsIDB4ZDIsIDB4MDMsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2YsIDB4ZjAsIDB4MzAsIDB4MWEsIDB4NTIsIDB4ZTUsIDB4Mzh9fSwKKyB7MHgwM2M2LCA2NCwgeyAweDYwLCAweDAyLCAweDE1LCAweDM4LCAweDIwLCAweDEzLCAweDQ5LCAweGU1LCAweDEzLCAweGQzLCAweDk0LCAweDAwLCAweDQwLCAweDA0LCAweDE1LCAweDEzLCAweDgwLAorICAweDNlLCAweDc1LCAweDEzLCAweDBhLCAweDMwLCAweDFiLCAweDAyLCAweGQyLCAweDEzLCAweDEyLCAweDEyLCAweGRmLCAweGVmLCAweDU0LCAweDAxLCAweGY1LAorICAweDE5LCAweDY1LCAweDJhLCAweDYwLCAweDA1LCAweDg1LCAweDE5LCAweDJhLCAweGQyLCAweDA3LCAweDEyLCAweDEzLCAweDMzLCAweGVmLCAweDU0LCAweDgwLAorICAweGY1LCAweDE5LCAweDY1LCAweDI2LCAweDYwLCAweDA1LCAweDg1LCAweDE5LCAweDI2LCAweGQyLCAweDA3LCAweDMwLCAweDBkLCAweDExLCAweDEyfX0sCisgezB4MDQwNiwgNjQsIHsgMHgxMywgMHgzMywgMHhlZiwgMHg1NCwgMHgxMCwgMHhmNSwgMHgxOSwgMHg2NSwgMHgyNSwgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOSwgMHgyNSwgMHhkMiwgMHgwNywgMHgyMCwKKyAgMHgxYiwgMHgwMywgMHgwMiwgMHgwNywgMHhlYywgMHgzMCwgMHgwYSwgMHgxOCwgMHgxMiwgMHgxMywgMHg2ZiwgMHhlZiwgMHhjMywgMHg5NSwgMHgzZCwgMHg0MCwKKyAgMHgwMywgMHgwMiwgMHgwNCwgMHhhZSwgMHg5MCwgMHg3ZiwgMHhjMSwgMHg3NCwgMHgwMSwgMHhmMCwgMHhjMiwgMHgwYSwgMHhjMiwgMHgwMCwgMHg4MCwgMHg3NywKKyAgMHgzMCwgMHgwNCwgMHgzYiwgMHg5MCwgMHg3ZiwgMHhjYSwgMHhlMCwgMHgyMCwgMHhlMSwgMHg2ZCwgMHgxMiwgMHgxMywgMHg2ZiwgMHhlZiwgMHhjM319LAorIHsweDA0NDYsIDY0LCB7IDB4OTQsIDB4NDAsIDB4NTAsIDB4NjQsIDB4OTAsIDB4N2QsIDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGEsIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZTAsIDB4MTQsIDB4ZjUsCisgIDB4MTksIDB4MjAsIDB4MDAsIDB4MTEsIDB4NjAsIDB4MGYsIDB4ZjUsIDB4MDgsIDB4N2UsIDB4N2QsIDB4N2YsIDB4NDEsIDB4NzUsIDB4MGMsIDB4N2QsIDB4NzUsCisgIDB4MGQsIDB4NDEsIDB4MTIsIDB4MGQsIDB4MDQsIDB4YzIsIDB4MDQsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZjAsIDB4ODAsIDB4MzksIDB4OTAsIDB4N2YsCisgIDB4Y2MsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MzIsIDB4MTIsIDB4MTMsIDB4NmYsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4MjksIDB4OTB9fSwKKyB7MHgwNDg2LCA2NCwgeyAweDdjLCAweGMwLCAweGUwLCAweDEzLCAweDkyLCAweDBhLCAweDkwLCAweDdmLCAweGNkLCAweGUwLCAweDE0LCAweGY1LCAweDE5LCAweDIwLCAweDAwLCAweDExLCAweDYwLAorICAweDBmLCAweGY1LCAweDA4LCAweDdlLCAweDdjLCAweDdmLCAweGMxLCAweDc1LCAweDBjLCAweDdjLCAweDc1LCAweDBkLCAweGMxLCAweDEyLCAweDBkLCAweDA0LAorICAweGQyLCAweDA0LCAweGU0LCAweDkwLCAweDdmLCAweGNkLCAweGYwLCAweDkwLCAweDdmLCAweGJhLCAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDA1LAorICAweDM2LCAweDEyLCAweDEyLCAweDIwLCAweDhmLCAweDE5LCAweDEyLCAweDEzLCAweDdiLCAweDhmLCAweDM3LCAweGU1LCAweDE5LCAweGMzLCAweDk1fX0sCisgezB4MDRjNiwgNjQsIHsgMHgzYiwgMHg1MCwgMHgwZiwgMHgxMiwgMHgxMywgMHg1NywgMHhlZiwgMHgzMCwgMHhlMCwgMHgwOCwgMHhlNSwgMHgzNywgMHgyMCwgMHhlNywgMHgwMywgMHgzMCwgMHgwYywKKyAgMHg1ZSwgMHhjMiwgMHgwYywgMHhlNSwgMHgxOSwgMHg2MCwgMHg1OCwgMHhiNCwgMHg4MCwgMHgwMywgMHg0MywgMHgzNywgMHgwMiwgMHhlNSwgMHgzNywgMHgzMCwKKyAgMHhlNywgMHgyNiwgMHhlNSwgMHgxOSwgMHhkMywgMHg5NCwgMHgyMCwgMHg0MCwgMHgwMywgMHg3NSwgMHgxOSwgMHgyMCwgMHg4NSwgMHgxOSwgMHgwOCwgMHg3ZSwKKyAgMHg3ZCwgMHg3ZiwgMHg4MCwgMHg3NSwgMHgwYywgMHg3ZCwgMHg3NSwgMHgwZCwgMHg4MCwgMHhhZiwgMHgzNywgMHgxMiwgMHgwZiwgMHg4NCwgMHhlNX19LAorIHsweDA1MDYsIDY0LCB7IDB4MTksIDB4MjUsIDB4ZTAsIDB4OTAsIDB4N2YsIDB4YmIsIDB4ZjAsIDB4ODAsIDB4MjcsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsIDB4M2YsIDB4NDAsIDB4MDMsIDB4NzUsCisgIDB4MTksIDB4M2YsIDB4ODUsIDB4MTksIDB4MDgsIDB4OTAsIDB4N2QsIDB4ODAsIDB4ZTUsIDB4MzcsIDB4ZjAsIDB4N2UsIDB4N2QsIDB4N2YsIDB4ODEsIDB4NzUsCisgIDB4MGMsIDB4N2QsIDB4NzUsIDB4MGQsIDB4ODEsIDB4MTIsIDB4MGQsIDB4MjksIDB4ZTUsIDB4MTksIDB4MDQsIDB4OTAsIDB4N2YsIDB4YmIsIDB4ZjAsIDB4OTAsCisgIDB4N2YsIDB4ZDAsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4MjAsIDB4MDYsIDB4MDMsIDB4MDIsIDB4MDcsIDB4OTcsIDB4YzIsIDB4MDYsIDB4ZTR9fSwKKyB7MHgwNTQ2LCA2NCwgeyAweGY1LCAweDE4LCAweDc0LCAweGMwLCAweDI1LCAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE4LAorICAweDdjLCAweDAwLCAweDdiLCAweDAxLCAweDdhLCAweDdlLCAweDc5LCAweDIwLCAweDI0LCAweDIwLCAweGY5LCAweGVjLCAweDM0LCAweDdlLCAweGZhLCAweGVmLAorICAweDEyLCAweDBlLCAweGQyLCAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDIwLCAweGQ3LCAweDkwLCAweDdlLCAweDIwLCAweGUwLCAweDYwLCAweDY4LAorICAweDkwLCAweDdlLCAweDIzLCAweGUwLCAweDYwLCAweDI0LCAweDdmLCAweDAxLCAweGU0LCAweGZkLCAweDEyLCAweDExLCAweGZiLCAweDdmLCAweDAzfX0sCisgezB4MDU4NiwgNjQsIHsgMHg3ZCwgMHhjZCwgMHgxMiwgMHgxMSwgMHhmYiwgMHg0MywgMHg0NywgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwKKyAgMHhlNSwgMHg0NywgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZSwgMHgzMywgMHhmMCwgMHg4MCwgMHgzMCwgMHg5MCwgMHg3ZSwgMHgyMSwgMHhlMCwgMHhmZiwgMHgxMiwKKyAgMHgxMSwgMHgxOSwgMHg5MCwgMHg3ZSwgMHgyMiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMSwgMHgzZiwgMHg3ZiwgMHgwMSwgMHg5MCwgMHg3ZSwgMHgzMSwgMHhlMCwKKyAgMHhmZCwgMHgxMiwgMHgxMSwgMHhmYiwgMHg3ZiwgMHgwMywgMHg3ZCwgMHgwNywgMHgxMiwgMHgxMSwgMHhmYiwgMHg0MywgMHg0NywgMHg4MCwgMHg5MH19LAorIHsweDA1YzYsIDY0LCB7IDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDcsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGEsIDB4ZjAsCisgIDB4ZTUsIDB4NDEsIDB4NDQsIDB4MDYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MjMsIDB4ZTAsIDB4NzAsIDB4MDYsIDB4OTAsIDB4N2UsCisgIDB4MzMsIDB4ZTAsIDB4NzAsIDB4MDgsIDB4ZTQsIDB4OTAsIDB4N2UsIDB4MzMsIDB4ZjAsIDB4NzUsIDB4MmUsIDB4ZmYsIDB4OTAsIDB4N2UsIDB4MjUsIDB4ZTAsCisgIDB4NjAsIDB4MTIsIDB4YTMsIDB4ZTAsIDB4NTQsIDB4M2YsIDB4ZjUsIDB4NDUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4OTB9fSwKKyB7MHgwNjA2LCA2NCwgeyAweGMwLCAweDAwLCAweGU1LCAweDQ1LCAweGYwLCAweDkwLCAweDdlLCAweDI3LCAweGUwLCAweDYwLCAweDJiLCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQzLAorICAweDgwLCAweDgwLCAweDAzLCAweDUzLCAweDQzLCAweDdmLCAweDUzLCAweDQzLCAweGZjLCAweDkwLCAweDdlLCAweDI5LCAweGUwLCAweDYwLCAweDExLCAweDQzLAorICAweDQzLCAweDAyLCAweGEzLCAweGUwLCAweGZmLCAweDEyLCAweDExLCAweDY1LCAweDkwLCAweDdlLCAweDJiLCAweGUwLCAweGZmLCAweDEyLCAweDExLCAweDhiLAorICAweGFmLCAweDQzLCAweDEyLCAweDEwLCAweGYzLCAweDkwLCAweDdlLCAweDIzLCAweGUwLCAweDYwLCAweDA4LCAweDUzLCAweDQzLCAweDdmLCAweGFmfX0sCisgezB4MDY0NiwgNjQsIHsgMHg0MywgMHgxMiwgMHgxMCwgMHhmMywgMHg5MCwgMHg3ZSwgMHgyYywgMHhlMCwgMHg2MCwgMHgxOCwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0NywgMHgwMiwKKyAgMHg4MCwgMHgwMywgMHg1MywgMHg0NywgMHhmZCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NywKKyAgMHhmMCwgMHg5MCwgMHg3ZSwgMHgyZSwgMHhlMCwgMHg2MCwgMHgxOCwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0NywgMHgwMSwgMHg4MCwgMHgwMywKKyAgMHg1MywgMHg0NywgMHhmZSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NywgMHhmMH19LAorIHsweDA2ODYsIDY0LCB7IDB4OTAsIDB4N2UsIDB4MzIsIDB4ZTAsIDB4ZjUsIDB4M2IsIDB4YTMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGUsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4M2QsIDB4YTMsIDB4ZTAsCisgIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDcsIDB4MTAsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDcsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsCisgIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDcsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MzYsIDB4ZTAsIDB4NjAsIDB4MzIsIDB4NTMsIDB4NDUsIDB4YmYsIDB4OTAsCisgIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2Z9fSwKKyB7MHgwNmM2LCA2NCwgeyAweDk4LCAweDc0LCAweDA5LCAweGYwLCAweDEyLCAweDEzLCAweDRiLCAweGVmLCAweDU0LCAweGZlLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDUzLCAweDNmLCAweGZkLAorICAweGU0LCAweGZmLCAweGFkLCAweDNmLCAweDEyLCAweDExLCAweGZiLCAweGU0LCAweGY1LCAweDMzLCAweGY1LCAweDMyLCAweGQyLCAweDA4LCAweDkwLCAweDdlLAorICAweDM3LCAweGUwLCAweDYwLCAweDBmLCAweDQzLCAweDNmLCAweDAyLCAweGU0LCAweGZmLCAweGFkLCAweDNmLCAweDEyLCAweDExLCAweGZiLCAweDc1LCAweDMyLAorICAweDAxLCAweGQyLCAweDA4LCAweDkwLCAweDdlLCAweDM4LCAweGUwLCAweDYwLCAweDEwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwfX0sCisgezB4MDcwNiwgNjQsIHsgMHhlNSwgMHg0MSwgMHg0NCwgMHgwNCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhkMiwgMHgwMCwgMHg5MCwgMHg3ZSwgMHgzOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywKKyAgMHg0NSwgMHg0MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwKKyAgMHg5MCwgMHg3ZSwgMHgzYSwgMHhlMCwgMHg2MCwgMHgwZiwgMHg1MywgMHgzZiwgMHhmZSwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZiwgMHgxMiwgMHgxMSwgMHhmYiwKKyAgMHg3NSwgMHgzNCwgMHgwMSwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwgMHgzYiwgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywgMHgzZiwgMHgwMSwgMHhlNH19LAorIHsweDA3NDYsIDY0LCB7IDB4ZmYsIDB4YWQsIDB4M2YsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4ZTQsIDB4ZjUsIDB4MzQsIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsIDB4M2MsIDB4ZTAsIDB4NjAsIDB4MGUsCisgIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGEsIDB4ZjAsIDB4ZTUsIDB4NDEsIDB4NDQsIDB4MDIsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsCisgIDB4M2QsIDB4ZTAsIDB4NjAsIDB4MDIsIDB4ZDIsIDB4MGMsIDB4OTAsIDB4N2UsIDB4M2UsIDB4ZTAsIDB4NjAsIDB4MDgsIDB4NzUsIDB4MzUsIDB4MDEsIDB4ZTQsCisgIDB4ZjUsIDB4MzksIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsIDB4M2YsIDB4ZTAsIDB4NjAsIDB4MTEsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4NzQsIDB4MTN9fSwKKyB7MHgwNzg2LCA2NCwgeyAweGYwLCAweDc0LCAweDMzLCAweGYwLCAweDc0LCAweDE2LCAweGYwLCAweDc0LCAweDM2LCAweGYwLCAweGQyLCAweDA0LCAweGU0LCAweDkwLCAweDdmLCAweGQxLCAweGYwLAorICAweDMwLCAweDFhLCAweDUyLCAweGU1LCAweDM5LCAweDYwLCAweDAyLCAweDE1LCAweDM5LCAweDMwLCAweDEzLCAweDQ5LCAweGU1LCAweDEzLCAweGQzLCAweDk0LAorICAweDAwLCAweDQwLCAweDA0LCAweDE1LCAweDEzLCAweDgwLCAweDNlLCAweDc1LCAweDEzLCAweDBhLCAweDMwLCAweDFiLCAweDAyLCAweGMyLCAweDEzLCAweDEyLAorICAweDEzLCAweDRiLCAweGVmLCAweDU0LCAweDAxLCAweGY1LCAweDE5LCAweDY1LCAweDMzLCAweDYwLCAweDA1LCAweDg1LCAweDE5LCAweDMzLCAweGQyfX0sCisgezB4MDdjNiwgNjQsIHsgMHgwOCwgMHgxMiwgMHgxMywgMHg4NywgMHhlZiwgMHg1NCwgMHg4MCwgMHhmNSwgMHgxOSwgMHg2NSwgMHgyZiwgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOSwgMHgyZiwgMHhkMiwKKyAgMHgwOCwgMHgzMCwgMHgwZSwgMHgxMSwgMHgxMiwgMHgxMywgMHg4NywgMHhlZiwgMHg1NCwgMHgxMCwgMHhmNSwgMHgxOSwgMHg2NSwgMHgyZSwgMHg2MCwgMHgwNSwKKyAgMHg4NSwgMHgxOSwgMHgyZSwgMHhkMiwgMHgwOCwgMHgzMCwgMHgxYSwgMHgyYSwgMHg5MCwgMHg3ZiwgMHhkMiwgMHhlMCwgMHgyMCwgMHhlMSwgMHgyMywgMHg5MCwKKyAgMHg3YiwgMHg0MCwgMHhlMCwgMHg2MCwgMHgwOSwgMHhlMCwgMHhmNSwgMHgxNSwgMHg5MCwgMHg3YiwgMHg0MiwgMHhlMCwgMHhmNSwgMHgxNiwgMHg5MH19LAorIHsweDA4MDYsIDY0LCB7IDB4N2IsIDB4NDEsIDB4ZTAsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4ZDcsIDB4NzQsIDB4MTcsIDB4ZjAsIDB4NzQsIDB4MzcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsCisgIDB4ZDMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YzIsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDksIDB4MjAsIDB4ZTUsIDB4MGEsIDB4NzAsIDB4NDAsCisgIDB4MzAsIDB4MDcsIDB4MzksIDB4ZTUsIDB4MzgsIDB4NzAsIDB4MzUsIDB4YzIsIDB4MDcsIDB4ZjUsIDB4MTgsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsCisgIDB4MjQsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MGUsIDB4OGMsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjV9fSwKKyB7MHgwODQ2LCA2NCwgeyAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA5LCAweGRiLAorICAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDA5LCAweGYwLCAweDc1LCAweDM4LCAweDEwLCAweGU0LCAweGY1LCAweDJjLCAweDc1LCAweDBhLCAweDAxLCAweDIyLAorICAweGU1LCAweDBhLCAweDY0LCAweDAxLCAweDcwLCAweDQwLCAweDMwLCAweDA4LCAweDM5LCAweGU1LCAweDM5LCAweDcwLCAweDM1LCAweGMyLCAweDA4LCAweGY1LAorICAweDE4LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDJkLCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyfX0sCisgezB4MDg4NiwgNjQsIHsgMHgwZSwgMHg4YywgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwKKyAgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwOSwgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwOSwgMHhmMCwgMHg3NSwgMHgzOSwgMHgxMCwgMHhlNCwKKyAgMHhmNSwgMHgzNSwgMHg3NSwgMHgwYSwgMHgwMiwgMHgyMiwgMHhlNSwgMHgwYSwgMHg2NCwgMHgwMiwgMHg3MCwgMHgzNiwgMHgzMCwgMHgxNCwgMHgyZiwgMHhjMiwKKyAgMHgxNCwgMHhmNSwgMHgxOCwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgwZSwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMH19LAorIHsweDA4YzYsIDY0LCB7IDB4ZmEsIDB4MTIsIDB4MGUsIDB4OGMsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsCisgIDB4ZjAsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDUsIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDUsIDB4ZjAsIDB4NzUsIDB4MGEsCisgIDB4MDMsIDB4MjIsIDB4ZTUsIDB4MTUsIDB4NjAsIDB4MzAsIDB4MTUsIDB4MTUsIDB4ZTQsIDB4ZjUsIDB4MTgsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsCisgIDB4MTQsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MGUsIDB4OGMsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjV9fSwKKyB7MHgwOTA2LCA2NCwgeyAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDAzLCAweGRiLAorICAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDAzLCAweGYwLCAweGU0LCAweGY1LCAweDBhLCAweDIyLCAweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDEyLCAweDBlLAorICAweGU0LCAweDBhLCAweDA4LCAweDAwLCAweDBhLCAweDdjLCAweDAxLCAweDBhLCAweGU4LCAweDAzLCAweDA5LCAweDQ0LCAweDA2LCAweDA5LCAweGZiLCAweDA4LAorICAweDA5LCAweGY1LCAweDA5LCAweDA5LCAweGRkLCAweDBhLCAweDA5LCAweGVjLCAweDBiLCAweDAwLCAweDAwLCAweDBiLCAweDM3LCAweDkwLCAweDdmfX0sCisgezB4MDk0NiwgNjQsIHsgMHhlYiwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxOSwgMHgxNCwgMHg2MCwgMHg2MSwgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwOSwgMHhkMywgMHg3NCwKKyAgMHgxOSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHg3NCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwKKyAgMHhlYSwgMHhlMCwgMHg3MCwgMHgwNCwgMHg3ZiwgMHgwMiwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgwMywgMHg3NSwgMHg4MiwgMHg4MiwgMHg3NSwgMHg4MywgMHgxOSwKKyAgMHhlZiwgMHhmMCwgMHg3NSwgMHg4MiwgMHg3YiwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NSwgMHg4MiwgMHg3NCwgMHg3NSwgMHg4MywgMHgxOX19LAorIHsweDA5ODYsIDY0LCB7IDB4ZjAsIDB4NzUsIDB4ODIsIDB4NjYsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4NzUsIDB4ODIsIDB4NTgsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4OTAsIDB4N2YsCisgIDB4ZWEsIDB4ZTAsIDB4MDQsIDB4NzUsIDB4ODIsIDB4MTcsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4NzQsIDB4MTksIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsCisgIDB4NzQsIDB4MTIsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MGYsCisgIDB4MGEsIDB4ZWEsIDB4NDksIDB4NjAsIDB4MGQsIDB4ZWEsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4ZTksIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjB9fSwKKyB7MHgwOWM2LCA2NCwgeyAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGI0LCAweGUwLAorICAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDA5LCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LAorICAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDA5LCAweDAyLCAweDBiLCAweDNlLCAweDEyLCAweDBiLAorICAweDQ2LCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweDAwLCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweGYwLCAweDAyfX0sCisgezB4MGEwNiwgNjQsIHsgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHg3ZiwgMHg2MCwgMHgyNCwgMHgxNCwgMHg2MCwgMHgzMSwgMHgyNCwgMHgwMiwgMHg3MCwgMHg1YiwKKyAgMHhhMiwgMHgxMCwgMHhlNCwgMHgzMywgMHhmZiwgMHgyNSwgMHhlMCwgMHhmZiwgMHhhMiwgMHgxNiwgMHhlNCwgMHgzMywgMHg0ZiwgMHg5MCwgMHg3ZiwgMHgwMCwKKyAgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHhlNCwgMHg5MCwgMHg3ZiwKKyAgMHgwMCwgMHhmMCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3Zn19LAorIHsweDBhNDYsIDY0LCB7IDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsCisgIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsCisgIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsCisgIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MWQsIDB4MjQsIDB4MDJ9fSwKKyB7MHgwYTg2LCA2NCwgeyAweDYwLCAweDAzLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDA1LCAweGMyLCAweDEwLCAweDAyLCAweDBiLCAweDNlLAorICAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDM4LAorICAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLAorICAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDkwLCAweDdmfX0sCisgezB4MGFjNiwgNjQsIHsgMHhlYywgMHhlMCwgMHg1NCwgMHg4MCwgMHhmZiwgMHgxMywgMHgxMywgMHgxMywgMHg1NCwgMHgxZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHg5MCwgMHg3ZiwKKyAgMHhkNywgMHhmMCwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg4MCwgMHg1ZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwKKyAgMHg1NiwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxOCwgMHgyNCwgMHgwMiwgMHg3MCwgMHg0YSwgMHg5MCwgMHg3ZiwgMHhlYSwKKyAgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNCwgMHhkMiwgMHgxMCwgMHg4MCwgMHgzZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMH19LAorIHsweDBiMDYsIDY0LCB7IDB4ODAsIDB4MzYsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsCisgIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsCisgIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MDcsCisgIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MjJ9fSwKKyB7MHgwYjQ2LCA2NCwgeyAweGU0LCAweDkwLCAweDdmLCAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweDMwLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk2LCAweGYwLCAweDkwLAorICAweDdmLCAweDk1LCAweDc0LCAweGMwLCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweDNmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE4LAorICAweGYwLCAweGU0LCAweGY1LCAweDhlLCAweDkwLCAweDdmLCAweGRmLCAweDc0LCAweGZmLCAweGYwLCAweDkwLCAweDdmLCAweGRlLCAweGYwLCAweGU0LCAweGY1LAorICAweDI0LCAweDc1LCAweDE4LCAweDAxLCAweDdiLCAweDAwLCAweDc0LCAweDI0LCAweDI1LCAweDE4LCAweGY5LCAweGU0LCAweDM0LCAweDAwLCAweGZhfX0sCisgezB4MGI4NiwgNjQsIHsgMHhlNCwgMHgxMiwgMHgwZSwgMHhkMiwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwOSwgMHhlYSwgMHg3NSwgMHgzYSwgMHgwMSwgMHhlNCwgMHhmNSwgMHgzOCwKKyAgMHhmNSwgMHgxMywgMHhmNSwgMHgzNiwgMHhjMiwgMHgwNywgMHhjMiwgMHgwYiwgMHhjMiwgMHgwNSwgMHhjMiwgMHgwMCwgMHhjMiwgMHgwOSwgMHhjMiwgMHgxMywKKyAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg3NSwgMHg0NCwgMHgwMywgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHgwMywgMHhmMCwgMHg3ZiwKKyAgMHgwYywgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMSwgMHhiMSwgMHg3ZiwgMHgxMCwgMHg4ZiwgMHg0MiwgMHgxMiwgMHgxMCwgMHg4MSwgMHg5MCwgMHg3Zn19LAorIHsweDBiYzYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4N2YsIDB4MDEsIDB4OGYsIDB4NDAsIDB4ZWYsIDB4NDQsIDB4MDYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2YsCisgIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4NzUsIDB4NDYsIDB4ODAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4ODAsIDB4ZjAsIDB4MGYsIDB4ZTQsIDB4ZmQsCisgIDB4MTIsIDB4MTEsIDB4YjEsIDB4ZTQsIDB4ZmYsIDB4N2UsIDB4YTMsIDB4YWQsIDB4MDYsIDB4OGQsIDB4M2UsIDB4MTIsIDB4MTEsIDB4YjEsIDB4OTAsIDB4N2YsCisgIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTQsIDB4ZjAsIDB4N2YsIDB4MDUsIDB4N2QsIDB4N2YsIDB4MTIsIDB4MTF9fSwKKyB7MHgwYzA2LCA2NCwgeyAweGIxLCAweDdmLCAweDAxLCAweDEyLCAweDEyLCAweDZhLCAweDdmLCAweDAzLCAweDdkLCAweDA3LCAweDEyLCAweDExLCAweGIxLCAweDIwLCAweDFiLCAweDAzLCAweDAyLAorICAweDBjLCAweGI3LCAweDc1LCAweDJkLCAweDAxLCAweDc1LCAweDE4LCAweDAxLCAweDdiLCAweDAwLCAweDc0LCAweDJkLCAweDI1LCAweDE4LCAweGY5LCAweGU0LAorICAweDM0LCAweDAwLCAweGZhLCAweGU0LCAweDEyLCAweDBlLCAweGQyLCAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA5LCAweGVhLCAweDc1LCAweDNiLAorICAweDAxLCAweGU0LCAweGY1LCAweDM5LCAweGY1LCAweDEzLCAweGY1LCAweDM3LCAweGMyLCAweDA4LCAweGMyLCAweDBjLCAweGMyLCAweDA2LCAweGMyfX0sCisgezB4MGM0NiwgNjQsIHsgMHgwMCwgMHhjMiwgMHgwYSwgMHhjMiwgMHgxMywgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg3NSwgMHg0NSwgMHgwMywgMHg5MCwgMHhjMCwgMHgwMCwKKyAgMHg3NCwgMHgwMywgMHhmMCwgMHg3ZiwgMHgwYywgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMSwgMHhmYiwgMHg3ZiwgMHgxMCwgMHg4ZiwgMHg0MywgMHgxMiwgMHgxMCwKKyAgMHhmMywgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwgMHg3ZiwgMHgwMSwgMHg4ZiwgMHg0MSwgMHhlZiwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwKKyAgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg3NSwgMHg0NywgMHg4MCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NH19LAorIHsweDBjODYsIDY0LCB7IDB4ODAsIDB4ZjAsIDB4MGYsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4ZTQsIDB4ZmYsIDB4N2UsIDB4YTMsIDB4YWQsIDB4MDYsIDB4OGQsIDB4M2YsIDB4MTIsCisgIDB4MTEsIDB4ZmIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDksIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTQsIDB4ZjAsIDB4N2YsIDB4MDUsIDB4N2QsCisgIDB4N2YsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4N2YsIDB4MDEsIDB4MTIsIDB4MTIsIDB4OGIsIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTEsIDB4ZmIsCisgIDB4ZDIsIDB4MTIsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4YWYsIDB4MDgsIDB4ZTUsIDB4MGQsIDB4ZjUsIDB4ODJ9fSwKKyB7MHgwY2M2LCA2NCwgeyAweGU1LCAweDBjLCAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweDA1LCAweDg2LCAweGUwLCAweGEzLCAweDA1LCAweDg2LAorICAweGYwLCAweDA1LCAweDg2LCAweGRmLCAweGY3LCAweGQyLCAweGFmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweGFmLCAweDA4LAorICAweGU1LCAweDBkLCAweGY1LCAweDgyLCAweGU1LCAweDBjLCAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweGUwLAorICAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweGRmLCAweGY3LCAweDA1LCAweDg2LCAweGQyLCAweGFmLCAweDIyLCAweDkwLCAweDdmfX0sCisgezB4MGQwNiwgNjQsIHsgMHg5OCwgMHg3NCwgMHgwOCwgMHhmMCwgMHhhZiwgMHgwOCwgMHhlNSwgMHgwZCwgMHhmNSwgMHg4MiwgMHhlNSwgMHgwYywgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwKKyAgMHg4NiwgMHg5MCwgMHhjMCwgMHgwMCwgMHgwNSwgMHg4NiwgMHhlMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhmMCwgMHgwNSwgMHg4NiwgMHhkZiwgMHhmNywgMHhkMiwKKyAgMHhhZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOCwgMHhmMCwgMHhhZiwgMHgwOCwgMHhlNSwgMHgwZCwgMHhmNSwgMHg4MiwgMHhlNSwgMHgwYywKKyAgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHgwNSwgMHg4NiwgMHhmMCwgMHhhMywgMHgwNX19LAorIHsweDBkNDYsIDY0LCB7IDB4ODYsIDB4ZGYsIDB4ZjcsIDB4MDUsIDB4ODYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4NzQsIDB4MDAsIDB4ZjUsIDB4ODYsIDB4OTAsIDB4ZmQsIDB4YTUsIDB4N2MsIDB4MDUsCisgIDB4YTMsIDB4ZTUsIDB4ODIsIDB4NDUsIDB4ODMsIDB4NzAsIDB4ZjksIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4NDMsCisgIDB4ODcsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjIsIDB4ZDIsIDB4MTksIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4NDQsIDB4MDIsCisgIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZTAsIDB4ZmYsIDB4ZDMsIDB4OTIsIDB4MTAsIDB4ZTQsIDB4MzMsIDB4ZmUsIDB4ZWYsIDB4NGUsIDB4ZjB9fSwKKyB7MHgwZDg2LCA2NCwgeyAweGQyLCAweGU4LCAweDQzLCAweGQ4LCAweDIwLCAweDkwLCAweDdmLCAweGRlLCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGRmLCAweGYwLCAweDkwLCAweDdmLAorICAweGFiLCAweDc0LCAweGZmLCAweGYwLCAweDkwLCAweDdmLCAweGE5LCAweGYwLCAweDkwLCAweDdmLCAweGFhLCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLAorICAweDdmLCAweGFmLCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGFlLCAweGUwLCAweDQ0LCAweDBkLCAweGYwLCAweGQyLCAweGFmLCAweGQyLAorICAweDFhLCAweDEyLCAweDEyLCAweDQ1LCAweGMyLCAweDExLCAweGU0LCAweGY1LCAweDBiLCAweGY1LCAweDEzLCAweGMyLCAweDE3LCAweGMyLCAweDEyfX0sCisgezB4MGRjNiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHhhMSwgMHgwNCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkOCwgMHhlMCwgMHg2NSwgMHgxNywgMHg2MCwgMHgxMCwgMHgzMCwgMHgxMiwgMHgwNSwgMHhkMiwKKyAgMHgxYSwgMHgxMiwgMHgwMCwgMHg0NiwgMHg5MCwgMHg3ZiwgMHhkOCwgMHhlMCwgMHhmNSwgMHgxNywgMHg4MCwgMHgwOCwgMHgzMCwgMHgxMiwgMHgwNSwgMHhjMiwKKyAgMHgxYSwgMHgxMiwgMHgwMCwgMHg0NiwgMHgzMCwgMHgxMSwgMHgwNywgMHhjMiwgMHgxMSwgMHgxMiwgMHgwOSwgMHgyMSwgMHg4MCwgMHhkNiwgMHgzMCwgMHgxOCwKKyAgMHhkMywgMHhjMiwgMHgxOCwgMHgxMiwgMHgxMywgMHg5MywgMHg4MCwgMHhjYywgMHgyMiwgMHg3OCwgMHg3ZiwgMHhlNCwgMHhmNiwgMHhkOCwgMHhmZH19LAorIHsweDBlMDYsIDY0LCB7IDB4NzUsIDB4ODEsIDB4NDcsIDB4MDIsIDB4MGUsIDB4NDcsIDB4MDIsIDB4MGQsIDB4NmYsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NDAsCisgIDB4MDMsIDB4ZjYsIDB4ODAsIDB4MDEsIDB4ZjIsIDB4MDgsIDB4ZGYsIDB4ZjQsIDB4ODAsIDB4MjksIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4NTQsIDB4MDcsCisgIDB4MjQsIDB4MGMsIDB4YzgsIDB4YzMsIDB4MzMsIDB4YzQsIDB4NTQsIDB4MGYsIDB4NDQsIDB4MjAsIDB4YzgsIDB4ODMsIDB4NDAsIDB4MDQsIDB4ZjQsIDB4NTYsCisgIDB4ODAsIDB4MDEsIDB4NDYsIDB4ZjYsIDB4ZGYsIDB4ZTQsIDB4ODAsIDB4MGIsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDB9fSwKKyB7MHgwZTQ2LCA2NCwgeyAweDgwLCAweDkwLCAweDEyLCAweGFjLCAweGU0LCAweDdlLCAweDAxLCAweDkzLCAweDYwLCAweGJjLCAweGEzLCAweGZmLCAweDU0LCAweDNmLCAweDMwLCAweGU1LCAweDA5LAorICAweDU0LCAweDFmLCAweGZlLCAweGU0LCAweDkzLCAweGEzLCAweDYwLCAweDAxLCAweDBlLCAweGNmLCAweDU0LCAweGMwLCAweDI1LCAweGUwLCAweDYwLCAweGE4LAorICAweDQwLCAweGI4LCAweGU0LCAweDkzLCAweGEzLCAweGZhLCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweGM4LCAweGM1LCAweDgyLAorICAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGYwLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhfX0sCisgezB4MGU4NiwgNjQsIHsgMHhkZiwgMHhlOSwgMHhkZSwgMHhlNywgMHg4MCwgMHhiZSwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwMiwKKyAgMHhlNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMiwgMHhlMywgMHgyMiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwKKyAgMHgwYywgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwNiwgMHhlOSwKKyAgMHgyNSwgMHg4MiwgMHhmOCwgMHhlNiwgMHgyMiwgMHhiYiwgMHhmZSwgMHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlMiwgMHgyMiwgMHhlNX19LAorIHsweDBlYzYsIDY0LCB7IDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsCisgIDB4OGEsIDB4ODMsIDB4ZjAsIDB4MjIsIDB4NTAsIDB4MDIsIDB4ZjcsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDEsIDB4ZjMsIDB4MjIsIDB4ZDAsIDB4ODMsIDB4ZDAsCisgIDB4ODIsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4NzAsIDB4MTIsIDB4NzQsIDB4MDEsIDB4OTMsIDB4NzAsIDB4MGQsIDB4YTMsIDB4YTMsIDB4OTMsIDB4ZjgsIDB4NzQsCisgIDB4MDEsIDB4OTMsIDB4ZjUsIDB4ODIsIDB4ODgsIDB4ODMsIDB4ZTQsIDB4NzMsIDB4NzQsIDB4MDIsIDB4OTMsIDB4NjgsIDB4NjAsIDB4ZWYsIDB4YTN9fSwKKyB7MHgwZjA2LCA2NCwgeyAweGEzLCAweGEzLCAweDgwLCAweGRmLCAweDhmLCAweDE4LCAweGU0LCAweGY1LCAweDE5LCAweDc1LCAweDFhLCAweGZmLCAweDc1LCAweDFiLCAweDE5LCAweDc1LCAweDFjLAorICAweDg2LCAweGFiLCAweDFhLCAweGFhLCAweDFiLCAweGE5LCAweDFjLCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweDBlLCAweGE1LCAweGI0LCAweDAzLCAweDFkLAorICAweGFmLCAweDE5LCAweDA1LCAweDE5LCAweGVmLCAweGI1LCAweDE4LCAweDAxLCAweDIyLCAweDEyLCAweDBlLCAweDhjLCAweDdlLCAweDAwLCAweDI5LCAweGZmLAorICAweGVlLCAweDNhLCAweGE5LCAweDA3LCAweDc1LCAweDFhLCAweGZmLCAweGY1LCAweDFiLCAweDg5LCAweDFjLCAweDgwLCAweGQ0LCAweDdiLCAweDAwfX0sCisgezB4MGY0NiwgNjQsIHsgMHg3YSwgMHgwMCwgMHg3OSwgMHgwMCwgMHgyMiwgMHg4ZiwgMHgxYSwgMHgwNSwgMHgwZCwgMHhlNSwgMHgwZCwgMHhhZSwgMHgwYywgMHg3MCwgMHgwMiwgMHgwNSwgMHgwYywKKyAgMHgxNCwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlNSwgMHgxYSwgMHhmMCwgMHgxMiwgMHgwMCwgMHgzNiwgMHgwNSwgMHgwZCwgMHhlNSwgMHgwZCwgMHhhYywKKyAgMHgwYywgMHg3MCwgMHgwMiwgMHgwNSwgMHgwYywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHgxNSwgMHgwOCwgMHhlNSwgMHgwOCwKKyAgMHg2MCwgMHgwYSwgMHgxMiwgMHgxMywgMHgyNywgMHg4ZiwgMHgxYSwgMHhlZiwgMHg0MiwgMHgzNiwgMHg4MCwgMHhjYSwgMHgyMiwgMHg4ZiwgMHgxYX19LAorIHsweDBmODYsIDY0LCB7IDB4MDUsIDB4MGQsIDB4ZTUsIDB4MGQsIDB4YWUsIDB4MGMsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MGMsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTUsIDB4MWEsCisgIDB4ZjAsIDB4MTIsIDB4MTMsIDB4M2YsIDB4MDUsIDB4MGQsIDB4ZTUsIDB4MGQsIDB4YWMsIDB4MGMsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MGMsIDB4MTQsIDB4ZjUsCisgIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MTUsIDB4MDgsIDB4ZTUsIDB4MDgsIDB4NjAsIDB4MGEsIDB4MTIsIDB4MTMsIDB4N2IsIDB4OGYsIDB4MWEsCisgIDB4ZWYsIDB4NDIsIDB4MzcsIDB4ODAsIDB4Y2EsIDB4MjIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzB9fSwKKyB7MHgwZmM2LCA2NCwgeyAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweDkwLCAweDdmLCAweGM0LCAweGU0LCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLAorICAweDc0LCAweDA0LCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLAorICAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLAorICAweDExLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDAxLCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwfX0sCisgezB4MTAwNiwgNjQsIHsgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwKKyAgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhkMiwgMHgxOCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwOCwKKyAgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHg5MCwgMHg3ZiwKKyAgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMH19LAorIHsweDEwNDYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsCisgIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsCisgIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsCisgIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTN9fSwKKyB7MHgxMDg2LCA2NCwgeyAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLAorICAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLAorICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAorICAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0fX0sCisgezB4MTBjNiwgNjQsIHsgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwKKyAgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwKKyAgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKKyAgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwgMHg5MH19LAorIHsweDExMDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsCisgIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsCisgIDB4OTgsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsCisgIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4OTB9fSwKKyB7MHgxMTQ2LCA2NCwgeyAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA5LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLAorICAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLAorICAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLAorICAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmfX0sCisgezB4MTE4NiwgNjQsIHsgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwKKyAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwKKyAgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwKKyAgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNywgMHhmMCwgMHg5MH19LAorIHsweDExYzYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWQsIDB4ZjAsIDB4MjIsIDB4MTIsCisgIDB4MTMsIDB4MGYsIDB4OGYsIDB4MWEsIDB4MTIsIDB4MTMsIDB4MGYsIDB4OGYsIDB4MWIsIDB4ZTUsIDB4MWEsIDB4NjUsIDB4MWIsIDB4NjAsIDB4MTIsIDB4MTIsCisgIDB4MTMsIDB4MGYsIDB4OGYsIDB4MWEsIDB4ZTUsIDB4MWEsIDB4NjUsIDB4MWIsIDB4NjAsIDB4MDcsIDB4MTIsIDB4MTMsIDB4MGYsIDB4OGYsIDB4MWIsIDB4ODAsCisgIDB4ZTgsIDB4YWYsIDB4MWEsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTB9fSwKKyB7MHgxMjA2LCA2NCwgeyAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBmLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LAorICAweDc0LCAweDBkLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVkLCAweGYwLCAweDIyLCAweDEyLCAweDEzLCAweDYzLCAweDhmLCAweDFhLCAweDEyLCAweDEzLAorICAweDYzLCAweDhmLCAweDFiLCAweGU1LCAweDFhLCAweDY1LCAweDFiLCAweDYwLCAweDEyLCAweDEyLCAweDEzLCAweDYzLCAweDhmLCAweDFhLCAweGU1LCAweDFhLAorICAweDY1LCAweDFiLCAweDYwLCAweDA3LCAweDEyLCAweDEzLCAweDYzLCAweDhmLCAweDFiLCAweDgwLCAweGU4LCAweGFmLCAweDFhLCAweDIyLCAweDkwfX0sCisgezB4MTI0NiwgNjQsIHsgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHhlMCwgMHg0NCwgMHgwOCwgMHhmMCwgMHgzMCwgMHgxYSwgMHgwNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwKKyAgMHg3ZiwgMHhmNCwgMHg3ZSwgMHgwMSwgMHgxMiwgMHgxMiwgMHhjOCwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHhlMCwgMHg0NCwKKyAgMHgwNCwgMHhmMCwgMHgyMiwgMHhhZSwgMHgwNywgMHhlNCwgMHhmZiwgMHhlNSwgMHgzZSwgMHg1NCwgMHg3ZiwgMHhmZCwgMHgxMiwgMHgxMSwgMHhiMSwgMHg5MCwKKyAgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZSwgMHhmMCwgMHhlNCwgMHhlNSwgMHgzZSwgMHg0NCwgMHg4MH19LAorIHsweDEyODYsIDY0LCB7IDB4ZmQsIDB4MTIsIDB4MTEsIDB4YjEsIDB4MjIsIDB4YWUsIDB4MDcsIDB4ZTQsIDB4ZmYsIDB4ZTUsIDB4M2YsIDB4NTQsIDB4N2YsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4ZmIsCisgIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDksIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWUsIDB4ZjAsIDB4ZTQsIDB4ZTUsIDB4M2YsIDB4NDQsIDB4ODAsCisgIDB4ZmQsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4MjIsIDB4MDUsIDB4MGUsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDMsIDB4MTQsIDB4MDMsIDB4MDAsCisgIDB4MDAsIDB4YzEsIDB4MTEsIDB4YzEsIDB4MTgsIDB4YzEsIDB4OTUsIDB4YzEsIDB4MTAsIDB4YzEsIDB4MTYsIDB4MDEsIDB4MGEsIDB4MDAsIDB4YzF9fSwKKyB7MHgxMmM2LCA2NCwgeyAweDliLCAweDAwLCAweDhlLCAweDE4LCAweDhmLCAweDE5LCAweGU1LCAweDE5LCAweDE1LCAweDE5LCAweGFlLCAweDE4LCAweDcwLCAweDAyLCAweDE1LCAweDE4LCAweDRlLAorICAweDYwLCAweDA1LCAweDEyLCAweDBkLCAweDRlLCAweDgwLCAweGVlLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLAorICAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLAorICAweDUzLCAweGQ4LCAweGVmLCAweDMyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDBmLCAweGU3LCAweDAwLCAweDAyLCAweDEzfX0sCisgezB4MTMwNiwgNjQsIHsgMHgwNCwgMHgwMCwgMHgwMiwgMHgwZiwgMHhiZCwgMHgwMCwgMHgwMiwgMHgxMCwgMHgwZSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwKKyAgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwKKyAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKKyAgMHgxNiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOCwgMHhmMCwgMHg5MH19LAorIHsweDEzNDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDksIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsCisgIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsCisgIDB4MGIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsCisgIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmZ9fSwKKyB7MHgxMzg2LCA2NCwgeyAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBlLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDEyLCAweDAwLCAweDAzLCAweDEyLAorICAweDBkLCAweDVmLCAweDEyLCAweDBiLCAweDQ2LCAweDIyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTNjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE0MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNDQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTQ4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE0YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNTA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTU0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE1ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNWM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTYwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE2NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNjg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTZjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE3MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNzQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTc4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE3YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxODA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTg0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE4ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxOGM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDEyLCAweDAxLCAweDEwLCAweDAxLCAweGZmLCAweDAwfX0sCisgezB4MTkwNiwgNjQsIHsgMHgwMCwgMHg0MCwgMHhjZCwgMHgwNiwgMHgxMCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMCwgMHgwMiwgMHgwOSwgMHgwMiwgMHg3NCwgMHgwMCwgMHgwMSwKKyAgMHgwMSwgMHgwMCwgMHhhMCwgMHgzMiwgMHgwOSwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwZSwgMHhmZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMSwKKyAgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMywgMHgwMiwgMHg0MCwKKyAgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNSwgMHgwMiwgMHg0MCwgMHgwMH19LAorIHsweDE5NDYsIDY0LCB7IDB4MDAsIDB4MDcsIDB4MDUsIDB4MDYsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDcsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsCisgIDB4ODEsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4ODMsIDB4MDIsCisgIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODUsIDB4MDIsIDB4NDAsIDB4MDAsCisgIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODYsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODcsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDF9fSwKKyB7MHgxOTg2LCA2NCwgeyAweDA0LCAweDAzLCAweDA5LCAweDA0LCAweDQ4LCAweDAzLCAweDRiLCAweDAwLCAweDY1LCAweDAwLCAweDc5LCAweDAwLCAweDczLCAweDAwLCAweDcwLCAweDAwLCAweDYxLAorICAweDAwLCAweDZlLCAweDAwLCAweDJjLCAweDAwLCAweDIwLCAweDAwLCAweDYxLCAweDAwLCAweDIwLCAweDAwLCAweDY0LCAweDAwLCAweDY5LCAweDAwLCAweDc2LAorICAweDAwLCAweDY5LCAweDAwLCAweDczLCAweDAwLCAweDY5LCAweDAwLCAweDZmLCAweDAwLCAweDZlLCAweDAwLCAweDIwLCAweDAwLCAweDZmLCAweDAwLCAweDY2LAorICAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDZlLCAweDAwLCAweDZmLCAweDAwLCAweDUzLCAweDAwLCAweDc5LCAweDAwfX0sCisgezB4MTljNiwgNjQsIHsgMHg3MywgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2MywgMHgwMCwgMHgyZSwgMHgwMCwgMHgzNiwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwKKyAgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1NSwgMHgwMCwgMHg1MywKKyAgMHgwMCwgMHg0MiwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1MywgMHgwMCwgMHg2NSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2YywKKyAgMHgwMCwgMHgyMCwgMHgwMCwgMHg0MSwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2MSwgMHgwMCwgMHg3MCwgMHgwMCwgMHg3NCwgMHgwMCwgMHg2NSwgMHgwMH19LAorIHsweDFhMDYsICA0LCB7IDB4NzIsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHhmZmZmLCAgMCwgIHsweDAwfX0KK307CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyOHhhX2Z3LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyOHhhX2Z3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2I1NjY3OAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTI4eGFfZncuaApAQCAtMCwwICsxLDQ0OSBAQAorLyoga2V5c3Bhbl91c2EyOHhhX2Z3LmgKKworCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGFzIGtleXNwYW5fdXNhMjh4YS5oIGlzCisKKwkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKKwkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQorCQkKKwlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKKwlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKKwlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZSAKKwlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlIAorCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbCAKKwlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLiAKKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoICAKKwlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlIAorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gCisJcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCisKKworCisqLworCitzdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQga2V5c3Bhbl91c2EyOHhhX2Zpcm13YXJlW10gPSB7CisgezB4MDAzMywgIDMsIHsgMHgwMiwgMHgxMiwgMHhmOX19LAorIHsweDAwMDMsIDE2LCB7IDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZjB9fSwKKyB7MHgwMDEzLCAxNiwgeyAweDkwLCAweDdmLCAweDk0LCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweDc0LCAweGZmLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk3LCAweGYwLCAweDkwfX0sCisgezB4MDAyMywgMTUsIHsgMHg3ZiwgMHg5NSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHgwNywgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhmMCwgMHgyMn19LAorIHsweDAwNDYsIDE2LCB7IDB4MzAsIDB4MDksIDB4MTgsIDB4MTIsIDB4MTMsIDB4MjcsIDB4ZWYsIDB4YzMsIDB4OTUsIDB4M2MsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDAsIDB4ZDgsIDB4OTB9fSwKKyB7MHgwMDU2LCAxNiwgeyAweDdmLCAweGJmLCAweDc0LCAweDAxLCAweGYwLCAweGMyLCAweDA5LCAweGMyLCAweDAwLCAweDgwLCAweDc3LCAweDMwLCAweDAzLCAweDNiLCAweDkwLCAweDdmfX0sCisgezB4MDA2NiwgMTYsIHsgMHhjNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHg2ZCwgMHgxMiwgMHgxMywgMHgyNywgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHg2NCwgMHg5MCwgMHg3ZX19LAorIHsweDAwNzYsIDE2LCB7IDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MDksIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MTksIDB4MjAsIDB4MDAsIDB4MTEsIDB4NjB9fSwKKyB7MHgwMDg2LCAxNiwgeyAweDBmLCAweGY1LCAweDA4LCAweDdlLCAweDdlLCAweDdmLCAweDQxLCAweDc1LCAweDBjLCAweDdlLCAweDc1LCAweDBkLCAweDQxLCAweDEyLCAweDBjLCAweGM4fX0sCisgezB4MDA5NiwgMTYsIHsgMHhjMiwgMHgwMywgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHg4MCwgMHgzOSwgMHg5MCwgMHg3ZiwgMHhjOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgzMn19LAorIHsweDAwYTYsIDE2LCB7IDB4MTIsIDB4MTMsIDB4MjcsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4MjksIDB4OTAsIDB4N2QsIDB4YzAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MDl9fSwKKyB7MHgwMGI2LCAxNiwgeyAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweDE0LCAweGY1LCAweDE5LCAweDIwLCAweDAwLCAweDExLCAweDYwLCAweDBmLCAweGY1LCAweDA4LCAweDdlLCAweDdkfX0sCisgezB4MDBjNiwgMTYsIHsgMHg3ZiwgMHhjMSwgMHg3NSwgMHgwYywgMHg3ZCwgMHg3NSwgMHgwZCwgMHhjMSwgMHgxMiwgMHgwYywgMHhjOCwgMHhkMiwgMHgwMywgMHhlNCwgMHg5MCwgMHg3Zn19LAorIHsweDAwZDYsIDE2LCB7IDB4YzksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDEsIDB4NjAsIDB4MTIsIDB4MTEsIDB4ZTQsIDB4OGZ9fSwKKyB7MHgwMGU2LCAxNiwgeyAweDE5LCAweDEyLCAweDEzLCAweDMzLCAweDhmLCAweDM2LCAweGU1LCAweDE5LCAweGMzLCAweDk1LCAweDNhLCAweDUwLCAweDBmLCAweDEyLCAweDEzLCAweDBmfX0sCisgezB4MDBmNiwgMTYsIHsgMHhlZiwgMHgzMCwgMHhlMCwgMHgwOCwgMHhlNSwgMHgzNiwgMHgyMCwgMHhlNywgMHgwMywgMHgzMCwgMHgwYiwgMHg1ZSwgMHhjMiwgMHgwYiwgMHhlNSwgMHgxOX19LAorIHsweDAwMzYsIDEyLCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjJ9fSwKKyB7MHgwMDQzLCAgMywgeyAweDAyLCAweDEzLCAweDAwfX0sCisgezB4MDAwMCwgIDMsIHsgMHgwMiwgMHgwZSwgMHgwZX19LAorIHsweDAxMDYsIDY0LCB7IDB4NjAsIDB4NTgsIDB4YjQsIDB4ODAsIDB4MDMsIDB4NDMsIDB4MzYsIDB4MDIsIDB4ZTUsIDB4MzYsIDB4MzAsIDB4ZTcsIDB4MjYsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsCisgIDB4MjAsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4MjAsIDB4ODUsIDB4MTksIDB4MDgsIDB4N2UsIDB4N2UsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MGMsIDB4N2UsCisgIDB4NzUsIDB4MGQsIDB4ODAsIDB4YWYsIDB4MzYsIDB4MTIsIDB4MGYsIDB4NTksIDB4ZTUsIDB4MTksIDB4MjUsIDB4ZTAsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZjAsCisgIDB4ODAsIDB4MjcsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsIDB4M2YsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4M2YsIDB4ODUsIDB4MTksIDB4MDh9fSwKKyB7MHgwMTQ2LCA2NCwgeyAweDkwLCAweDdlLCAweDgwLCAweGU1LCAweDM2LCAweGYwLCAweDdlLCAweDdlLCAweDdmLCAweDgxLCAweDc1LCAweDBjLCAweDdlLCAweDc1LCAweDBkLCAweDgxLCAweDEyLAorICAweDBjLCAweGVkLCAweGU1LCAweDE5LCAweDA0LCAweDkwLCAweDdmLCAweGI3LCAweGYwLCAweDkwLCAweDdmLCAweGNlLCAweGUwLCAweDMwLCAweGUxLCAweDA2LAorICAweDIwLCAweDA1LCAweDAzLCAweDAyLCAweDAzLCAweGMxLCAweGMyLCAweDA1LCAweGU0LCAweGY1LCAweDE4LCAweDc0LCAweDQwLCAweDI1LCAweDE4LCAweGY1LAorICAweDgyLCAweGU0LCAweDM0LCAweDdjLCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE4LCAweDdjLCAweDAwLCAweDdiLCAweDAxLCAweDdhfX0sCisgezB4MDE4NiwgNjQsIHsgMHg3ZSwgMHg3OSwgMHgwMCwgMHgyNCwgMHgwMCwgMHhmOSwgMHhlYywgMHgzNCwgMHg3ZSwgMHhmYSwgMHhlZiwgMHgxMiwgMHgwZSwgMHhlMCwgMHgwNSwgMHgxOCwgMHhlNSwKKyAgMHgxOCwgMHhiNCwgMHgyMCwgMHhkNywgMHg5MCwgMHg3ZSwgMHgwMCwgMHhlMCwgMHg2MCwgMHg2OCwgMHg5MCwgMHg3ZSwgMHgwMywgMHhlMCwgMHg2MCwgMHgyNCwKKyAgMHg3ZiwgMHgwMSwgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMSwgMHhiZiwgMHg3ZiwgMHgwMywgMHg3ZCwgMHhjZCwgMHgxMiwgMHgxMSwgMHhiZiwgMHg0MywgMHg0NiwKKyAgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NiwgMHhmMCwgMHhlNCwgMHg5MH19LAorIHsweDAxYzYsIDY0LCB7IDB4N2UsIDB4MTMsIDB4ZjAsIDB4ODAsIDB4MzAsIDB4OTAsIDB4N2UsIDB4MDEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTAsIDB4NDMsIDB4OTAsIDB4N2UsIDB4MDIsIDB4ZTAsCisgIDB4ZmYsIDB4MTIsIDB4MTAsIDB4NjksIDB4N2YsIDB4MDEsIDB4OTAsIDB4N2UsIDB4MTEsIDB4ZTAsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4YmYsIDB4N2YsIDB4MDMsCisgIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTEsIDB4YmYsIDB4NDMsIDB4NDYsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsCisgIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4ZTUsIDB4NDAsIDB4NDQsIDB4MDYsIDB4OTB9fSwKKyB7MHgwMjA2LCA2NCwgeyAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDAzLCAweGUwLCAweDcwLCAweDA2LCAweDkwLCAweDdlLCAweDEzLCAweGUwLCAweDcwLCAweDA4LCAweGU0LCAweDkwLAorICAweDdlLCAweDEzLCAweGYwLCAweDc1LCAweDI1LCAweGZmLCAweDkwLCAweDdlLCAweDA1LCAweGUwLCAweDYwLCAweDEyLCAweGEzLCAweGUwLCAweDU0LCAweDNmLAorICAweGY1LCAweDQ0LCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ0LCAweGYwLCAweDkwLCAweDdlLAorICAweDA3LCAweGUwLCAweDYwLCAweDJiLCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQyLCAweDgwLCAweDgwLCAweDAzLCAweDUzLCAweDQyfX0sCisgezB4MDI0NiwgNjQsIHsgMHg3ZiwgMHg1MywgMHg0MiwgMHhmYywgMHg5MCwgMHg3ZSwgMHgwOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywgMHg0MiwgMHgwMiwgMHhhMywgMHhlMCwgMHhmZiwgMHgxMiwKKyAgMHgxMCwgMHhiNSwgMHg5MCwgMHg3ZSwgMHgwYiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMCwgMHhkYiwgMHhhZiwgMHg0MiwgMHgxMiwgMHgxMCwgMHg4ZiwgMHg5MCwKKyAgMHg3ZSwgMHgwMywgMHhlMCwgMHg2MCwgMHgwOCwgMHg1MywgMHg0MiwgMHg3ZiwgMHhhZiwgMHg0MiwgMHgxMiwgMHgxMCwgMHg4ZiwgMHg5MCwgMHg3ZSwgMHgwYywKKyAgMHhlMCwgMHg2MCwgMHgxOCwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0NiwgMHgwMiwgMHg4MCwgMHgwMywgMHg1MywgMHg0NiwgMHhmZH19LAorIHsweDAyODYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MGUsIDB4ZTAsIDB4NjAsCisgIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDYsIDB4MDEsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDYsIDB4ZmUsIDB4OTAsIDB4N2YsIDB4OTgsCisgIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MTIsIDB4ZTAsIDB4ZjUsIDB4M2EsIDB4YTMsCisgIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGQsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4M2MsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDYsIDB4MTB9fSwKKyB7MHgwMmM2LCA2NCwgeyAweDgwLCAweDAzLCAweDUzLCAweDQ2LCAweGVmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ2LCAweGYwLAorICAweDkwLCAweDdlLCAweDE2LCAweGUwLCAweDYwLCAweDMyLCAweDUzLCAweDQ0LCAweGJmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LAorICAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDEyLCAweDEyLCAweGVkLAorICAweGVmLCAweDU0LCAweGZlLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDUzLCAweDNlLCAweGZkLCAweGU0LCAweGZmLCAweGFkLCAweDNlLCAweDEyfX0sCisgezB4MDMwNiwgNjQsIHsgMHgxMSwgMHhiZiwgMHhlNCwgMHhmNSwgMHgyYSwgMHhmNSwgMHgyOSwgMHhkMiwgMHgwNywgMHg5MCwgMHg3ZSwgMHgxNywgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywgMHgzZSwKKyAgMHgwMiwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZSwgMHgxMiwgMHgxMSwgMHhiZiwgMHg3NSwgMHgyOSwgMHgwMSwgMHhkMiwgMHgwNywgMHg5MCwgMHg3ZSwgMHgxOCwKKyAgMHhlMCwgMHg2MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHhlNSwgMHg0MCwgMHg0NCwgMHgwNCwgMHg5MCwgMHhjMCwgMHgwMCwKKyAgMHhmMCwgMHhkMiwgMHgwMCwgMHg5MCwgMHg3ZSwgMHgxOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywgMHg0NCwgMHg0MCwgMHg5MCwgMHg3ZiwgMHg5OH19LAorIHsweDAzNDYsIDY0LCB7IDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MWEsIDB4ZTAsIDB4NjAsIDB4MGYsCisgIDB4NTMsIDB4M2UsIDB4ZmUsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2UsIDB4MTIsIDB4MTEsIDB4YmYsIDB4NzUsIDB4MmIsIDB4MDEsIDB4ZDIsIDB4MDcsIDB4OTAsCisgIDB4N2UsIDB4MWIsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2UsIDB4MDEsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2UsIDB4MTIsIDB4MTEsIDB4YmYsIDB4ZTQsCisgIDB4ZjUsIDB4MmIsIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsIDB4MWMsIDB4ZTAsIDB4NjAsIDB4MGUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTJ9fSwKKyB7MHgwMzg2LCA2NCwgeyAweGYwLCAweGU1LCAweDQwLCAweDQ0LCAweDAyLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDFkLCAweGUwLCAweDYwLCAweDAyLCAweGQyLCAweDBiLAorICAweDkwLCAweDdlLCAweDFlLCAweGUwLCAweDYwLCAweDA4LCAweDc1LCAweDJjLCAweDAxLCAweGU0LCAweGY1LCAweDM4LCAweGQyLCAweDA3LCAweDkwLCAweDdlLAorICAweDFmLCAweGUwLCAweDYwLCAweDExLCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDExLCAweGYwLCAweDc0LCAweDMxLCAweGYwLCAweDc0LCAweDE1LCAweGYwLAorICAweDc0LCAweDM1LCAweGYwLCAweGQyLCAweDAzLCAweGU0LCAweDkwLCAweDdmLCAweGNmLCAweGYwLCAweDMwLCAweDFhLCAweDUyLCAweGU1LCAweDM4fX0sCisgezB4MDNjNiwgNjQsIHsgMHg2MCwgMHgwMiwgMHgxNSwgMHgzOCwgMHgyMCwgMHgxMywgMHg0OSwgMHhlNSwgMHgxMywgMHhkMywgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNCwgMHgxNSwgMHgxMywgMHg4MCwKKyAgMHgzZSwgMHg3NSwgMHgxMywgMHgwYSwgMHgzMCwgMHgxYiwgMHgwMiwgMHhkMiwgMHgxMywgMHgxMiwgMHgxMiwgMHhlZCwgMHhlZiwgMHg1NCwgMHgwMSwgMHhmNSwKKyAgMHgxOSwgMHg2NSwgMHgyYSwgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOSwgMHgyYSwgMHhkMiwgMHgwNywgMHgxMiwgMHgxMywgMHgzZiwgMHhlZiwgMHg1NCwgMHg4MCwKKyAgMHhmNSwgMHgxOSwgMHg2NSwgMHgyNiwgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOSwgMHgyNiwgMHhkMiwgMHgwNywgMHgzMCwgMHgwZCwgMHgxMSwgMHgxMn19LAorIHsweDA0MDYsIDY0LCB7IDB4MTMsIDB4M2YsIDB4ZWYsIDB4NTQsIDB4MTAsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MjUsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MjUsIDB4ZDIsIDB4MDcsIDB4MjAsCisgIDB4MWIsIDB4MDMsIDB4MDIsIDB4MDcsIDB4ZWMsIDB4MzAsIDB4MGEsIDB4MTgsIDB4MTIsIDB4MTMsIDB4N2IsIDB4ZWYsIDB4YzMsIDB4OTUsIDB4M2QsIDB4NDAsCisgIDB4MDMsIDB4MDIsIDB4MDQsIDB4YWUsIDB4OTAsIDB4N2YsIDB4YzEsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4YzIsIDB4MGEsIDB4YzIsIDB4MDAsIDB4ODAsIDB4NzcsCisgIDB4MzAsIDB4MDQsIDB4M2IsIDB4OTAsIDB4N2YsIDB4Y2EsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4NmQsIDB4MTIsIDB4MTMsIDB4N2IsIDB4ZWYsIDB4YzN9fSwKKyB7MHgwNDQ2LCA2NCwgeyAweDk0LCAweDQwLCAweDUwLCAweDY0LCAweDkwLCAweDdkLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDBhLCAweDkwLCAweDdmLCAweGNiLCAweGUwLCAweDE0LCAweGY1LAorICAweDE5LCAweDIwLCAweDAwLCAweDExLCAweDYwLCAweDBmLCAweGY1LCAweDA4LCAweDdlLCAweDdkLCAweDdmLCAweDQxLCAweDc1LCAweDBjLCAweDdkLCAweDc1LAorICAweDBkLCAweDQxLCAweDEyLCAweDBkLCAweDEyLCAweGMyLCAweDA0LCAweGU0LCAweDkwLCAweDdmLCAweGNiLCAweGYwLCAweDgwLCAweDM5LCAweDkwLCAweDdmLAorICAweGNjLCAweGUwLCAweDIwLCAweGUxLCAweDMyLCAweDEyLCAweDEzLCAweDdiLCAweGVmLCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDI5LCAweDkwfX0sCisgezB4MDQ4NiwgNjQsIHsgMHg3YywgMHhjMCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhlMCwgMHgxNCwgMHhmNSwgMHgxOSwgMHgyMCwgMHgwMCwgMHgxMSwgMHg2MCwKKyAgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3YywgMHg3ZiwgMHhjMSwgMHg3NSwgMHgwYywgMHg3YywgMHg3NSwgMHgwZCwgMHhjMSwgMHgxMiwgMHgwZCwgMHgxMiwKKyAgMHhkMiwgMHgwNCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiYSwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwNSwKKyAgMHgzNiwgMHgxMiwgMHgxMiwgMHgyZSwgMHg4ZiwgMHgxOSwgMHgxMiwgMHgxMywgMHg4NywgMHg4ZiwgMHgzNywgMHhlNSwgMHgxOSwgMHhjMywgMHg5NX19LAorIHsweDA0YzYsIDY0LCB7IDB4M2IsIDB4NTAsIDB4MGYsIDB4MTIsIDB4MTMsIDB4NjMsIDB4ZWYsIDB4MzAsIDB4ZTAsIDB4MDgsIDB4ZTUsIDB4MzcsIDB4MjAsIDB4ZTcsIDB4MDMsIDB4MzAsIDB4MGMsCisgIDB4NWUsIDB4YzIsIDB4MGMsIDB4ZTUsIDB4MTksIDB4NjAsIDB4NTgsIDB4YjQsIDB4ODAsIDB4MDMsIDB4NDMsIDB4MzcsIDB4MDIsIDB4ZTUsIDB4MzcsIDB4MzAsCisgIDB4ZTcsIDB4MjYsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsIDB4MjAsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4MjAsIDB4ODUsIDB4MTksIDB4MDgsIDB4N2UsCisgIDB4N2QsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MGMsIDB4N2QsIDB4NzUsIDB4MGQsIDB4ODAsIDB4YWYsIDB4MzcsIDB4MTIsIDB4MGYsIDB4OTIsIDB4ZTV9fSwKKyB7MHgwNTA2LCA2NCwgeyAweDE5LCAweDI1LCAweGUwLCAweDkwLCAweDdmLCAweGJiLCAweGYwLCAweDgwLCAweDI3LCAweGU1LCAweDE5LCAweGQzLCAweDk0LCAweDNmLCAweDQwLCAweDAzLCAweDc1LAorICAweDE5LCAweDNmLCAweDg1LCAweDE5LCAweDA4LCAweDkwLCAweDdkLCAweDgwLCAweGU1LCAweDM3LCAweGYwLCAweDdlLCAweDdkLCAweDdmLCAweDgxLCAweDc1LAorICAweDBjLCAweDdkLCAweDc1LCAweDBkLCAweDgxLCAweDEyLCAweDBkLCAweDM3LCAweGU1LCAweDE5LCAweDA0LCAweDkwLCAweDdmLCAweGJiLCAweGYwLCAweDkwLAorICAweDdmLCAweGQwLCAweGUwLCAweDMwLCAweGUxLCAweDA2LCAweDIwLCAweDA2LCAweDAzLCAweDAyLCAweDA3LCAweDk3LCAweGMyLCAweDA2LCAweGU0fX0sCisgezB4MDU0NiwgNjQsIHsgMHhmNSwgMHgxOCwgMHg3NCwgMHhjMCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxOCwKKyAgMHg3YywgMHgwMCwgMHg3YiwgMHgwMSwgMHg3YSwgMHg3ZSwgMHg3OSwgMHgyMCwgMHgyNCwgMHgyMCwgMHhmOSwgMHhlYywgMHgzNCwgMHg3ZSwgMHhmYSwgMHhlZiwKKyAgMHgxMiwgMHgwZSwgMHhlMCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgyMCwgMHhkNywgMHg5MCwgMHg3ZSwgMHgyMCwgMHhlMCwgMHg2MCwgMHg2OCwKKyAgMHg5MCwgMHg3ZSwgMHgyMywgMHhlMCwgMHg2MCwgMHgyNCwgMHg3ZiwgMHgwMSwgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMiwgMHgwOSwgMHg3ZiwgMHgwM319LAorIHsweDA1ODYsIDY0LCB7IDB4N2QsIDB4Y2QsIDB4MTIsIDB4MTIsIDB4MDksIDB4NDMsIDB4NDcsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsCisgIDB4ZTUsIDB4NDcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2UsIDB4MzMsIDB4ZjAsIDB4ODAsIDB4MzAsIDB4OTAsIDB4N2UsIDB4MjEsIDB4ZTAsIDB4ZmYsIDB4MTIsCisgIDB4MTEsIDB4MjcsIDB4OTAsIDB4N2UsIDB4MjIsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTEsIDB4NGQsIDB4N2YsIDB4MDEsIDB4OTAsIDB4N2UsIDB4MzEsIDB4ZTAsCisgIDB4ZmQsIDB4MTIsIDB4MTIsIDB4MDksIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTIsIDB4MDksIDB4NDMsIDB4NDcsIDB4ODAsIDB4OTB9fSwKKyB7MHgwNWM2LCA2NCwgeyAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLAorICAweGU1LCAweDQxLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDIzLCAweGUwLCAweDcwLCAweDA2LCAweDkwLCAweDdlLAorICAweDMzLCAweGUwLCAweDcwLCAweDA4LCAweGU0LCAweDkwLCAweDdlLCAweDMzLCAweGYwLCAweDc1LCAweDJlLCAweGZmLCAweDkwLCAweDdlLCAweDI1LCAweGUwLAorICAweDYwLCAweDEyLCAweGEzLCAweGUwLCAweDU0LCAweDNmLCAweGY1LCAweDQ1LCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwfX0sCisgezB4MDYwNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NSwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgyNywgMHhlMCwgMHg2MCwgMHgyYiwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0MywKKyAgMHg4MCwgMHg4MCwgMHgwMywgMHg1MywgMHg0MywgMHg3ZiwgMHg1MywgMHg0MywgMHhmYywgMHg5MCwgMHg3ZSwgMHgyOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywKKyAgMHg0MywgMHgwMiwgMHhhMywgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMSwgMHg3MywgMHg5MCwgMHg3ZSwgMHgyYiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMSwgMHg5OSwKKyAgMHhhZiwgMHg0MywgMHgxMiwgMHgxMSwgMHgwMSwgMHg5MCwgMHg3ZSwgMHgyMywgMHhlMCwgMHg2MCwgMHgwOCwgMHg1MywgMHg0MywgMHg3ZiwgMHhhZn19LAorIHsweDA2NDYsIDY0LCB7IDB4NDMsIDB4MTIsIDB4MTEsIDB4MDEsIDB4OTAsIDB4N2UsIDB4MmMsIDB4ZTAsIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDcsIDB4MDIsCisgIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDcsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDcsCisgIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MmUsIDB4ZTAsIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDcsIDB4MDEsIDB4ODAsIDB4MDMsCisgIDB4NTMsIDB4NDcsIDB4ZmUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDcsIDB4ZjB9fSwKKyB7MHgwNjg2LCA2NCwgeyAweDkwLCAweDdlLCAweDMyLCAweGUwLCAweGY1LCAweDNiLCAweGEzLCAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGEzLCAweGUwLCAweGY1LCAweDNkLCAweGEzLCAweGUwLAorICAweDYwLCAweDA1LCAweDQzLCAweDQ3LCAweDEwLCAweDgwLCAweDAzLCAweDUzLCAweDQ3LCAweGVmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLAorICAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LCAweGYwLCAweDkwLCAweDdlLCAweDM2LCAweGUwLCAweDYwLCAweDMyLCAweDUzLCAweDQ1LCAweGJmLCAweDkwLAorICAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmfX0sCisgezB4MDZjNiwgNjQsIHsgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHgxMiwgMHgxMywgMHg1NywgMHhlZiwgMHg1NCwgMHhmZSwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg1MywgMHgzZiwgMHhmZCwKKyAgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZiwgMHgxMiwgMHgxMiwgMHgwOSwgMHhlNCwgMHhmNSwgMHgzMywgMHhmNSwgMHgzMiwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwKKyAgMHgzNywgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywgMHgzZiwgMHgwMiwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZiwgMHgxMiwgMHgxMiwgMHgwOSwgMHg3NSwgMHgzMiwKKyAgMHgwMSwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwgMHgzOCwgMHhlMCwgMHg2MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMH19LAorIHsweDA3MDYsIDY0LCB7IDB4ZTUsIDB4NDEsIDB4NDQsIDB4MDQsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZDIsIDB4MDAsIDB4OTAsIDB4N2UsIDB4MzksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsCisgIDB4NDUsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsCisgIDB4OTAsIDB4N2UsIDB4M2EsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NTMsIDB4M2YsIDB4ZmUsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2YsIDB4MTIsIDB4MTIsIDB4MDksCisgIDB4NzUsIDB4MzQsIDB4MDEsIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsIDB4M2IsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2YsIDB4MDEsIDB4ZTR9fSwKKyB7MHgwNzQ2LCA2NCwgeyAweGZmLCAweGFkLCAweDNmLCAweDEyLCAweDEyLCAweDA5LCAweGU0LCAweGY1LCAweDM0LCAweGQyLCAweDA4LCAweDkwLCAweDdlLCAweDNjLCAweGUwLCAweDYwLCAweDBlLAorICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweGU1LCAweDQxLCAweDQ0LCAweDAyLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLAorICAweDNkLCAweGUwLCAweDYwLCAweDAyLCAweGQyLCAweDBjLCAweDkwLCAweDdlLCAweDNlLCAweGUwLCAweDYwLCAweDA4LCAweDc1LCAweDM1LCAweDAxLCAweGU0LAorICAweGY1LCAweDM5LCAweGQyLCAweDA4LCAweDkwLCAweDdlLCAweDNmLCAweGUwLCAweDYwLCAweDExLCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDEzfX0sCisgezB4MDc4NiwgNjQsIHsgMHhmMCwgMHg3NCwgMHgzMywgMHhmMCwgMHg3NCwgMHgxNiwgMHhmMCwgMHg3NCwgMHgzNiwgMHhmMCwgMHhkMiwgMHgwNCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhkMSwgMHhmMCwKKyAgMHgzMCwgMHgxYSwgMHg1MiwgMHhlNSwgMHgzOSwgMHg2MCwgMHgwMiwgMHgxNSwgMHgzOSwgMHgzMCwgMHgxMywgMHg0OSwgMHhlNSwgMHgxMywgMHhkMywgMHg5NCwKKyAgMHgwMCwgMHg0MCwgMHgwNCwgMHgxNSwgMHgxMywgMHg4MCwgMHgzZSwgMHg3NSwgMHgxMywgMHgwYSwgMHgzMCwgMHgxYiwgMHgwMiwgMHhjMiwgMHgxMywgMHgxMiwKKyAgMHgxMywgMHg1NywgMHhlZiwgMHg1NCwgMHgwMSwgMHhmNSwgMHgxOSwgMHg2NSwgMHgzMywgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOSwgMHgzMywgMHhkMn19LAorIHsweDA3YzYsIDY0LCB7IDB4MDgsIDB4MTIsIDB4MTMsIDB4OTMsIDB4ZWYsIDB4NTQsIDB4ODAsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MmYsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MmYsIDB4ZDIsCisgIDB4MDgsIDB4MzAsIDB4MGUsIDB4MTEsIDB4MTIsIDB4MTMsIDB4OTMsIDB4ZWYsIDB4NTQsIDB4MTAsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MmUsIDB4NjAsIDB4MDUsCisgIDB4ODUsIDB4MTksIDB4MmUsIDB4ZDIsIDB4MDgsIDB4MzAsIDB4MWEsIDB4MmEsIDB4OTAsIDB4N2YsIDB4ZDIsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MjMsIDB4OTAsCisgIDB4N2IsIDB4NDAsIDB4ZTAsIDB4NjAsIDB4MDksIDB4ZTAsIDB4ZjUsIDB4MTUsIDB4OTAsIDB4N2IsIDB4NDIsIDB4ZTAsIDB4ZjUsIDB4MTYsIDB4OTB9fSwKKyB7MHgwODA2LCA2NCwgeyAweDdiLCAweDQxLCAweGUwLCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDE3LCAweGYwLCAweDc0LCAweDM3LCAweGYwLCAweGU0LCAweDkwLCAweDdmLAorICAweGQzLCAweGYwLCAweDkwLCAweDdmLCAweGMyLCAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDA5LCAweDIwLCAweGU1LCAweDBhLCAweDcwLCAweDQwLAorICAweDMwLCAweDA3LCAweDM5LCAweGU1LCAweDM4LCAweDcwLCAweDM1LCAweGMyLCAweDA3LCAweGY1LCAweDE4LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LAorICAweDI0LCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDBlLCAweDlhLCAweGZmLCAweDc0LCAweDgwLCAweDI1fX0sCisgezB4MDg0NiwgNjQsIHsgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwOSwgMHhkYiwKKyAgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwOSwgMHhmMCwgMHg3NSwgMHgzOCwgMHgxMCwgMHhlNCwgMHhmNSwgMHgyYywgMHg3NSwgMHgwYSwgMHgwMSwgMHgyMiwKKyAgMHhlNSwgMHgwYSwgMHg2NCwgMHgwMSwgMHg3MCwgMHg0MCwgMHgzMCwgMHgwOCwgMHgzOSwgMHhlNSwgMHgzOSwgMHg3MCwgMHgzNSwgMHhjMiwgMHgwOCwgMHhmNSwKKyAgMHgxOCwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyZCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMn19LAorIHsweDA4ODYsIDY0LCB7IDB4MGUsIDB4OWEsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsCisgIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDksIDB4ZjAsIDB4NzUsIDB4MzksIDB4MTAsIDB4ZTQsCisgIDB4ZjUsIDB4MzUsIDB4NzUsIDB4MGEsIDB4MDIsIDB4MjIsIDB4ZTUsIDB4MGEsIDB4NjQsIDB4MDIsIDB4NzAsIDB4MzYsIDB4MzAsIDB4MTQsIDB4MmYsIDB4YzIsCisgIDB4MTQsIDB4ZjUsIDB4MTgsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MGUsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDB9fSwKKyB7MHgwOGM2LCA2NCwgeyAweGZhLCAweDEyLCAweDBlLCAweDlhLCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLAorICAweGYwLCAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA1LCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDA1LCAweGYwLCAweDc1LCAweDBhLAorICAweDAzLCAweDIyLCAweGU1LCAweDE1LCAweDYwLCAweDMwLCAweDE1LCAweDE1LCAweGU0LCAweGY1LCAweDE4LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LAorICAweDE0LCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDBlLCAweDlhLCAweGZmLCAweDc0LCAweDgwLCAweDI1fX0sCisgezB4MDkwNiwgNjQsIHsgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwMywgMHhkYiwKKyAgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwMywgMHhmMCwgMHhlNCwgMHhmNSwgMHgwYSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHgxMiwgMHgwZSwKKyAgMHhmMiwgMHgwYSwgMHgwOCwgMHgwMCwgMHgwYSwgMHg3YywgMHgwMSwgMHgwYSwgMHhlOCwgMHgwMywgMHgwOSwgMHg0NCwgMHgwNiwgMHgwOSwgMHhmYiwgMHgwOCwKKyAgMHgwOSwgMHhmNSwgMHgwOSwgMHgwOSwgMHhkZCwgMHgwYSwgMHgwOSwgMHhlYywgMHgwYiwgMHgwMCwgMHgwMCwgMHgwYiwgMHgzNywgMHg5MCwgMHg3Zn19LAorIHsweDA5NDYsIDY0LCB7IDB4ZWIsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTksIDB4MTQsIDB4NjAsIDB4NjEsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDksIDB4ZDMsIDB4NzQsCisgIDB4MTksIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4MDAsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsCisgIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MDQsIDB4N2YsIDB4MDIsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MDMsIDB4NzUsIDB4ODIsIDB4ODIsIDB4NzUsIDB4ODMsIDB4MTksCisgIDB4ZWYsIDB4ZjAsIDB4NzUsIDB4ODIsIDB4N2IsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4NzUsIDB4ODIsIDB4NzQsIDB4NzUsIDB4ODMsIDB4MTl9fSwKKyB7MHgwOTg2LCA2NCwgeyAweGYwLCAweDc1LCAweDgyLCAweDY2LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc1LCAweDgyLCAweDU4LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDkwLCAweDdmLAorICAweGVhLCAweGUwLCAweDA0LCAweDc1LCAweDgyLCAweDE3LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc0LCAweDE5LCAweDkwLCAweDdmLCAweGQ0LCAweGYwLAorICAweDc0LCAweDEyLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGZmLCAweDEyLCAweDBmLAorICAweDE4LCAweGVhLCAweDQ5LCAweDYwLCAweDBkLCAweGVhLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweGU5LCAweDkwLCAweDdmLCAweGQ1LCAweGYwfX0sCisgezB4MDljNiwgNjQsIHsgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwKKyAgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhlNSwgMHgwOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwKKyAgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgwOSwgMHgwMiwgMHgwYiwgMHgzZSwgMHgxMiwgMHgwYiwKKyAgMHg0NiwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHgwMCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHhmMCwgMHgwMn19LAorIHsweDBhMDYsIDY0LCB7IDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4N2YsIDB4NjAsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MzEsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NWIsCisgIDB4YTIsIDB4MTAsIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4MjUsIDB4ZTAsIDB4ZmYsIDB4YTIsIDB4MTYsIDB4ZTQsIDB4MzMsIDB4NGYsIDB4OTAsIDB4N2YsIDB4MDAsCisgIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4ZTQsIDB4OTAsIDB4N2YsCisgIDB4MDAsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2Z9fSwKKyB7MHgwYTQ2LCA2NCwgeyAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LAorICAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZkLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGU0LAorICAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LAorICAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDFkLCAweDI0LCAweDAyfX0sCisgezB4MGE4NiwgNjQsIHsgMHg2MCwgMHgwMywgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNSwgMHhjMiwgMHgxMCwgMHgwMiwgMHgwYiwgMHgzZSwKKyAgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgzOCwKKyAgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwKKyAgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHg5MCwgMHg3Zn19LAorIHsweDBhYzYsIDY0LCB7IDB4ZWMsIDB4ZTAsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4MTMsIDB4MTMsIDB4MTMsIDB4NTQsIDB4MWYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4OTAsIDB4N2YsCisgIDB4ZDcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4ODAsIDB4NWYsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsCisgIDB4NTYsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTgsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NGEsIDB4OTAsIDB4N2YsIDB4ZWEsCisgIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDQsIDB4ZDIsIDB4MTAsIDB4ODAsIDB4M2YsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjB9fSwKKyB7MHgwYjA2LCA2NCwgeyAweDgwLCAweDM2LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDIwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LAorICAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLAorICAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweDgwLCAweDEwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDA3LAorICAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDIyfX0sCisgezB4MGI0NiwgNjQsIHsgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHgzMCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhmMCwgMHg5MCwKKyAgMHg3ZiwgMHg5NSwgMHg3NCwgMHhjMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHgzZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxOCwKKyAgMHhmMCwgMHhlNCwgMHhmNSwgMHg4ZSwgMHg5MCwgMHg3ZiwgMHhkZiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHhmMCwgMHhlNCwgMHhmNSwKKyAgMHgyNCwgMHg3NSwgMHgxOCwgMHgwMSwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyNCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlNCwgMHgzNCwgMHgwMCwgMHhmYX19LAorIHsweDBiODYsIDY0LCB7IDB4ZTQsIDB4MTIsIDB4MGUsIDB4ZTAsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZWEsIDB4NzUsIDB4M2EsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MzgsCisgIDB4ZjUsIDB4MTMsIDB4ZjUsIDB4MzYsIDB4YzIsIDB4MDcsIDB4YzIsIDB4MGIsIDB4YzIsIDB4MDUsIDB4YzIsIDB4MDAsIDB4YzIsIDB4MDksIDB4YzIsIDB4MTMsCisgIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4NzUsIDB4NDQsIDB4MDMsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4N2YsCisgIDB4MGMsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4YmYsIDB4N2YsIDB4MTAsIDB4OGYsIDB4NDIsIDB4MTIsIDB4MTAsIDB4OGYsIDB4OTAsIDB4N2Z9fSwKKyB7MHgwYmM2LCA2NCwgeyAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweDdmLCAweDAxLCAweDhmLCAweDQwLCAweGVmLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLAorICAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDc1LCAweDQ2LCAweDgwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDgwLCAweGYwLCAweDBmLCAweGU0LCAweGZkLAorICAweDEyLCAweDExLCAweGJmLCAweGU0LCAweGZmLCAweDdlLCAweGEzLCAweGFkLCAweDA2LCAweDhkLCAweDNlLCAweDEyLCAweDExLCAweGJmLCAweDkwLCAweDdmLAorICAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU0LCAweGYwLCAweDdmLCAweDA1LCAweDdkLCAweDdmLCAweDEyLCAweDExfX0sCisgezB4MGMwNiwgNjQsIHsgMHhiZiwgMHg3ZiwgMHgwMSwgMHgxMiwgMHgxMiwgMHg3OCwgMHg3ZiwgMHgwMywgMHg3ZCwgMHgwNywgMHgxMiwgMHgxMSwgMHhiZiwgMHg3ZiwgMHgxMywgMHg3ZCwgMHgwMSwKKyAgMHgxMiwgMHgxMSwgMHhiZiwgMHgyMCwgMHgxYiwgMHgwMywgMHgwMiwgMHgwYywgMHhjNSwgMHg3NSwgMHgyZCwgMHgwMSwgMHg3NSwgMHgxOCwgMHgwMSwgMHg3YiwKKyAgMHgwMCwgMHg3NCwgMHgyZCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlNCwgMHgzNCwgMHgwMCwgMHhmYSwgMHhlNCwgMHgxMiwgMHgwZSwgMHhlMCwgMHgwNSwgMHgxOCwKKyAgMHhlNSwgMHgxOCwgMHhiNCwgMHgwOSwgMHhlYSwgMHg3NSwgMHgzYiwgMHgwMSwgMHhlNCwgMHhmNSwgMHgzOSwgMHhmNSwgMHgxMywgMHhmNSwgMHgzN319LAorIHsweDBjNDYsIDY0LCB7IDB4YzIsIDB4MDgsIDB4YzIsIDB4MGMsIDB4YzIsIDB4MDYsIDB4YzIsIDB4MDAsIDB4YzIsIDB4MGEsIDB4YzIsIDB4MTMsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsCisgIDB4ZjAsIDB4NzUsIDB4NDUsIDB4MDMsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4N2YsIDB4MGMsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTIsCisgIDB4MDksIDB4N2YsIDB4MTAsIDB4OGYsIDB4NDMsIDB4MTIsIDB4MTEsIDB4MDEsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGEsIDB4ZjAsIDB4N2YsIDB4MDEsCisgIDB4OGYsIDB4NDEsIDB4ZWYsIDB4NDQsIDB4MDYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjB9fSwKKyB7MHgwYzg2LCA2NCwgeyAweDc1LCAweDQ3LCAweDgwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDgwLCAweGYwLCAweDBmLCAweGU0LCAweGZkLCAweDEyLCAweDEyLCAweDA5LCAweGU0LCAweGZmLAorICAweDdlLCAweGEzLCAweGFkLCAweDA2LCAweDhkLCAweDNmLCAweDEyLCAweDEyLCAweDA5LCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA5LCAweGYwLCAweDkwLAorICAweGMwLCAweDAwLCAweGU0LCAweGYwLCAweDdmLCAweDA1LCAweDdkLCAweDdmLCAweDEyLCAweDEyLCAweDA5LCAweDdmLCAweDAxLCAweDEyLCAweDEyLCAweDk5LAorICAweDdmLCAweDAzLCAweDdkLCAweDA3LCAweDEyLCAweDEyLCAweDA5LCAweDdmLCAweDEzLCAweDdkLCAweDAxLCAweDEyLCAweDEyLCAweDA5LCAweGQyfX0sCisgezB4MGNjNiwgNjQsIHsgMHgxMiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHhhZiwgMHgwOCwgMHhlNSwgMHgwZCwgMHhmNSwgMHg4MiwgMHhlNSwgMHgwYywgMHhmNSwKKyAgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMCwgMHgwMCwgMHgwNSwgMHg4NiwgMHhlMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhmMCwgMHgwNSwKKyAgMHg4NiwgMHhkZiwgMHhmNywgMHhkMiwgMHhhZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHhhZiwgMHgwOCwgMHhlNSwgMHgwZCwKKyAgMHhmNSwgMHg4MiwgMHhlNSwgMHgwYywgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHgwNX19LAorIHsweDBkMDYsIDY0LCB7IDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4MDUsIDB4ODYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDgsCisgIDB4ZjAsIDB4YWYsIDB4MDgsIDB4ZTUsIDB4MGQsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MGMsIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsCisgIDB4YzAsIDB4MDAsIDB4MDUsIDB4ODYsIDB4ZTAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4ZDIsIDB4YWYsIDB4MjIsCisgIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4YWYsIDB4MDgsIDB4ZTUsIDB4MGQsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MGMsIDB4ZjV9fSwKKyB7MHgwZDQ2LCA2NCwgeyAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweGRmLCAweGY3LAorICAweDA1LCAweDg2LCAweGQyLCAweGFmLCAweDIyLCAweDc0LCAweDAwLCAweGY1LCAweDg2LCAweDkwLCAweGZkLCAweGE1LCAweDdjLCAweDA1LCAweGEzLCAweGU1LAorICAweDgyLCAweDQ1LCAweDgzLCAweDcwLCAweGY5LCAweDIyLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDQzLCAweDg3LCAweDAxLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDIyLCAweGQyLCAweDE5LCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweDQ0LCAweDAyLCAweGYwfX0sCisgezB4MGQ4NiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHhhZSwgMHhlMCwgMHhmZiwgMHhkMywgMHg5MiwgMHgxMCwgMHhlNCwgMHgzMywgMHhmZSwgMHhlZiwgMHg0ZSwgMHhmMCwgMHhkMiwgMHhlOCwgMHg0MywKKyAgMHhkOCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwKKyAgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYSwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhZiwKKyAgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHhlMCwgMHg0NCwgMHgwZCwgMHhmMCwgMHhkMiwgMHhhZiwgMHhkMiwgMHgxYX19LAorIHsweDBkYzYsIDY0LCB7IDB4MTIsIDB4MTIsIDB4NTMsIDB4YzIsIDB4MTEsIDB4ZTQsIDB4ZjUsIDB4MGIsIDB4ZjUsIDB4MTMsIDB4YzIsIDB4MTcsIDB4YzIsIDB4MTIsIDB4OTAsIDB4N2YsIDB4YTEsCisgIDB4MDQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4NjUsIDB4MTcsIDB4NjAsIDB4MTAsIDB4MzAsIDB4MTIsIDB4MDUsIDB4ZDIsIDB4MWEsIDB4MTIsCisgIDB4MDAsIDB4NDYsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4ZjUsIDB4MTcsIDB4ODAsIDB4MDgsIDB4MzAsIDB4MTIsIDB4MDUsIDB4YzIsIDB4MWEsIDB4MTIsCisgIDB4MDAsIDB4NDYsIDB4MzAsIDB4MTEsIDB4MDcsIDB4YzIsIDB4MTEsIDB4MTIsIDB4MDksIDB4MjEsIDB4ODAsIDB4ZDYsIDB4MzAsIDB4MTgsIDB4ZDN9fSwKKyB7MHgwZTA2LCA2NCwgeyAweGMyLCAweDE4LCAweDEyLCAweDEzLCAweDlmLCAweDgwLCAweGNjLCAweDIyLCAweDc4LCAweDdmLCAweGU0LCAweGY2LCAweGQ4LCAweGZkLCAweDc1LCAweDgxLCAweDQ3LAorICAweDAyLCAweDBlLCAweDU1LCAweDAyLCAweDBkLCAweDdkLCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweDQwLCAweDAzLCAweGY2LAorICAweDgwLCAweDAxLCAweGYyLCAweDA4LCAweGRmLCAweGY0LCAweDgwLCAweDI5LCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweDU0LCAweDA3LCAweDI0LCAweDBjLAorICAweGM4LCAweGMzLCAweDMzLCAweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDIwLCAweGM4LCAweDgzLCAweDQwLCAweDA0LCAweGY0LCAweDU2LCAweDgwfX0sCisgezB4MGU0NiwgNjQsIHsgMHgwMSwgMHg0NiwgMHhmNiwgMHhkZiwgMHhlNCwgMHg4MCwgMHgwYiwgMHgwMSwgMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MCwgMHg4MCwgMHg5MCwgMHgxMiwKKyAgMHhiYSwgMHhlNCwgMHg3ZSwgMHgwMSwgMHg5MywgMHg2MCwgMHhiYywgMHhhMywgMHhmZiwgMHg1NCwgMHgzZiwgMHgzMCwgMHhlNSwgMHgwOSwgMHg1NCwgMHgxZiwKKyAgMHhmZSwgMHhlNCwgMHg5MywgMHhhMywgMHg2MCwgMHgwMSwgMHgwZSwgMHhjZiwgMHg1NCwgMHhjMCwgMHgyNSwgMHhlMCwgMHg2MCwgMHhhOCwgMHg0MCwgMHhiOCwKKyAgMHhlNCwgMHg5MywgMHhhMywgMHhmYSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOH19LAorIHsweDBlODYsIDY0LCB7IDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZjAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZGYsIDB4ZTksIDB4ZGUsCisgIDB4ZTcsIDB4ODAsIDB4YmUsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDIsIDB4ZTcsIDB4MjIsCisgIDB4YmIsIDB4ZmUsIDB4MDIsIDB4ZTMsIDB4MjIsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MGMsIDB4ZTUsCisgIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDYsIDB4ZTksIDB4MjV9fSwKKyB7MHgwZWM2LCA2NCwgeyAweDgyLCAweGY4LCAweGU2LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyLCAweGU1LCAweDgyLCAweDI5LCAweGY1LAorICAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLAorICAweGYwLCAweDIyLCAweDUwLCAweDAyLCAweGY3LCAweDIyLCAweGJiLCAweGZlLCAweDAxLCAweGYzLCAweDIyLCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweGY4LAorICAweGU0LCAweDkzLCAweDcwLCAweDEyLCAweDc0LCAweDAxLCAweDkzLCAweDcwLCAweDBkLCAweGEzLCAweGEzLCAweDkzLCAweGY4LCAweDc0LCAweDAxfX0sCisgezB4MGYwNiwgNjQsIHsgMHg5MywgMHhmNSwgMHg4MiwgMHg4OCwgMHg4MywgMHhlNCwgMHg3MywgMHg3NCwgMHgwMiwgMHg5MywgMHg2OCwgMHg2MCwgMHhlZiwgMHhhMywgMHhhMywgMHhhMywgMHg4MCwKKyAgMHhkZiwgMHg4ZiwgMHgxOCwgMHhlNCwgMHhmNSwgMHgxOSwgMHg3NSwgMHgxYSwgMHhmZiwgMHg3NSwgMHgxYiwgMHgxOSwgMHg3NSwgMHgxYywgMHg4NiwgMHhhYiwKKyAgMHgxYSwgMHhhYSwgMHgxYiwgMHhhOSwgMHgxYywgMHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHgwZSwgMHhiMywgMHhiNCwgMHgwMywgMHgxZCwgMHhhZiwgMHgxOSwKKyAgMHgwNSwgMHgxOSwgMHhlZiwgMHhiNSwgMHgxOCwgMHgwMSwgMHgyMiwgMHgxMiwgMHgwZSwgMHg5YSwgMHg3ZSwgMHgwMCwgMHgyOSwgMHhmZiwgMHhlZX19LAorIHsweDBmNDYsIDY0LCB7IDB4M2EsIDB4YTksIDB4MDcsIDB4NzUsIDB4MWEsIDB4ZmYsIDB4ZjUsIDB4MWIsIDB4ODksIDB4MWMsIDB4ODAsIDB4ZDQsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksCisgIDB4MDAsIDB4MjIsIDB4OGYsIDB4MWEsIDB4MDUsIDB4MGQsIDB4ZTUsIDB4MGQsIDB4YWUsIDB4MGMsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MGMsIDB4MTQsIDB4ZjUsCisgIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTUsIDB4MWEsIDB4ZjAsIDB4MTIsIDB4MDAsIDB4MzYsIDB4MDUsIDB4MGQsIDB4ZTUsIDB4MGQsIDB4YWMsIDB4MGMsIDB4NzAsCisgIDB4MDIsIDB4MDUsIDB4MGMsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MTUsIDB4MDgsIDB4ZTUsIDB4MDgsIDB4NjB9fSwKKyB7MHgwZjg2LCA2NCwgeyAweDBhLCAweDEyLCAweDEzLCAweDMzLCAweDhmLCAweDFhLCAweGVmLCAweDQyLCAweDM2LCAweDgwLCAweGNhLCAweDIyLCAweDhmLCAweDFhLCAweDA1LCAweDBkLCAweGU1LAorICAweDBkLCAweGFlLCAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLCAweDE0LCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGU1LCAweDFhLCAweGYwLCAweDEyLAorICAweDEzLCAweDRiLCAweDA1LCAweDBkLCAweGU1LCAweDBkLCAweGFjLCAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLCAweDE0LCAweGY1LCAweDgyLCAweDhjLAorICAweDgzLCAweGVmLCAweGYwLCAweDE1LCAweDA4LCAweGU1LCAweDA4LCAweDYwLCAweDBhLCAweDEyLCAweDEzLCAweDg3LCAweDhmLCAweDFhLCAweGVmfX0sCisgezB4MGZjNiwgNjQsIHsgMHg0MiwgMHgzNywgMHg4MCwgMHhjYSwgMHgyMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwKKyAgMHg3NSwgMHg4NiwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhjNCwgMHhlNCwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwNCwKKyAgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHhjMCwgMHhlMCwKKyAgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhkMiwgMHgxMX19LAorIHsweDEwMDYsIDY0LCB7IDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsCisgIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsCisgIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsIDB4MTgsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4ZDAsCisgIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4OTAsIDB4N2YsIDB4OTh9fSwKKyB7MHgxMDQ2LCA2NCwgeyAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweDkwLCAweGMwLAorICAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLAorICAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLAorICAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwfX0sCisgezB4MTA4NiwgNjQsIHsgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwKKyAgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwKKyAgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwKKyAgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNH19LAorIHsweDEwYzYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsCisgIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsCisgIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTYsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsCisgIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGJ9fSwKKyB7MHgxMTA2LCA2NCwgeyAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLAorICAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLAorICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAorICAweDA4LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1fX0sCisgezB4MTE0NiwgNjQsIHsgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwKKyAgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwKKyAgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKKyAgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MH19LAorIHsweDExODYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsCisgIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsCisgIDB4OTgsIDB4NzQsIDB4MGUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsCisgIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTV9fSwKKyB7MHgxMWM2LCA2NCwgeyAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE3LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLAorICAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVkLCAweGYwLCAweDIyLCAweDEyLCAweDEzLCAweDFiLAorICAweDhmLCAweDFhLCAweDEyLCAweDEzLCAweDFiLCAweDhmLCAweDFiLCAweGU1LCAweDFhLCAweDY1LCAweDFiLCAweDYwLCAweDEyLCAweDEyLCAweDEzLCAweDFiLAorICAweDhmLCAweDFhLCAweGU1LCAweDFhLCAweDY1LCAweDFiLCAweDYwLCAweDA3LCAweDEyLCAweDEzLCAweDFiLCAweDhmLCAweDFiLCAweDgwLCAweGU4fX0sCisgezB4MTIwNiwgNjQsIHsgMHhhZiwgMHgxYSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwKKyAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZCwKKyAgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZCwgMHhmMCwgMHgyMiwgMHgxMiwgMHgxMywgMHg2ZiwgMHg4ZiwgMHgxYSwgMHgxMiwgMHgxMywgMHg2ZiwgMHg4ZiwKKyAgMHgxYiwgMHhlNSwgMHgxYSwgMHg2NSwgMHgxYiwgMHg2MCwgMHgxMiwgMHgxMiwgMHgxMywgMHg2ZiwgMHg4ZiwgMHgxYSwgMHhlNSwgMHgxYSwgMHg2NX19LAorIHsweDEyNDYsIDY0LCB7IDB4MWIsIDB4NjAsIDB4MDcsIDB4MTIsIDB4MTMsIDB4NmYsIDB4OGYsIDB4MWIsIDB4ODAsIDB4ZTgsIDB4YWYsIDB4MWEsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsCisgIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MWEsIDB4MDQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4N2YsIDB4ZjQsCisgIDB4N2UsIDB4MDEsIDB4MTIsIDB4MTIsIDB4ZDYsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsCisgIDB4MjIsIDB4YWUsIDB4MDcsIDB4ZTQsIDB4ZmYsIDB4ZTUsIDB4M2UsIDB4NTQsIDB4N2YsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4YmYsIDB4OTAsIDB4N2Z9fSwKKyB7MHgxMjg2LCA2NCwgeyAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDNlLCAweDQ0LCAweDgwLCAweGZkLCAweDEyLCAweDExLAorICAweGJmLCAweDIyLCAweGFlLCAweDA3LCAweGU0LCAweGZmLCAweGU1LCAweDNmLCAweDU0LCAweDdmLCAweGZkLCAweDEyLCAweDEyLCAweDA5LCAweDkwLCAweDdmLAorICAweDk4LCAweDc0LCAweDA5LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDNmLCAweDQ0LCAweDgwLCAweGZkLCAweDEyLAorICAweDEyLCAweDA5LCAweDIyLCAweDA1LCAweDBlLCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAzLCAweDE0LCAweDAzLCAweDAwLCAweDAwfX0sCisgezB4MTJjNiwgNjQsIHsgMHhjMSwgMHgxMSwgMHhjMSwgMHgxOCwgMHhjMSwgMHg5NSwgMHhjMSwgMHgxMCwgMHhjMSwgMHgxNiwgMHgwMSwgMHgwYSwgMHgwMCwgMHhjMSwgMHg5YiwgMHgwMCwgMHg4ZSwKKyAgMHgxOCwgMHg4ZiwgMHgxOSwgMHhlNSwgMHgxOSwgMHgxNSwgMHgxOSwgMHhhZSwgMHgxOCwgMHg3MCwgMHgwMiwgMHgxNSwgMHgxOCwgMHg0ZSwgMHg2MCwgMHgwNSwKKyAgMHgxMiwgMHgwZCwgMHg1YywgMHg4MCwgMHhlZSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwKKyAgMHhmZiwgMHgyMiwgMHg1MywgMHhkOCwgMHhlZiwgMHgzMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwZiwgMHhmNSwgMHgwMCwgMHgwMiwgMHgxM319LAorIHsweDEzMDYsIDY0LCB7IDB4MDQsIDB4MDAsIDB4MDIsIDB4MGYsIDB4Y2IsIDB4MDAsIDB4MDIsIDB4MTAsIDB4MWMsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsCisgIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsCisgIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsCisgIDB4MTUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTYsIDB4ZjAsIDB4OTB9fSwKKyB7MHgxMzQ2LCA2NCwgeyAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLAorICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA5LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAorICAweDBhLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwLCAweGMwLAorICAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmfX0sCisgezB4MTM4NiwgNjQsIHsgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKKyAgMHgwZSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHgxMiwgMHgwMCwgMHgwMywgMHgxMiwgMHgwZCwgMHg2ZCwgMHgxMiwgMHgwYiwKKyAgMHg0NiwgMHgyMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDEzYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNDA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTQ0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE0ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNGM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTUwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE1NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNTg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTVjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE2MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNjQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTY4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE2YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNzA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTc0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE3ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxN2M2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTgwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE4NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxODg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MThjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMiwgMHgwMSwgMHgxMCwgMHgwMSwgMHhmZiwgMHgwMH19LAorIHsweDE5MDYsIDY0LCB7IDB4MDAsIDB4NDAsIDB4Y2QsIDB4MDYsIDB4MTUsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4MDIsIDB4MDksIDB4MDIsIDB4NzQsIDB4MDAsIDB4MDEsCisgIDB4MDEsIDB4MDAsIDB4YTAsIDB4MzIsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MGUsIDB4ZmYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDEsCisgIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDMsIDB4MDIsIDB4NDAsCisgIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDUsIDB4MDIsIDB4NDAsIDB4MDB9fSwKKyB7MHgxOTQ2LCA2NCwgeyAweDAwLCAweDA3LCAweDA1LCAweDA2LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA3LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LAorICAweDgxLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgzLCAweDAyLAorICAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg0LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg1LCAweDAyLCAweDQwLCAweDAwLAorICAweDAxLCAweDA3LCAweDA1LCAweDg2LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg3LCAweDAyLCAweDQwLCAweDAwLCAweDAxfX0sCisgezB4MTk4NiwgNjQsIHsgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHg0OCwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwKKyAgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyYywgMHgwMCwgMHgyMCwgMHgwMCwgMHg2MSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg3NiwKKyAgMHgwMCwgMHg2OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2NiwKKyAgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg1MywgMHgwMCwgMHg3OSwgMHgwMH19LAorIHsweDE5YzYsIDY0LCB7IDB4NzMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjMsIDB4MDAsIDB4MmUsIDB4MDAsIDB4MzYsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsCisgIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTUsIDB4MDAsIDB4NTMsCisgIDB4MDAsIDB4NDIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmMsCisgIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDEsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjUsIDB4MDB9fSwKKyB7MHgxYTA2LCAgNCwgeyAweDcyLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4ZmZmZiwgIDAsIHsweDAwfX0KK307CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyOHhiX2Z3LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyOHhiX2Z3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjVmY2FkNAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTI4eGJfZncuaApAQCAtMCwwICsxLDQ0OCBAQAorLyoga2V5c3Bhbl91c2EyOHhiX2Z3LmgKKworCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGFzIGtleXNwYW5fdXNhMjl4Yl9mdy5oIGlzCisKKwkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKKwkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQorCQkKKwlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKKwlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKKwlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZSAKKwlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlIAorCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbCAKKwlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLiAKKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoICAKKwlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlIAorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gCisJcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCisKKyovCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCBrZXlzcGFuX3VzYTI4eGJfZmlybXdhcmVbXSA9IHsKKyB7MHgwMDMzLCAgMywgeyAweDAyLCAweDAwLCAweDJkfX0sCisgezB4MDAyZCwgIDQsIHsgMHg1MywgMHhkOCwgMHhlZiwgMHgzMn19LAorIHsweDAwNDYsIDE2LCB7IDB4MzAsIDB4MDksIDB4MTgsIDB4MTIsIDB4MTMsIDB4MzMsIDB4ZWYsIDB4YzMsIDB4OTUsIDB4M2MsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDAsIDB4ZDgsIDB4OTB9fSwKKyB7MHgwMDU2LCAxNiwgeyAweDdmLCAweGJmLCAweDc0LCAweDAxLCAweGYwLCAweGMyLCAweDA5LCAweGMyLCAweDAwLCAweDgwLCAweDc3LCAweDMwLCAweDAzLCAweDNiLCAweDkwLCAweDdmfX0sCisgezB4MDA2NiwgMTYsIHsgMHhjNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHg2ZCwgMHgxMiwgMHgxMywgMHgzMywgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHg2NCwgMHg5MCwgMHg3ZX19LAorIHsweDAwNzYsIDE2LCB7IDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MDksIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MTksIDB4MjAsIDB4MDAsIDB4MTEsIDB4NjB9fSwKKyB7MHgwMDg2LCAxNiwgeyAweDBmLCAweGY1LCAweDA4LCAweDdlLCAweDdlLCAweDdmLCAweDQxLCAweDc1LCAweDBjLCAweDdlLCAweDc1LCAweDBkLCAweDQxLCAweDEyLCAweDBjLCAweGNjfX0sCisgezB4MDA5NiwgMTYsIHsgMHhjMiwgMHgwMywgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHg4MCwgMHgzOSwgMHg5MCwgMHg3ZiwgMHhjOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgzMn19LAorIHsweDAwYTYsIDE2LCB7IDB4MTIsIDB4MTMsIDB4MzMsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4MjksIDB4OTAsIDB4N2QsIDB4YzAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MDl9fSwKKyB7MHgwMGI2LCAxNiwgeyAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweDE0LCAweGY1LCAweDE5LCAweDIwLCAweDAwLCAweDExLCAweDYwLCAweDBmLCAweGY1LCAweDA4LCAweDdlLCAweDdkfX0sCisgezB4MDBjNiwgMTYsIHsgMHg3ZiwgMHhjMSwgMHg3NSwgMHgwYywgMHg3ZCwgMHg3NSwgMHgwZCwgMHhjMSwgMHgxMiwgMHgwYywgMHhjYywgMHhkMiwgMHgwMywgMHhlNCwgMHg5MCwgMHg3Zn19LAorIHsweDAwZDYsIDE2LCB7IDB4YzksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDEsIDB4NjAsIDB4MTIsIDB4MTEsIDB4ZjUsIDB4OGZ9fSwKKyB7MHgwMGU2LCAxNiwgeyAweDE5LCAweDEyLCAweDEzLCAweDNmLCAweDhmLCAweDM2LCAweGU1LCAweDE5LCAweGMzLCAweDk1LCAweDNhLCAweDUwLCAweDBmLCAweDEyLCAweDEzLCAweDFifX0sCisgezB4MDBmNiwgMTYsIHsgMHhlZiwgMHgzMCwgMHhlMCwgMHgwOCwgMHhlNSwgMHgzNiwgMHgyMCwgMHhlNywgMHgwMywgMHgzMCwgMHgwYiwgMHg1ZSwgMHhjMiwgMHgwYiwgMHhlNSwgMHgxOX19LAorIHsweDAwMzYsIDEyLCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjJ9fSwKKyB7MHgwMDQzLCAgMywgeyAweDAyLCAweDEzLCAweDAwfX0sCisgezB4MDAwMywgMTYsIHsgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg5MH19LAorIHsweDAwMTMsIDE2LCB7IDB4N2YsIDB4YzQsIDB4ZTQsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDB9fSwKKyB7MHgwMDIzLCAxMCwgeyAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfX0sCisgezB4MDAwMCwgIDMsIHsgMHgwMiwgMHgwZSwgMHgxMn19LAorIHsweDAxMDYsIDY0LCB7IDB4NjAsIDB4NTgsIDB4YjQsIDB4ODAsIDB4MDMsIDB4NDMsIDB4MzYsIDB4MDIsIDB4ZTUsIDB4MzYsIDB4MzAsIDB4ZTcsIDB4MjYsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsCisgIDB4MjAsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4MjAsIDB4ODUsIDB4MTksIDB4MDgsIDB4N2UsIDB4N2UsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MGMsIDB4N2UsCisgIDB4NzUsIDB4MGQsIDB4ODAsIDB4YWYsIDB4MzYsIDB4MTIsIDB4MGYsIDB4NWQsIDB4ZTUsIDB4MTksIDB4MjUsIDB4ZTAsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZjAsCisgIDB4ODAsIDB4MjcsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsIDB4M2YsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4M2YsIDB4ODUsIDB4MTksIDB4MDh9fSwKKyB7MHgwMTQ2LCA2NCwgeyAweDkwLCAweDdlLCAweDgwLCAweGU1LCAweDM2LCAweGYwLCAweDdlLCAweDdlLCAweDdmLCAweDgxLCAweDc1LCAweDBjLCAweDdlLCAweDc1LCAweDBkLCAweDgxLCAweDEyLAorICAweDBjLCAweGYxLCAweGU1LCAweDE5LCAweDA0LCAweDkwLCAweDdmLCAweGI3LCAweGYwLCAweDkwLCAweDdmLCAweGNlLCAweGUwLCAweDMwLCAweGUxLCAweDA2LAorICAweDIwLCAweDA1LCAweDAzLCAweDAyLCAweDAzLCAweGMxLCAweGU0LCAweGY1LCAweDE4LCAweDc0LCAweDQwLCAweDI1LCAweDE4LCAweGY1LCAweDgyLCAweGU0LAorICAweDM0LCAweDdjLCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE4LCAweDdjLCAweDAwLCAweDdiLCAweDAxLCAweDdhLCAweDdlLCAweDc5fX0sCisgezB4MDE4NiwgNjQsIHsgMHgwMCwgMHgyNCwgMHgwMCwgMHhmOSwgMHhlYywgMHgzNCwgMHg3ZSwgMHhmYSwgMHhlZiwgMHgxMiwgMHgwZSwgMHhlNCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwKKyAgMHgyMCwgMHhkNywgMHg5MCwgMHg3ZSwgMHgwMCwgMHhlMCwgMHg2MCwgMHg2OCwgMHg5MCwgMHg3ZSwgMHgwMywgMHhlMCwgMHg2MCwgMHgyNCwgMHg3ZiwgMHgwMSwKKyAgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMSwgMHhkMCwgMHg3ZiwgMHgwMywgMHg3ZCwgMHhjZCwgMHgxMiwgMHgxMSwgMHhkMCwgMHg0MywgMHg0NiwgMHg4MCwgMHg5MCwKKyAgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NiwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZSwgMHgxM319LAorIHsweDAxYzYsIDY0LCB7IDB4ZjAsIDB4ODAsIDB4MzAsIDB4OTAsIDB4N2UsIDB4MDEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTAsIDB4NTQsIDB4OTAsIDB4N2UsIDB4MDIsIDB4ZTAsIDB4ZmYsIDB4MTIsCisgIDB4MTAsIDB4N2EsIDB4N2YsIDB4MDEsIDB4OTAsIDB4N2UsIDB4MTEsIDB4ZTAsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4ZDAsIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsCisgIDB4MTIsIDB4MTEsIDB4ZDAsIDB4NDMsIDB4NDYsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsCisgIDB4NDYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4ZTUsIDB4NDAsIDB4NDQsIDB4MDYsIDB4OTAsIDB4YzAsIDB4MDB9fSwKKyB7MHgwMjA2LCA2NCwgeyAweGYwLCAweDkwLCAweDdlLCAweDAzLCAweGUwLCAweDcwLCAweDA2LCAweDkwLCAweDdlLCAweDEzLCAweGUwLCAweDcwLCAweDA4LCAweGU0LCAweDkwLCAweDdlLCAweDEzLAorICAweGYwLCAweDc1LCAweDI1LCAweGZmLCAweDkwLCAweDdlLCAweDA1LCAweGUwLCAweDYwLCAweDEyLCAweGEzLCAweGUwLCAweDU0LCAweDNmLCAweGY1LCAweDQ0LAorICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ0LCAweGYwLCAweDkwLCAweDdlLCAweDA3LCAweGUwLAorICAweDYwLCAweDJiLCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQyLCAweDgwLCAweDgwLCAweDAzLCAweDUzLCAweDQyLCAweDdmLCAweDUzfX0sCisgezB4MDI0NiwgNjQsIHsgMHg0MiwgMHhmYywgMHg5MCwgMHg3ZSwgMHgwOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywgMHg0MiwgMHgwMiwgMHhhMywgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMCwgMHhjNiwKKyAgMHg5MCwgMHg3ZSwgMHgwYiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMCwgMHhlYywgMHhhZiwgMHg0MiwgMHgxMiwgMHgxMCwgMHhhMCwgMHg5MCwgMHg3ZSwgMHgwMywKKyAgMHhlMCwgMHg2MCwgMHgwOCwgMHg1MywgMHg0MiwgMHg3ZiwgMHhhZiwgMHg0MiwgMHgxMiwgMHgxMCwgMHhhMCwgMHg5MCwgMHg3ZSwgMHgwYywgMHhlMCwgMHg2MCwKKyAgMHgxOCwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0NiwgMHgwMiwgMHg4MCwgMHgwMywgMHg1MywgMHg0NiwgMHhmZCwgMHg5MCwgMHg3Zn19LAorIHsweDAyODYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MGUsIDB4ZTAsIDB4NjAsIDB4MTgsIDB4YTMsCisgIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDYsIDB4MDEsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDYsIDB4ZmUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsCisgIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MTIsIDB4ZTAsIDB4ZjUsIDB4M2EsIDB4YTMsIDB4ZTAsIDB4MTMsCisgIDB4OTIsIDB4MGQsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4M2MsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDYsIDB4MTAsIDB4ODAsIDB4MDN9fSwKKyB7MHgwMmM2LCA2NCwgeyAweDUzLCAweDQ2LCAweGVmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ2LCAweGYwLCAweDkwLCAweDdlLAorICAweDE2LCAweGUwLCAweDYwLCAweDMyLCAweDUzLCAweDQ0LCAweGJmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LAorICAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDEyLCAweDEzLCAweDBmLCAweGVmLCAweDU0LAorICAweGZlLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDUzLCAweDNlLCAweGZkLCAweGU0LCAweGZmLCAweGFkLCAweDNlLCAweDEyLCAweDExLCAweGQwfX0sCisgezB4MDMwNiwgNjQsIHsgMHhlNCwgMHhmNSwgMHgyYSwgMHhmNSwgMHgyOSwgMHhkMiwgMHgwNywgMHg5MCwgMHg3ZSwgMHgxNywgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywgMHgzZSwgMHgwMiwgMHhlNCwKKyAgMHhmZiwgMHhhZCwgMHgzZSwgMHgxMiwgMHgxMSwgMHhkMCwgMHg3NSwgMHgyOSwgMHgwMSwgMHhkMiwgMHgwNywgMHg5MCwgMHg3ZSwgMHgxOCwgMHhlMCwgMHg2MCwKKyAgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHhlNSwgMHg0MCwgMHg0NCwgMHgwNCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhkMiwKKyAgMHgwMCwgMHg5MCwgMHg3ZSwgMHgxOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywgMHg0NCwgMHg0MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxM319LAorIHsweDAzNDYsIDY0LCB7IDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MWEsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NTMsIDB4M2UsCisgIDB4ZmUsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2UsIDB4MTIsIDB4MTEsIDB4ZDAsIDB4NzUsIDB4MmIsIDB4MDEsIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsIDB4MWIsCisgIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2UsIDB4MDEsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2UsIDB4MTIsIDB4MTEsIDB4ZDAsIDB4ZTQsIDB4ZjUsIDB4MmIsCisgIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsIDB4MWMsIDB4ZTAsIDB4NjAsIDB4MGUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4ZTV9fSwKKyB7MHgwMzg2LCA2NCwgeyAweDQwLCAweDQ0LCAweDAyLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDFkLCAweGUwLCAweDYwLCAweDAyLCAweGQyLCAweDBiLCAweDkwLCAweDdlLAorICAweDFlLCAweGUwLCAweDYwLCAweDA4LCAweDc1LCAweDJjLCAweDAxLCAweGU0LCAweGY1LCAweDM4LCAweGQyLCAweDA3LCAweDkwLCAweDdlLCAweDFmLCAweGUwLAorICAweDYwLCAweDExLCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDExLCAweGYwLCAweDc0LCAweDMxLCAweGYwLCAweDc0LCAweDE1LCAweGYwLCAweDc0LCAweDM1LAorICAweGYwLCAweGQyLCAweDAzLCAweGMyLCAweDA1LCAweGU0LCAweDkwLCAweDdmLCAweGNmLCAweGYwLCAweDMwLCAweDFhLCAweDU0LCAweGU1LCAweDM4fX0sCisgezB4MDNjNiwgNjQsIHsgMHg2MCwgMHgwMiwgMHgxNSwgMHgzOCwgMHgyMCwgMHgxMywgMHg0YiwgMHhlNSwgMHgxMywgMHhkMywgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNCwgMHgxNSwgMHgxMywgMHg4MCwKKyAgMHg0MCwgMHg3NSwgMHgxMywgMHgwYSwgMHgzMCwgMHgxYiwgMHgwMiwgMHhkMiwgMHgxMywgMHgxMiwgMHgxMywgMHgwZiwgMHhlZiwgMHg1NCwgMHgwMSwgMHhmNSwKKyAgMHgxOSwgMHg2NSwgMHgyYSwgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOSwgMHgyYSwgMHhkMiwgMHgwNywgMHgxMiwgMHgxMywgMHg0YiwgMHhlZiwgMHg1NCwgMHg4MCwKKyAgMHg2NCwgMHg4MCwgMHhmNSwgMHgxOSwgMHg2NSwgMHgyNiwgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOSwgMHgyNiwgMHhkMiwgMHgwNywgMHgzMCwgMHgwZH19LAorIHsweDA0MDYsIDY0LCB7IDB4MTEsIDB4MTIsIDB4MTMsIDB4NGIsIDB4ZWYsIDB4NTQsIDB4MTAsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MjUsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MjUsIDB4ZDIsCisgIDB4MDcsIDB4MjAsIDB4MWIsIDB4MDMsIDB4MDIsIDB4MDcsIDB4ZjAsIDB4MzAsIDB4MGEsIDB4MTgsIDB4MTIsIDB4MTMsIDB4ODcsIDB4ZWYsIDB4YzMsIDB4OTUsCisgIDB4M2QsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4YjAsIDB4OTAsIDB4N2YsIDB4YzEsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4YzIsIDB4MGEsIDB4YzIsIDB4MDAsCisgIDB4ODAsIDB4NzcsIDB4MzAsIDB4MDQsIDB4M2IsIDB4OTAsIDB4N2YsIDB4Y2EsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4NmQsIDB4MTIsIDB4MTMsIDB4ODd9fSwKKyB7MHgwNDQ2LCA2NCwgeyAweGVmLCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDY0LCAweDkwLCAweDdkLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDBhLCAweDkwLCAweDdmLCAweGNiLCAweGUwLAorICAweDE0LCAweGY1LCAweDE5LCAweDIwLCAweDAwLCAweDExLCAweDYwLCAweDBmLCAweGY1LCAweDA4LCAweDdlLCAweDdkLCAweDdmLCAweDQxLCAweDc1LCAweDBjLAorICAweDdkLCAweDc1LCAweDBkLCAweDQxLCAweDEyLCAweDBkLCAweDE2LCAweGMyLCAweDA0LCAweGU0LCAweDkwLCAweDdmLCAweGNiLCAweGYwLCAweDgwLCAweDM5LAorICAweDkwLCAweDdmLCAweGNjLCAweGUwLCAweDIwLCAweGUxLCAweDMyLCAweDEyLCAweDEzLCAweDg3LCAweGVmLCAweGMzLCAweDk0LCAweDQwLCAweDUwfX0sCisgezB4MDQ4NiwgNjQsIHsgMHgyOSwgMHg5MCwgMHg3YywgMHhjMCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhlMCwgMHgxNCwgMHhmNSwgMHgxOSwgMHgyMCwgMHgwMCwKKyAgMHgxMSwgMHg2MCwgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3YywgMHg3ZiwgMHhjMSwgMHg3NSwgMHgwYywgMHg3YywgMHg3NSwgMHgwZCwgMHhjMSwgMHgxMiwKKyAgMHgwZCwgMHgxNiwgMHhkMiwgMHgwNCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiYSwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywKKyAgMHgwMiwgMHgwNSwgMHgzOCwgMHgxMiwgMHgxMiwgMHgzZiwgMHg4ZiwgMHgxOSwgMHgxMiwgMHgxMywgMHg5MywgMHg4ZiwgMHgzNywgMHhlNSwgMHgxOX19LAorIHsweDA0YzYsIDY0LCB7IDB4YzMsIDB4OTUsIDB4M2IsIDB4NTAsIDB4MGYsIDB4MTIsIDB4MTMsIDB4NmYsIDB4ZWYsIDB4MzAsIDB4ZTAsIDB4MDgsIDB4ZTUsIDB4MzcsIDB4MjAsIDB4ZTcsIDB4MDMsCisgIDB4MzAsIDB4MGMsIDB4NWUsIDB4YzIsIDB4MGMsIDB4ZTUsIDB4MTksIDB4NjAsIDB4NTgsIDB4YjQsIDB4ODAsIDB4MDMsIDB4NDMsIDB4MzcsIDB4MDIsIDB4ZTUsCisgIDB4MzcsIDB4MzAsIDB4ZTcsIDB4MjYsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsIDB4MjAsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4MjAsIDB4ODUsIDB4MTksCisgIDB4MDgsIDB4N2UsIDB4N2QsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MGMsIDB4N2QsIDB4NzUsIDB4MGQsIDB4ODAsIDB4YWYsIDB4MzcsIDB4MTIsIDB4MGZ9fSwKKyB7MHgwNTA2LCA2NCwgeyAweDk2LCAweGU1LCAweDE5LCAweDI1LCAweGUwLCAweDkwLCAweDdmLCAweGJiLCAweGYwLCAweDgwLCAweDI3LCAweGU1LCAweDE5LCAweGQzLCAweDk0LCAweDNmLCAweDQwLAorICAweDAzLCAweDc1LCAweDE5LCAweDNmLCAweDg1LCAweDE5LCAweDA4LCAweDkwLCAweDdkLCAweDgwLCAweGU1LCAweDM3LCAweGYwLCAweDdlLCAweDdkLCAweDdmLAorICAweDgxLCAweDc1LCAweDBjLCAweDdkLCAweDc1LCAweDBkLCAweDgxLCAweDEyLCAweDBkLCAweDNiLCAweGU1LCAweDE5LCAweDA0LCAweDkwLCAweDdmLCAweGJiLAorICAweGYwLCAweDkwLCAweDdmLCAweGQwLCAweGUwLCAweDMwLCAweGUxLCAweDA2LCAweDIwLCAweDA2LCAweDAzLCAweDAyLCAweDA3LCAweDk5LCAweGU0fX0sCisgezB4MDU0NiwgNjQsIHsgMHhmNSwgMHgxOCwgMHg3NCwgMHhjMCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxOCwKKyAgMHg3YywgMHgwMCwgMHg3YiwgMHgwMSwgMHg3YSwgMHg3ZSwgMHg3OSwgMHgyMCwgMHgyNCwgMHgyMCwgMHhmOSwgMHhlYywgMHgzNCwgMHg3ZSwgMHhmYSwgMHhlZiwKKyAgMHgxMiwgMHgwZSwgMHhlNCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgyMCwgMHhkNywgMHg5MCwgMHg3ZSwgMHgyMCwgMHhlMCwgMHg2MCwgMHg2OCwKKyAgMHg5MCwgMHg3ZSwgMHgyMywgMHhlMCwgMHg2MCwgMHgyNCwgMHg3ZiwgMHgwMSwgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMiwgMHgxYSwgMHg3ZiwgMHgwM319LAorIHsweDA1ODYsIDY0LCB7IDB4N2QsIDB4Y2QsIDB4MTIsIDB4MTIsIDB4MWEsIDB4NDMsIDB4NDcsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsCisgIDB4ZTUsIDB4NDcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2UsIDB4MzMsIDB4ZjAsIDB4ODAsIDB4MzAsIDB4OTAsIDB4N2UsIDB4MjEsIDB4ZTAsIDB4ZmYsIDB4MTIsCisgIDB4MTEsIDB4MzgsIDB4OTAsIDB4N2UsIDB4MjIsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTEsIDB4NWUsIDB4N2YsIDB4MDEsIDB4OTAsIDB4N2UsIDB4MzEsIDB4ZTAsCisgIDB4ZmQsIDB4MTIsIDB4MTIsIDB4MWEsIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTIsIDB4MWEsIDB4NDMsIDB4NDcsIDB4ODAsIDB4OTB9fSwKKyB7MHgwNWM2LCA2NCwgeyAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLAorICAweGU1LCAweDQxLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDIzLCAweGUwLCAweDcwLCAweDA2LCAweDkwLCAweDdlLAorICAweDMzLCAweGUwLCAweDcwLCAweDA4LCAweGU0LCAweDkwLCAweDdlLCAweDMzLCAweGYwLCAweDc1LCAweDJlLCAweGZmLCAweDkwLCAweDdlLCAweDI1LCAweGUwLAorICAweDYwLCAweDEyLCAweGEzLCAweGUwLCAweDU0LCAweDNmLCAweGY1LCAweDQ1LCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwfX0sCisgezB4MDYwNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NSwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgyNywgMHhlMCwgMHg2MCwgMHgyYiwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0MywKKyAgMHg4MCwgMHg4MCwgMHgwMywgMHg1MywgMHg0MywgMHg3ZiwgMHg1MywgMHg0MywgMHhmYywgMHg5MCwgMHg3ZSwgMHgyOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywKKyAgMHg0MywgMHgwMiwgMHhhMywgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMSwgMHg4NCwgMHg5MCwgMHg3ZSwgMHgyYiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMSwgMHhhYSwKKyAgMHhhZiwgMHg0MywgMHgxMiwgMHgxMSwgMHgxMiwgMHg5MCwgMHg3ZSwgMHgyMywgMHhlMCwgMHg2MCwgMHgwOCwgMHg1MywgMHg0MywgMHg3ZiwgMHhhZn19LAorIHsweDA2NDYsIDY0LCB7IDB4NDMsIDB4MTIsIDB4MTEsIDB4MTIsIDB4OTAsIDB4N2UsIDB4MmMsIDB4ZTAsIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDcsIDB4MDIsCisgIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDcsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDcsCisgIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MmUsIDB4ZTAsIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDcsIDB4MDEsIDB4ODAsIDB4MDMsCisgIDB4NTMsIDB4NDcsIDB4ZmUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDcsIDB4ZjB9fSwKKyB7MHgwNjg2LCA2NCwgeyAweDkwLCAweDdlLCAweDMyLCAweGUwLCAweGY1LCAweDNiLCAweGEzLCAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGEzLCAweGUwLCAweGY1LCAweDNkLCAweGEzLCAweGUwLAorICAweDYwLCAweDA1LCAweDQzLCAweDQ3LCAweDEwLCAweDgwLCAweDAzLCAweDUzLCAweDQ3LCAweGVmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLAorICAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LCAweGYwLCAweDkwLCAweDdlLCAweDM2LCAweGUwLCAweDYwLCAweDMyLCAweDUzLCAweDQ1LCAweGJmLCAweDkwLAorICAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmfX0sCisgezB4MDZjNiwgNjQsIHsgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHgxMiwgMHgxMywgMHg2MywgMHhlZiwgMHg1NCwgMHhmZSwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg1MywgMHgzZiwgMHhmZCwKKyAgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZiwgMHgxMiwgMHgxMiwgMHgxYSwgMHhlNCwgMHhmNSwgMHgzMywgMHhmNSwgMHgzMiwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwKKyAgMHgzNywgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywgMHgzZiwgMHgwMiwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZiwgMHgxMiwgMHgxMiwgMHgxYSwgMHg3NSwgMHgzMiwKKyAgMHgwMSwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwgMHgzOCwgMHhlMCwgMHg2MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMH19LAorIHsweDA3MDYsIDY0LCB7IDB4ZTUsIDB4NDEsIDB4NDQsIDB4MDQsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZDIsIDB4MDAsIDB4OTAsIDB4N2UsIDB4MzksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsCisgIDB4NDUsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsCisgIDB4OTAsIDB4N2UsIDB4M2EsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NTMsIDB4M2YsIDB4ZmUsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2YsIDB4MTIsIDB4MTIsIDB4MWEsCisgIDB4NzUsIDB4MzQsIDB4MDEsIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsIDB4M2IsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2YsIDB4MDEsIDB4ZTR9fSwKKyB7MHgwNzQ2LCA2NCwgeyAweGZmLCAweGFkLCAweDNmLCAweDEyLCAweDEyLCAweDFhLCAweGU0LCAweGY1LCAweDM0LCAweGQyLCAweDA4LCAweDkwLCAweDdlLCAweDNjLCAweGUwLCAweDYwLCAweDBlLAorICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweGU1LCAweDQxLCAweDQ0LCAweDAyLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLAorICAweDNkLCAweGUwLCAweDYwLCAweDAyLCAweGQyLCAweDBjLCAweDkwLCAweDdlLCAweDNlLCAweGUwLCAweDYwLCAweDA4LCAweDc1LCAweDM1LCAweDAxLCAweGU0LAorICAweGY1LCAweDM5LCAweGQyLCAweDA4LCAweDkwLCAweDdlLCAweDNmLCAweGUwLCAweDYwLCAweDExLCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDEzfX0sCisgezB4MDc4NiwgNjQsIHsgMHhmMCwgMHg3NCwgMHgzMywgMHhmMCwgMHg3NCwgMHgxNiwgMHhmMCwgMHg3NCwgMHgzNiwgMHhmMCwgMHhkMiwgMHgwNCwgMHhjMiwgMHgwNiwgMHhlNCwgMHg5MCwgMHg3ZiwKKyAgMHhkMSwgMHhmMCwgMHgzMCwgMHgxYSwgMHg1NCwgMHhlNSwgMHgzOSwgMHg2MCwgMHgwMiwgMHgxNSwgMHgzOSwgMHgzMCwgMHgxMywgMHg0YiwgMHhlNSwgMHgxMywKKyAgMHhkMywgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNCwgMHgxNSwgMHgxMywgMHg4MCwgMHg0MCwgMHg3NSwgMHgxMywgMHgwYSwgMHgzMCwgMHgxYiwgMHgwMiwgMHhjMiwKKyAgMHgxMywgMHgxMiwgMHgxMywgMHg2MywgMHhlZiwgMHg1NCwgMHgwMSwgMHhmNSwgMHgxOSwgMHg2NSwgMHgzMywgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOX19LAorIHsweDA3YzYsIDY0LCB7IDB4MzMsIDB4ZDIsIDB4MDgsIDB4MTIsIDB4MTMsIDB4OWYsIDB4ZWYsIDB4NTQsIDB4ODAsIDB4NjQsIDB4ODAsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MmYsIDB4NjAsIDB4MDUsCisgIDB4ODUsIDB4MTksIDB4MmYsIDB4ZDIsIDB4MDgsIDB4MzAsIDB4MGUsIDB4MTEsIDB4MTIsIDB4MTMsIDB4OWYsIDB4ZWYsIDB4NTQsIDB4MTAsIDB4ZjUsIDB4MTksCisgIDB4NjUsIDB4MmUsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MmUsIDB4ZDIsIDB4MDgsIDB4MzAsIDB4MWEsIDB4MmEsIDB4OTAsIDB4N2YsIDB4ZDIsIDB4ZTAsCisgIDB4MjAsIDB4ZTEsIDB4MjMsIDB4OTAsIDB4N2IsIDB4NDAsIDB4ZTAsIDB4NjAsIDB4MDksIDB4ZTAsIDB4ZjUsIDB4MTUsIDB4OTAsIDB4N2IsIDB4NDJ9fSwKKyB7MHgwODA2LCA2NCwgeyAweGUwLCAweGY1LCAweDE2LCAweDkwLCAweDdiLCAweDQxLCAweGUwLCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDE3LCAweGYwLCAweDc0LCAweDM3LAorICAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweGQzLCAweGYwLCAweDkwLCAweDdmLCAweGMyLCAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDA5LCAweDI0LAorICAweGU1LCAweDBhLCAweDcwLCAweDQwLCAweDMwLCAweDA3LCAweDM5LCAweGU1LCAweDM4LCAweDcwLCAweDM1LCAweGMyLCAweDA3LCAweGY1LCAweDE4LCAweDdlLAorICAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDI0LCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDBlLCAweDllfX0sCisgezB4MDg0NiwgNjQsIHsgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxOCwgMHhlNSwKKyAgMHgxOCwgMHhiNCwgMHgwOSwgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwOSwgMHhmMCwgMHg3NSwgMHgzOCwgMHgxMCwgMHhlNCwgMHhmNSwgMHgyYywKKyAgMHg3NSwgMHgwYSwgMHgwMSwgMHgyMiwgMHhlNSwgMHgwYSwgMHg2NCwgMHgwMSwgMHg3MCwgMHg0MCwgMHgzMCwgMHgwOCwgMHgzOSwgMHhlNSwgMHgzOSwgMHg3MCwKKyAgMHgzNSwgMHhjMiwgMHgwOCwgMHhmNSwgMHgxOCwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyZCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZX19LAorIHsweDA4ODYsIDY0LCB7IDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MGUsIDB4OWUsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsCisgIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDksIDB4ZjAsCisgIDB4NzUsIDB4MzksIDB4MTAsIDB4ZTQsIDB4ZjUsIDB4MzUsIDB4NzUsIDB4MGEsIDB4MDIsIDB4MjIsIDB4ZTUsIDB4MGEsIDB4NjQsIDB4MDIsIDB4NzAsIDB4MzYsCisgIDB4MzAsIDB4MTQsIDB4MmYsIDB4YzIsIDB4MTQsIDB4ZjUsIDB4MTgsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MGUsIDB4MjUsIDB4MTh9fSwKKyB7MHgwOGM2LCA2NCwgeyAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDBlLCAweDllLCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LAorICAweDdiLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA1LCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LAorICAweDA1LCAweGYwLCAweDc1LCAweDBhLCAweDAzLCAweDIyLCAweGU1LCAweDE1LCAweDYwLCAweDMwLCAweDE1LCAweDE1LCAweGU0LCAweGY1LCAweDE4LCAweDdlLAorICAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDE0LCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDBlLCAweDllfX0sCisgezB4MDkwNiwgNjQsIHsgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxOCwgMHhlNSwKKyAgMHgxOCwgMHhiNCwgMHgwMywgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwMywgMHhmMCwgMHhlNCwgMHhmNSwgMHgwYSwgMHgyMiwgMHg5MCwgMHg3ZiwKKyAgMHhlOSwgMHhlMCwgMHgxMiwgMHgwZSwgMHhmNiwgMHgwYSwgMHgwYywgMHgwMCwgMHgwYSwgMHg4MCwgMHgwMSwgMHgwYSwgMHhlYywgMHgwMywgMHgwOSwgMHg0OCwKKyAgMHgwNiwgMHgwOSwgMHhmZiwgMHgwOCwgMHgwOSwgMHhmOSwgMHgwOSwgMHgwOSwgMHhlMSwgMHgwYSwgMHgwOSwgMHhmMCwgMHgwYiwgMHgwMCwgMHgwMH19LAorIHsweDA5NDYsIDY0LCB7IDB4MGIsIDB4M2IsIDB4OTAsIDB4N2YsIDB4ZWIsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTksIDB4MTQsIDB4NjAsIDB4NjEsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsCisgIDB4MDIsIDB4MDksIDB4ZDcsIDB4NzQsIDB4MTksIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4MDAsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsCisgIDB4MGIsIDB4NDIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MDQsIDB4N2YsIDB4MDIsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MDMsIDB4NzUsIDB4ODIsCisgIDB4ODIsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZWYsIDB4ZjAsIDB4NzUsIDB4ODIsIDB4N2IsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4NzUsIDB4ODJ9fSwKKyB7MHgwOTg2LCA2NCwgeyAweDc0LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc1LCAweDgyLCAweDY2LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc1LCAweDgyLCAweDU4LCAweDc1LCAweDgzLAorICAweDE5LCAweGYwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDA0LCAweDc1LCAweDgyLCAweDE3LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc0LCAweDE5LAorICAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweDc0LCAweDEyLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDBiLCAweDQyLCAweDkwLCAweDdmLCAweGVhLAorICAweGUwLCAweGZmLCAweDEyLCAweDBmLCAweDFjLCAweGVhLCAweDQ5LCAweDYwLCAweDBkLCAweGVhLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweGU5fX0sCisgezB4MDljNiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwYiwgMHg0MiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHg0MiwKKyAgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHg0MiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhlNSwgMHgwOSwgMHhmMCwKKyAgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHg0MiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgwOSwgMHgwMiwKKyAgMHgwYiwgMHg0MiwgMHgxMiwgMHgwYiwgMHg0YSwgMHgwMiwgMHgwYiwgMHg0MiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MH19LAorIHsweDBhMDYsIDY0LCB7IDB4N2YsIDB4YjUsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4NDIsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4N2YsIDB4NjAsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MzEsCisgIDB4MjQsIDB4MDIsIDB4NzAsIDB4NWIsIDB4YTIsIDB4MTAsIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4MjUsIDB4ZTAsIDB4ZmYsIDB4YTIsIDB4MTYsIDB4ZTQsIDB4MzMsCisgIDB4NGYsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsCisgIDB4NDIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDJ9fSwKKyB7MHgwYTQ2LCA2NCwgeyAweDBiLCAweDQyLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LAorICAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZkLCAweDkwLAorICAweDdmLCAweDAwLCAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLCAweDQyLCAweDkwLAorICAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDQyLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlfX0sCisgezB4MGE4NiwgNjQsIHsgMHg2MCwgMHgxZCwgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwYiwgMHg0MiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNSwgMHhjMiwKKyAgMHgxMCwgMHgwMiwgMHgwYiwgMHg0MiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHg0MiwgMHg5MCwgMHg3ZiwKKyAgMHhlYSwgMHhlMCwgMHg3MCwgMHgzOCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwKKyAgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4M319LAorIHsweDBhYzYsIDY0LCB7IDB4ZTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4MTMsIDB4MTMsIDB4MTMsIDB4NTQsIDB4MWYsIDB4ZmYsIDB4ZTAsIDB4NTQsCisgIDB4MDcsIDB4MmYsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4ODAsIDB4NWYsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsCisgIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4NTYsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTgsIDB4MjQsIDB4MDIsIDB4NzAsCisgIDB4NGEsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDQsIDB4ZDIsIDB4MTAsIDB4ODAsIDB4M2YsIDB4OTAsIDB4N2YsIDB4YjR9fSwKKyB7MHgwYjA2LCA2NCwgeyAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDM2LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDIwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LAorICAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LAorICAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweDgwLCAweDEwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LAorICAweDAxLCAweGYwLCAweDgwLCAweDA3LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwfX0sCisgezB4MGI0NiwgNjQsIHsgMHg0NCwgMHgwMiwgMHhmMCwgMHgyMiwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHgzMCwgMHhmMCwgMHhlNCwgMHg5MCwKKyAgMHg3ZiwgMHg5NiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NSwgMHg3NCwgMHhjMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHgzZiwgMHhmMCwgMHg5MCwKKyAgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxOCwgMHhmMCwgMHhlNCwgMHhmNSwgMHg4ZSwgMHg5MCwgMHg3ZiwgMHhkZiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwKKyAgMHhkZSwgMHhmMCwgMHhlNCwgMHhmNSwgMHgyNCwgMHg3NSwgMHgxOCwgMHgwMSwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyNCwgMHgyNSwgMHgxOCwgMHhmOX19LAorIHsweDBiODYsIDY0LCB7IDB4ZTQsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4ZTQsIDB4MTIsIDB4MGUsIDB4ZTQsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZWEsIDB4NzUsIDB4M2EsCisgIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MzgsIDB4ZjUsIDB4MTMsIDB4ZjUsIDB4MzYsIDB4YzIsIDB4MDcsIDB4YzIsIDB4MGIsIDB4YzIsIDB4MDUsIDB4YzIsIDB4MDAsCisgIDB4YzIsIDB4MDksIDB4YzIsIDB4MTMsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4NzUsIDB4NDQsIDB4MDMsIDB4OTAsIDB4YzAsIDB4MDAsCisgIDB4NzQsIDB4MDMsIDB4ZjAsIDB4N2YsIDB4MGMsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4ZDAsIDB4N2YsIDB4MTAsIDB4OGYsIDB4NDIsIDB4MTJ9fSwKKyB7MHgwYmM2LCA2NCwgeyAweDEwLCAweGEwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweDdmLCAweDAxLCAweDhmLCAweDQwLCAweGVmLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLAorICAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDc1LCAweDQ2LCAweDgwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDgwLAorICAweGYwLCAweDBmLCAweGU0LCAweGZkLCAweDEyLCAweDExLCAweGQwLCAweGU0LCAweGZmLCAweDdlLCAweGEzLCAweGFkLCAweDA2LCAweDhkLCAweDNlLCAweDEyLAorICAweDExLCAweGQwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU0LCAweGYwLCAweDdmLCAweDA1fX0sCisgezB4MGMwNiwgNjQsIHsgMHg3ZCwgMHg3ZiwgMHgxMiwgMHgxMSwgMHhkMCwgMHg3ZiwgMHgwMSwgMHgxMiwgMHgxMiwgMHg4OSwgMHg3ZiwgMHgwMywgMHg3ZCwgMHgwNywgMHgxMiwgMHgxMSwgMHhkMCwKKyAgMHg3ZiwgMHgxMywgMHg3ZCwgMHgwOSwgMHgxMiwgMHgxMSwgMHhkMCwgMHgyMCwgMHgxYiwgMHgwMywgMHgwMiwgMHgwYywgMHhjOSwgMHg3NSwgMHgyZCwgMHgwMSwKKyAgMHg3NSwgMHgxOCwgMHgwMSwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyZCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlNCwgMHgzNCwgMHgwMCwgMHhmYSwgMHhlNCwgMHgxMiwKKyAgMHgwZSwgMHhlNCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwOSwgMHhlYSwgMHg3NSwgMHgzYiwgMHgwMSwgMHhlNCwgMHhmNSwgMHgzOX19LAorIHsweDBjNDYsIDY0LCB7IDB4ZjUsIDB4MTMsIDB4ZjUsIDB4MzcsIDB4YzIsIDB4MDgsIDB4YzIsIDB4MGMsIDB4YzIsIDB4MDYsIDB4YzIsIDB4MDAsIDB4YzIsIDB4MGEsIDB4YzIsIDB4MTMsIDB4OTAsCisgIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4NzUsIDB4NDUsIDB4MDMsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4N2YsIDB4MGMsCisgIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTIsIDB4MWEsIDB4N2YsIDB4MTAsIDB4OGYsIDB4NDMsIDB4MTIsIDB4MTEsIDB4MTIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsCisgIDB4MGEsIDB4ZjAsIDB4N2YsIDB4MDEsIDB4OGYsIDB4NDEsIDB4ZWYsIDB4NDQsIDB4MDYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2Z9fSwKKyB7MHgwYzg2LCA2NCwgeyAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDc1LCAweDQ3LCAweDgwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDgwLCAweGYwLCAweDBmLCAweGU0LCAweGZkLCAweDEyLAorICAweDEyLCAweDFhLCAweGU0LCAweGZmLCAweDdlLCAweGEzLCAweGFkLCAweDA2LCAweDhkLCAweDNmLCAweDEyLCAweDEyLCAweDFhLCAweDkwLCAweDdmLCAweDk4LAorICAweDc0LCAweDA5LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU0LCAweGYwLCAweDdmLCAweDA1LCAweDdkLCAweDdmLCAweDEyLCAweDEyLCAweDFhLCAweDdmLAorICAweDAxLCAweDEyLCAweDEyLCAweGFhLCAweDdmLCAweDAzLCAweDdkLCAweDA3LCAweDEyLCAweDEyLCAweDFhLCAweDdmLCAweDEzLCAweDdkLCAweDA5fX0sCisgezB4MGNjNiwgNjQsIHsgMHgxMiwgMHgxMiwgMHgxYSwgMHhkMiwgMHgxMiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHhhZiwgMHgwOCwgMHhlNSwgMHgwZCwgMHhmNSwKKyAgMHg4MiwgMHhlNSwgMHgwYywgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMCwgMHgwMCwgMHgwNSwgMHg4NiwgMHhlMCwgMHhhMywKKyAgMHgwNSwgMHg4NiwgMHhmMCwgMHgwNSwgMHg4NiwgMHhkZiwgMHhmNywgMHhkMiwgMHhhZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwKKyAgMHhhZiwgMHgwOCwgMHhlNSwgMHgwZCwgMHhmNSwgMHg4MiwgMHhlNSwgMHgwYywgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MH19LAorIHsweDBkMDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4ZTAsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4MDUsIDB4ODYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsCisgIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4YWYsIDB4MDgsIDB4ZTUsIDB4MGQsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MGMsIDB4ZjUsIDB4ODMsIDB4YzIsCisgIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4MDUsIDB4ODYsIDB4ZTAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4MDUsIDB4ODYsIDB4ZGYsCisgIDB4ZjcsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4YWYsIDB4MDgsIDB4ZTUsIDB4MGQsIDB4ZjV9fSwKKyB7MHgwZDQ2LCA2NCwgeyAweDgyLCAweGU1LCAweDBjLCAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweDA1LCAweDg2LCAweGYwLCAweGEzLAorICAweDA1LCAweDg2LCAweGRmLCAweGY3LCAweDA1LCAweDg2LCAweGQyLCAweGFmLCAweDIyLCAweDc0LCAweDAwLCAweGY1LCAweDg2LCAweDkwLCAweGZkLCAweGE1LAorICAweDdjLCAweDA1LCAweGEzLCAweGU1LCAweDgyLCAweDQ1LCAweDgzLCAweDcwLCAweGY5LCAweDIyLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDQ0LCAweDgwLAorICAweGYwLCAweDQzLCAweDg3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDIyLCAweGQyLCAweDE5LCAweDkwLCAweDdmLCAweDkyfX0sCisgezB4MGQ4NiwgNjQsIHsgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHhlMCwgMHhmZiwgMHhkMywgMHg5MiwgMHgxMCwgMHhlNCwgMHgzMywgMHhmZSwgMHhlZiwgMHg0ZSwKKyAgMHhmMCwgMHhkMiwgMHhlOCwgMHg0MywgMHhkOCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhmMCwKKyAgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYSwgMHhmMCwgMHg1MywgMHg5MSwKKyAgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhZiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHhlMCwgMHg0NCwgMHgwZCwgMHhmMH19LAorIHsweDBkYzYsIDY0LCB7IDB4ZDIsIDB4YWYsIDB4ZDIsIDB4MWEsIDB4MTIsIDB4MTIsIDB4NjQsIDB4YzIsIDB4MTEsIDB4ZTQsIDB4ZjUsIDB4MGIsIDB4ZjUsIDB4MTMsIDB4YzIsIDB4MTcsIDB4YzIsCisgIDB4MTIsIDB4OTAsIDB4N2YsIDB4YTEsIDB4MDQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4NjUsIDB4MTcsIDB4NjAsIDB4MTAsIDB4MzAsIDB4MTIsCisgIDB4MDUsIDB4ZDIsIDB4MWEsIDB4MTIsIDB4MDAsIDB4NDYsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4ZjUsIDB4MTcsIDB4ODAsIDB4MDgsIDB4MzAsIDB4MTIsCisgIDB4MDUsIDB4YzIsIDB4MWEsIDB4MTIsIDB4MDAsIDB4NDYsIDB4MzAsIDB4MTEsIDB4MDcsIDB4YzIsIDB4MTEsIDB4MTIsIDB4MDksIDB4MjUsIDB4ODB9fSwKKyB7MHgwZTA2LCA2NCwgeyAweGQ2LCAweDMwLCAweDE4LCAweGQzLCAweGMyLCAweDE4LCAweDEyLCAweDEzLCAweGFiLCAweDgwLCAweGNjLCAweDIyLCAweDc4LCAweDdmLCAweGU0LCAweGY2LCAweGQ4LAorICAweGZkLCAweDc1LCAweDgxLCAweDQ3LCAweDAyLCAweDBlLCAweDU5LCAweDAyLCAweDBkLCAweDgxLCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLAorICAweGEzLCAweDQwLCAweDAzLCAweGY2LCAweDgwLCAweDAxLCAweGYyLCAweDA4LCAweGRmLCAweGY0LCAweDgwLCAweDI5LCAweGU0LCAweDkzLCAweGEzLCAweGY4LAorICAweDU0LCAweDA3LCAweDI0LCAweDBjLCAweGM4LCAweGMzLCAweDMzLCAweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDIwLCAweGM4LCAweDgzLCAweDQwfX0sCisgezB4MGU0NiwgNjQsIHsgMHgwNCwgMHhmNCwgMHg1NiwgMHg4MCwgMHgwMSwgMHg0NiwgMHhmNiwgMHhkZiwgMHhlNCwgMHg4MCwgMHgwYiwgMHgwMSwgMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwKKyAgMHg0MCwgMHg4MCwgMHg5MCwgMHgxMiwgMHhjYiwgMHhlNCwgMHg3ZSwgMHgwMSwgMHg5MywgMHg2MCwgMHhiYywgMHhhMywgMHhmZiwgMHg1NCwgMHgzZiwgMHgzMCwKKyAgMHhlNSwgMHgwOSwgMHg1NCwgMHgxZiwgMHhmZSwgMHhlNCwgMHg5MywgMHhhMywgMHg2MCwgMHgwMSwgMHgwZSwgMHhjZiwgMHg1NCwgMHhjMCwgMHgyNSwgMHhlMCwKKyAgMHg2MCwgMHhhOCwgMHg0MCwgMHhiOCwgMHhlNCwgMHg5MywgMHhhMywgMHhmYSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhM319LAorIHsweDBlODYsIDY0LCB7IDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZjAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsCisgIDB4Y2EsIDB4ZGYsIDB4ZTksIDB4ZGUsIDB4ZTcsIDB4ODAsIDB4YmUsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4MjIsCisgIDB4NTAsIDB4MDIsIDB4ZTcsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDIsIDB4ZTMsIDB4MjIsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsCisgIDB4YmIsIDB4MDEsIDB4MGMsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjJ9fSwKKyB7MHgwZWM2LCA2NCwgeyAweDUwLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGU2LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyLAorICAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLCAweDA2LAorICAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGYwLCAweDIyLCAweDUwLCAweDAyLCAweGY3LCAweDIyLCAweGJiLCAweGZlLCAweDAxLCAweGYzLCAweDIyLCAweGQwLAorICAweDgzLCAweGQwLCAweDgyLCAweGY4LCAweGU0LCAweDkzLCAweDcwLCAweDEyLCAweDc0LCAweDAxLCAweDkzLCAweDcwLCAweDBkLCAweGEzLCAweGEzfX0sCisgezB4MGYwNiwgNjQsIHsgMHg5MywgMHhmOCwgMHg3NCwgMHgwMSwgMHg5MywgMHhmNSwgMHg4MiwgMHg4OCwgMHg4MywgMHhlNCwgMHg3MywgMHg3NCwgMHgwMiwgMHg5MywgMHg2OCwgMHg2MCwgMHhlZiwKKyAgMHhhMywgMHhhMywgMHhhMywgMHg4MCwgMHhkZiwgMHg4ZiwgMHgxOCwgMHhlNCwgMHhmNSwgMHgxOSwgMHg3NSwgMHgxYSwgMHhmZiwgMHg3NSwgMHgxYiwgMHgxOSwKKyAgMHg3NSwgMHgxYywgMHg4NiwgMHhhYiwgMHgxYSwgMHhhYSwgMHgxYiwgMHhhOSwgMHgxYywgMHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHgwZSwgMHhiNywgMHhiNCwKKyAgMHgwMywgMHgxZCwgMHhhZiwgMHgxOSwgMHgwNSwgMHgxOSwgMHhlZiwgMHhiNSwgMHgxOCwgMHgwMSwgMHgyMiwgMHgxMiwgMHgwZSwgMHg5ZSwgMHg3ZX19LAorIHsweDBmNDYsIDY0LCB7IDB4MDAsIDB4MjksIDB4ZmYsIDB4ZWUsIDB4M2EsIDB4YTksIDB4MDcsIDB4NzUsIDB4MWEsIDB4ZmYsIDB4ZjUsIDB4MWIsIDB4ODksIDB4MWMsIDB4ODAsIDB4ZDQsIDB4N2IsCisgIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4MDAsIDB4MjIsIDB4OGYsIDB4MWEsIDB4MDUsIDB4MGQsIDB4ZTUsIDB4MGQsIDB4YWUsIDB4MGMsIDB4NzAsIDB4MDIsCisgIDB4MDUsIDB4MGMsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTUsIDB4MWEsIDB4ZjAsIDB4MTIsIDB4MDAsIDB4MzYsIDB4MDUsIDB4MGQsIDB4ZTUsCisgIDB4MGQsIDB4YWMsIDB4MGMsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MGMsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MTV9fSwKKyB7MHgwZjg2LCA2NCwgeyAweDA4LCAweGU1LCAweDA4LCAweDYwLCAweDBhLCAweDEyLCAweDEzLCAweDNmLCAweDhmLCAweDFhLCAweGVmLCAweDQyLCAweDM2LCAweDgwLCAweGNhLCAweDIyLCAweDhmLAorICAweDFhLCAweDA1LCAweDBkLCAweGU1LCAweDBkLCAweGFlLCAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLCAweDE0LCAweGY1LCAweDgyLCAweDhlLCAweDgzLAorICAweGU1LCAweDFhLCAweGYwLCAweDEyLCAweDEzLCAweDU3LCAweDA1LCAweDBkLCAweGU1LCAweDBkLCAweGFjLCAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLAorICAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDE1LCAweDA4LCAweGU1LCAweDA4LCAweDYwLCAweDBhLCAweDEyLCAweDEzfX0sCisgezB4MGZjNiwgNjQsIHsgMHg5MywgMHg4ZiwgMHgxYSwgMHhlZiwgMHg0MiwgMHgzNywgMHg4MCwgMHhjYSwgMHgyMiwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywKKyAgMHg3NCwgMHgzMCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwKKyAgMHgyNywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHgwNywgMHhmMCwgMHhlNCwgMHg5MCwKKyAgMHg3ZiwgMHg5NCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHg3NCwgMHhmZiwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NywgMHhmMCwgMHgyMn19LAorIHsweDEwMDYsIDY0LCB7IDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsIDB4MTEsCisgIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsCisgIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsCisgIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsIDB4MTgsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDh9fSwKKyB7MHgxMDQ2LCA2NCwgeyAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdmLCAweDk4LAorICAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweDkwLAorICAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLAorICAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwfX0sCisgezB4MTA4NiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwKKyAgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwKKyAgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwKKyAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMn19LAorIHsweDEwYzYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsCisgIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsCisgIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsCisgIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTYsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTh9fSwKKyB7MHgxMTA2LCA2NCwgeyAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLAorICAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweDkwLCAweGMwLCAweDAwLAorICAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLAorICAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmfX0sCisgezB4MTE0NiwgNjQsIHsgMHg5OCwgMHg3NCwgMHgwOCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwKKyAgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwKKyAgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwKKyAgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3Zn19LAorIHsweDExODYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsCisgIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsCisgIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsCisgIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGJ9fSwKKyB7MHgxMWM2LCA2NCwgeyAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LAorICAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE3LCAweGYwLCAweDkwLCAweGMwLCAweDAwLAorICAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVkLCAweGYwLCAweDIyLCAweDEyLCAweDEzLAorICAweDI3LCAweDhmLCAweDFhLCAweDEyLCAweDEzLCAweDI3LCAweDhmLCAweDFiLCAweGU1LCAweDFhLCAweDY1LCAweDFiLCAweDYwLCAweDEyLCAweDEyfX0sCisgezB4MTIwNiwgNjQsIHsgMHgxMywgMHgyNywgMHg4ZiwgMHgxYSwgMHhlNSwgMHgxYSwgMHg2NSwgMHgxYiwgMHg2MCwgMHgwNywgMHgxMiwgMHgxMywgMHgyNywgMHg4ZiwgMHgxYiwgMHg4MCwgMHhlOCwKKyAgMHhhZiwgMHgxYSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwKKyAgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKKyAgMHgwZCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZCwgMHhmMCwgMHgyMiwgMHgxMiwgMHgxMywgMHg3YiwgMHg4ZiwgMHgxYSwgMHgxMiwgMHgxM319LAorIHsweDEyNDYsIDY0LCB7IDB4N2IsIDB4OGYsIDB4MWIsIDB4ZTUsIDB4MWEsIDB4NjUsIDB4MWIsIDB4NjAsIDB4MTIsIDB4MTIsIDB4MTMsIDB4N2IsIDB4OGYsIDB4MWEsIDB4ZTUsIDB4MWEsIDB4NjUsCisgIDB4MWIsIDB4NjAsIDB4MDcsIDB4MTIsIDB4MTMsIDB4N2IsIDB4OGYsIDB4MWIsIDB4ODAsIDB4ZTgsIDB4YWYsIDB4MWEsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDYsCisgIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MWEsIDB4MDQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4N2YsCisgIDB4ZjQsIDB4N2UsIDB4MDEsIDB4MTIsIDB4MTIsIDB4ZTcsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4ZTAsIDB4NDR9fSwKKyB7MHgxMjg2LCA2NCwgeyAweDA0LCAweGYwLCAweDIyLCAweGFlLCAweDA3LCAweGU0LCAweGZmLCAweGU1LCAweDNlLCAweDU0LCAweDdmLCAweGZkLCAweDEyLCAweDExLCAweGQwLCAweDkwLCAweDdmLAorICAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDNlLCAweDQ0LCAweDgwLCAweGZkLCAweDEyLAorICAweDExLCAweGQwLCAweDIyLCAweGFlLCAweDA3LCAweGU0LCAweGZmLCAweGU1LCAweDNmLCAweDU0LCAweDdmLCAweGZkLCAweDEyLCAweDEyLCAweDFhLCAweDkwLAorICAweDdmLCAweDk4LCAweDc0LCAweDA5LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDNmLCAweDQ0LCAweDgwfX0sCisgezB4MTJjNiwgNjQsIHsgMHhmZCwgMHgxMiwgMHgxMiwgMHgxYSwgMHgyMiwgMHgwNSwgMHgwZSwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMywgMHgxNCwgMHgwMywgMHgwMCwgMHgwMCwKKyAgMHhjMSwgMHgxMSwgMHhjMSwgMHgxOCwgMHhjMSwgMHg5NSwgMHhjMSwgMHgxMCwgMHhjMSwgMHgxNiwgMHgwMSwgMHgwYSwgMHgwMCwgMHhjMSwgMHg5YiwgMHgwMCwKKyAgMHg4ZSwgMHgxOCwgMHg4ZiwgMHgxOSwgMHhlNSwgMHgxOSwgMHgxNSwgMHgxOSwgMHhhZSwgMHgxOCwgMHg3MCwgMHgwMiwgMHgxNSwgMHgxOCwgMHg0ZSwgMHg2MCwKKyAgMHgwNSwgMHgxMiwgMHgwZCwgMHg2MCwgMHg4MCwgMHhlZSwgMHgyMiwgMHgwMCwgMHgwMCwgMHgwMiwgMHgxMCwgMHgwNiwgMHgwMCwgMHgwMiwgMHgxM319LAorIHsweDEzMDYsIDY0LCB7IDB4MDQsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MDIsIDB4MTAsIDB4MmQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsCisgIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsCisgIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsCisgIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTUsIDB4ZjAsIDB4OTB9fSwKKyB7MHgxMzQ2LCA2NCwgeyAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE2LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLAorICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAorICAweDA5LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweDkwLCAweGMwLAorICAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmfX0sCisgezB4MTM4NiwgNjQsIHsgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKKyAgMHgwZCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZSwgMHhmMCwgMHg5MCwgMHhjMCwKKyAgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHgxMiwgMHgwZiwgMHhjZiwgMHgxMiwgMHgwZCwgMHg3MSwgMHgxMiwgMHgwYiwgMHg0YSwgMHgyMiwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDEzYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNDA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTQ0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE0ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNGM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTUwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE1NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNTg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTVjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE2MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNjQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTY4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE2YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxNzA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTc0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE3ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxN2M2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MTgwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE4NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxODg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MThjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMiwgMHgwMSwgMHgxMCwgMHgwMSwgMHhmZiwgMHgwMH19LAorIHsweDE5MDYsIDY0LCB7IDB4MDAsIDB4NDAsIDB4Y2QsIDB4MDYsIDB4MTAsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4MDIsIDB4MDksIDB4MDIsIDB4NzQsIDB4MDAsIDB4MDEsCisgIDB4MDEsIDB4MDAsIDB4YTAsIDB4MzIsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MGUsIDB4ZmYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDEsCisgIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDMsIDB4MDIsIDB4NDAsCisgIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDUsIDB4MDIsIDB4NDAsIDB4MDB9fSwKKyB7MHgxOTQ2LCA2NCwgeyAweDAwLCAweDA3LCAweDA1LCAweDA2LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA3LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LAorICAweDgxLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDgzLCAweDAyLAorICAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg0LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg1LCAweDAyLCAweDQwLCAweDAwLAorICAweDAxLCAweDA3LCAweDA1LCAweDg2LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg3LCAweDAyLCAweDQwLCAweDAwLCAweDAxfX0sCisgezB4MTk4NiwgNjQsIHsgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHg0OCwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwKKyAgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyYywgMHgwMCwgMHgyMCwgMHgwMCwgMHg2MSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg3NiwKKyAgMHgwMCwgMHg2OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2NiwKKyAgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg1MywgMHgwMCwgMHg3OSwgMHgwMH19LAorIHsweDE5YzYsIDY0LCB7IDB4NzMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjMsIDB4MDAsIDB4MmUsIDB4MDAsIDB4MzYsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsCisgIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTUsIDB4MDAsIDB4NTMsCisgIDB4MDAsIDB4NDIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmMsCisgIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDEsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjUsIDB4MDB9fSwKKyB7MHgxYTA2LCAgNCwgeyAweDcyLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4ZmZmZiwgIDAsIHsweDAwfX0KK307CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2E0OW1zZy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhNDltc2cuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjNiMmRlCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhNDltc2cuaApAQCAtMCwwICsxLDI4MiBAQAorLyoKKwl1c2E0OW1zZy5oCisKKwlDb3B5cmlnaHQgKEMpIDE5OTgtMjAwMCBJbm5vU3lzIEluY29ycG9yYXRlZC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQKKwlUaGlzIGZpbGUgaXMgYXZhaWxhYmxlIHVuZGVyIGEgQlNELXN0eWxlIGNvcHlyaWdodAorCisJS2V5c3BhbiBVU0IgQXN5bmMgTWVzc2FnZSBGb3JtYXRzIGZvciB0aGUgVVNBNDlXCisKKwlSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKwltb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisJbWV0OgorCisJMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoaXMgbGljZW5jZSB0ZXh0CisgICAJd2l0aG91dCBtb2RpZmljYXRpb24sIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zLCBhbmQgdGhlIGZvbGxvd2luZworICAgCWRpc2NsYWltZXIuICBUaGUgZm9sbG93aW5nIGNvcHlyaWdodCBub3RpY2UgbXVzdCBhcHBlYXIgaW1tZWRpYXRlbHkgYXQKKyAgIAl0aGUgYmVnaW5uaW5nIG9mIGFsbCBzb3VyY2UgZmlsZXM6CisKKyAgICAgICAgCUNvcHlyaWdodCAoQykgMTk5OC0yMDAwIElubm9TeXMgSW5jb3Jwb3JhdGVkLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZAorCisgICAgICAgIAlUaGlzIGZpbGUgaXMgYXZhaWxhYmxlIHVuZGVyIGEgQlNELXN0eWxlIGNvcHlyaWdodAorCisJMi4gVGhlIG5hbWUgb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZQorICAgCXByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbgorICAgCXBlcm1pc3Npb24uCisKKwlUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIElOTk9TWVMgQ09SUC4gYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorCUlNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKwlPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTgorCU5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwKKwlJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKwkoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKwlTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorCUNBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorCUxJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKwlPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisJU1VDSCBEQU1BR0UuICAgIAorCisJNHRoIHJldmlzaW9uOiBVU0E0OVcgdmVyc2lvbgorCisJQnVmZmVyIGZvcm1hdHMgZm9yIFJYL1RYIGRhdGEgbWVzc2FnZXMgYXJlIG5vdCBkZWZpbmVkIGJ5CisJYSBzdHJ1Y3R1cmUsIGJ1dCBhcmUgZGVzY3JpYmVkIGhlcmU6CisKKwlVU0IgT1VUIChob3N0IC0+IFVTQXh4LCB0cmFuc21pdCkgbWVzc2FnZXMgY29udGFpbiBhIAorCVJFUVVFU1RfQUNLIGluZGljYXRvciAoc2V0IHRvIDB4ZmYgdG8gcmVxdWVzdCBhbiBBQ0sgYXQgdGhlIAorCWNvbXBsZXRpb24gb2YgdHJhbnNtaXQ7IDB4MDAgb3RoZXJ3aXNlKSwgZm9sbG93ZWQgYnkgZGF0YToKKworCQlSUVNUQUNLIERBVCBEQVQgREFUIC4uLgorCisJd2l0aCBhIHRvdGFsIGRhdGEgbGVuZ3RoIG9mIDYzLgorCisJVVNCIElOIChVU0F4eCAtPiBob3N0LCByZWNlaXZlKSBtZXNzYWdlcyBiZWdpbiB3aXRoIGEgc3RhdHVzCisJYnl0ZSBpbiB3aGljaCB0aGUgMHg4MCBiaXQgaXMgZWl0aGVyOgorCQkJCSAgIAkKKwkJKGEpCTB4ODAgYml0IGNsZWFyCisJCQlpbmRpY2F0ZXMgdGhhdCB0aGUgYnl0ZXMgZm9sbG93aW5nIGl0IGFyZSBhbGwgZGF0YQorCQkJYnl0ZXM6CisKKwkJCQlTVEFUIERBVEEgREFUQSBEQVRBIERBVEEgREFUQSAuLi4KKworCQkJZm9yIGEgdG90YWwgb2YgdXAgdG8gNjMgREFUQSBieXRlcywKKworCW9yOgorCisJCShiKQkweDgwIGJpdCBzZXQKKwkJCWluZGlhdGVzIHRoYXQgdGhlIGJ5dGVzIGZvbGxvd2luZyBhbHRlcm5hdGUgZGF0YSBhbmQKKwkJCXN0YXR1cyBieXRlczoKKworCQkJCVNUQVQgREFUQSBTVEFUIERBVEEgU1RBVCBEQVRBIFNUQVQgREFUQSAuLi4KKworCQkJZm9yIGEgdG90YWwgb2YgdXAgdG8gMzIgREFUQSBieXRlcy4KKworCVRoZSB2YWxpZCBiaXRzIGluIHRoZSBTVEFUIGJ5dGVzIGFyZToKKworCQlPVkVSUlVOCTB4MDIKKwkJUEFSSVRZCTB4MDQKKwkJRlJBTUlORwkweDA4CisJCUJSRUFLCTB4MTAKKworCU5vdGVzOgorCQorCSgxKSBUaGUgT1ZFUlJVTiBiaXQgY2FuIGFwcGVhciBpbiBlaXRoZXIgKGEpIG9yIChiKSBmb3JtYXQKKwkJbWVzc2FnZXMsIGJ1dCB0aGUgYnV0IHRoZSBQQVJJVFkvRlJBTUlORy9CUkVBSyBiaXRzCisJCW9ubHkgYXBwZWFyIGluIChiKSBmb3JtYXQgbWVzc2FnZXMuCisJKDIpIEZvciB0aGUgaG9zdCB0byBkZXRlcm1pbmUgdGhlIGV4YWN0IHBvaW50IGF0IHdoaWNoIHRoZQorCQlvdmVycnVuIG9jY3VycmVkICh0byBpZGVudGlmeSB0aGUgcG9pbnQgaW4gdGhlIGRhdGEKKwkJc3RyZWFtIGF0IHdoaWNoIHRoZSBkYXRhIHdhcyBsb3N0KSwgaXQgbmVlZHMgdG8gY291bnQKKwkJMTI4IGNoYXJhY3RlcnMsIHN0YXJ0aW5nIGF0IHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlCisJCW1lc3NhZ2UgaW4gd2hpY2ggT1ZFUlJVTiB3YXMgcmVwb3J0ZWQ7IHRoZSBsb3N0IGNoYXJhY3RlcihzKQorCQl3b3VsZCBoYXZlIGJlZW4gcmVjZWl2ZWQgYmV0d2VlbiB0aGUgMTI4dGggYW5kIDEyOXRoCisJCWNoYXJhY3RlcnMuCisJKDMpCUFuIFJYIGRhdGEgbWVzc2FnZSBpbiB3aGljaCB0aGUgZmlyc3QgYnl0ZSBoYXMgMHg4MCBjbGVhcgorCQlzZXJ2ZXMgYXMgYSAiYnJlYWsgb2ZmIiBpbmRpY2F0b3IuCisJKDQpCWEgY29udHJvbCBtZXNzYWdlIHNwZWNpZnlpbmcgZGlzYWJsZVBvcnQgd2lsbCBiZSBhbnN3ZXJlZAorCQl3aXRoIGEgc3RhdHVzIG1lc3NhZ2UsIGJ1dCBubyBmdXJ0aGVyIHN0YXR1cyB3aWxsIGJlIHNlbnQKKwkJdW50aWwgYSBjb250cm9sIG1lc3NhZ2VzIHdpdGggZW5hYmxlUG9ydCBpcyBzZW50CisKKwlyZXZpc2lvbiBoaXN0b3J5OgorCisJMTk5OWZlYjEwCWFkZCByZXBvcnRIc2tpYUNoYW5nZXMgdG8gYWxsb3cgdXMgdG8gaWdub3JlIHRoZW0KKwkxOTk5ZmViMTAJYWRkIHR4QWNrVGhyZXNob2xkIGZvciBmYXN0K2xvb3NlIHRocm91Z2hwdXQgZW5oYW5jZW1lbnQKKwkxOTk5bWFyMzAJYmVlZiB1cCBzdXBwb3J0IGZvciBSWCBlcnJvciByZXBvcnRpbmcKKwkxOTk5YXByMTQJYWRkIHJlc2V0RGF0YVRvZ2dsZSB0byBjb250cm9sIG1lc3NhZ2UKKwkyMDAwamFuMDQJbWVyZ2Ugd2l0aCB1c2ExN21zZy5oCisJMjAwMG1hcjA4CWNsb25lIGZyb20gdXNhMjZtc2cuaCAtPiB1c2E0OW1zZy5oCisJMjAwMG1hcjA5CWNoYW5nZSB0byBzdXBwb3J0IDQgcG9ydHMKKwkyMDAwbWF5MDMJY2hhbmdlIGV4dGVybmFsIGNsb2NraW5nIHRvIG1hdGNoIFVTQS00OVcgaGFyZHdhcmUKKwkyMDAwanVuMDEJYWRkIGV4dGVuZGVkIEJTRC1zdHlsZSBjb3B5cmlnaHQgdGV4dAorCTIwMDFqdWwwNQljaGFuZ2UgbWVzc2FnZSBmb3JtYXQgdG8gaW1wcm92ZSBPVkVSUlVOIGNhc2UKKyovCisKKyNpZm5kZWYJX19VU0E0OU1TR19fCisjZGVmaW5lCV9fVVNBNDlNU0dfXworCisKKy8qCisJSG9zdC0+ZGV2aWNlIG1lc3NhZ2VzIHNlbnQgb24gdGhlIGdsb2JhbCBjb250cm9sIGVuZHBvaW50OgorCisJcG9ydE51bWJlcgltZXNzYWdlCisJLS0tLS0tLS0tLQktLS0tLS0tLS0tLS0tLS0tLS0tLQorCTAsMSwyLDMJCXBvcnRDb250cm9sTWVzc2FnZQorCTB4ODAJCWdsb2JhbENvbnRyb2xNZXNzYWdlCisqLworCitzdHJ1Y3Qga2V5c3Bhbl91c2E0OV9wb3J0Q29udHJvbE1lc3NhZ2UKK3sKKwkvKgorCQkwLgkwLzEvMi8zIAlwb3J0IGNvbnRyb2wgbWVzc2FnZSBmb2xsb3dzCisJCQkweDgwIHNldAlub24tcG9ydCBjb250cm9sIG1lc3NhZ2UgZm9sbG93cworCSovCisJdTgJcG9ydE51bWJlciwKKworCS8qCisJCXRoZXJlIGFyZSB0aHJlZSB0eXBlcyBvZiAiY29tbWFuZHMiIHNlbnQgaW4gdGhlIGNvbnRyb2wgbWVzc2FnZToKKworCQkxLgljb25maWd1cmF0aW9uIGNoYW5nZXMgd2hpY2ggbXVzdCBiZSByZXF1ZXN0ZWQgYnkgc2V0dGluZworCQkJdGhlIGNvcnJlc3BvbmRpbmcgInNldCIgZmxhZyAoYW5kIHNob3VsZCBvbmx5IGJlIHJlcXVlc3RlZAorCQkJd2hlbiBuZWNlc3NhcnksIHRvIHJlZHVjZSBvdmVyaGVhZCBvbiB0aGUgVVNBMjYpOgorCSovCisJCXNldENsb2NraW5nLAkvLyBob3N0IHJlcXVlc3RzIGJhdWQgcmF0ZSBiZSBzZXQKKwkJYmF1ZExvLAkJCS8vIGhvc3QgZG9lcyBiYXVkIGRpdmlzb3IgY2FsY3VsYXRpb24KKwkJYmF1ZEhpLAkJCS8vIGJhdWRIaSBpcyBvbmx5IHVzZWQgZm9yIGZpcnN0IHBvcnQgKGdpdmVzIGxvd2VyIHJhdGVzKQorCQlwcmVzY2FsZXIsCQkvLyBzcGVjaWZpZWQgYXMgTi84OyB2YWx1ZXMgOC1mZiBhcmUgdmFsaWQKKwkJCQkJCS8vIG11c3QgYmUgc2V0IGFueSB0aW1lIGludGVybmFsIGJhdWQgcmF0ZSBpcyBzZXQ7CisJCXR4Q2xvY2tpbmcsCQkvLyAwPWludGVybmFsLCAxPWV4dGVybmFsL0RTUgorCQlyeENsb2NraW5nLAkJLy8gMD1pbnRlcm5hbCwgMT1leHRlcm5hbC9EU1IKKworCQlzZXRMY3IsCQkJLy8gaG9zdCByZXF1ZXN0cyBsY3IgYmUgc2V0CisJCWxjciwJCQkvLyB1c2UgUEFSSVRZLCBTVE9QQklUUywgREFUQUJJVFMgYmVsb3cKKworCQlzZXRGbG93Q29udHJvbCwJLy8gaG9zdCByZXF1ZXN0cyBmbG93IGNvbnRyb2wgYmUgc2V0CisJCWN0c0Zsb3dDb250cm9sLAkvLyAxPXVzZSBDVFMgZmxvdyBjb250cm9sLCAwPWRvbid0CisJCXhvbkZsb3dDb250cm9sLAkvLyAxPXVzZSBYT04vWE9GRiBmbG93IGNvbnRyb2wsIDA9ZG9uJ3QKKwkJeG9uQ2hhciwJCS8vIHNwZWNpZmllZCBpbiBjdXJyZW50IGNoYXJhY3RlciBmb3JtYXQKKwkJeG9mZkNoYXIsCQkvLyBzcGVjaWZpZWQgaW4gY3VycmVudCBjaGFyYWN0ZXIgZm9ybWF0CisKKwkJc2V0UnRzLAkJCS8vIGhvc3QgcmVxdWVzdHMgUlRTIG91dHB1dCBiZSBzZXQKKwkJcnRzLAkJCS8vIDE9YWN0aXZlLCAwPWluYWN0aXZlCisKKwkJc2V0RHRyLAkJCS8vIGhvc3QgcmVxdWVzdHMgRFRSIG91dHB1dCBiZSBzZXQKKwkJZHRyOwkJCS8vIDE9b24sIDA9b2ZmCisKKworCS8qCisJCTMuCWNvbmZpZ3VyYXRpb24gZGF0YSB3aGljaCBpcyBzaW1wbHkgdXNlZCBhcyBpcyAobm8gb3ZlcmhlYWQsCisJCQlidXQgbXVzdCBiZSBzcGVjaWZpZWQgY29ycmVjdGx5IGluIGV2ZXJ5IGhvc3QgbWVzc2FnZSkuCisJKi8KKwl1OAlmb3J3YXJkaW5nTGVuZ3RoLCAgLy8gZm9yd2FyZCB3aGVuIHRoaXMgbnVtYmVyIG9mIGNoYXJzIGF2YWlsYWJsZQorCQlkc3JGbG93Q29udHJvbCwJLy8gMT11c2UgRFNSIGZsb3cgY29udHJvbCwgMD1kb24ndAorCQl0eEFja1RocmVzaG9sZCwJLy8gMD1ub3QgYWxsb3dlZCwgMT1ub3JtYWwsIDItMjU1IGRlbGl2ZXIgQUNLIGZhc3RlcgorCQlsb29wYmFja01vZGU7CS8vIDA9bm8gbG9vcGJhY2ssIDE9bG9vcGJhY2sgZW5hYmxlZAorCisJLyoKKwkJNC4JY29tbWFuZHMgd2hpY2ggYXJlIGZsYWdzIG9ubHk7IHRoZXNlIGFyZSBwcm9jZXNzZWQgaW4gb3JkZXIKKwkJCShzbyB0aGF0LCBlLmcuLCBpZiBib3RoIF90eE9uIGFuZCBfdHhPZmYgZmxhZ3MgYXJlIHNldCwgdGhlCisJCQlwb3J0IGVuZHMgaW4gYSBUWF9PRkYgc3RhdGUpOyBhbnkgbm9uLXplcm8gdmFsdWUgaXMgcmVzcGVjdGVkCisJKi8KKwl1OAlfdHhPbiwJCQkvLyBlbmFibGUgdHJhbnNtaXR0aW5nIChhbmQgY29udGludWUgaWYgdGhlcmUncyBkYXRhKQorCQlfdHhPZmYsCQkJLy8gc3RvcCB0cmFuc21pdHRpbmcKKwkJdHhGbHVzaCwJCS8vIHRvc3Mgb3V0Ym91bmQgZGF0YQorCQl0eEJyZWFrLAkJLy8gdHVybiBvbiBicmVhayAoY2xlYXJlZCBieSBfdHhPbikKKwkJcnhPbiwJCQkvLyB0dXJuIG9uIHJlY2VpdmVyCisJCXJ4T2ZmLAkJCS8vIHR1cm4gb2ZmIHJlY2VpdmVyCisJCXJ4Rmx1c2gsCQkvLyB0b3NzIGluYm91bmQgZGF0YQorCQlyeEZvcndhcmQsCQkvLyBmb3J3YXJkIGFsbCBpbmJvdW5kIGRhdGEsIE5PVyAoYXMgaWYgZndkTGVuPT0xKQorCQlyZXR1cm5TdGF0dXMsCS8vIHJldHVybiBjdXJyZW50IHN0YXR1cyAoZXZlbiBpZiBpdCBoYXNuJ3QgY2hhbmdlZCkKKwkJcmVzZXREYXRhVG9nZ2xlLC8vIHJlc2V0IGRhdGEgdG9nZ2xlIHN0YXRlIHRvIERBVEEwCisJCWVuYWJsZVBvcnQsCQkvLyBzdGFydCBzZXJ2aWNpbmcgcG9ydCAobW92ZSBkYXRhLCBjaGVjayBzdGF0dXMpCisJCWRpc2FibGVQb3J0OwkvLyBzdG9wIHNlcnZpY2luZyBwb3J0IChkb2VzIGltcGxpY2l0IHR4L3J4IGZsdXNoL29mZikKKwkKK307CisKKy8vIGRlZmluZXMgZm9yIGJpdHMgaW4gbGNyCisjZGVmaW5lCVVTQV9EQVRBQklUU181CQkweDAwCisjZGVmaW5lCVVTQV9EQVRBQklUU182CQkweDAxCisjZGVmaW5lCVVTQV9EQVRBQklUU183CQkweDAyCisjZGVmaW5lCVVTQV9EQVRBQklUU184CQkweDAzCisjZGVmaW5lCVNUT1BCSVRTXzU2NzhfMQkJMHgwMAkvLyAxIHN0b3AgYml0IGZvciBhbGwgYnl0ZSBzaXplcworI2RlZmluZQlTVE9QQklUU181XzFwNQkJMHgwNAkvLyAxLjUgc3RvcCBiaXRzIGZvciA1LWJpdCBieXRlCisjZGVmaW5lCVNUT1BCSVRTXzY3OF8yCQkweDA0CS8vIDIgc3RvcCBiaXRzIGZvciA2LzcvOC1iaXQgYnl0ZQorI2RlZmluZQlVU0FfUEFSSVRZX05PTkUJCTB4MDAKKyNkZWZpbmUJVVNBX1BBUklUWV9PREQJCTB4MDgKKyNkZWZpbmUJVVNBX1BBUklUWV9FVkVOCQkweDE4CisjZGVmaW5lCVBBUklUWV8xCQkJMHgyOAorI2RlZmluZQlQQVJJVFlfMAkJCTB4MzgKKworLyoKKwlkdXJpbmcgbm9ybWFsIG9wZXJhdGlvbiwgc3RhdHVzIG1lc3NhZ2VzIGFyZSByZXR1cm5lZCAKKwl0byB0aGUgaG9zdCB3aGVuZXZlciB0aGUgYm9hcmQgZGV0ZWN0cyBjaGFuZ2VzLiAgSW4gc29tZQorCWNpcmN1bXN0YW5jZXMgKGUuZy4gV2luZG93cyksIHN0YXR1cyBtZXNzYWdlcyBmcm9tIHRoZQorCWRldmljZSBjYXVzZSBwcm9ibGVtczsgdG8gc2h1dCB0aGVtIG9mZiwgdGhlIGhvc3QgaXNzdWVzCisJYSBjb250cm9sIG1lc3NhZ2Ugd2l0aCB0aGUgZGlzYWJsZVN0YXR1c01lc3NhZ2VzIGZsYWdzCisJc2V0ICh0byBhbnkgbm9uLXplcm8gdmFsdWUpLiAgVGhlIGRldmljZSB3aWxsIHJlc3BvbmQgdG8KKwl0aGlzIG1lc3NhZ2UsIGFuZCB0aGVuIHN1cHByZXNzIGZ1cnRoZXIgc3RhdHVzIG1lc3NhZ2VzOworCWl0IHdpbGwgcmVzdW1lIHNlbmRpbmcgc3RhdHVzIG1lc3NhZ2VzIGFueSB0aW1lIHRoZSBob3N0CisJc2VuZHMgYW55IGNvbnRyb2wgbWVzc2FnZSAoZWl0aGVyIGdsb2JhbCBvciBwb3J0LXNwZWNpZmljKS4KKyovCisKK3N0cnVjdCBrZXlzcGFuX3VzYTQ5X2dsb2JhbENvbnRyb2xNZXNzYWdlCit7CisJdTgJcG9ydE51bWJlciwJCQkvLyAweDgwCisJCXNlbmRHbG9iYWxTdGF0dXMsCS8vIDEvMj1udW1iZXIgb2Ygc3RhdHVzIHJlc3BvbnNlcyByZXF1ZXN0ZWQKKwkJcmVzZXRTdGF0dXNUb2dnbGUsCS8vIDE9cmVzZXQgZ2xvYmFsIHN0YXR1cyB0b2dnbGUKKwkJcmVzZXRTdGF0dXNDb3VudCwJLy8gYSBjeWNsaW5nIHZhbHVlCisJCXJlbW90ZVdha2V1cEVuYWJsZSwJCS8vIDB4MTA9UDEsIDB4MjA9UDIsIDB4NDA9UDMsIDB4ODA9UDQKKwkJZGlzYWJsZVN0YXR1c01lc3NhZ2VzOwkvLyAxPXNlbmQgbm8gc3RhdHVzIHVudGlsIGhvc3QgdGFsa3MKK307CisKKy8qCisJRGV2aWNlLT5ob3N0IG1lc3NhZ2VzIHNlbmQgb24gdGhlIGdsb2JhbCBzdGF0dXMgZW5kcG9pbnQKKworCXBvcnROdW1iZXIJCQltZXNzYWdlCisJLS0tLS0tLS0tLQkJCS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJMHgwMCwweDAxLDB4MDIsMHgwMwlwb3J0U3RhdHVzTWVzc2FnZQorCTB4ODAJCQkJZ2xvYmFsU3RhdHVzTWVzc2FnZQorCTB4ODEJCQkJZ2xvYmFsRGVidWdNZXNzYWdlCisqLworCitzdHJ1Y3Qga2V5c3Bhbl91c2E0OV9wb3J0U3RhdHVzTWVzc2FnZQkvLyBvbmUgZm9yIGVhY2ggcG9ydAoreworCXU4CXBvcnROdW1iZXIsCQkvLyAwLDEsMiwzCisJCWN0cywJCQkvLyByZXBvcnRzIENUUyBwaW4KKwkJZGNkLAkJCS8vIHJlcG9ydHMgRENEIHBpbgorCQlkc3IsCQkJLy8gcmVwb3J0cyBEU1IgcGluCisJCXJpLAkJCQkvLyByZXBvcnRzIFJJIHBpbgorCQlfdHhPZmYsCQkJLy8gdHJhbnNtaXQgaGFzIGJlZW4gZGlzYWJsZWQgKGJ5IGhvc3QpCisJCV90eFhvZmYsCQkvLyB0cmFuc21pdCBpcyBpbiBYT0ZGIHN0YXRlIChlaXRoZXIgaG9zdCBvciBSWCBYT0ZGKQorCQlyeEVuYWJsZWQsCQkvLyBhcyBjb25maWd1cmVkIGJ5IHJ4T24vcnhPZmYgMT1vbiwgMD1vZmYKKwkJY29udHJvbFJlc3BvbnNlLC8vIDE9YSBjb250cm9sIG1lc3NhZ2UgaGFzIGJlZW4gcHJvY2Vzc2VkCisJCXR4QWNrLAkJCS8vIEFDSyAoZGF0YSBUWCBjb21wbGV0ZSkKKwkJcnMyMzJ2YWxpZDsJCS8vIFJTLTIzMiBzaWduYWwgdmFsaWQKK307CisKKy8vIGJpdHMgaW4gUlggZGF0YSBtZXNzYWdlIHdoZW4gU1RBVCBieXRlIGlzIGluY2x1ZGVkCisjZGVmaW5lCVJYRVJST1JfT1ZFUlJVTgkweDAyCisjZGVmaW5lCVJYRVJST1JfUEFSSVRZCTB4MDQKKyNkZWZpbmUJUlhFUlJPUl9GUkFNSU5HCTB4MDgKKyNkZWZpbmUJUlhFUlJPUl9CUkVBSwkweDEwCisKK3N0cnVjdCBrZXlzcGFuX3VzYTQ5X2dsb2JhbFN0YXR1c01lc3NhZ2UKK3sKKwl1OAlwb3J0TnVtYmVyLAkJCS8vIDB4ODA9Z2xvYmFsU3RhdHVzTWVzc2FnZQorCQlzZW5kR2xvYmFsU3RhdHVzLAkvLyBmcm9tIHJlcXVlc3QsIGRlY3JlbWVudGVkCisJCXJlc2V0U3RhdHVzQ291bnQ7CS8vIGFzIGluIHJlcXVlc3QKK307CisKK3N0cnVjdCBrZXlzcGFuX3VzYTQ5X2dsb2JhbERlYnVnTWVzc2FnZQoreworCXU4CXBvcnROdW1iZXIsCQkJLy8gMHg4MT1nbG9iYWxEZWJ1Z01lc3NhZ2UKKwkJbiwJCQkJCS8vIHR5cGljYWxseSBhIGNvdW50L3N0YXR1cyBieXRlCisJCWI7CQkJCQkvLyB0eXBpY2FsbHkgYSBkYXRhIGJ5dGUKK307CisKKy8vIGllOiB0aGUgbWF4aW11bSBsZW5ndGggb2YgYW4gRVpVU0IgZW5kcG9pbnQgYnVmZmVyCisjZGVmaW5lCU1BWF9EQVRBX0xFTgkJCTY0CisKKy8vIHVwZGF0ZSBzdGF0dXMgYXBwcm94LiA2MCB0aW1lcyBhIHNlY29uZCAoMTYuNjY2NiBtcykKKyNkZWZpbmUJU1RBVFVTX1VQREFURV9JTlRFUlZBTAkxNgorCisvLyBzdGF0dXMgcmF0aW9uaW5nIHR1bmluZyB2YWx1ZSAoZWFjaCBwb3J0IGdldHMgY2hlY2tlZCBlYWNoIG4gbXMpCisjZGVmaW5lCVNUQVRVU19SQVRJT04JMTAKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2E0OXdfZncuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTQ5d19mdy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjMjRkYWMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2E0OXdfZncuaApAQCAtMCwwICsxLDQ2NCBAQAorLyoga2V5c3Bhbl91c2E0OXdfZncuaAorCisJVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gYXMga2V5c3Bhbl91c2E0OXdfZncuaCBpcworCisJCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCisJCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKKwkJCisJYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCisJcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCisJZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUgCisJcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dCAKKwlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZSAKKwlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwgCisJaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4gCisKKwlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aCAgCisJS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZSAKKwlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluIAorCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgorCisqLworCitzdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQga2V5c3Bhbl91c2E0OXdfZmlybXdhcmVbXSA9IHsKKyB7MHgwMDMzLCAgMywgeyAweDAyLCAweDE4LCAweGZifX0sCisgezB4MDAzNiwgMTIsIHsgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMn19LAorIHsweDAwNDYsIDE2LCB7IDB4ZTQsIDB4ZmYsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmUsIDB4ZTUsIDB4MTV9fSwKKyB7MHgwMDU2LCAxNiwgeyAweDI0LCAweDA0LCAweGZkLCAweGU0LCAweDM1LCAweDE0LCAweGZhLCAweGE5LCAweDA1LCAweDdiLCAweDAxLCAweGVmLCAweDdjLCAweDAwLCAweDI5LCAweGY5fX0sCisgezB4MDA2NiwgMTYsIHsgMHhlYywgMHgzYSwgMHhmYSwgMHhlZSwgMHgxMiwgMHgxMSwgMHhmMSwgMHgwZiwgMHhiZiwgMHgyMiwgMHhkNywgMHhlNSwgMHgxNSwgMHgyNCwgMHgwNSwgMHhmNX19LAorIHsweDAwNzYsIDE2LCB7IDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDEsIDB4MzQsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDl9fSwKKyB7MHgwMDg2LCAxNiwgeyAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDcwLCAweDBlLCAweGU1LCAweDE1LCAweDI0LCAweDBhLCAweGY1LCAweDgyfX0sCisgezB4MDA5NiwgMTYsIHsgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgxOCwgMHg3ZiwgMHgwMSwgMHhlNCwgMHhmZCwgMHgxMiwgMHgxNiwgMHg0NywgMHhlNX19LAorIHsweDAwYTYsIDE2LCB7IDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4Y2YsIDB4ZjAsIDB4ODAsIDB4NDF9fSwKKyB7MHgwMGI2LCAxNiwgeyAweGU1LCAweDE1LCAweDI0LCAweDA2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDEyLCAweDE2LCAweDc2fX0sCisgezB4MDBjNiwgMTYsIHsgMHhlNSwgMHgxNSwgMHgyNCwgMHgwNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHgxMiwgMHgwMCwgMHgwM319LAorIHsweDAwZDYsIDE2LCB7IDB4N2YsIDB4MDEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmQsIDB4MTJ9fSwKKyB7MHgwMGU2LCAxNiwgeyAweDE2LCAweDQ3LCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDMwfX0sCisgezB4MDBmNiwgMTYsIHsgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMH19LAorIHsweDAwMDMsIDE2LCB7IDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzR9fSwKKyB7MHgwMDEzLCAxNiwgeyAweDAxLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAzLCAweGYwLCAweGU1LCAweDE1LCAweDI0fX0sCisgezB4MDAyMywgMTYsIHsgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMn19LAorIHsweDAwNDMsICAzLCB7IDB4MDIsIDB4MWIsIDB4MDB9fSwKKyB7MHgwMDAwLCAgMywgeyAweDAyLCAweDEwLCAweDk1fX0sCisgezB4MDEwNiwgNjQsIHsgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywKKyAgMHhlMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNiwgMHhmNSwKKyAgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwKKyAgMHgwYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgzMiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgwY319LAorIHsweDAxNDYsIDY0LCB7IDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4M2YsIDB4ZmYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjUsIDB4ODIsCisgIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsCisgIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsCisgIDB4MGQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDIsIDB4NGYsIDB4ZTV9fSwKKyB7MHgwMTg2LCA2NCwgeyAweDE1LCAweDI0LCAweDE3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDExLCAweGU1LCAweDE1LCAweDI0LCAweDMyLAorICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweDgwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LAorICAweDMyLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweGU0LCAweGZmLCAweGU1LCAweDE1LAorICAweDI0LCAweDMyLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZkLCAweDEyLCAweDE2LCAweDQ3LCAweGU1fX0sCisgezB4MDFjNiwgNjQsIHsgMHgxNSwgMHgyNCwgMHgwZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgxMSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMywKKyAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg4MCwgMHgwZiwgMHhlNSwgMHgxNSwgMHgyNCwKKyAgMHgzMywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMywKKyAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmYywgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgwZn19LAorIHsweDAyMDYsIDY0LCB7IDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MmYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzMsIDB4ZjUsIDB4ODIsIDB4ZTQsCisgIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTAsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCisgIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTUsIDB4ZTcsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCisgIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTYsIDB4MTcsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzMsIDB4ZjUsIDB4ODIsIDB4ZTR9fSwKKyB7MHgwMjQ2LCA2NCwgeyAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDEyLCAweDE1LCAweGI3LCAweGU1LCAweDE1LCAweDI0LCAweDE0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LAorICAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDQ0LCAweGU1LCAweDE1LCAweDI0LCAweDE1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LAorICAweDgzLCAweGUwLCAweDYwLCAweDExLCAweGU1LCAweDE1LCAweDI0LCAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLAorICAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LCAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1fX0sCisgezB4MDI4NiwgNjQsIHsgMHg4MywgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwKKyAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxMiwgMHhmNSwgMHg4MiwKKyAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHg0NCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxMywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwKKyAgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgxMSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNH19LAorIHsweDAyYzYsIDY0LCB7IDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ODAsIDB4MGYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsCisgIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksCisgIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTYsCisgIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzUsIDB4ZjUsIDB4ODJ9fSwKKyB7MHgwMzA2LCA2NCwgeyAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDE3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LAorICAweDgzLCAweGUwLCAweDMwLCAweGUwLCAweDExLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLAorICAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDgwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LAorICAweDgzLCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1fX0sCisgezB4MDM0NiwgNjQsIHsgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHhlNSwKKyAgMHgxNSwgMHgyNCwgMHgxOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgxMSwgMHhlNSwgMHgxNSwgMHgyNCwKKyAgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgxMCwgMHhmMCwgMHg4MCwgMHgwZiwgMHhlNSwgMHgxNSwKKyAgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3OH19LAorIHsweDAzODYsIDY0LCB7IDB4NDEsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4OTAsCisgIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MWEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsCisgIDB4NmIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsCisgIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTR9fSwKKyB7MHgwM2M2LCA2NCwgeyAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAxLCAweGYwLCAweDEyLCAweDAwLAorICAweDM2LCAweGVmLCAweDU0LCAweGZlLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDMyLCAweGY1LCAweDgyLCAweGU0LCAweDM1LAorICAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZkLCAweGZmLCAweGYwLCAweGZkLCAweGU0LCAweGZmLCAweDEyLCAweDE2LCAweDQ3LCAweGU1LCAweDE1LAorICAweDI0LCAweDJjLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDJifX0sCisgezB4MDQwNiwgNjQsIHsgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0MiwgMHgxMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgxYiwKKyAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg3MCwgMHgwZSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyNSwgMHhmNSwgMHg4MiwKKyAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgyOCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwKKyAgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwMiwgMHhmZiwgMHhmMCwgMHhmZCwgMHhlNCwgMHhmZiwgMHgxMiwgMHgxNiwgMHg0NywgMHhlNX19LAorIHsweDA0NDYsIDY0LCB7IDB4MTUsIDB4MjQsIDB4MmIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsCisgIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MWMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4NzAsIDB4MGUsIDB4ZTUsCisgIDB4MTUsIDB4MjQsIDB4MjUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MmEsIDB4OTAsIDB4NzgsIDB4NDEsCisgIDB4NzQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTB9fSwKKyB7MHgwNDg2LCA2NCwgeyAweDQ0LCAweDA0LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGVmLCAweDYwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LAorICAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDFkLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LAorICAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDI3LCAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLAorICAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAzLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1fX0sCisgezB4MDRjNiwgNjQsIHsgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxZSwKKyAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgyOCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMiwgMHhmNSwgMHg4MiwKKyAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZSwgMHhmZiwgMHhmMCwgMHhmZCwgMHhlNCwgMHhmZiwgMHgxMiwgMHgxNiwgMHg0NywKKyAgMHhlNSwgMHgxNSwgMHgyNCwgMHgyZCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHhlNX19LAorIHsweDA1MDYsIDY0LCB7IDB4MTYsIDB4NDIsIDB4MTMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MWYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NzAsIDB4MGUsCisgIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MjcsIDB4ZTUsIDB4MTUsCisgIDB4MjQsIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZmYsIDB4ZjAsIDB4ZmQsIDB4ZTQsCisgIDB4ZmYsIDB4MTIsIDB4MTYsIDB4NDcsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MmQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODN9fSwKKyB7MHgwNTQ2LCA2NCwgeyAweGU0LCAweGYwLCAweGU1LCAweDE2LCAweDQyLCAweDEzLCAweGU1LCAweDE1LCAweDI0LCAweDIwLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLAorICAweGUwLCAweDcwLCAweDBlLCAweGU1LCAweDE1LCAweDI0LCAweDI1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLAorICAweDE4LCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAyLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LAorICAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDAyLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDIxLCAweGY1LCAweDgyfX0sCisgezB4MDU4NiwgNjQsIHsgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgwZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwKKyAgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwKKyAgMHg4MywgMHhlMCwgMHg2MCwgMHgxZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwKKyAgMHgwMSwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzYSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMH19LAorIHsweDA1YzYsIDY0LCB7IDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsCisgIDB4MDMsIDB4MTIsIDB4MTgsIDB4ODUsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsCisgIDB4NjAsIDB4MWIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDgsCisgIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTYsIDB4ZjQsIDB4ZmUsIDB4ZWYsIDB4NWUsIDB4ZjAsIDB4ZTUsIDB4MTV9fSwKKyB7MHgwNjA2LCA2NCwgeyAweDI0LCAweDI1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDE2LCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LAorICAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDQ1LCAweDE2LAorICAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDEyLCAweDEyLCAweDAzLCAweDA3LCAweDgzLCAweDAwLCAweDA3LCAweGY3LCAweDAxLCAweDA4LAorICAweDYzLCAweDAzLCAweDA2LCAweDRjLCAweDA2LCAweDA3LCAweDc0LCAweDA4LCAweDA3LCAweDY4LCAweDA5LCAweDA3LCAweDUwLCAweDBhLCAweDA3fX0sCisgezB4MDY0NiwgNjQsIHsgMHg1ZiwgMHgwYiwgMHgwMCwgMHgwMCwgMHgwOCwgMHhiMiwgMHg5MCwgMHg3ZiwgMHhlYiwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxYywgMHgxNCwgMHg3MCwgMHgwMywKKyAgMHgwMiwgMHgwNiwgMHhmZSwgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwNywgMHg0NiwgMHg3NCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwKKyAgMHg3NCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwOCwgMHhiOSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHgwNCwgMHg3NSwgMHg4MiwKKyAgMHgxNywgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHgzMCwgMHhlMCwgMHgwNCwgMHg3ZiwgMHgwMywgMHg4MH19LAorIHsweDA2ODYsIDY0LCB7IDB4MDIsIDB4N2YsIDB4MDIsIDB4NzUsIDB4ODIsIDB4ODIsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZWYsIDB4ZjAsIDB4NzUsIDB4ODIsIDB4NmQsIDB4NzUsIDB4ODMsIDB4MTksCisgIDB4ZjAsIDB4NzUsIDB4ODIsIDB4NjYsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4NzUsIDB4ODIsIDB4NWYsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4NzUsCisgIDB4ODIsIDB4NTgsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDQsIDB4N2YsIDB4NjQsIDB4ODAsCisgIDB4MDIsIDB4N2YsIDB4MzIsIDB4NzUsIDB4ODIsIDB4MWEsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWYsIDB4ZTB9fSwKKyB7MHgwNmM2LCA2NCwgeyAweGZlLCAweDkwLCAweDdmLCAweGVlLCAweGUwLCAweDdjLCAweDAwLCAweDI0LCAweDAwLCAweGY1LCAweDE5LCAweGVjLCAweDNlLCAweGY1LCAweDE4LCAweDc1LCAweDMzLAorICAweDE5LCAweDc1LCAweDM0LCAweDEyLCAweDc1LCAweDgyLCAweDE0LCAweDc1LCAweDgzLCAweDE5LCAweGUwLCAweDc1LCAweDI3LCAweDAwLCAweGY1LCAweDI4LAorICAweGQzLCAweGU1LCAweDI4LCAweDk1LCAweDE5LCAweGU1LCAweDI3LCAweDk1LCAweDE4LCAweDQwLCAweDA2LCAweDg1LCAweDE4LCAweDI3LCAweDg1LCAweDE5LAorICAweDI4LCAweDEyLCAweDEzLCAweDEyLCAweDAyLCAweDA4LCAweGI5LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGZmLCAweDEyLCAweDE0LCAweDJifX0sCisgezB4MDcwNiwgNjQsIHsgMHhlYSwgMHg0OSwgMHg2MCwgMHgzMiwgMHg5MCwgMHg3ZiwgMHhlZSwgMHhlMCwgMHg3NSwgMHgxOCwgMHgwMCwgMHhmNSwgMHgxOSwgMHhhZSwgMHgwMiwgMHhhZiwgMHgwMSwKKyAgMHg4ZSwgMHgzMywgMHg4ZiwgMHgzNCwgMHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHg4ZSwgMHgyNywgMHhmNSwgMHgyOCwKKyAgMHhkMywgMHg5NSwgMHgxOSwgMHhlNSwgMHgyNywgMHg5NSwgMHgxOCwgMHg0MCwgMHgwNiwgMHg4NSwgMHgxOCwgMHgyNywgMHg4NSwgMHgxOSwgMHgyOCwgMHgxMiwKKyAgMHgxMywgMHgxMiwgMHgwMiwgMHgwOCwgMHhiOSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwOCwgMHhiOX19LAorIHsweDA3NDYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4YjksIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MjUsIDB4ZjAsIDB4OTAsCisgIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4YjksIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MjUsIDB4MDIsIDB4MDgsCisgIDB4YjksIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MjIsIDB4MTIsIDB4MGEsIDB4YjgsIDB4MDIsIDB4MDgsIDB4YjksIDB4OTAsIDB4N2YsIDB4MDAsCisgIDB4ZTUsIDB4MjIsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4YjksIDB4OTAsIDB4N2YsIDB4ZTh9fSwKKyB7MHgwNzg2LCA2NCwgeyAweGUwLCAweDI0LCAweDdmLCAweDYwLCAweDI0LCAweDE0LCAweDYwLCAweDMxLCAweDI0LCAweDAyLCAweDcwLCAweDViLCAweGEyLCAweDAwLCAweGU0LCAweDMzLCAweGZmLAorICAweDI1LCAweGUwLCAweGZmLCAweGEyLCAweDA2LCAweGU0LCAweDMzLCAweDRmLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLAorICAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA4LCAweGI5LCAweGU0LCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGEzLCAweGYwLCAweDkwLAorICAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA4LCAweGI5LCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwfX0sCisgezB4MDdjNiwgNjQsIHsgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwKKyAgMHg3ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwKKyAgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwOCwgMHhiOSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwOCwgMHhiOSwKKyAgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxZCwgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwOCwgMHhiOX19LAorIHsweDA4MDYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDUsIDB4YzIsIDB4MDAsIDB4MDIsIDB4MDgsIDB4YjksIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsCisgIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4YjksIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MzgsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsCisgIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsCisgIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4NTQsIDB4ODAsIDB4ZmZ9fSwKKyB7MHgwODQ2LCA2NCwgeyAweDEzLCAweDEzLCAweDEzLCAweDU0LCAweDFmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDkwLCAweDdmLCAweGQ3LCAweGYwLCAweGUwLCAweDQ0LCAweDIwLAorICAweGYwLCAweDgwLCAweDVmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDU2LCAweDkwLCAweDdmLCAweGU4LCAweGUwLAorICAweDI0LCAweGZlLCAweDYwLCAweDE4LCAweDI0LCAweDAyLCAweDcwLCAweDRhLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDA0LCAweGQyLAorICAweDAwLCAweDgwLCAweDNmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDM2LCAweDkwLCAweDdmLCAweGVhfX0sCisgezB4MDg4NiwgNjQsIHsgMHhlMCwgMHg3MCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwKKyAgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwKKyAgMHg4MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgwNywgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwKKyAgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgyMiwgMHhlNSwgMHgxMSwgMHg1NCwgMHgwZiwgMHg3MH19LAorIHsweDA4YzYsIDY0LCB7IDB4MDMsIDB4MDIsIDB4MDksIDB4YjIsIDB4MTIsIDB4MTYsIDB4YTUsIDB4ZWYsIDB4MjAsIDB4ZTEsIDB4NzUsIDB4MTIsIDB4MTcsIDB4MDMsIDB4ZWYsIDB4MTQsIDB4ZjUsCisgIDB4MTksIDB4MTIsIDB4MTgsIDB4Y2MsIDB4ZWYsIDB4MjUsIDB4MTksIDB4ZmYsIDB4ZTQsIDB4MzMsIDB4ZmUsIDB4YzMsIDB4ZWYsIDB4OTQsIDB4ODAsIDB4ZWUsCisgIDB4NjQsIDB4ODAsIDB4OTQsIDB4ODAsIDB4NTAsIDB4NTksIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsCisgIDB4ZmYsIDB4ZjUsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4MzAsIDB4ZTAsIDB4MTEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODJ9fSwKKyB7MHgwOTA2LCA2NCwgeyAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDgwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLAorICAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LAorICAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDIwLCAweGUyLCAweDEyLCAweGU1LCAweDE5LCAweDYwLCAweDBlLCAweGY1LCAweDIzLCAweGVmLCAweDI0LAorICAweDAxLCAweGY1LCAweDJkLCAweGU0LCAweDNlLCAweGY1LCAweDJjLCAweDEyLCAweDE0LCAweGFkLCAweGU0LCAweGZmLCAweDEyLCAweDE0LCAweGUzfX0sCisgezB4MDk0NiwgNjQsIHsgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgzMCwgMHhlNywgMHg1ZCwgMHgxMiwgMHgxOCwKKyAgMHhjYywgMHhlNSwgMHgxNSwgMHgyNCwgMHgzYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZSwgMHhlZiwgMHhjMywKKyAgMHg5ZSwgMHg1MCwgMHg0OCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwKKyAgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3Yn19LAorIHsweDA5ODYsIDY0LCB7IDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4M2EsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsCisgIDB4MTMsIDB4OTAsIDB4N2YsIDB4YzIsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MTAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCisgIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4MjQsIDB4ODAsIDB4MDMsIDB4MTIsIDB4MTIsIDB4YTEsIDB4MTIsIDB4MTYsIDB4ZDQsIDB4ZWYsIDB4MzAsCisgIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MGEsIDB4YjcsIDB4MTIsIDB4MTcsIDB4ZDIsIDB4OGYsIDB4MTksIDB4MTIsIDB4MTgsIDB4ZDgsIDB4ZTUsIDB4MTV9fSwKKyB7MHgwOWM2LCA2NCwgeyAweDI0LCAweDM4LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM1LCAweGY1LCAweDgyLAorICAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE5LCAweGMzLCAweDlmLCAweDUwLCAweDI4LCAweDEyLCAweDE4LCAweGI0LAorICAweGVmLCAweDMwLCAweGUwLCAweDIxLCAweGU1LCAweDE1LCAweDI0LCAweDM4LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLAorICAweDIwLCAweGU3LCAweDEyLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwfX0sCisgezB4MGEwNiwgNjQsIHsgMHgyMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwYSwgMHhiNywgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywKKyAgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHhlNSwgMHgxOSwgMHg3MCwgMHgwMywgMHgwMiwgMHgwYSwgMHhiNywgMHhiNCwgMHg4MCwgMHgwZiwgMHhlNSwgMHgxNSwKKyAgMHgyNCwgMHgzOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwKKyAgMHgzOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHgzMCwgMHhlNywgMHgyOSwgMHhlNSwgMHgxOX19LAorIHsweDBhNDYsIDY0LCB7IDB4ZDMsIDB4OTQsIDB4MjAsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4MjAsIDB4ODUsIDB4MTksIDB4MjMsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsCisgIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4OGMsIDB4MmMsIDB4ZjUsIDB4MmQsIDB4MTIsIDB4MTMsIDB4ZGQsIDB4ZTUsIDB4MTksIDB4MjUsCisgIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTUsIDB4MTksIDB4MjIsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsIDB4M2YsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4M2YsCisgIDB4ODUsIDB4MTksIDB4MjMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTB9fSwKKyB7MHgwYTg2LCA2NCwgeyAweGZmLCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLCAweGEzLCAweGEzLCAweGUwLCAweGZjLCAweGEzLCAweGUwLCAweGY1LCAweDgyLCAweDhjLCAweDgzLAorICAweGVmLCAweGYwLCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLCAweGEzLCAweGEzLCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweDI0LCAweDAxLAorICAweGY1LCAweDJkLCAweGU0LCAweDNlLCAweGY1LCAweDJjLCAweDEyLCAweDE0LCAweDZjLCAweGU1LCAweDE5LCAweDA0LCAweGZmLCAweDEyLCAweDE1LCAweDE5LAorICAweDIyLCAweGU0LCAweDkwLCAweDdmLCAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweGYwLCAweGYwLCAweDkwLCAweDdmLCAweDk2fX0sCisgezB4MGFjNiwgNjQsIHsgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NCwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0YSwgMHgwNCwgMHhmMCwgMHhmNSwgMHg4ZSwgMHg5MCwgMHg3ZiwgMHg5NSwgMHg3NCwKKyAgMHhjMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHgzZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxZiwgMHhmMCwgMHg5MCwgMHg3OCwKKyAgMHg0MywgMHg3NCwgMHhmZiwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3OCwgMHg0MSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHg3NCwgMHg5ZiwgMHhmMCwgMHg5MCwKKyAgMHg3ZiwgMHhkZSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg3ZSwgMHg3YiwgMHg3ZiwgMHhjMCwgMHg3NX19LAorIHsweDBiMDYsIDY0LCB7IDB4MTQsIDB4N2IsIDB4NzUsIDB4MTUsIDB4YzAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4ZWYsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDEsIDB4MTIsIDB4MGYsIDB4MTIsCisgIDB4N2UsIDB4N2IsIDB4N2YsIDB4YzAsIDB4NzUsIDB4MTQsIDB4N2IsIDB4NzUsIDB4MTUsIDB4YzAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4ZWYsIDB4ZjAsCisgIDB4NzUsIDB4MTYsIDB4MDEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsCisgIDB4N2UsIDB4N2UsIDB4N2YsIDB4NDAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsIDB4NzQsIDB4N2UsIDB4ZjAsIDB4YTMsIDB4NzR9fSwKKyB7MHgwYjQ2LCA2NCwgeyAweDQwLCAweGYwLCAweDdlLCAweDdlLCAweDdmLCAweDgwLCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLCAweGEzLCAweGEzLCAweDc0LCAweDdlLCAweGYwLAorICAweGEzLCAweDc0LCAweDgwLCAweGYwLCAweDdlLCAweDdjLCAweDdmLCAweDAwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDAwLCAweDkwLCAweDdmLAorICAweDk2LCAweDc0LCAweGRmLCAweGYwLCAweDc1LCAweDE2LCAweDAyLCAweDEyLCAweDBmLCAweDEyLCAweDdlLCAweDdjLCAweDdmLCAweDAwLCAweDc1LCAweDE0LAorICAweDdjLCAweDc1LCAweDE1LCAweDAwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweGRmLCAweGYwLCAweDc1LCAweDE2LCAweDAyLCAweGU1LCAweDE1fX0sCisgezB4MGI4NiwgNjQsIHsgMHgyNCwgMHgyNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHhjMCwgMHg4NSwKKyAgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywgMHg3NCwgMHg3ZCwgMHhmMCwgMHhhMywgMHg3NCwgMHhjMCwgMHhmMCwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHgwMCwKKyAgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywgMHhhMywgMHhhMywgMHg3NCwgMHg3ZSwgMHhmMCwgMHhhMywgMHg3NCwgMHgwMCwgMHhmMCwgMHg3ZSwKKyAgMHg3YywgMHg3ZiwgMHg0MCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHg0MCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHhiZiwgMHhmMH19LAorIHsweDBiYzYsIDY0LCB7IDB4NzUsIDB4MTYsIDB4MDQsIDB4MTIsIDB4MGYsIDB4MTIsIDB4N2UsIDB4N2MsIDB4N2YsIDB4NDAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4NDAsIDB4OTAsCisgIDB4N2YsIDB4OTYsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDQsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCisgIDB4MTQsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4N2UsIDB4N2QsIDB4N2YsIDB4NDAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsCisgIDB4NzQsIDB4N2QsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4NDAsIDB4ZjAsIDB4N2UsIDB4N2QsIDB4N2YsIDB4ODAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODV9fSwKKyB7MHgwYzA2LCA2NCwgeyAweDE0LCAweDgzLCAweGEzLCAweGEzLCAweDc0LCAweDdkLCAweGYwLCAweGEzLCAweDc0LCAweDgwLCAweGYwLCAweDdlLCAweDdjLCAweDdmLCAweDgwLCAweDc1LCAweDE0LAorICAweDdjLCAweDc1LCAweDE1LCAweDgwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweDdmLCAweGYwLCAweDc1LCAweDE2LCAweDA4LCAweDEyLCAweDBmLCAweDEyLAorICAweDdlLCAweDdjLCAweDdmLCAweDgwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDgwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweDdmLCAweGYwLAorICAweDc1LCAweDE2LCAweDA4LCAweGU1LCAweDE1LCAweDI0LCAweDI2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0fX0sCisgezB4MGM0NiwgNjQsIHsgMHgwMywgMHhmMCwgMHg3ZSwgMHg3YywgMHg3ZiwgMHhjMCwgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywgMHg3NCwgMHg3YywgMHhmMCwgMHhhMywgMHg3NCwKKyAgMHhjMCwgMHhmMCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHgwMCwgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywgMHhhMywgMHhhMywgMHg3NCwgMHg3ZCwKKyAgMHhmMCwgMHhhMywgMHg3NCwgMHgwMCwgMHhmMCwgMHhjMiwgMHgwYSwgMHhjMiwgMHgwOSwgMHhkMiwgMHgwMiwgMHgyMiwgMHhlNSwgMHgxMCwgMHgwNCwgMHg1NCwKKyAgMHgwMywgMHhmNSwgMHgxMCwgMHgxNCwgMHg2MCwgMHgxZiwgMHgxNCwgMHg2MCwgMHgzMSwgMHgxNCwgMHg2MCwgMHg0MywgMHgyNCwgMHgwMywgMHg3MH19LAorIHsweDBjODYsIDY0LCB7IDB4NTIsIDB4N2UsIDB4N2IsIDB4N2YsIDB4YzAsIDB4NzUsIDB4MTQsIDB4N2IsIDB4NzUsIDB4MTUsIDB4YzAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4ZWYsIDB4ZjAsCisgIDB4NzUsIDB4MTYsIDB4MDEsIDB4ODAsIDB4M2QsIDB4N2UsIDB4N2MsIDB4N2YsIDB4MDAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4MDAsIDB4OTAsCisgIDB4N2YsIDB4OTYsIDB4NzQsIDB4ZGYsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDIsIDB4ODAsIDB4MjgsIDB4N2UsIDB4N2MsIDB4N2YsIDB4NDAsIDB4NzUsIDB4MTQsCisgIDB4N2MsIDB4NzUsIDB4MTUsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDQsIDB4ODAsIDB4MTN9fSwKKyB7MHgwY2M2LCA2NCwgeyAweDdlLCAweDdjLCAweDdmLCAweDgwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDgwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweDdmLCAweGYwLCAweDc1LAorICAweDE2LCAweDA4LCAweGU1LCAweDMyLCAweDU1LCAweDE2LCAweDcwLCAweDAzLCAweDAyLCAweDBlLCAweDExLCAweGU1LCAweDE2LCAweGY0LCAweGZmLCAweDUyLAorICAweDMyLCAweGU1LCAweDI2LCAweDU0LCAweDdmLCAweGZlLCAweDcwLCAweDBmLCAweGU1LCAweDJhLCAweDU1LCAweDE2LCAweDYwLCAweDI0LCAweDkwLCAweDdmLAorICAweDk4LCAweGUwLCAweDQ1LCAweDE2LCAweGYwLCAweDgwLCAweDFiLCAweGJlLCAweDIwLCAweDE4LCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1fX0sCisgezB4MGQwNiwgNjQsIHsgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgzMCwgMHhlMywgMHgwOSwgMHhlNCwgMHhmNSwgMHgyYSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwKKyAgMHg1ZiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzYSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgwMywKKyAgMHhlMCwgMHgxNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwKKyAgMHgwMywgMHhlMCwgMHgxNCwgMHhmMCwgMHhlMCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZSwgMHgxMSwgMHg3NCwgMHgwYSwgMHhmMCwgMHgxMiwgMHgwMH19LAorIHsweDBkNDYsIDY0LCB7IDB4MzYsIDB4ZWYsIDB4NTQsIDB4MDEsIDB4ZmYsIDB4ZjUsIDB4MTksIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MmMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsCisgIDB4ODMsIDB4ZTAsIDB4NmYsIDB4NjAsIDB4MDcsIDB4ZTUsIDB4MTksIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsIDB4MTIsIDB4MTgsIDB4ZTQsIDB4OGYsCisgIDB4MTksIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTksCisgIDB4NTQsIDB4MTAsIDB4ZmUsIDB4NmYsIDB4NjAsIDB4MDYsIDB4ZWUsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsIDB4ZTUsIDB4MTUsIDB4MjR9fSwKKyB7MHgwZDg2LCA2NCwgeyAweDI4LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE5LCAweDU0LCAweDgwLCAweGZlLCAweDZmLCAweDYwLAorICAweDA2LCAweGVlLCAweGYwLCAweGU1LCAweDE2LCAweDQyLCAweDEzLCAweGU1LCAweDE1LCAweDI0LCAweDI5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LAorICAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE5LCAweDU0LCAweDIwLCAweGZlLCAweDZmLCAweDYwLCAweDE1LCAweGVlLCAweGYwLCAweGU1LCAweDE1LAorICAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDMwLCAweGU0LCAweDA0LCAweGU1LCAweDE2fX0sCisgezB4MGRjNiwgNjQsIHsgMHg0MiwgMHgxMywgMHhlNSwgMHgxMiwgMHg1NSwgMHgxNiwgMHhmZiwgMHhmNSwgMHgxOSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyYSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwKKyAgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2ZiwgMHg2MCwgMHgxNiwgMHhlNSwgMHgxOSwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwKKyAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgzMCwgMHhlNSwgMHgwNCwgMHhlNSwgMHgxNiwgMHg0MiwgMHgxMywgMHhlNSwgMHgxNywgMHg1NSwKKyAgMHgxNiwgMHhmZiwgMHhmNSwgMHgxOSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4M319LAorIHsweDBlMDYsIDY0LCB7IDB4ZTAsIDB4NmYsIDB4NjAsIDB4MDcsIDB4ZTUsIDB4MTksIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsIDB4MjIsIDB4MzAsIDB4MDksIDB4MDMsIDB4MDIsIDB4MGYsCisgIDB4MTEsIDB4ZTUsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MmEsIDB4MTQsIDB4NjAsIDB4NDEsIDB4MTQsIDB4NjAsIDB4NTgsIDB4MTQsIDB4NjAsIDB4NmYsIDB4MjQsCisgIDB4MDQsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGUsIDB4Y2YsIDB4N2UsIDB4N2IsIDB4N2YsIDB4YzAsIDB4NzUsIDB4MTQsIDB4N2IsIDB4NzUsIDB4MTUsIDB4YzAsCisgIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4ZWYsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDEsIDB4MTIsIDB4MTIsIDB4YTEsIDB4NzUsIDB4MjQsIDB4MDF9fSwKKyB7MHgwZTQ2LCA2NCwgeyAweDIyLCAweDdlLCAweDdjLCAweDdmLCAweDAwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDAwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweGRmLCAweGYwLAorICAweDc1LCAweDE2LCAweDAyLCAweDEyLCAweDEyLCAweGExLCAweDc1LCAweDI0LCAweDAyLCAweDIyLCAweDdlLCAweDdjLCAweDdmLCAweDQwLCAweDc1LCAweDE0LAorICAweDdjLCAweDc1LCAweDE1LCAweDQwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweGJmLCAweGYwLCAweDc1LCAweDE2LCAweDA0LCAweDEyLCAweDEyLCAweGExLAorICAweDc1LCAweDI0LCAweDAzLCAweDIyLCAweDdlLCAweDdjLCAweDdmLCAweDgwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDgwLCAweDkwfX0sCisgezB4MGU4NiwgNjQsIHsgMHg3ZiwgMHg5NiwgMHg3NCwgMHg3ZiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwOCwgMHgxMiwgMHgxMiwgMHhhMSwgMHg3NSwgMHgyNCwgMHgwNCwgMHgyMiwgMHgzMCwgMHgwNCwKKyAgMHgzMywgMHhjMiwgMHgwNCwgMHg1MywgMHgxMywgMHhkZiwgMHhlNCwgMHhmNSwgMHgxOSwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyZSwgMHgyNSwKKyAgMHgxOSwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgxMSwgMHhhYiwgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxOSwgMHhmNSwgMHg4MiwKKyAgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxOSwgMHhlNSwgMHgxOSwgMHhiNCwgMHgwMywgMHhkYiwgMHg5MH19LAorIHsweDBlYzYsIDY0LCB7IDB4N2YsIDB4YzMsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4NzUsIDB4MjQsIDB4MDUsIDB4MjIsIDB4ZTUsIDB4MzYsIDB4NjAsIDB4M2IsIDB4ZDUsIDB4MzYsIDB4MGEsIDB4NTMsCisgIDB4MTMsIDB4ZWYsIDB4MzAsIDB4MGEsIDB4MDQsIDB4ZDIsIDB4MDksIDB4YzIsIDB4MGEsIDB4ZTQsIDB4ZjUsIDB4MTksIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsCisgIDB4NzQsIDB4MzUsIDB4MjUsIDB4MTksIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MTEsIDB4YWIsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsCisgIDB4MTksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTksIDB4ZTUsIDB4MTksIDB4YjR9fSwKKyB7MHgwZjA2LCA2NCwgeyAweDAzLCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDAzLCAweGYwLCAweGU0LCAweGY1LCAweDI0LCAweDIyLCAweGU0LCAweGY1LCAweDFhLCAweDdlLCAweDAwLAorICAweDdiLCAweDAxLCAweGU1LCAweDE1LCAweDI1LCAweDFhLCAweGY5LCAweGVlLCAweDM1LCAweDE0LCAweGZhLCAweGU0LCAweDEyLCAweDExLCAweGYxLCAweDA1LAorICAweDFhLCAweGU1LCAweDFhLCAweGI0LCAweDNjLCAweGU4LCAweGU1LCAweDE1LCAweDI0LCAweDM1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LAorICAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAzLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1fX0sCisgezB4MGY0NiwgNjQsIHsgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg3ZiwgMHgwYywgMHhlNCwgMHhmZCwKKyAgMHgxMiwgMHgxNiwgMHg0NywgMHg3ZiwgMHgxMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywKKyAgMHhlZiwgMHhmMCwgMHgxMiwgMHgxNSwgMHhiNywgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMiwgMHhmMCwgMHg3ZiwgMHgwMSwgMHhlNSwgMHgxNSwgMHgyNCwKKyAgMHgzNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwgMHgwMH19LAorIHsweDBmODYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsCisgIDB4ODMsIDB4NzQsIDB4ODAsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MGYsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTYsIDB4NDcsIDB4ZTQsIDB4ZmYsCisgIDB4N2UsIDB4YTMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZWUsIDB4ZjAsIDB4ZmQsCisgIDB4MTIsIDB4MTYsIDB4NDcsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTQsIDB4ZjAsIDB4N2Z9fSwKKyB7MHgwZmM2LCA2NCwgeyAweDA1LCAweDdkLCAweDdmLCAweDEyLCAweDE2LCAweDQ3LCAweDdmLCAweDAxLCAweDEyLCAweDE1LCAweDRmLCAweDdmLCAweDAzLCAweDdkLCAweDA3LCAweDEyLCAweDE2LAorICAweDQ3LCAweDIyLCAweDUzLCAweDEzLCAweDNmLCAweDkwLCAweDdiLCAweGYxLCAweGUwLCAweDMwLCAweGUzLCAweDE2LCAweDdlLCAweDdiLCAweDdmLCAweGMwLAorICAweDc1LCAweDE0LCAweDdiLCAweDc1LCAweDE1LCAweGMwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweGVmLCAweGYwLCAweDc1LCAweDE2LCAweDAxLCAweDEyLAorICAweDA4LCAweGMxLCAweDkwLCAweDdjLCAweDMxLCAweGUwLCAweDMwLCAweGUzLCAweDE2LCAweDdlLCAweDdjLCAweDdmLCAweDAwLCAweDc1LCAweDE0fX0sCisgezB4MTAwNiwgNjQsIHsgMHg3YywgMHg3NSwgMHgxNSwgMHgwMCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHhkZiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwMiwgMHgxMiwgMHgwOCwgMHhjMSwgMHg5MCwKKyAgMHg3YywgMHg3MSwgMHhlMCwgMHgzMCwgMHhlMywgMHgxNiwgMHg3ZSwgMHg3YywgMHg3ZiwgMHg0MCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHg0MCwKKyAgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHhiZiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwNCwgMHgxMiwgMHgwOCwgMHhjMSwgMHg5MCwgMHg3YywgMHhiMSwgMHhlMCwKKyAgMHgzMCwgMHhlMywgMHgxNiwgMHg3ZSwgMHg3YywgMHg3ZiwgMHg4MCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHg4MCwgMHg5MCwgMHg3Zn19LAorIHsweDEwNDYsIDY0LCB7IDB4OTYsIDB4NzQsIDB4N2YsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDgsIDB4MTIsIDB4MDgsIDB4YzEsIDB4MDUsIDB4MTEsIDB4ZTUsIDB4MTEsIDB4NTQsIDB4MGYsIDB4ZjUsCisgIDB4MTgsIDB4NzAsIDB4MWYsIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTksIDB4ZTAsIDB4ZjUsIDB4MTcsCisgIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTksIDB4ZTAsIDB4ZjQsIDB4ZjUsIDB4MTIsIDB4MTIsIDB4MTEsCisgIDB4MjEsIDB4MjIsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDEsIDB4MDQsIDB4MTIsIDB4MGMsIDB4NzMsIDB4MjIsIDB4OTAsIDB4N2YsIDB4YzIsIDB4ZTB9fSwKKyB7MHgxMDg2LCA2NCwgeyAweDIwLCAweGUxLCAweDA4LCAweGU1LCAweDEzLCAweDYwLCAweDA0LCAweDEyLCAweDBlLCAweDEyLCAweDIyLCAweDEyLCAweDBjLCAweDczLCAweDIyLCAweDc4LCAweDdmLAorICAweGU0LCAweGY2LCAweGQ4LCAweGZkLCAweDc1LCAweDgxLCAweDM3LCAweDAyLCAweDEwLCAweGRjLCAweDAyLCAweDEyLCAweDI5LCAweGU0LCAweDkzLCAweGEzLAorICAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweDQwLCAweDAzLCAweGY2LCAweDgwLCAweDAxLCAweGYyLCAweDA4LCAweGRmLCAweGY0LCAweDgwLCAweDI5LCAweGU0LAorICAweDkzLCAweGEzLCAweGY4LCAweDU0LCAweDA3LCAweDI0LCAweDBjLCAweGM4LCAweGMzLCAweDMzLCAweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDIwfX0sCisgezB4MTBjNiwgNjQsIHsgMHhjOCwgMHg4MywgMHg0MCwgMHgwNCwgMHhmNCwgMHg1NiwgMHg4MCwgMHgwMSwgMHg0NiwgMHhmNiwgMHhkZiwgMHhlNCwgMHg4MCwgMHgwYiwgMHgwMSwgMHgwMiwgMHgwNCwKKyAgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MCwgMHg4MCwgMHg5MCwgMHgxOCwgMHg1MCwgMHhlNCwgMHg3ZSwgMHgwMSwgMHg5MywgMHg2MCwgMHhiYywgMHhhMywgMHhmZiwKKyAgMHg1NCwgMHgzZiwgMHgzMCwgMHhlNSwgMHgwOSwgMHg1NCwgMHgxZiwgMHhmZSwgMHhlNCwgMHg5MywgMHhhMywgMHg2MCwgMHgwMSwgMHgwZSwgMHhjZiwgMHg1NCwKKyAgMHhjMCwgMHgyNSwgMHhlMCwgMHg2MCwgMHhhOCwgMHg0MCwgMHhiOCwgMHhlNCwgMHg5MywgMHhhMywgMHhmYSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOH19LAorIHsweDExMDYsIDY0LCB7IDB4ZTQsIDB4OTMsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZjAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsCisgIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZGYsIDB4ZTksIDB4ZGUsIDB4ZTcsIDB4ODAsIDB4YmUsIDB4OTAsIDB4N2YsIDB4ZDIsIDB4ZTAsIDB4MzAsIDB4ZTEsCisgIDB4MDMsIDB4MDIsIDB4MTEsIDB4YWEsIDB4YzIsIDB4MDksIDB4OTAsIDB4N2IsIDB4NDAsIDB4ZTAsIDB4MTQsIDB4NjAsIDB4MjYsIDB4MTQsIDB4NjAsIDB4M2IsCisgIDB4MTQsIDB4NjAsIDB4NTAsIDB4MjQsIDB4ODMsIDB4NjAsIDB4NjQsIDB4MjQsIDB4ODAsIDB4NzAsIDB4NjMsIDB4N2UsIDB4N2IsIDB4N2YsIDB4YzB9fSwKKyB7MHgxMTQ2LCA2NCwgeyAweDc1LCAweDE0LCAweDdiLCAweDc1LCAweDE1LCAweGMwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweGVmLCAweGYwLCAweDc1LCAweDE2LCAweDAxLCAweDEyLCAweDAwLAorICAweDQ2LCAweDgwLCAweDRiLCAweDdlLCAweDdjLCAweDdmLCAweDAwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDAwLCAweDkwLCAweDdmLCAweDk2LAorICAweDc0LCAweGRmLCAweGYwLCAweDc1LCAweDE2LCAweDAyLCAweDEyLCAweDAwLCAweDQ2LCAweDgwLCAweDMzLCAweDdlLCAweDdjLCAweDdmLCAweDQwLCAweDc1LAorICAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDQwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweGJmLCAweGYwLCAweDc1LCAweDE2LCAweDA0LCAweDEyfX0sCisgezB4MTE4NiwgNjQsIHsgMHgwMCwgMHg0NiwgMHg4MCwgMHgxYiwgMHg3ZSwgMHg3YywgMHg3ZiwgMHg4MCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5NiwKKyAgMHg3NCwgMHg3ZiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwOCwgMHgxMiwgMHgwMCwgMHg0NiwgMHg4MCwgMHgwMywgMHgxMiwgMHgxNywgMHg1YywgMHhlNCwgMHg5MCwKKyAgMHg3ZiwgMHhkMywgMHhmMCwgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhlNywKKyAgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMiwgMHhlMywgMHgyMiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMX19LAorIHsweDExYzYsIDY0LCB7IDB4MGMsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDYsIDB4ZTksIDB4MjUsCisgIDB4ODIsIDB4ZjgsIDB4ZTYsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTIsIDB4MjIsIDB4ZTUsIDB4ODIsIDB4MjksCisgIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsCisgIDB4ODMsIDB4ZjAsIDB4MjIsIDB4NTAsIDB4MDIsIDB4ZjcsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDEsIDB4ZjMsIDB4MjIsIDB4ZDAsIDB4ODMsIDB4ZDB9fSwKKyB7MHgxMjA2LCA2NCwgeyAweDgyLCAweGY4LCAweGU0LCAweDkzLCAweDcwLCAweDEyLCAweDc0LCAweDAxLCAweDkzLCAweDcwLCAweDBkLCAweGEzLCAweGEzLCAweDkzLCAweGY4LCAweDc0LCAweDAxLAorICAweDkzLCAweGY1LCAweDgyLCAweDg4LCAweDgzLCAweGU0LCAweDczLCAweDc0LCAweDAyLCAweDkzLCAweDY4LCAweDYwLCAweGVmLCAweGEzLCAweGEzLCAweGEzLAorICAweDgwLCAweGRmLCAweDkwLCAweDdmLCAweGFlLCAweGUwLCAweGZmLCAweGQzLCAweDkyLCAweDAwLCAweGU0LCAweDMzLCAweGZlLCAweGVmLCAweDRlLCAweGYwLAorICAweGQyLCAweGU4LCAweDQzLCAweGQ4LCAweDIwLCAweDkwLCAweDdmLCAweGRlLCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGRmLCAweGYwfX0sCisgezB4MTI0NiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYSwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwKKyAgMHg5MCwgMHg3ZiwgMHhhZiwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHg3NCwgMHgwZCwgMHhmMCwgMHhkMiwgMHhhZiwgMHhkMiwgMHgwYiwKKyAgMHgxMiwgMHgxOCwgMHgxNCwgMHhjMiwgMHgwMSwgMHhlNCwgMHhmNSwgMHgyYiwgMHhmNSwgMHgzMSwgMHhjMiwgMHgwNywgMHhjMiwgMHgwMiwgMHg3NSwgMHgyOSwKKyAgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkOCwgMHhlMCwgMHg2NSwgMHgyNiwgMHg2MCwgMHgwNiwgMHg3NSwgMHgzMiwgMHgwZiwgMHhlMCwgMHhmNSwgMHgyNn19LAorIHsweDEyODYsIDY0LCB7IDB4MzAsIDB4MDIsIDB4MDMsIDB4MTIsIDB4MGYsIDB4ZDksIDB4MzAsIDB4MDEsIDB4MDcsIDB4YzIsIDB4MDEsIDB4MTIsIDB4MDYsIDB4MjksIDB4ODAsIDB4ZTIsIDB4MzAsCisgIDB4MDgsIDB4ZGYsIDB4YzIsIDB4MDgsIDB4MTIsIDB4MTgsIDB4MzUsIDB4ODAsIDB4ZDgsIDB4MjIsIDB4ZTUsIDB4MTMsIDB4NTUsIDB4MTYsIDB4NjAsIDB4NmEsCisgIDB4ZTUsIDB4MTUsIDB4MjQsIDB4M2EsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NzAsIDB4NWMsIDB4ZTUsIDB4MTYsCisgIDB4ZjQsIDB4NTIsIDB4MTMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjYsIDB4ZmYsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZmUsIDB4ZTQsIDB4ZmQsIDB4MGZ9fSwKKyB7MHgxMmM2LCA2NCwgeyAweGVmLCAweGFhLCAweDA2LCAweDcwLCAweDAxLCAweDBlLCAweDE0LCAweGY1LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweGZjLCAweDc0LCAweDgwLCAweDJkLCAweGY1LAorICAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVjLCAweGYwLCAweDBkLCAweGJkLCAweDBiLCAweGUyLCAweDkwLCAweDdmLCAweGMzLCAweDc0LAorICAweDBiLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDNhLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LCAweDEwLCAweGYwLAorICAweGU1LCAweDE1LCAweDI0LCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweGU1LCAweDE1fX0sCisgezB4MTMwNiwgNjQsIHsgMHgyNCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHgyMiwgMHhlNSwgMHgyOCwgMHg0NSwgMHgyNywgMHg2MCwKKyAgMHg1NywgMHhhZSwgMHgyNywgMHhhZiwgMHgyOCwgMHhkMywgMHhlZiwgMHg5NCwgMHg0MCwgMHhlZSwgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNCwgMHg3ZSwgMHgwMCwKKyAgMHg3ZiwgMHg0MCwgMHhjMywgMHhlNSwgMHgyOCwgMHg5ZiwgMHhmNSwgMHgyOCwgMHhlNSwgMHgyNywgMHg5ZSwgMHhmNSwgMHgyNywgMHhlNCwgMHhmZCwgMHhlZCwKKyAgMHhjMywgMHg5ZiwgMHhlNCwgMHg5ZSwgMHg1MCwgMHgxZiwgMHg4NSwgMHgzNCwgMHg4MiwgMHg4NSwgMHgzMywgMHg4MywgMHhlMCwgMHhmYywgMHg3NH19LAorIHsweDEzNDYsIDY0LCB7IDB4MDAsIDB4MmQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZWMsIDB4ZjAsIDB4MGQsIDB4MDUsIDB4MzQsIDB4ZTUsIDB4MzQsIDB4NzAsCisgIDB4MDIsIDB4MDUsIDB4MzMsIDB4ODAsIDB4ZGEsIDB4OTAsIDB4N2YsIDB4YTksIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWMsIDB4ZTAsIDB4NDQsCisgIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4ZWYsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4YWMsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4ZTQsCisgIDB4OTAsIDB4N2YsIDB4YjUsIDB4ZjAsIDB4MjIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4ZjB9fSwKKyB7MHgxMzg2LCA2NCwgeyAweGYwLCAweDkwLCAweDdmLCAweDk2LCAweGYwLCAweGU0LCAweDkwLCAweDc4LCAweDRhLCAweGYwLCAweDkwLCAweDdmLCAweDk0LCAweGYwLCAweDkwLCAweDdmLCAweDlkLAorICAweDc0LCAweGZmLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk3LCAweGYwLCAweDMwLCAweDAwLCAweDA3LCAweGU1LCAweDI5LCAweDU0LCAweGYwLCAweGZmLAorICAweDgwLCAweDAyLCAweDdmLCAweDAwLCAweGVmLCAweDQ0LCAweDA4LCAweDkwLCAweDc4LCAweDQxLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk4LCAweGYwLAorICAweDkwLCAweDdmLCAweDk1LCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweGZmLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk4LCAweGYwfX0sCisgezB4MTNjNiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHhmMCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhmMCwgMHg5MCwgMHg3ZiwKKyAgMHg5MiwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHgyMiwgMHg4ZiwgMHgxYSwgMHgwNSwgMHgyZCwgMHhlNSwgMHgyZCwgMHhhZSwgMHgyYywgMHg3MCwgMHgwMiwKKyAgMHgwNSwgMHgyYywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlNSwgMHgxYSwgMHhmMCwgMHgxMiwgMHgxOCwgMHhmMCwgMHgwNSwgMHgyZCwgMHhlNSwKKyAgMHgyZCwgMHhhYywgMHgyYywgMHg3MCwgMHgwMiwgMHgwNSwgMHgyYywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHgxNX19LAorIHsweDE0MDYsIDY0LCB7IDB4MjMsIDB4ZTUsIDB4MjMsIDB4NjAsIDB4MWYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4YzAsCisgIDB4ODMsIDB4YzAsIDB4ODIsIDB4ZTAsIDB4ZmUsIDB4MTIsIDB4MTgsIDB4ZDgsIDB4OGYsIDB4MWEsIDB4ZWUsIDB4NGYsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsCisgIDB4ZjAsIDB4ODAsIDB4YjUsIDB4MjIsIDB4OGYsIDB4MWEsIDB4ZTQsIDB4ZjUsIDB4MWIsIDB4NzUsIDB4MWMsIDB4ZmYsIDB4NzUsIDB4MWQsIDB4MTksIDB4NzUsCisgIDB4MWUsIDB4ODYsIDB4YWIsIDB4MWMsIDB4YWEsIDB4MWQsIDB4YTksIDB4MWUsIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4MTEsIDB4YzQsIDB4YjR9fSwKKyB7MHgxNDQ2LCA2NCwgeyAweDAzLCAweDFkLCAweGFmLCAweDFiLCAweDA1LCAweDFiLCAweGVmLCAweGI1LCAweDFhLCAweDAxLCAweDIyLCAweDEyLCAweDExLCAweGFiLCAweDdlLCAweDAwLCAweDI5LAorICAweGZmLCAweGVlLCAweDNhLCAweGE5LCAweDA3LCAweDc1LCAweDFjLCAweGZmLCAweGY1LCAweDFkLCAweDg5LCAweDFlLCAweDgwLCAweGQ0LCAweDdiLCAweDAwLAorICAweDdhLCAweDAwLCAweDc5LCAweDAwLCAweDIyLCAweGU0LCAweDkwLCAweDc4LCAweDQxLCAweGYwLCAweDkwLCAweDc4LCAweDRmLCAweDc0LCAweGMwLCAweGYwLAorICAweGU0LCAweDkwLCAweDc4LCAweDUwLCAweGYwLCAweGU1LCAweDJjLCAweDkwLCAweDc4LCAweDUxLCAweGYwLCAweGFlLCAweDJjLCAweGU1LCAweDJkfX0sCisgezB4MTQ4NiwgNjQsIHsgMHg5MCwgMHg3OCwgMHg1MiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg1NCwgMHhlNSwgMHgyMywgMHhmMCwgMHg5MCwgMHg3OCwgMHg1NywgMHg3NCwgMHgwNCwgMHhmMCwgMHg5MCwKKyAgMHg3ZiwgMHhlMiwgMHhlMCwgMHg0NCwgMHgxMCwgMHhmMCwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHhlNCwgMHg5MCwgMHg3OCwgMHg1NSwgMHhmMCwgMHg5MCwKKyAgMHg3OCwgMHg1NSwgMHhlMCwgMHg2MCwgMHhmYSwgMHgyMiwgMHhlNCwgMHg5MCwgMHg3OCwgMHg0MSwgMHhmMCwgMHhlNSwgMHgyYywgMHg5MCwgMHg3OCwgMHg0ZiwKKyAgMHhmMCwgMHhhZSwgMHgyYywgMHhlNSwgMHgyZCwgMHg5MCwgMHg3OCwgMHg1MCwgMHhmMCwgMHg5MCwgMHg3OCwgMHg1MSwgMHg3NCwgMHhjMCwgMHhmMH19LAorIHsweDE0YzYsIDY0LCB7IDB4ZTQsIDB4OTAsIDB4NzgsIDB4NTIsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NTQsIDB4ZTUsIDB4MjMsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NTcsIDB4NzQsIDB4MDQsIDB4ZjAsCisgIDB4ZTQsIDB4OTAsIDB4NzgsIDB4NTUsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NTUsIDB4ZTAsIDB4NjAsIDB4ZmEsIDB4MjIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDQsCisgIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4NjAsIDB4MGYsIDB4MTQsIDB4NjAsIDB4MTMsIDB4MTQsIDB4NjAsCisgIDB4MTcsIDB4ODAsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MTMsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZWYsIDB4ZjB9fSwKKyB7MHgxNTA2LCA2NCwgeyAweDgwLCAweDBjLCAweDkwLCAweDdmLCAweGNiLCAweGVmLCAweGYwLCAweDgwLCAweDA1LCAweDkwLCAweDdmLCAweGNkLCAweGVmLCAweGYwLCAweGU1LCAweDE2LCAweDQyLAorICAweDJhLCAweDIyLCAweGU1LCAweDE1LCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDE0LCAweDYwLAorICAweDBmLCAweDE0LCAweDYwLCAweDEzLCAweDE0LCAweDYwLCAweDE3LCAweDgwLCAweDAwLCAweDkwLCAweDdmLCAweGI3LCAweGVmLCAweGYwLCAweDgwLCAweDEzLAorICAweDkwLCAweDdmLCAweGI5LCAweGVmLCAweGYwLCAweDgwLCAweDBjLCAweDkwLCAweDdmLCAweGJiLCAweGVmLCAweGYwLCAweDgwLCAweDA1LCAweDkwfX0sCisgezB4MTU0NiwgNjQsIHsgMHg3ZiwgMHhiZCwgMHhlZiwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0MiwgMHgyYSwgMHgyMiwgMHhhZSwgMHgwNywgMHhlNCwgMHhmZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMiwKKyAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHhmZCwgMHgxMiwgMHgxNiwgMHg0NywgMHg5MCwgMHg3OCwKKyAgMHg0MSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZSwgMHhmMCwgMHhlNCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMiwgMHhmNSwgMHg4MiwKKyAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmZCwgMHgxMiwgMHgxNiwgMHg0NywgMHgyMiwgMHhjMCwgMHhlMH19LAorIHsweDE1ODYsIDY0LCB7IDB4YzAsIDB4ZjAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4YzAsIDB4ZDAsCisgIDB4NzUsIDB4ZDAsIDB4MDgsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YTksIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MTIsIDB4MTMsIDB4MTIsIDB4ZDAsCisgIDB4ZDAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZjAsIDB4ZDAsIDB4ZTAsIDB4MzIsCisgIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDF9fSwKKyB7MHgxNWM2LCA2NCwgeyAweDc0LCAweDAyLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAzLCAweGYwLCAweGU1LCAweDE1LCAweDI0LAorICAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLAorICAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LAorICAweDA0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAzLCAweGYwLCAweGU1LCAweDE1fX0sCisgezB4MTYwNiwgNjQsIHsgMHgyNCwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwKKyAgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwKKyAgMHgwNiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMywgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwKKyAgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMH19LAorIHsweDE2NDYsIDY0LCB7IDB4MjIsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsCisgIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDcsIDB4ZjAsIDB4OTAsIDB4YzAsCisgIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWQsIDB4ZjAsIDB4MjIsIDB4OTAsCisgIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4NzgsIDB4NDF9fSwKKyB7MHgxNjg2LCA2NCwgeyAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAzLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1LAorICAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweGU1LCAweDE1LAorICAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDE0LCAweDYwLCAweDBlLCAweDE0LCAweDYwLCAweDExLAorICAweDE0LCAweDYwLCAweDE0LCAweDgwLCAweDAwLCAweDkwLCAweDdmLCAweGM2LCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweGM4LCAweGUwfX0sCisgezB4MTZjNiwgNjQsIHsgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhjYSwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhjYywgMHhlMCwgMHhmZiwgMHgyMiwgMHhlNSwgMHgxNSwgMHgyNCwKKyAgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxNCwgMHg2MCwgMHgwZSwgMHgxNCwgMHg2MCwgMHgxMSwgMHgxNCwKKyAgMHg2MCwgMHgxNCwgMHg4MCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhiOCwgMHhlMCwgMHhmZiwgMHgyMiwKKyAgMHg5MCwgMHg3ZiwgMHhiYSwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhiYywgMHhlMCwgMHhmZiwgMHgyMiwgMHhlNSwgMHgxNSwgMHgyNH19LAorIHsweDE3MDYsIDY0LCB7IDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4NjAsIDB4MGUsIDB4MTQsIDB4NjAsIDB4MTEsIDB4MTQsIDB4NjAsCisgIDB4MTQsIDB4ODAsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsCisgIDB4N2YsIDB4Y2IsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsCisgIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YzQsIDB4ZTQsIDB4ZjB9fSwKKyB7MHgxNzQ2LCA2NCwgeyAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA0LCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLAorICAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdiLCAweDQxLCAweGUwLCAweGY1LCAweDM2LCAweDQzLCAweDEzLCAweDEwLCAweGEzLCAweGUwLAorICAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDE3LCAweGYwLCAweDc0LCAweDM3LCAweGYwLCAweDkwLCAweDdiLCAweDQzLCAweGUwLCAweGY1LAorICAweDM3LCAweGEzLCAweGUwLCAweDU0LCAweGYwLCAweGY1LCAweDI5LCAweGUwLCAweDYwLCAweDAyLCAweGQyLCAweDBhLCAweDIyLCAweGMwLCAweGUwfX0sCisgezB4MTc4NiwgNjQsIHsgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhkMiwgMHgwMSwgMHg1MywgMHg5MSwKKyAgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwKKyAgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwKKyAgMHg3NSwgMHg4NiwgMHgwMCwgMHhkMiwgMHgwOCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwOCwgMHhmMCwgMHhkMH19LAorIHsweDE3YzYsIDY0LCB7IDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4MTIsIDB4MTgsIDB4YzAsIDB4YWUsIDB4MDcsCisgIDB4MTIsIDB4MTgsIDB4YzAsIDB4YWQsIDB4MDcsIDB4ZWUsIDB4NmQsIDB4NjAsIDB4MTAsIDB4MTIsIDB4MTgsIDB4YzAsIDB4YWUsIDB4MDcsIDB4ZWUsIDB4NmQsCisgIDB4NjAsIDB4MDcsIDB4MTIsIDB4MTgsIDB4YzAsIDB4YWQsIDB4MDcsIDB4ODAsIDB4ZWMsIDB4YWYsIDB4MDYsIDB4MjIsIDB4NzQsIDB4MDAsIDB4ZjUsIDB4ODYsCisgIDB4OTAsIDB4ZmQsIDB4YTUsIDB4N2MsIDB4MDUsIDB4YTMsIDB4ZTUsIDB4ODIsIDB4NDUsIDB4ODMsIDB4NzAsIDB4ZjksIDB4MjIsIDB4OTAsIDB4N2Z9fSwKKyB7MHgxODA2LCA2NCwgeyAweGQ2LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDQzLCAweDg3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDIyLCAweDkwLCAweDdmLCAweGQ2LAorICAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDMwLCAweDBiLCAweDA0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDdmLAorICAweGY0LCAweDdlLCAweDAxLCAweDEyLCAweDE4LCAweDZiLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweDIyLCAweDEyLCAweDEzLAorICAweDdjLCAweDEyLCAweDE4LCAweDA0LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDMwLCAweGU3LCAweDBhLCAweDdmLCAweDA1LCAweDdlLCAweDAwfX0sCisgezB4MTg0NiwgNjQsIHsgMHgxMiwgMHgxOCwgMHg2YiwgMHgxMiwgMHgxOCwgMHg5ZSwgMHgxMiwgMHgwYSwgMHhiOCwgMHgyMiwgMHgwMywgMHgzNSwgMHg4MCwgMHgwMCwgMHgwMCwgMHgwMywgMHgyZSwKKyAgMHg4MSwgMHgwMCwgMHgwMCwgMHhjMSwgMHg4NSwgMHhjMSwgMHg4MSwgMHhjMSwgMHgwOCwgMHhjMSwgMHgwMCwgMHhjMSwgMHgwNiwgMHgwMSwgMHgyMiwgMHgwMCwKKyAgMHgwMSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg4ZSwgMHgxOCwgMHg4ZiwgMHgxOSwgMHhlNSwgMHgxOSwgMHgxNSwgMHgxOSwgMHhhZSwgMHgxOCwgMHg3MCwgMHgwMiwKKyAgMHgxNSwgMHgxOCwgMHg0ZSwgMHg2MCwgMHgwOCwgMHgxMiwgMHgxNywgMHhmMywgMHgxMiwgMHgxNywgMHhmMywgMHg4MCwgMHhlYiwgMHgyMiwgMHhlNX19LAorIHsweDE4ODYsIDY0LCB7IDB4MTUsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MDQsIDB4ZmYsIDB4NDQsIDB4MTAsIDB4OTAsIDB4N2YsCisgIDB4ZDcsIDB4ZjAsIDB4ZWYsIDB4NDQsIDB4MzAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4N2YsIDB4MGQsCisgIDB4N2UsIDB4MDAsIDB4MTIsIDB4MTgsIDB4NmIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4NzgsIDB4NDEsCisgIDB4NzQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDMsIDB4ZjB9fSwKKyB7MHgxOGM2LCA2NCwgeyAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDA0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLAorICAweDIyLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDA1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDc4LCAweDQxLAorICAweDc0LCAweDA2LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweGU0LCAweDkwLCAweDc4LCAweDQxLCAweGYwLCAweDkwLCAweGMwLAorICAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDUzLCAweGQ4LCAweGVmLCAweDMyLCAweDAwLCAweDEyLCAweDAxLCAweDEwLCAweDAxLCAweGZmLCAweDAwfX0sCisgezB4MTkwNiwgNjQsIHsgMHgwMCwgMHg0MCwgMHhjZCwgMHgwNiwgMHgwYSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMCwgMHgwNCwgMHgwOSwgMHgwMiwgMHg3NCwgMHgwMCwgMHgwMSwKKyAgMHgwMSwgMHgwMCwgMHhhMCwgMHgzMiwgMHgwOSwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwZSwgMHhmZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMSwKKyAgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMywgMHgwMiwgMHg0MCwKKyAgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNSwgMHgwMiwgMHg0MCwgMHgwMH19LAorIHsweDE5NDYsIDY0LCB7IDB4MDAsIDB4MDcsIDB4MDUsIDB4MDYsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDcsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsCisgIDB4ODEsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODMsIDB4MDIsCisgIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODUsIDB4MDIsIDB4NDAsIDB4MDAsCisgIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODYsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODcsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDF9fSwKKyB7MHgxOTg2LCA2NCwgeyAweDA0LCAweDAzLCAweDA5LCAweDA0LCAweDQ4LCAweDAzLCAweDRiLCAweDAwLCAweDY1LCAweDAwLCAweDc5LCAweDAwLCAweDczLCAweDAwLCAweDcwLCAweDAwLCAweDYxLAorICAweDAwLCAweDZlLCAweDAwLCAweDJjLCAweDAwLCAweDIwLCAweDAwLCAweDYxLCAweDAwLCAweDIwLCAweDAwLCAweDY0LCAweDAwLCAweDY5LCAweDAwLCAweDc2LAorICAweDAwLCAweDY5LCAweDAwLCAweDczLCAweDAwLCAweDY5LCAweDAwLCAweDZmLCAweDAwLCAweDZlLCAweDAwLCAweDIwLCAweDAwLCAweDZmLCAweDAwLCAweDY2LAorICAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDZlLCAweDAwLCAweDZmLCAweDAwLCAweDUzLCAweDAwLCAweDc5LCAweDAwfX0sCisgezB4MTljNiwgNjQsIHsgMHg3MywgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2MywgMHgwMCwgMHgyZSwgMHgwMCwgMHgzNiwgMHgwMywgMHg1NSwgMHgwMCwgMHg1MywKKyAgMHgwMCwgMHg0MiwgMHgwMCwgMHgyMCwgMHgwMCwgMHgzNCwgMHgwMCwgMHgyZCwgMHgwMCwgMHg3MCwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg3MiwgMHgwMCwgMHg3NCwKKyAgMHgwMCwgMHgyMCwgMHgwMCwgMHg1MywgMHgwMCwgMHg2NSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2YywgMHgwMCwgMHgyMCwKKyAgMHgwMCwgMHg0MSwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2MSwgMHgwMCwgMHg3MCwgMHgwMCwgMHg3NCwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3MiwgMHgwMH19LAorIHsweDFhMDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxYTQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MWE4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDFhYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MTcsIDB4ODQsIDB4MDAsIDB4MDIsIDB4MWJ9fSwKKyB7MHgxYjA2LCAyMSwgeyAweDA0LCAweDAwLCAweDAyLCAweDE3LCAweDMyLCAweDAwLCAweDAyLCAweDE3LCAweGFiLCAweDAwLCAweDAyLCAweDFiLCAweDEwLCAweDAwLCAweDAyLCAweDFiLCAweDE0LAorICAweDAwLCAweDAyLCAweDE1LCAweDg0fX0sCisgezB4ZmZmZiwgMCwgezB4MDB9fQorfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTQ5d2xjX2Z3LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2E0OXdsY19mdy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlZjA2YTMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2E0OXdsY19mdy5oCkBAIC0wLDAgKzEsNDc2IEBACisvKiBrZXlzcGFuX3VzYTQ5d19mdy5oCisKKwlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBhcyBrZXlzcGFuX3VzYTQ5d19mdy5oIGlzCisKKwkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDMKKwkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQorCQkKKwlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKKwlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKKwlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZSAKKwlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlIAorCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbCAKKwlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLiAKKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoICAKKwlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlIAorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gCisJcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCisKK3N0YXRpYyBjaGFyIHRoZUZpcm13YXJlRGF0ZTQ5W10gPQorCSIwMi8xNC8yMDAyICAwMjozN3AgICAgICAgICAgICAgIDE5LDM0NyBVU0E0OSI7CisKKworCitzdGF0aWMgY2hhciB0aGVGaXJtd2FyZURhdGU2NVtdID0KKwkiMDEvMzEvMjAwMyAgMDk6MzRhICAgICAgICAgICAgICAxOSwzMzEgVVNBNjUiOworCisKKyovCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCBrZXlzcGFuX3VzYTQ5d2xjX2Zpcm13YXJlW10gPSB7CisgezB4N2Y5MiwgIDEsIHsgMHgwMX19LAorIHsweDAwMzMsICAzLCB7IDB4MDIsIDB4MTgsIDB4ZmJ9fSwKKyB7MHgwMDM2LCAxMywgeyAweGU1LCAweDExLCAweDA0LCAweDkwLCAweDc4LCAweDQxLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyfX0sCisgezB4MDA0NiwgMTYsIHsgMHhlNCwgMHhmZiwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZSwgMHhlNSwgMHgxNX19LAorIHsweDAwNTYsIDE2LCB7IDB4MjQsIDB4MDQsIDB4ZmQsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZmEsIDB4YTksIDB4MDUsIDB4N2IsIDB4MDEsIDB4ZWYsIDB4N2MsIDB4MDAsIDB4MjksIDB4Zjl9fSwKKyB7MHgwMDY2LCAxNiwgeyAweGVjLCAweDNhLCAweGZhLCAweGVlLCAweDEyLCAweDExLCAweGVjLCAweDBmLCAweGJmLCAweDIyLCAweGQ3LCAweGU1LCAweDE1LCAweDI0LCAweDA1LCAweGY1fX0sCisgezB4MDA3NiwgMTYsIHsgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwMSwgMHgzNCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgwOX19LAorIHsweDAwODYsIDE2LCB7IDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NzAsIDB4MGUsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MGEsIDB4ZjUsIDB4ODJ9fSwKKyB7MHgwMDk2LCAxNiwgeyAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDE4LCAweDdmLCAweDAxLCAweGU0LCAweGZkLCAweDEyLCAweDE2LCAweDZiLCAweGU1fX0sCisgezB4MDBhNiwgMTYsIHsgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhjZiwgMHhmMCwgMHg4MCwgMHg0MX19LAorIHsweDAwYjYsIDE2LCB7IDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MDAsIDB4MDN9fSwKKyB7MHgwMGM2LCAxNiwgeyAweGU1LCAweDE1LCAweDI0LCAweDA3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDEyLCAweDE1LCAweGFifX0sCisgezB4MDBkNiwgMTYsIHsgMHg3ZiwgMHgwMSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgwOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZCwgMHgxMn19LAorIHsweDAwZTYsIDE2LCB7IDB4MTYsIDB4NmIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MzB9fSwKKyB7MHgwMGY2LCAxNiwgeyAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDgwLCAweGYwfX0sCisgezB4MDAwMywgMTYsIHsgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NH19LAorIHsweDAwMTMsIDE2LCB7IDB4ZjAsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjMsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjR9fSwKKyB7MHgwMDIzLCAxNiwgeyAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyfX0sCisgezB4MDA0MywgIDMsIHsgMHgwMiwgMHgxYiwgMHgwMH19LAorIHsweDAwMDAsICAzLCB7IDB4MDIsIDB4MTAsIDB4OTB9fSwKKyB7MHgwMTA2LCA2NCwgeyAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGY0LCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLAorICAweGUwLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYyLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM2LCAweGY1LAorICAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGU1LCAweDE1LCAweDI0LAorICAweDBiLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDMyLCAweGU1LCAweDE1LCAweDI0LCAweDBjfX0sCisgezB4MDE0NiwgNjQsIHsgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHgzZiwgMHhmZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNSwgMHg4MiwKKyAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMywgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwKKyAgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwKKyAgMHgwZCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwMiwgMHg0ZiwgMHhlNX19LAorIHsweDAxODYsIDY0LCB7IDB4MTUsIDB4MjQsIDB4MTcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MTEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzIsCisgIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4ODAsIDB4MGYsIDB4ZTUsIDB4MTUsIDB4MjQsCisgIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTQsIDB4ZmYsIDB4ZTUsIDB4MTUsCisgIDB4MjQsIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmQsIDB4MTIsIDB4MTYsIDB4NmIsIDB4ZTV9fSwKKyB7MHgwMWM2LCA2NCwgeyAweDE1LCAweDI0LCAweDBlLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDExLCAweGU1LCAweDE1LCAweDI0LCAweDMzLAorICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDgwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LAorICAweDMzLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDMzLAorICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZjLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDBmfX0sCisgezB4MDIwNiwgNjQsIHsgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgyZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMywgMHhmNSwgMHg4MiwgMHhlNCwKKyAgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwKKyAgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHgxMiwgMHgxNiwgMHgwYiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwKKyAgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHgxMiwgMHgxNiwgMHgzYiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMywgMHhmNSwgMHg4MiwgMHhlNH19LAorIHsweDAyNDYsIDY0LCB7IDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTUsIDB4ZGIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCisgIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4NDQsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsCisgIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MTEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsCisgIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MGYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjV9fSwKKyB7MHgwMjg2LCA2NCwgeyAweDgzLCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGY0LCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM5LCAweGY1LCAweDgyLAorICAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDEyLCAweGY1LCAweDgyLAorICAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDQ0LCAweGU1LCAweDE1LCAweDI0LCAweDEzLCAweGY1LCAweDgyLCAweGU0LCAweDM1LAorICAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDExLCAweGU1LCAweDE1LCAweDI0LCAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0fX0sCisgezB4MDJjNiwgNjQsIHsgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg4MCwgMHgwZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwKKyAgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwKKyAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxNiwKKyAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNSwgMHhmNSwgMHg4Mn19LAorIHsweDAzMDYsIDY0LCB7IDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsCisgIDB4ODMsIDB4ZTAsIDB4MzAsIDB4ZTAsIDB4MTEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsCisgIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4ODAsIDB4MGYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsCisgIDB4ODMsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjV9fSwKKyB7MHgwMzQ2LCA2NCwgeyAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE1LCAweDI0LCAweDNiLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweGU1LAorICAweDE1LCAweDI0LCAweDE5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDExLCAweGU1LCAweDE1LCAweDI0LAorICAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDEwLCAweGYwLCAweDgwLCAweDBmLCAweGU1LCAweDE1LAorICAweDI0LCAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGVmLCAweGYwLCAweDkwLCAweDc4fX0sCisgezB4MDM4NiwgNjQsIHsgMHg0MSwgMHg3NCwgMHhmNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg5MCwKKyAgMHhjMCwgMHgwMCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxYSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwKKyAgMHg2YiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwKKyAgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMywgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNH19LAorIHsweDAzYzYsIDY0LCB7IDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjEsIDB4ZjAsIDB4MTIsIDB4MDAsCisgIDB4MzYsIDB4ZWYsIDB4NTQsIDB4ZmUsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCisgIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZmYsIDB4ZjAsIDB4ZmQsIDB4ZTQsIDB4ZmYsIDB4MTIsIDB4MTYsIDB4NmIsIDB4ZTUsIDB4MTUsCisgIDB4MjQsIDB4MmMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MmJ9fSwKKyB7MHgwNDA2LCA2NCwgeyAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweGU1LCAweDE2LCAweDQyLCAweDEzLCAweGU1LCAweDE1LCAweDI0LCAweDFiLAorICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDcwLCAweDBlLCAweGU1LCAweDE1LCAweDI0LCAweDI1LCAweGY1LCAweDgyLAorICAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDI4LCAweGU1LCAweDE1LCAweDI0LCAweDMyLCAweGY1LCAweDgyLCAweGU0LCAweDM1LAorICAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDAyLCAweGZmLCAweGYwLCAweGZkLCAweGU0LCAweGZmLCAweDEyLCAweDE2LCAweDZiLCAweGU1fX0sCisgezB4MDQ0NiwgNjQsIHsgMHgxNSwgMHgyNCwgMHgyYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0MiwgMHgxMywKKyAgMHhlNSwgMHgxNSwgMHgyNCwgMHgxYywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHg3MCwgMHgwZSwgMHhlNSwKKyAgMHgxNSwgMHgyNCwgMHgyNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgyYSwgMHg5MCwgMHg3OCwgMHg0MSwKKyAgMHg3NCwgMHhmMiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMH19LAorIHsweDA0ODYsIDY0LCB7IDB4NDQsIDB4MDQsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZWYsIDB4NjAsIDB4MGYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCisgIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MWQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsCisgIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MjcsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsCisgIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjMsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjV9fSwKKyB7MHgwNGM2LCA2NCwgeyAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDFlLAorICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDI4LCAweGU1LCAweDE1LCAweDI0LCAweDMyLCAweGY1LCAweDgyLAorICAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZlLCAweGZmLCAweGYwLCAweGZkLCAweGU0LCAweGZmLCAweDEyLCAweDE2LCAweDZiLAorICAweGU1LCAweDE1LCAweDI0LCAweDJkLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweGU1fX0sCisgezB4MDUwNiwgNjQsIHsgMHgxNiwgMHg0MiwgMHgxMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgxZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg3MCwgMHgwZSwKKyAgMHhlNSwgMHgxNSwgMHgyNCwgMHgyNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgyNywgMHhlNSwgMHgxNSwKKyAgMHgyNCwgMHgzMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwMSwgMHhmZiwgMHhmMCwgMHhmZCwgMHhlNCwKKyAgMHhmZiwgMHgxMiwgMHgxNiwgMHg2YiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyZCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4M319LAorIHsweDA1NDYsIDY0LCB7IDB4ZTQsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjAsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsCisgIDB4ZTAsIDB4NzAsIDB4MGUsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsCisgIDB4MTgsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjIsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsCisgIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjEsIDB4ZjUsIDB4ODJ9fSwKKyB7MHgwNTg2LCA2NCwgeyAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LAorICAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDIyLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LAorICAweDgzLCAweGUwLCAweDYwLCAweDFmLCAweGU1LCAweDE1LCAweDI0LCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LAorICAweDAxLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDNhLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGU0LCAweGYwfX0sCisgezB4MDVjNiwgNjQsIHsgMHhlNSwgMHgxNiwgMHg0MiwgMHgxMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgyMywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwKKyAgMHgwMywgMHgxMiwgMHgxOCwgMHg3YSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwKKyAgMHg2MCwgMHgyMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwOCwKKyAgMHhmMCwgMHhlNSwgMHgxNiwgMHhjNCwgMHg1NCwgMHhmMCwgMHhmZiwgMHg0MiwgMHgxMSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg0ZiwgMHhmMH19LAorIHsweDA2MDYsIDY0LCB7IDB4OTAsIDB4NzgsIDB4NDEsIDB4ZTAsIDB4NGYsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsCisgIDB4ZTAsIDB4NjAsIDB4MjQsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsCisgIDB4ZjcsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4YzQsIDB4NTQsIDB4ZjAsIDB4ZjQsIDB4ZmYsIDB4NTIsIDB4MTEsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NWYsCisgIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZTAsIDB4NWYsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZTksIDB4ZTAsIDB4MTIsIDB4MTEsIDB4ZmV9fSwKKyB7MHgwNjQ2LCA2NCwgeyAweDA3LCAweDk5LCAweDAwLCAweDA4LCAweDBkLCAweDAxLCAweDA4LCAweDc5LCAweDAzLCAweDA2LCAweDYyLCAweDA2LCAweDA3LCAweDhhLCAweDA4LCAweDA3LCAweDdlLAorICAweDA5LCAweDA3LCAweDY2LCAweDBhLCAweDA3LCAweDc1LCAweDBiLCAweDAwLCAweDAwLCAweDA4LCAweGM4LCAweDkwLCAweDdmLCAweGViLCAweGUwLCAweDI0LAorICAweGZlLCAweDYwLCAweDFjLCAweDE0LCAweDcwLCAweDAzLCAweDAyLCAweDA3LCAweDE0LCAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDA3LCAweDVjLAorICAweDc0LCAweDE5LCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweDc0LCAweDAwLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDA4LCAweGNmfX0sCisgezB4MDY4NiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHgwNCwgMHg3NSwgMHg4MiwgMHgxNywgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHgzMCwKKyAgMHhlMCwgMHgwNCwgMHg3ZiwgMHgwMiwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgwMywgMHg3NSwgMHg4MiwgMHg4MiwgMHg3NSwgMHg4MywgMHgxOSwgMHhlZiwgMHhmMCwKKyAgMHg3NSwgMHg4MiwgMHg2ZCwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NSwgMHg4MiwgMHg2NiwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NSwgMHg4MiwKKyAgMHg1ZiwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NSwgMHg4MiwgMHg1OCwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYX19LAorIHsweDA2YzYsIDY0LCB7IDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDQsIDB4N2YsIDB4NjQsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MzIsIDB4NzUsIDB4ODIsIDB4MWEsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZWYsCisgIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWYsIDB4ZTAsIDB4ZmUsIDB4OTAsIDB4N2YsIDB4ZWUsIDB4ZTAsIDB4N2MsIDB4MDAsIDB4MjQsIDB4MDAsIDB4ZjUsIDB4MTgsCisgIDB4ZWMsIDB4M2UsIDB4ZjUsIDB4MTcsIDB4NzUsIDB4MzMsIDB4MTksIDB4NzUsIDB4MzQsIDB4MTIsIDB4NzUsIDB4ODIsIDB4MTQsIDB4NzUsIDB4ODMsIDB4MTksCisgIDB4ZTAsIDB4NzUsIDB4MjcsIDB4MDAsIDB4ZjUsIDB4MjgsIDB4ZDMsIDB4ZTUsIDB4MjgsIDB4OTUsIDB4MTgsIDB4ZTUsIDB4MjcsIDB4OTUsIDB4MTd9fSwKKyB7MHgwNzA2LCA2NCwgeyAweDQwLCAweDA2LCAweDg1LCAweDE3LCAweDI3LCAweDg1LCAweDE4LCAweDI4LCAweDEyLCAweDEzLCAweDBkLCAweDAyLCAweDA4LCAweGNmLCAweDkwLCAweDdmLCAweGVhLAorICAweGUwLCAweGZmLCAweDEyLCAweDE0LCAweDVmLCAweGVhLCAweDQ5LCAweDYwLCAweDMyLCAweDkwLCAweDdmLCAweGVlLCAweGUwLCAweDc1LCAweDE3LCAweDAwLAorICAweGY1LCAweDE4LCAweGFlLCAweDAyLCAweGFmLCAweDAxLCAweDhlLCAweDMzLCAweDhmLCAweDM0LCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGUwLCAweGZlLAorICAweGEzLCAweGUwLCAweDhlLCAweDI3LCAweGY1LCAweDI4LCAweGQzLCAweDk1LCAweDE4LCAweGU1LCAweDI3LCAweDk1LCAweDE3LCAweDQwLCAweDA2fX0sCisgezB4MDc0NiwgNjQsIHsgMHg4NSwgMHgxNywgMHgyNywgMHg4NSwgMHgxOCwgMHgyOCwgMHgxMiwgMHgxMywgMHgwZCwgMHgwMiwgMHgwOCwgMHhjZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwKKyAgMHgwMSwgMHhmMCwgMHgwMiwgMHgwOCwgMHhjZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwOCwgMHhjZiwgMHg5MCwKKyAgMHg3ZiwgMHgwMCwgMHhlNSwgMHgyNSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwOCwgMHhjZiwgMHg5MCwgMHg3ZiwKKyAgMHhlYSwgMHhlMCwgMHhmNSwgMHgyNSwgMHgwMiwgMHgwOCwgMHhjZiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgyMiwgMHgxMiwgMHgwYX19LAorIHsweDA3ODYsIDY0LCB7IDB4Y2UsIDB4MDIsIDB4MDgsIDB4Y2YsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MjIsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MDIsCisgIDB4MDgsIDB4Y2YsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4N2YsIDB4NjAsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MzEsIDB4MjQsIDB4MDIsIDB4NzAsCisgIDB4NWIsIDB4YTIsIDB4MDAsIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4MjUsIDB4ZTAsIDB4ZmYsIDB4YTIsIDB4MDYsIDB4ZTQsIDB4MzMsIDB4NGYsIDB4OTAsIDB4N2YsCisgIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4Y2YsIDB4ZTR9fSwKKyB7MHgwN2M2LCA2NCwgeyAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA4LCAweGNmLCAweDkwLCAweDdmLAorICAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLAorICAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZkLCAweDkwLCAweDdmLCAweDAwLCAweGYwLAorICAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA4LCAweGNmLCAweDkwLCAweDdmLCAweGI0fX0sCisgezB4MDgwNiwgNjQsIHsgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwOCwgMHhjZiwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxZCwgMHgyNCwgMHgwMiwKKyAgMHg2MCwgMHgwMywgMHgwMiwgMHgwOCwgMHhjZiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNSwgMHhjMiwgMHgwMCwgMHgwMiwgMHgwOCwKKyAgMHhjZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwOCwgMHhjZiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwKKyAgMHgzOCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NH19LAorIHsweDA4NDYsIDY0LCB7IDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4OTAsIDB4N2YsCisgIDB4ZWMsIDB4ZTAsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4MTMsIDB4MTMsIDB4MTMsIDB4NTQsIDB4MWYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4OTAsCisgIDB4N2YsIDB4ZDcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4ODAsIDB4NWYsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsCisgIDB4ODAsIDB4NTYsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTgsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NGEsIDB4OTB9fSwKKyB7MHgwODg2LCA2NCwgeyAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDA0LCAweGQyLCAweDAwLCAweDgwLCAweDNmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLAorICAweDgwLCAweDM2LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDIwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLAorICAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LAorICAweDdmLCAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweDgwLCAweDEwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwfX0sCisgezB4MDhjNiwgNjQsIHsgMHg4MCwgMHgwNywgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgyMiwKKyAgMHhlNSwgMHgxMiwgMHg1NCwgMHgwZiwgMHg3MCwgMHgwMywgMHgwMiwgMHgwOSwgMHhjOCwgMHgxMiwgMHgxNiwgMHg5YSwgMHhlZiwgMHgyMCwgMHhlMSwgMHg3NSwKKyAgMHgxMiwgMHgxNiwgMHhmOCwgMHhlZiwgMHgxNCwgMHhmNSwgMHgxOCwgMHgxMiwgMHgxOCwgMHhjNSwgMHhlZiwgMHgyNSwgMHgxOCwgMHhmZiwgMHhlNCwgMHgzMywKKyAgMHhmZSwgMHhjMywgMHhlZiwgMHg5NCwgMHg4MCwgMHhlZSwgMHg2NCwgMHg4MCwgMHg5NCwgMHg4MCwgMHg1MCwgMHg1OSwgMHg4NSwgMHgxNSwgMHg4Mn19LAorIHsweDA5MDYsIDY0LCB7IDB4ODUsIDB4MTQsIDB4ODMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4ZjUsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4MzAsIDB4ZTAsIDB4MTEsIDB4ZTUsCisgIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ODAsIDB4MGYsCisgIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4ZTUsCisgIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjAsIDB4ZTIsIDB4MTIsIDB4ZTV9fSwKKyB7MHgwOTQ2LCA2NCwgeyAweDE4LCAweDYwLCAweDBlLCAweGY1LCAweDIzLCAweGVmLCAweDI0LCAweDAxLCAweGY1LCAweDJkLCAweGU0LCAweDNlLCAweGY1LCAweDJjLCAweDEyLCAweDE0LCAweGEwLAorICAweGU0LCAweGZmLCAweDEyLCAweDE0LCAweGQ3LCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLAorICAweGUwLCAweDMwLCAweGU3LCAweDVkLCAweDEyLCAweDE4LCAweGM1LCAweGU1LCAweDE1LCAweDI0LCAweDNiLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LAorICAweGY1LCAweDgzLCAweGUwLCAweGZlLCAweGVmLCAweGMzLCAweDllLCAweDUwLCAweDQ4LCAweGU1LCAweDE1LCAweDI0LCAweDJmLCAweGY1LCAweDgyfX0sCisgezB4MDk4NiwgNjQsIHsgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwKKyAgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3YiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzYSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwKKyAgMHg4MywgMHhlNCwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0MiwgMHgxMywgMHg5MCwgMHg3ZiwgMHhjMiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgxMCwgMHhlNSwgMHgxNSwKKyAgMHgyNCwgMHgyNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHgyNCwgMHg4MCwgMHgwMywgMHgxMn19LAorIHsweDA5YzYsIDY0LCB7IDB4MTIsIDB4OWMsIDB4MTIsIDB4MTYsIDB4YzksIDB4ZWYsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MGEsIDB4Y2QsIDB4MTIsIDB4MTcsIDB4YzcsIDB4OGYsIDB4MTgsCisgIDB4MTIsIDB4MTgsIDB4ZDMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsCisgIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTgsIDB4YzMsCisgIDB4OWYsIDB4NTAsIDB4MjgsIDB4MTIsIDB4MTgsIDB4YTksIDB4ZWYsIDB4MzAsIDB4ZTAsIDB4MjEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzgsIDB4ZjV9fSwKKyB7MHgwYTA2LCA2NCwgeyAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDIwLCAweGU3LCAweDEyLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LAorICAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDIwLCAweGUxLCAweDAzLCAweDAyLCAweDBhLCAweGNkLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LAorICAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweGU1LCAweDE4LCAweDcwLCAweDAzLCAweDAyLCAweDBhLAorICAweGNkLCAweGI0LCAweDgwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LCAweDM4LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzfX0sCisgezB4MGE0NiwgNjQsIHsgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwKKyAgMHgzMCwgMHhlNywgMHgyOSwgMHhlNSwgMHgxOCwgMHhkMywgMHg5NCwgMHgyMCwgMHg0MCwgMHgwMywgMHg3NSwgMHgxOCwgMHgyMCwgMHg4NSwgMHgxOCwgMHgyMywKKyAgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywgMHhhMywgMHhhMywgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHg4YywgMHgyYywgMHhmNSwgMHgyZCwKKyAgMHgxMiwgMHgxMywgMHhjZiwgMHhlNSwgMHgxOCwgMHgyNSwgMHhlMCwgMHhmZiwgMHgxMiwgMHgxNSwgMHgwZCwgMHgyMiwgMHhlNSwgMHgxOCwgMHhkM319LAorIHsweDBhODYsIDY0LCB7IDB4OTQsIDB4M2YsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTgsIDB4M2YsIDB4ODUsIDB4MTgsIDB4MjMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzgsIDB4ZjUsIDB4ODIsIDB4ZTQsCisgIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZmMsCisgIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsIDB4YTMsIDB4YTMsCisgIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4MjQsIDB4MDEsIDB4ZjUsIDB4MmQsIDB4ZTQsIDB4M2UsIDB4ZjUsIDB4MmMsIDB4MTIsIDB4MTQsIDB4MWR9fSwKKyB7MHgwYWM2LCA2NCwgeyAweGU1LCAweDE4LCAweDA0LCAweGZmLCAweDEyLCAweDE1LCAweDBkLCAweDIyLCAweGU0LCAweDkwLCAweDdmLCAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LAorICAweGZmLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk2LCAweGYwLCAweDkwLCAweDdmLCAweDk0LCAweGYwLCAweDkwLCAweDc4LCAweDRhLCAweDA0LCAweGYwLAorICAweGY1LCAweDhlLCAweDkwLCAweDdmLCAweDk1LCAweDc0LCAweGMwLCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweDNmLCAweGYwLCAweDkwLCAweDdmLAorICAweDk4LCAweDc0LCAweDJmLCAweGYwLCAweDkwLCAweDc4LCAweDQzLCAweDc0LCAweGY3LCAweGYwLCAweGU0LCAweDkwLCAweDc4LCAweDQxLCAweGYwfX0sCisgezB4MGIwNiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHhkZiwgMHg3NCwgMHg5ZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwKKyAgMHg3ZSwgMHg3YiwgMHg3ZiwgMHhjMCwgMHg3NSwgMHgxNCwgMHg3YiwgMHg3NSwgMHgxNSwgMHhjMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyZSwgMHhmMCwKKyAgMHg3NSwgMHgxNiwgMHgwMSwgMHgxMiwgMHgwZiwgMHgyOCwgMHg3ZSwgMHg3YiwgMHg3ZiwgMHhjMCwgMHg3NSwgMHgxNCwgMHg3YiwgMHg3NSwgMHgxNSwgMHhjMCwKKyAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyZSwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwMSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyNiwgMHhmNSwgMHg4Mn19LAorIHsweDBiNDYsIDY0LCB7IDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4N2UsIDB4N2UsIDB4N2YsIDB4NDAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsCisgIDB4NzQsIDB4N2UsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4NDAsIDB4ZjAsIDB4N2UsIDB4N2UsIDB4N2YsIDB4ODAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsCisgIDB4ODMsIDB4YTMsIDB4YTMsIDB4NzQsIDB4N2UsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4ODAsIDB4ZjAsIDB4N2UsIDB4N2MsIDB4N2YsIDB4MDAsIDB4NzUsIDB4MTQsCisgIDB4N2MsIDB4NzUsIDB4MTUsIDB4MDAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MmQsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDIsIDB4MTIsIDB4MGZ9fSwKKyB7MHgwYjg2LCA2NCwgeyAweDI4LCAweDdlLCAweDdjLCAweDdmLCAweDAwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDAwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDJkLCAweGYwLAorICAweDc1LCAweDE2LCAweDAyLCAweGU1LCAweDE1LCAweDI0LCAweDI2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LCAweDAxLAorICAweGYwLCAweDdlLCAweDdkLCAweDdmLCAweGMwLCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLCAweDc0LCAweDdkLCAweGYwLCAweGEzLCAweDc0LAorICAweGMwLCAweGYwLCAweDdlLCAweDdlLCAweDdmLCAweDAwLCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLCAweGEzLCAweGEzLCAweDc0fX0sCisgezB4MGJjNiwgNjQsIHsgMHg3ZSwgMHhmMCwgMHhhMywgMHg3NCwgMHgwMCwgMHhmMCwgMHg3ZSwgMHg3YywgMHg3ZiwgMHg0MCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHg0MCwgMHg5MCwKKyAgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyYiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwNCwgMHgxMiwgMHgwZiwgMHgyOCwgMHg3ZSwgMHg3YywgMHg3ZiwgMHg0MCwgMHg3NSwKKyAgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHg0MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyYiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwNCwgMHhlNSwgMHgxNSwKKyAgMHgyNCwgMHgyNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMiwgMHhmMCwgMHg3ZSwgMHg3ZCwgMHg3Zn19LAorIHsweDBjMDYsIDY0LCB7IDB4NDAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsIDB4NzQsIDB4N2QsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4NDAsIDB4ZjAsIDB4N2UsIDB4N2QsIDB4N2YsCisgIDB4ODAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsIDB4YTMsIDB4YTMsIDB4NzQsIDB4N2QsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4ODAsIDB4ZjAsCisgIDB4N2UsIDB4N2MsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MjcsIDB4ZjAsCisgIDB4NzUsIDB4MTYsIDB4MDgsIDB4MTIsIDB4MGYsIDB4MjgsIDB4N2UsIDB4N2MsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTV9fSwKKyB7MHgwYzQ2LCA2NCwgeyAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDI3LCAweGYwLCAweDc1LCAweDE2LCAweDA4LCAweGU1LCAweDE1LCAweDI0LCAweDI2LCAweGY1LCAweDgyLCAweGU0LAorICAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LCAweDAzLCAweGYwLCAweDdlLCAweDdjLCAweDdmLCAweGMwLCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LAorICAweDgzLCAweDc0LCAweDdjLCAweGYwLCAweGEzLCAweDc0LCAweGMwLCAweGYwLCAweDdlLCAweDdkLCAweDdmLCAweDAwLCAweDg1LCAweDE1LCAweDgyLCAweDg1LAorICAweDE0LCAweDgzLCAweGEzLCAweGEzLCAweDc0LCAweDdkLCAweGYwLCAweGEzLCAweDc0LCAweDAwLCAweGYwLCAweGMyLCAweDBhLCAweGMyLCAweDA5fX0sCisgezB4MGM4NiwgNjQsIHsgMHhlNCwgMHhmNSwgMHgxMSwgMHhkMiwgMHgwMiwgMHgyMiwgMHhlNSwgMHgxMCwgMHgwNCwgMHg1NCwgMHgwMywgMHhmNSwgMHgxMCwgMHgxNCwgMHg2MCwgMHgxZiwgMHgxNCwKKyAgMHg2MCwgMHgzMSwgMHgxNCwgMHg2MCwgMHg0MywgMHgyNCwgMHgwMywgMHg3MCwgMHg1MiwgMHg3ZSwgMHg3YiwgMHg3ZiwgMHhjMCwgMHg3NSwgMHgxNCwgMHg3YiwKKyAgMHg3NSwgMHgxNSwgMHhjMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyZSwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwMSwgMHg4MCwgMHgzZCwgMHg3ZSwgMHg3YywKKyAgMHg3ZiwgMHgwMCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHgwMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyZCwgMHhmMCwgMHg3NX19LAorIHsweDBjYzYsIDY0LCB7IDB4MTYsIDB4MDIsIDB4ODAsIDB4MjgsIDB4N2UsIDB4N2MsIDB4N2YsIDB4NDAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTgsCisgIDB4NzQsIDB4MmIsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDQsIDB4ODAsIDB4MTMsIDB4N2UsIDB4N2MsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsCisgIDB4MTUsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MjcsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDgsIDB4ZTUsIDB4MzIsIDB4NTUsIDB4MTYsIDB4NzAsCisgIDB4MDMsIDB4MDIsIDB4MGUsIDB4MjcsIDB4ZTUsIDB4MTYsIDB4ZjQsIDB4NTIsIDB4MzIsIDB4ZTUsIDB4MjYsIDB4NTQsIDB4N2YsIDB4ZmYsIDB4NzB9fSwKKyB7MHgwZDA2LCA2NCwgeyAweDE3LCAweGU1LCAweDJhLCAweDU1LCAweDE2LCAweDYwLCAweDM0LCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweGZlLCAweGU1LCAweDE2LCAweGM0LCAweDU0LCAweGYwLAorICAweGY0LCAweGZkLCAweGVlLCAweDVkLCAweGYwLCAweDgwLCAweDIzLCAweGJmLCAweDIwLCAweDIwLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLAorICAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDMwLCAweGUzLCAweDExLCAweGU0LCAweGY1LCAweDJhLCAweDkwLCAweDdmLCAweDk2LCAweGUwLAorICAweGZmLCAweGU1LCAweDE2LCAweGM0LCAweDU0LCAweGYwLCAweGZlLCAweGVmLCAweDRlLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDNhLCAweGY1fX0sCisgezB4MGQ0NiwgNjQsIHsgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgwMywgMHhlMCwgMHgxNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNCwgMHhmNSwKKyAgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgwMywgMHhlMCwgMHgxNCwgMHhmMCwgMHhlMCwgMHg2MCwgMHgwMywgMHgwMiwKKyAgMHgwZSwgMHgyNywgMHg3NCwgMHgwYSwgMHhmMCwgMHgxMiwgMHgwMCwgMHgzNiwgMHhlZiwgMHg1NCwgMHgwMSwgMHhmZiwgMHhmNSwgMHgxOCwgMHhlNSwgMHgxNSwKKyAgMHgyNCwgMHgyYywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2ZiwgMHg2MCwgMHgwNywgMHhlNSwgMHgxOH19LAorIHsweDBkODYsIDY0LCB7IDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsIDB4MTIsIDB4MTgsIDB4ZTEsIDB4OGYsIDB4MTgsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjcsIDB4ZjUsIDB4ODIsIDB4ZTQsCisgIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTgsIDB4NTQsIDB4MTAsIDB4ZmUsIDB4NmYsIDB4NjAsIDB4MDYsIDB4ZWUsIDB4ZjAsCisgIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsCisgIDB4ZmYsIDB4ZTUsIDB4MTgsIDB4NTQsIDB4ODAsIDB4ZmUsIDB4NmYsIDB4NjAsIDB4MDYsIDB4ZWUsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTN9fSwKKyB7MHgwZGM2LCA2NCwgeyAweGU1LCAweDE1LCAweDI0LCAweDI5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE4LCAweDU0LCAweDIwLAorICAweGZlLCAweDZmLCAweDYwLCAweDE1LCAweGVlLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LAorICAweDgzLCAweGUwLCAweDMwLCAweGU0LCAweDA0LCAweGU1LCAweDE2LCAweDQyLCAweDEzLCAweGU1LCAweDE1LCAweDI0LCAweDJhLCAweGY1LCAweDgyLCAweGU0LAorICAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE4LCAweDU0LCAweDQwLCAweGZlLCAweDZmLCAweDYwLCAweDE1LCAweGVlfX0sCisgezB4MGUwNiwgNjQsIHsgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgzMCwgMHhlNSwgMHgwNCwgMHhlNSwKKyAgMHgxNiwgMHg0MiwgMHgxMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwKKyAgMHgyMiwgMHgzMCwgMHgwOSwgMHgwMywgMHgwMiwgMHgwZiwgMHgyNywgMHhlNSwgMHgyNCwgMHgxNCwgMHg2MCwgMHgyYSwgMHgxNCwgMHg2MCwgMHg0MSwgMHgxNCwKKyAgMHg2MCwgMHg1OCwgMHgxNCwgMHg2MCwgMHg2ZiwgMHgyNCwgMHgwNCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZSwgMHhlNSwgMHg3ZSwgMHg3YiwgMHg3Zn19LAorIHsweDBlNDYsIDY0LCB7IDB4YzAsIDB4NzUsIDB4MTQsIDB4N2IsIDB4NzUsIDB4MTUsIDB4YzAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MmUsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDEsIDB4MTIsCisgIDB4MTIsIDB4OWMsIDB4NzUsIDB4MjQsIDB4MDEsIDB4MjIsIDB4N2UsIDB4N2MsIDB4N2YsIDB4MDAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4MDAsCisgIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MmQsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDIsIDB4MTIsIDB4MTIsIDB4OWMsIDB4NzUsIDB4MjQsIDB4MDIsIDB4MjIsCisgIDB4N2UsIDB4N2MsIDB4N2YsIDB4NDAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MmJ9fSwKKyB7MHgwZTg2LCA2NCwgeyAweGYwLCAweDc1LCAweDE2LCAweDA0LCAweDEyLCAweDEyLCAweDljLCAweDc1LCAweDI0LCAweDAzLCAweDIyLCAweDdlLCAweDdjLCAweDdmLCAweDgwLCAweDc1LCAweDE0LAorICAweDdjLCAweDc1LCAweDE1LCAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDI3LCAweGYwLCAweDc1LCAweDE2LCAweDA4LCAweDEyLCAweDEyLCAweDljLAorICAweDc1LCAweDI0LCAweDA0LCAweDIyLCAweDMwLCAweDA0LCAweDMzLCAweGMyLCAweDA0LCAweDUzLCAweDEzLCAweGRmLCAweGU0LCAweGY1LCAweDE4LCAweDdlLAorICAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDJlLCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDExLCAweGE2fX0sCisgezB4MGVjNiwgNjQsIHsgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxOCwgMHhlNSwKKyAgMHgxOCwgMHhiNCwgMHgwMywgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwMywgMHhmMCwgMHg3NSwgMHgyNCwgMHgwNSwgMHgyMiwgMHhlNSwgMHgzNiwKKyAgMHg2MCwgMHgzYiwgMHhkNSwgMHgzNiwgMHgwYSwgMHg1MywgMHgxMywgMHhlZiwgMHgzMCwgMHgwYSwgMHgwNCwgMHhkMiwgMHgwOSwgMHhjMiwgMHgwYSwgMHhlNCwKKyAgMHhmNSwgMHgxOCwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgzNSwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYX19LAorIHsweDBmMDYsIDY0LCB7IDB4MTIsIDB4MTEsIDB4YTYsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsCisgIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDMsIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MjQsCisgIDB4MjIsIDB4ZTQsIDB4ZjUsIDB4MTksIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDEsIDB4ZTUsIDB4MTUsIDB4MjUsIDB4MTksIDB4ZjksIDB4ZWUsIDB4MzUsIDB4MTQsCisgIDB4ZmEsIDB4ZTQsIDB4MTIsIDB4MTEsIDB4ZWMsIDB4MDUsIDB4MTksIDB4ZTUsIDB4MTksIDB4YjQsIDB4M2MsIDB4ZTgsIDB4ZTUsIDB4MTUsIDB4MjR9fSwKKyB7MHgwZjQ2LCA2NCwgeyAweDM1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYzLCAweGYwLAorICAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LCAweDAzLCAweGYwLCAweDkwLCAweGMwLAorICAweDAwLCAweGYwLCAweDdmLCAweDBjLCAweGU0LCAweGZkLCAweDEyLCAweDE2LCAweDZiLCAweDdmLCAweDEwLCAweGU1LCAweDE1LCAweDI0LCAweDMzLCAweGY1LAorICAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDEyLCAweDE1LCAweGRiLCAweDkwLCAweDc4LCAweDQxLCAweDc0fX0sCisgezB4MGY4NiwgNjQsIHsgMHhmMiwgMHhmMCwgMHg3ZiwgMHgwMSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwKKyAgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwKKyAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHg4MCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgwZiwgMHhlNCwKKyAgMHhmZCwgMHgxMiwgMHgxNiwgMHg2YiwgMHhlNCwgMHhmZiwgMHg3ZSwgMHhhMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMiwgMHhmNSwgMHg4MiwgMHhlNH19LAorIHsweDBmYzYsIDY0LCB7IDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZWUsIDB4ZjAsIDB4ZmQsIDB4MTIsIDB4MTYsIDB4NmIsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjEsIDB4ZjAsIDB4OTAsCisgIDB4YzAsIDB4MDAsIDB4ZTQsIDB4ZjAsIDB4N2YsIDB4MDUsIDB4N2QsIDB4N2YsIDB4MTIsIDB4MTYsIDB4NmIsIDB4N2YsIDB4MDEsIDB4MTIsIDB4MTUsIDB4NDMsCisgIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTYsIDB4NmIsIDB4MjIsIDB4NTMsIDB4MTMsIDB4M2YsIDB4OTAsIDB4N2IsIDB4ZjEsIDB4ZTAsIDB4MzAsCisgIDB4ZTMsIDB4MTYsIDB4N2UsIDB4N2IsIDB4N2YsIDB4YzAsIDB4NzUsIDB4MTQsIDB4N2IsIDB4NzUsIDB4MTUsIDB4YzAsIDB4OTAsIDB4N2YsIDB4OTh9fSwKKyB7MHgxMDA2LCA2NCwgeyAweDc0LCAweDJlLCAweGYwLCAweDc1LCAweDE2LCAweDAxLCAweDEyLCAweDA4LCAweGQ3LCAweDkwLCAweDdjLCAweDMxLCAweGUwLCAweDMwLCAweGUzLCAweDE2LCAweDdlLAorICAweDdjLCAweDdmLCAweDAwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDAwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDJkLCAweGYwLCAweDc1LAorICAweDE2LCAweDAyLCAweDEyLCAweDA4LCAweGQ3LCAweDkwLCAweDdjLCAweDcxLCAweGUwLCAweDMwLCAweGUzLCAweDE2LCAweDdlLCAweDdjLCAweDdmLCAweDQwLAorICAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDQwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDJiLCAweGYwLCAweDc1LCAweDE2LCAweDA0fX0sCisgezB4MTA0NiwgNjQsIHsgMHgxMiwgMHgwOCwgMHhkNywgMHg5MCwgMHg3YywgMHhiMSwgMHhlMCwgMHgzMCwgMHhlMywgMHgxNiwgMHg3ZSwgMHg3YywgMHg3ZiwgMHg4MCwgMHg3NSwgMHgxNCwgMHg3YywKKyAgMHg3NSwgMHgxNSwgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyNywgMHhmMCwgMHg3NSwgMHgxNiwgMHgwOCwgMHgxMiwgMHgwOCwgMHhkNywgMHgwNSwKKyAgMHgxMiwgMHhlNSwgMHgxMiwgMHg1NCwgMHgwZiwgMHhmNSwgMHgxNywgMHg3MCwgMHgwNCwgMHgxMiwgMHgxMSwgMHgxYywgMHgyMiwgMHhlNSwgMHgxNywgMHhiNCwKKyAgMHgwMSwgMHgwNCwgMHgxMiwgMHgwYywgMHg4YywgMHgyMiwgMHg5MCwgMHg3ZiwgMHhjMiwgMHhlMCwgMHgyMCwgMHhlMSwgMHgwOCwgMHhlNSwgMHgxM319LAorIHsweDEwODYsIDY0LCB7IDB4NjAsIDB4MDQsIDB4MTIsIDB4MGUsIDB4MjgsIDB4MjIsIDB4MTIsIDB4MGMsIDB4OGMsIDB4MjIsIDB4NzgsIDB4N2YsIDB4ZTQsIDB4ZjYsIDB4ZDgsIDB4ZmQsIDB4NzUsCisgIDB4ODEsIDB4MzcsIDB4MDIsIDB4MTAsIDB4ZDcsIDB4MDIsIDB4MTIsIDB4MjQsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NDAsCisgIDB4MDMsIDB4ZjYsIDB4ODAsIDB4MDEsIDB4ZjIsIDB4MDgsIDB4ZGYsIDB4ZjQsIDB4ODAsIDB4MjksIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4NTQsIDB4MDcsCisgIDB4MjQsIDB4MGMsIDB4YzgsIDB4YzMsIDB4MzMsIDB4YzQsIDB4NTQsIDB4MGYsIDB4NDQsIDB4MjAsIDB4YzgsIDB4ODMsIDB4NDAsIDB4MDQsIDB4ZjR9fSwKKyB7MHgxMGM2LCA2NCwgeyAweDU2LCAweDgwLCAweDAxLCAweDQ2LCAweGY2LCAweGRmLCAweGU0LCAweDgwLCAweDBiLCAweDAxLCAweDAyLCAweDA0LCAweDA4LCAweDEwLCAweDIwLCAweDQwLCAweDgwLAorICAweDkwLCAweDE4LCAweDQ1LCAweGU0LCAweDdlLCAweDAxLCAweDkzLCAweDYwLCAweGJjLCAweGEzLCAweGZmLCAweDU0LCAweDNmLCAweDMwLCAweGU1LCAweDA5LAorICAweDU0LCAweDFmLCAweGZlLCAweGU0LCAweDkzLCAweGEzLCAweDYwLCAweDAxLCAweDBlLCAweGNmLCAweDU0LCAweGMwLCAweDI1LCAweGUwLCAweDYwLCAweGE4LAorICAweDQwLCAweGI4LCAweGU0LCAweDkzLCAweGEzLCAweGZhLCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweGM4LCAweGM1fX0sCisgezB4MTEwNiwgNjQsIHsgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhmMCwgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhkZiwKKyAgMHhlOSwgMHhkZSwgMHhlNywgMHg4MCwgMHhiZSwgMHg5MCwgMHg3ZiwgMHhkMiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgxMSwgMHhhNSwgMHhjMiwKKyAgMHgwOSwgMHg5MCwgMHg3YiwgMHg0MCwgMHhlMCwgMHgxNCwgMHg2MCwgMHgyNiwgMHgxNCwgMHg2MCwgMHgzYiwgMHgxNCwgMHg2MCwgMHg1MCwgMHgyNCwgMHg4MywKKyAgMHg2MCwgMHg2NCwgMHgyNCwgMHg4MCwgMHg3MCwgMHg2MywgMHg3ZSwgMHg3YiwgMHg3ZiwgMHhjMCwgMHg3NSwgMHgxNCwgMHg3YiwgMHg3NSwgMHgxNX19LAorIHsweDExNDYsIDY0LCB7IDB4YzAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MmUsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDEsIDB4MTIsIDB4MDAsIDB4NDYsIDB4ODAsIDB4NGIsIDB4N2UsIDB4N2MsCisgIDB4N2YsIDB4MDAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4MDAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MmQsIDB4ZjAsIDB4NzUsIDB4MTYsCisgIDB4MDIsIDB4MTIsIDB4MDAsIDB4NDYsIDB4ODAsIDB4MzMsIDB4N2UsIDB4N2MsIDB4N2YsIDB4NDAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4NDAsCisgIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MmIsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDQsIDB4MTIsIDB4MDAsIDB4NDYsIDB4ODAsIDB4MWIsIDB4N2V9fSwKKyB7MHgxMTg2LCA2NCwgeyAweDdjLCAweDdmLCAweDgwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDI3LCAweGYwLCAweDc1LCAweDE2LAorICAweDA4LCAweDEyLCAweDAwLCAweDQ2LCAweDgwLCAweDAzLCAweDEyLCAweDE3LCAweDUxLCAweGU0LCAweDkwLCAweDdmLCAweGQzLCAweGYwLCAweDIyLCAweGJiLAorICAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDAyLCAweGU3LCAweDIyLCAweGJiLCAweGZlLCAweDAyLCAweGUzLAorICAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLCAweDBjLCAweGU1LCAweDgyLCAweDI5LCAweGY1fX0sCisgezB4MTFjNiwgNjQsIHsgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlNiwgMHgyMiwgMHhiYiwKKyAgMHhmZSwgMHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlMiwgMHgyMiwgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwKKyAgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhmMCwgMHgyMiwgMHg1MCwgMHgwMiwKKyAgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwgMHhmMywgMHgyMiwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhmOCwgMHhlNCwgMHg5MywgMHg3MH19LAorIHsweDEyMDYsIDY0LCB7IDB4MTIsIDB4NzQsIDB4MDEsIDB4OTMsIDB4NzAsIDB4MGQsIDB4YTMsIDB4YTMsIDB4OTMsIDB4ZjgsIDB4NzQsIDB4MDEsIDB4OTMsIDB4ZjUsIDB4ODIsIDB4ODgsIDB4ODMsCisgIDB4ZTQsIDB4NzMsIDB4NzQsIDB4MDIsIDB4OTMsIDB4NjgsIDB4NjAsIDB4ZWYsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGYsIDB4OTAsIDB4N2YsIDB4YWUsCisgIDB4ZTAsIDB4ZmYsIDB4ZDMsIDB4OTIsIDB4MDAsIDB4ZTQsIDB4MzMsIDB4ZmUsIDB4ZWYsIDB4NGUsIDB4ZjAsIDB4ZDIsIDB4ZTgsIDB4NDMsIDB4ZDgsIDB4MjAsCisgIDB4OTAsIDB4N2YsIDB4ZGUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4ZmZ9fSwKKyB7MHgxMjQ2LCA2NCwgeyAweGYwLCAweDkwLCAweDdmLCAweGE5LCAweGYwLCAweDkwLCAweDdmLCAweGFhLCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFmLCAweDc0LCAweDAxLAorICAweGYwLCAweDkwLCAweDdmLCAweGFlLCAweDc0LCAweDBkLCAweGYwLCAweGQyLCAweGFmLCAweGQyLCAweDBiLCAweDEyLCAweDE4LCAweDA5LCAweGMyLCAweDAxLAorICAweGU0LCAweGY1LCAweDJiLCAweGY1LCAweDMxLCAweGMyLCAweDA3LCAweGMyLCAweDAyLCAweDc1LCAweDI5LCAweDBmLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLAorICAweDY1LCAweDI2LCAweDYwLCAweDA2LCAweDc1LCAweDMyLCAweDBmLCAweGUwLCAweGY1LCAweDI2LCAweDMwLCAweDAyLCAweDAzLCAweDEyLCAweDBmfX0sCisgezB4MTI4NiwgNjQsIHsgMHhlZiwgMHgzMCwgMHgwMSwgMHgwNywgMHhjMiwgMHgwMSwgMHgxMiwgMHgwNiwgMHgzZiwgMHg4MCwgMHhlMiwgMHgzMCwgMHgwOCwgMHhkZiwgMHhjMiwgMHgwOCwgMHgxMiwKKyAgMHgxOCwgMHgyYSwgMHg4MCwgMHhkOCwgMHgyMiwgMHhlNSwgMHgxMywgMHg1NSwgMHgxNiwgMHg2MCwgMHg2YSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzYSwgMHhmNSwKKyAgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg3MCwgMHg1YywgMHhlNSwgMHgxNiwgMHhmNCwgMHg1MiwgMHgxMywgMHhlNSwgMHgxNSwKKyAgMHgyNCwgMHgyNiwgMHhmZiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmZSwgMHhlNCwgMHhmZCwgMHgwZiwgMHhlZiwgMHhhYSwgMHgwNiwgMHg3MCwgMHgwMX19LAorIHsweDEyYzYsIDY0LCB7IDB4MGUsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4ZmMsIDB4NzQsIDB4ODAsIDB4MmQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsCisgIDB4ODMsIDB4ZWMsIDB4ZjAsIDB4MGQsIDB4YmQsIDB4MGIsIDB4ZTIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsCisgIDB4M2EsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MmUsIDB4ZjUsCisgIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTR9fSwKKyB7MHgxMzA2LCA2NCwgeyAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDIyLCAweGU1LCAweDI4LCAweDQ1LCAweDI3LCAweDYwLCAweDU3LCAweGFlLCAweDI3LCAweGFmLCAweDI4LAorICAweGQzLCAweGVmLCAweDk0LCAweDQwLCAweGVlLCAweDk0LCAweDAwLCAweDQwLCAweDA0LCAweDdlLCAweDAwLCAweDdmLCAweDQwLCAweGMzLCAweGU1LCAweDI4LAorICAweDlmLCAweGY1LCAweDI4LCAweGU1LCAweDI3LCAweDllLCAweGY1LCAweDI3LCAweGU0LCAweGZkLCAweGVkLCAweGMzLCAweDlmLCAweGU0LCAweDllLCAweDUwLAorICAweDFmLCAweDg1LCAweDM0LCAweDgyLCAweDg1LCAweDMzLCAweDgzLCAweGUwLCAweGZjLCAweDc0LCAweDAwLCAweDJkLCAweGY1LCAweDgyLCAweGU0fX0sCisgezB4MTM0NiwgNjQsIHsgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlYywgMHhmMCwgMHgwZCwgMHgwNSwgMHgzNCwgMHhlNSwgMHgzNCwgMHg3MCwgMHgwMiwgMHgwNSwgMHgzMywgMHg4MCwgMHhkYSwKKyAgMHg5MCwgMHg3ZiwgMHhhOSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYywgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwKKyAgMHhlZiwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhhYywgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHhmMCwgMHgyMiwKKyAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZiwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3OCwgMHg0YSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NCwgMHhmMH19LAorIHsweDEzODYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4OWQsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZjAsIDB4OTAsIDB4N2YsCisgIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4MzAsIDB4MDAsIDB4MDcsIDB4ZTUsIDB4MjksIDB4NTQsIDB4MGYsIDB4ZmYsCisgIDB4ODAsIDB4MDIsIDB4N2YsIDB4MDAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MWYsIDB4ZjAsIDB4ZTQsCisgIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4M2YsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4ZGZ9fSwKKyB7MHgxM2M2LCA2NCwgeyAweGYwLCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDIyLCAweDhmLCAweDE5LCAweDA1LCAweDJkLCAweGU1LCAweDJkLCAweGFlLCAweDJjLAorICAweDcwLCAweDAyLCAweDA1LCAweDJjLCAweDE0LCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGU1LCAweDE5LCAweGYwLCAweDEyLCAweDE4LCAweGVmLCAweDA1LAorICAweDJkLCAweGU1LCAweDJkLCAweGFjLCAweDJjLCAweDcwLCAweDAyLCAweDA1LCAweDJjLCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLAorICAweDE1LCAweDIzLCAweGU1LCAweDIzLCAweDYwLCAweDFmLCAweGU1LCAweDE1LCAweDI0LCAweDM4LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0fX0sCisgezB4MTQwNiwgNjQsIHsgMHhmNSwgMHg4MywgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhlMCwgMHhmZSwgMHgxMiwgMHgxOCwgMHhkMywgMHg4ZiwgMHgxOSwgMHhlZSwgMHg0ZiwgMHhkMCwgMHg4MiwKKyAgMHhkMCwgMHg4MywgMHhmMCwgMHg4MCwgMHhiNSwgMHgyMiwgMHg5MCwgMHg3OCwgMHg0MSwgMHhlNSwgMHgxMSwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0ZiwgMHg3NCwKKyAgMHhjMCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3OCwgMHg1MCwgMHhmMCwgMHhlNSwgMHgyYywgMHg5MCwgMHg3OCwgMHg1MSwgMHhmMCwgMHhhZSwgMHgyYywgMHhlNSwKKyAgMHgyZCwgMHg5MCwgMHg3OCwgMHg1MiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg1NCwgMHhlNSwgMHgyMywgMHhmMCwgMHg5MCwgMHg3OCwgMHg1NywgMHg3NH19LAorIHsweDE0NDYsIDY0LCB7IDB4MDQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NDQsIDB4MTAsIDB4ZjAsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4NzgsIDB4NTUsCisgIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NTUsIDB4ZTAsIDB4NjAsIDB4ZmEsIDB4MjIsIDB4OGYsIDB4MTksIDB4ZTQsIDB4ZjUsIDB4MWEsIDB4NzUsIDB4MWIsIDB4ZmYsCisgIDB4NzUsIDB4MWMsIDB4MTksIDB4NzUsIDB4MWQsIDB4ODYsIDB4YWIsIDB4MWIsIDB4YWEsIDB4MWMsIDB4YTksIDB4MWQsIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsCisgIDB4MTEsIDB4YmYsIDB4YjQsIDB4MDMsIDB4MWQsIDB4YWYsIDB4MWEsIDB4MDUsIDB4MWEsIDB4ZWYsIDB4YjUsIDB4MTksIDB4MDEsIDB4MjIsIDB4MTJ9fSwKKyB7MHgxNDg2LCA2NCwgeyAweDExLCAweGE2LCAweDdlLCAweDAwLCAweDI5LCAweGZmLCAweGVlLCAweDNhLCAweGE5LCAweDA3LCAweDc1LCAweDFiLCAweGZmLCAweGY1LCAweDFjLCAweDg5LCAweDFkLAorICAweDgwLCAweGQ0LCAweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDAwLCAweDIyLCAweDkwLCAweDc4LCAweDQxLCAweGU1LCAweDExLCAweGYwLCAweGU1LAorICAweDJjLCAweDkwLCAweDc4LCAweDRmLCAweGYwLCAweGFlLCAweDJjLCAweGU1LCAweDJkLCAweDkwLCAweDc4LCAweDUwLCAweGYwLCAweDkwLCAweDc4LCAweDUxLAorICAweDc0LCAweGMwLCAweGYwLCAweGU0LCAweDkwLCAweDc4LCAweDUyLCAweGYwLCAweDkwLCAweDc4LCAweDU0LCAweGU1LCAweDIzLCAweGYwLCAweDkwfX0sCisgezB4MTRjNiwgNjQsIHsgMHg3OCwgMHg1NywgMHg3NCwgMHgwNCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3OCwgMHg1NSwgMHhmMCwgMHg5MCwgMHg3OCwgMHg1NSwgMHhlMCwgMHg2MCwgMHhmYSwgMHgyMiwKKyAgMHhlNSwgMHgxNSwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxNCwgMHg2MCwgMHgwZiwgMHgxNCwKKyAgMHg2MCwgMHgxMywgMHgxNCwgMHg2MCwgMHgxNywgMHg4MCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhlZiwgMHhmMCwgMHg4MCwgMHgxMywgMHg5MCwgMHg3ZiwKKyAgMHhjOSwgMHhlZiwgMHhmMCwgMHg4MCwgMHgwYywgMHg5MCwgMHg3ZiwgMHhjYiwgMHhlZiwgMHhmMCwgMHg4MCwgMHgwNSwgMHg5MCwgMHg3ZiwgMHhjZH19LAorIHsweDE1MDYsIDY0LCB7IDB4ZWYsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MmEsIDB4MjIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsCisgIDB4ODMsIDB4ZTAsIDB4MTQsIDB4NjAsIDB4MGYsIDB4MTQsIDB4NjAsIDB4MTMsIDB4MTQsIDB4NjAsIDB4MTcsIDB4ODAsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YjcsCisgIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MTMsIDB4OTAsIDB4N2YsIDB4YjksIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MGMsIDB4OTAsIDB4N2YsIDB4YmIsIDB4ZWYsIDB4ZjAsCisgIDB4ODAsIDB4MDUsIDB4OTAsIDB4N2YsIDB4YmQsIDB4ZWYsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MmEsIDB4MjIsIDB4YWUsIDB4MDcsIDB4ZTR9fSwKKyB7MHgxNTQ2LCA2NCwgeyAweGZmLCAweGU1LCAweDE1LCAweDI0LCAweDMyLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweGZkLCAweDEyLAorICAweDE2LCAweDZiLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYxLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDE1LAorICAweDI0LCAweDMyLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDgwLCAweGZkLCAweDEyLCAweDE2LCAweDZiLAorICAweDIyLCAweGMwLCAweGUwLCAweGMwLCAweGYwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2fX0sCisgezB4MTU4NiwgNjQsIHsgMHg3NSwgMHg4NiwgMHgwMCwgMHhjMCwgMHhkMCwgMHg3NSwgMHhkMCwgMHgwOCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhOSwgMHg3NCwgMHgwMSwgMHhmMCwKKyAgMHgxMiwgMHgxMywgMHgwZCwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwKKyAgMHhmMCwgMHhkMCwgMHhlMCwgMHgzMiwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwKKyAgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NH19LAorIHsweDE1YzYsIDY0LCB7IDB4ZjMsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4OTAsCisgIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsCisgIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjMsCisgIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2Z9fSwKKyB7MHgxNjA2LCA2NCwgeyAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLAorICAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGY0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYzLAorICAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweDkwLAorICAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmfX0sCisgezB4MTY0NiwgNjQsIHsgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmNiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMywKKyAgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHg5MCwKKyAgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMywgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNSwgMHg4MiwKKyAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MX19LAorIHsweDE2ODYsIDY0LCB7IDB4NzQsIDB4ZjcsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsCisgIDB4ZWQsIDB4ZjAsIDB4MjIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTQsCisgIDB4NjAsIDB4MGUsIDB4MTQsIDB4NjAsIDB4MTEsIDB4MTQsIDB4NjAsIDB4MTQsIDB4ODAsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YzYsIDB4ZTAsIDB4ZmYsIDB4MjIsCisgIDB4OTAsIDB4N2YsIDB4YzgsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4Y2EsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4Y2N9fSwKKyB7MHgxNmM2LCA2NCwgeyAweGUwLCAweGZmLCAweDIyLCAweGU1LCAweDE1LCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDE0LCAweDYwLAorICAweDBlLCAweDE0LCAweDYwLCAweDExLCAweDE0LCAweDYwLCAweDE0LCAweDgwLCAweDAwLCAweDkwLCAweDdmLCAweGI2LCAweGUwLCAweGZmLCAweDIyLCAweDkwLAorICAweDdmLCAweGI4LCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweGJhLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweGJjLCAweGUwLCAweGZmLAorICAweDIyLCAweGU1LCAweDE1LCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDE0LCAweDYwfX0sCisgezB4MTcwNiwgNjQsIHsgMHgwZSwgMHgxNCwgMHg2MCwgMHgxMSwgMHgxNCwgMHg2MCwgMHgxNCwgMHg4MCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwKKyAgMHhjOSwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhlMCwgMHhmZiwgMHgyMiwKKyAgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg5MCwKKyAgMHg3ZiwgMHhjNCwgMHhlNCwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwNCwgMHhmMCwgMHhkMCwgMHg4Nn19LAorIHsweDE3NDYsIDY0LCB7IDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4OTAsIDB4N2IsIDB4NDEsIDB4ZTAsIDB4ZjUsIDB4MzYsCisgIDB4NDMsIDB4MTMsIDB4MTAsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4ZDcsIDB4NzQsIDB4MTcsIDB4ZjAsIDB4NzQsIDB4MzcsIDB4ZjAsCisgIDB4OTAsIDB4N2IsIDB4NDMsIDB4ZTAsIDB4ZjUsIDB4MzcsIDB4YTMsIDB4ZTAsIDB4NTQsIDB4ZjAsIDB4ZjUsIDB4MjksIDB4ZTAsIDB4NjAsIDB4MDIsIDB4ZDIsCisgIDB4MGEsIDB4MjIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzV9fSwKKyB7MHgxNzg2LCA2NCwgeyAweDg2LCAweDAwLCAweGQyLCAweDAxLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDAxLCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LAorICAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLAorICAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDA4LCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLAorICAweDc0LCAweDA4LCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwfX0sCisgezB4MTdjNiwgNjQsIHsgMHgzMiwgMHgxMiwgMHgxOCwgMHhiNywgMHhhZSwgMHgwNywgMHgxMiwgMHgxOCwgMHhiNywgMHhhZCwgMHgwNywgMHhlZSwgMHg2ZCwgMHg2MCwgMHgxMCwgMHgxMiwgMHgxOCwKKyAgMHhiNywgMHhhZSwgMHgwNywgMHhlZSwgMHg2ZCwgMHg2MCwgMHgwNywgMHgxMiwgMHgxOCwgMHhiNywgMHhhZCwgMHgwNywgMHg4MCwgMHhlYywgMHhhZiwgMHgwNiwKKyAgMHgyMiwgMHg3NCwgMHgwMCwgMHhmNSwgMHg4NiwgMHg5MCwgMHhmZCwgMHhhNSwgMHg3YywgMHgwNSwgMHhhMywgMHhlNSwgMHg4MiwgMHg0NSwgMHg4MywgMHg3MCwKKyAgMHhmOSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg0MywgMHg4NywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDE4MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MGIsIDB4MDQsCisgIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4N2YsIDB4ZjQsIDB4N2UsIDB4MDEsIDB4MTIsIDB4MTgsIDB4NjAsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsCisgIDB4ZjcsIDB4ZjAsIDB4MjIsIDB4MTIsIDB4MTMsIDB4NzcsIDB4MTIsIDB4MTcsIDB4ZjksIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4MzAsIDB4ZTcsIDB4MGEsCisgIDB4N2YsIDB4MDUsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MTgsIDB4NjAsIDB4MTIsIDB4MTgsIDB4OTMsIDB4MTIsIDB4MGEsIDB4Y2UsIDB4MjIsIDB4MDN9fSwKKyB7MHgxODQ2LCA2NCwgeyAweDM1LCAweDgwLCAweDAwLCAweDAwLCAweDAzLCAweDJlLCAweDgxLCAweDAwLCAweDAwLCAweGMxLCAweDg1LCAweGMxLCAweDgxLCAweGMxLCAweDA4LCAweGMxLCAweDAwLAorICAweGMxLCAweDA2LCAweDAxLCAweDIyLCAweDAwLCAweDAxLCAweDI0LCAweDAwLCAweDAwLCAweDhlLCAweDE3LCAweDhmLCAweDE4LCAweGU1LCAweDE4LCAweDE1LAorICAweDE4LCAweGFlLCAweDE3LCAweDcwLCAweDAyLCAweDE1LCAweDE3LCAweDRlLCAweDYwLCAweDA4LCAweDEyLCAweDE3LCAweGU4LCAweDEyLCAweDE3LCAweGU4LAorICAweDgwLCAweGViLCAweDIyLCAweGU1LCAweDE1LCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwfX0sCisgezB4MTg4NiwgNjQsIHsgMHgwNCwgMHhmZiwgMHg0NCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHhkNywgMHhmMCwgMHhlZiwgMHg0NCwgMHgzMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwKKyAgMHg0NCwgMHgwMSwgMHhmMCwgMHg3ZiwgMHgwZCwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgxOCwgMHg2MCwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmZSwKKyAgMHhmMCwgMHgyMiwgMHhlNSwgMHgxMSwgMHgyNCwgMHgwMiwgMHg5MCwgMHg3OCwgMHg0MSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwKKyAgMHhlNSwgMHgxMSwgMHgyNCwgMHgwMywgMHg5MCwgMHg3OCwgMHg0MSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHhlNX19LAorIHsweDE4YzYsIDY0LCB7IDB4MTEsIDB4MjQsIDB4MDQsIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4ZTUsIDB4MTEsIDB4MjQsIDB4MDUsCisgIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4ZTUsIDB4MTEsIDB4MjQsIDB4MDYsIDB4OTAsIDB4NzgsCisgIDB4NDEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZTUsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsCisgIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4NTMsIDB4ZDgsIDB4ZWYsIDB4MzIsIDB4MDAsIDB4MTIsIDB4MDEsIDB4MTAsIDB4MDEsIDB4ZmYsIDB4ZmZ9fSwKKyB7MHgxOTA2LCA2NCwgeyAweGZmLCAweDQwLCAweGNkLCAweDA2LCAweDJhLCAweDAxLCAweDAwLCAweDAwLCAweDAxLCAweDAyLCAweDAwLCAweDA0LCAweDA5LCAweDAyLCAweDc0LCAweDAwLCAweDAxLAorICAweDAxLCAweDAwLCAweGEwLCAweDMyLCAweDA5LCAweDA0LCAweDAwLCAweDAwLCAweDBlLCAweGZmLCAweDAwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAxLAorICAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAyLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAzLCAweDAyLCAweDQwLAorICAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA0LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA1LCAweDAyLCAweDQwLCAweDAwfX0sCisgezB4MTk0NiwgNjQsIHsgMHgwMCwgMHgwNywgMHgwNSwgMHgwNiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwKKyAgMHg4MSwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4MiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4MywgMHgwMiwKKyAgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NSwgMHgwMiwgMHg0MCwgMHgwMCwKKyAgMHgwMSwgMHgwNywgMHgwNSwgMHg4NiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMX19LAorIHsweDE5ODYsIDY0LCB7IDB4MDQsIDB4MDMsIDB4MDksIDB4MDQsIDB4NDgsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsCisgIDB4MDAsIDB4NmUsIDB4MDAsIDB4MmMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjksIDB4MDAsIDB4NzYsCisgIDB4MDAsIDB4NjksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NjksIDB4MDAsIDB4NmYsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NjYsCisgIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NmUsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NzksIDB4MDB9fSwKKyB7MHgxOWM2LCA2NCwgeyAweDczLCAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDYzLCAweDAwLCAweDJlLCAweDAwLCAweDI0LCAweDAzLCAweDRiLCAweDAwLCAweDY1LAorICAweDAwLCAweDc5LCAweDAwLCAweDczLCAweDAwLCAweDcwLCAweDAwLCAweDYxLCAweDAwLCAweDZlLCAweDAwLCAweDIwLCAweDAwLCAweDU1LCAweDAwLCAweDUzLAorICAweDAwLCAweDQxLCAweDAwLCAweDJkLCAweDAwLCAweDM0LCAweDAwLCAweDM5LCAweDAwLCAweDU3LCAweDAwLCAweDRjLCAweDAwLCAweDQzLCAweDAwLCAweDIyLAorICAweDAzLCAweDU1LCAweDAwLCAweDUzLCAweDAwLCAweDQxLCAweDAwLCAweDJkLCAweDAwLCAweDM2LCAweDAwLCAweDM1LCAweDAwLCAweDIwLCAweDAwfX0sCisgezB4MWEwNiwgNjQsIHsgMHgzMiwgMHgwMCwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwMCwgMHgzMywgMHgwMCwgMHg2YSwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgzMywgMHgwMCwgMHgzMSwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAorIHsweDFhNDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKKyB7MHgxYTg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCisgezB4MWFjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgxNywgMHg3OSwgMHgwMCwgMHgwMiwgMHgxYn19LAorIHsweDFiMDYsIDIxLCB7IDB4MDQsIDB4MDAsIDB4MDIsIDB4MTcsIDB4MjcsIDB4MDAsIDB4MDIsIDB4MTcsIDB4YTAsIDB4MDAsIDB4MDIsIDB4MWIsIDB4MTAsIDB4MDAsIDB4MDIsIDB4MWIsIDB4MTQsCisgIDB4MDAsIDB4MDIsIDB4MTUsIDB4Nzh9fSwKKyB7MHhmZmZmLCAgMCwgeyAweDAwfX0sCit9OworCisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTkwbXNnLmggYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2E5MG1zZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkOTM1YjYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2E5MG1zZy5oCkBAIC0wLDAgKzEsMTk4IEBACisvKgorCXVzYTkwbXNnLmgKKworCUNvcHlyaWdodCAoYykgMTk5OC0yMDAzIElubm9TeXMgSW5jb3Jwb3JhdGVkLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZAorCVRoaXMgZmlsZSBpcyBhdmFpbGFibGUgdW5kZXIgYSBCU0Qtc3R5bGUgY29weXJpZ2h0CisKKwlLZXlzcGFuIFVTQiBBc3luYyBNZXNzYWdlIEZvcm1hdHMgZm9yIHRoZSBVU0ExOUhTCisKKwlSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKwltb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisJbWV0OgorCisJMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoaXMgbGljZW5jZSB0ZXh0CisgICAJd2l0aG91dCBtb2RpZmljYXRpb24sIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zLCBhbmQgdGhlIGZvbGxvd2luZworICAgCWRpc2NsYWltZXIuICBUaGUgZm9sbG93aW5nIGNvcHlyaWdodCBub3RpY2UgbXVzdCBhcHBlYXIgaW1tZWRpYXRlbHkgYXQKKyAgIAl0aGUgYmVnaW5uaW5nIG9mIGFsbCBzb3VyY2UgZmlsZXM6CisKKyAgICAgICAgCUNvcHlyaWdodCAoYykgMTk5OC0yMDAzIElubm9TeXMgSW5jb3Jwb3JhdGVkLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZAorCisgICAgICAgIAlUaGlzIGZpbGUgaXMgYXZhaWxhYmxlIHVuZGVyIGEgQlNELXN0eWxlIGNvcHlyaWdodAorCisJMi4gVGhlIG5hbWUgb2YgSW5ub1N5cyBJbmNvcnByYXRlZCBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlCisgICAJcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuCisgICAJcGVybWlzc2lvbi4KKworCVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgSU5OT1NZUyBDT1JQLiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCisJSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworCU9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOCisJTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULAorCUlORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworCShJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorCVNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisJQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisJTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorCU9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKwlTVUNIIERBTUFHRS4gICAgCisKKwlSZXZpc2lvbnM6CisKKwkyMDAzZmViMTQJCWFkZCBzZXRUeE1vZGUvdHhNb2RlICBhbmQgY2FuY2VsUnhYb2ZmIHRvIHBvcnRDb250cm9sCisJMjAwM21hcjIxCQljaGFuZ2UgbmFtZSBvZiBQQVJJVFlfMC8xIHRvIGFkZCBNQVJLL1NQQUNFCisqLworCisjaWZuZGVmCV9fVVNBOTBNU0dfXworI2RlZmluZQlfX1VTQTkwTVNHX18KKworc3RydWN0IGtleXNwYW5fdXNhOTBfcG9ydENvbnRyb2xNZXNzYWdlCit7CisJLyoKKwkJdGhlcmUgYXJlIHRocmVlIHR5cGVzIG9mICJjb21tYW5kcyIgc2VudCBpbiB0aGUgY29udHJvbCBtZXNzYWdlOgorCisJCTEuCWNvbmZpZ3VyYXRpb24gY2hhbmdlcyB3aGljaCBtdXN0IGJlIHJlcXVlc3RlZCBieSBzZXR0aW5nCisJCQl0aGUgY29ycmVzcG9uZGluZyAic2V0IiBmbGFnIChhbmQgc2hvdWxkIG9ubHkgYmUgcmVxdWVzdGVkCisJCQl3aGVuIG5lY2Vzc2FyeSwgdG8gcmVkdWNlIG92ZXJoZWFkIG9uIHRoZSBkZXZpY2UpOgorCSovCisKKwl1OAlzZXRDbG9ja2luZywJLy8gaG9zdCByZXF1ZXN0cyBiYXVkIHJhdGUgYmUgc2V0CisJCWJhdWRMbywJCQkvLyBob3N0IGRvZXMgYmF1ZCBkaXZpc29yIGNhbGN1bGF0aW9uCisJCWJhdWRIaSwJCQkvLyBob3N0IGRvZXMgYmF1ZCBkaXZpc29yIGNhbGN1bGF0aW9uIAorCQkKKwkJc2V0TGNyLAkJCS8vIGhvc3QgcmVxdWVzdHMgbGNyIGJlIHNldAorCQlsY3IsCQkJLy8gdXNlIFBBUklUWSwgU1RPUEJJVFMsIERBVEFCSVRTIGJlbG93CisJCQorCQlzZXRSeE1vZGUsCQkvLyBzZXQgcmVjZWl2ZSBtb2RlCisJCXJ4TW9kZSwJCQkvLyBSWE1PREVfRE1BIG9yIFJYTU9ERV9CWUhBTkQKKworCQlzZXRUeE1vZGUsCQkvLyBzZXQgdHJhbnNtaXQgbW9kZQorCQl0eE1vZGUsCQkJLy8gVFhNT0RFX0RNQSBvciBUWE1PREVfQllIQU5ECisKKwkJc2V0VHhGbG93Q29udHJvbCwJLy8gaG9zdCByZXF1ZXN0cyB0eCBmbG93IGNvbnRyb2wgYmUgc2V0CisJCXR4Rmxvd0NvbnRyb2wJLAkvLyB1c2UgVFhfRkxPVy4uLiBiaXRzIGJlbG93CisJCXNldFJ4Rmxvd0NvbnRyb2wsCS8vIGhvc3QgcmVxdWVzdHMgcnggZmxvdyBjb250cm9sIGJlIHNldAorCQlyeEZsb3dDb250cm9sLAkvLyB1c2UgUlhfRkxPVy4uLiBiaXRzIGJlbG93CisJCXNlbmRYb2ZmLAkJLy8gaG9zdCByZXF1ZXN0cyBYT0ZGIHRyYW5zbWl0dGVkIGltbWVkaWF0ZWx5CisJCXNlbmRYb24sCQkvLyBob3N0IHJlcXVlc3RzIFhPTiBjaGFyIHRyYW5zbWl0dGVkCisJCXhvbkNoYXIsCQkvLyBzcGVjaWZpZWQgaW4gY3VycmVudCBjaGFyYWN0ZXIgZm9ybWF0CisJCXhvZmZDaGFyLAkJLy8gc3BlY2lmaWVkIGluIGN1cnJlbnQgY2hhcmFjdGVyIGZvcm1hdAorCisJCXNlbmRDaGFyLAkJLy8gaG9zdCByZXF1ZXN0cyBjaGFyIHRyYW5zbWl0dGVkIGltbWVkaWF0ZWx5CisJCXR4Q2hhciwJCQkvLyBjaGFyYWN0ZXIgdG8gc2VuZAorCisJCXNldFJ0cywJCQkvLyBob3N0IHJlcXVlc3RzIFJUUyBvdXRwdXQgYmUgc2V0CisJCXJ0cywJCQkvLyAxPW9uLCAwPW9mZgorCQlzZXREdHIsIAkJLy8gaG9zdCByZXF1ZXN0cyBEVFIgb3V0cHV0IGJlIHNldAorCQlkdHI7CQkJLy8gMT1vbiwgMD1vZmYKKworCQorCS8qCisJCTIuCWNvbmZpZ3VyYXRpb24gZGF0YSB3aGljaCBpcyBzaW1wbHkgdXNlZCBhcyBpcyAKKwkJCWFuZCBtdXN0IGJlIHNwZWNpZmllZCBjb3JyZWN0bHkgaW4gZXZlcnkgaG9zdCBtZXNzYWdlLgorCSovCisKKwl1OAlyeEZvcndhcmRpbmdMZW5ndGgsICAvLyBmb3J3YXJkIHdoZW4gdGhpcyBudW1iZXIgb2YgY2hhcnMgYXZhaWxhYmxlCisJCXJ4Rm9yd2FyZGluZ1RpbWVvdXQsIC8vICgxLTMxIGluIG1zKQorCQl0eEFja1NldHRpbmc7CSAgIC8vIDA9ZG9uJ3QgYWNrLCAxPW5vcm1hbCwgMi0yNTUgVEJELi4uCisJLyoKKwkJMy4JRmlybXdhcmUgc3RhdGVzIHdoaWNoIGNhdXNlIGFjdGlvbnMgaWYgdGhleSBjaGFuZ2UJCQkJCQorCQlhbmQgbXVzdCBiZSBzcGVjaWZpZWQgY29ycmVjdGx5IGluIGV2ZXJ5IGhvc3QgbWVzc2FnZS4KKwkqLworCisJdTgJcG9ydEVuYWJsZWQsCS8vIDA9ZGlzYWJsZWQsIDE9ZW5hYmxlZAorCQl0eEZsdXNoLAkJLy8gMD1ub3JtYWwsIDE9dG9zcyBvdXRib3VuZCBkYXRhCisJCXR4QnJlYWssCQkvLyAwPWJyZWFrIG9mZiwgMT1icmVhayBvbgorCQlsb29wYmFja01vZGU7CS8vIDA9bm8gbG9vcGJhY2ssIDE9bG9vcGJhY2sgZW5hYmxlZAorCisJLyoKKwkJNC4JY29tbWFuZHMgd2hpY2ggYXJlIGZsYWdzIG9ubHk7IHRoZXNlIGFyZSBwcm9jZXNzZWQgaW4gb3JkZXIKKwkJCShzbyB0aGF0LCBlLmcuLCBpZiByeEZsdXNoIGFuZCByeEZvcndhcmQgZmxhZ3MgYXJlIHNldCwgdGhlCisJCQlwb3J0IHdpbGwgaGF2ZSBubyBkYXRhIHRvIGZvcndhcmQpOyBhbnkgbm9uLXplcm8gdmFsdWUgCisJCQlpcyByZXNwZWN0ZWQKKwkqLworCisJdTgJcnhGbHVzaCwJCS8vIHRvc3MgaW5ib3VuZCBkYXRhCisJCXJ4Rm9yd2FyZCwJCS8vIGZvcndhcmQgYWxsIGluYm91bmQgZGF0YSwgTk9XIChhcyBpZiBmd2RMZW49PTEpCisJCWNhbmNlbFJ4WG9mZiwJLy8gY2FuY2VsIGFueSByZWNlaXZlIFhPRkYgc3RhdGUgKF90eFhvZmYpCisJCXJldHVyblN0YXR1czsJLy8gcmV0dXJuIGN1cnJlbnQgc3RhdHVzIE5PVworfTsKKworLy8gZGVmaW5lcyBmb3IgYml0cyBpbiBsY3IKKyNkZWZpbmUJCVVTQV9EQVRBQklUU181CQkweDAwCisjZGVmaW5lCQlVU0FfREFUQUJJVFNfNgkJMHgwMQorI2RlZmluZQkJVVNBX0RBVEFCSVRTXzcJCTB4MDIKKyNkZWZpbmUJCVVTQV9EQVRBQklUU184CQkweDAzCisjZGVmaW5lCQlTVE9QQklUU181Njc4XzEJCTB4MDAJLy8gMSBzdG9wIGJpdCBmb3IgYWxsIGJ5dGUgc2l6ZXMKKyNkZWZpbmUJCVNUT1BCSVRTXzVfMXA1CQkweDA0CS8vIDEuNSBzdG9wIGJpdHMgZm9yIDUtYml0IGJ5dGUKKyNkZWZpbmUJCVNUT1BCSVRTXzY3OF8yCQkweDA0CS8vIDIgc3RvcCBiaXRzIGZvciA2LTggYml0IGJ5dGUKKyNkZWZpbmUJCVVTQV9QQVJJVFlfTk9ORQkJMHgwMAorI2RlZmluZQkJVVNBX1BBUklUWV9PREQJCTB4MDgKKyNkZWZpbmUJCVVTQV9QQVJJVFlfRVZFTgkJMHgxOAorI2RlZmluZQkJUEFSSVRZX01BUktfMSAgCQkweDI4ICAgCS8vIGZvcmNlIHBhcml0eSBNQVJLCisjZGVmaW5lCQlQQVJJVFlfU1BBQ0VfMCAJCTB4MzgJLy8gZm9yY2UgcGFyaXR5IFNQQUNFCisKKyNkZWZpbmUJCVRYRkxPV19DVFMJCQkweDA0CQorI2RlZmluZQkJVFhGTE9XX0RTUgkJCTB4MDgKKyNkZWZpbmUJCVRYRkxPV19YT0ZGCQkJMHgwMQkKKyNkZWZpbmUJCVRYRkxPV19YT0ZGX0FOWQkJMHgwMgkKKyNkZWZpbmUJCVRYRkxPV19YT0ZGX0JJVFMJKFRYRkxPV19YT0ZGIHwgVFhGTE9XX1hPRkZfQU5ZKQorCisjZGVmaW5lCQlSWEZMT1dfWE9GRgkJCTB4MTAJCisjZGVmaW5lCQlSWEZMT1dfUlRTCQkJMHgyMAkKKyNkZWZpbmUJCVJYRkxPV19EVFIJCQkweDQwCisjZGVmaW5lCQlSWEZMT1dfRFNSX1NFTlNJVElWSVRZCTB4ODAKKworI2RlZmluZQkJUlhNT0RFX0JZSEFORAkJMHgwMAkKKyNkZWZpbmUJCVJYTU9ERV9ETUEJCQkweDAyCQorCisjZGVmaW5lCQlUWE1PREVfQllIQU5ECQkweDAwCQorI2RlZmluZQkJVFhNT0RFX0RNQQkJCTB4MDIJCisKKworLy8gYWxsIHRoaW5ncyBjYWxsZWQgIlN0YXR1c01lc3NhZ2UiIGFyZSBzZW50IG9uIHRoZSBzdGF0dXMgZW5kcG9pbnQKKworc3RydWN0IGtleXNwYW5fdXNhOTBfcG9ydFN0YXR1c01lc3NhZ2UJCit7CisJdTgJbXNyLAkJCS8vIHJlcG9ydHMgdGhlIGFjdHVhbCBNU1IgcmVnaXN0ZXIKKwkJY3RzLAkJCS8vIHJlcG9ydHMgQ1RTIHBpbgorCQlkY2QsCQkJLy8gcmVwb3J0cyBEQ0QgcGluCisJCWRzciwJCQkvLyByZXBvcnRzIERTUiBwaW4KKwkJcmksCQkJCS8vIHJlcG9ydHMgUkkgcGluCisJCV90eFhvZmYsCQkvLyBwb3J0IGlzIGluIFhPRkYgc3RhdGUgKHdlIHJlY2VpdmVkIFhPRkYpCisJCXJ4QnJlYWssCQkvLyByZXBvcnRzIGJyZWFrIHN0YXRlCisJCXJ4T3ZlcnJ1biwJCS8vIGNvdW50IG9mIG92ZXJydW4gZXJyb3JzIChzaW5jZSBsYXN0IHJlcG9ydGVkKQorCQlyeFBhcml0eSwJCS8vIGNvdW50IG9mIHBhcml0eSBlcnJvcnMgKHNpbmNlIGxhc3QgcmVwb3J0ZWQpCisJCXJ4RnJhbWUsCQkvLyBjb3VudCBvZiBmcmFtZSBlcnJvcnMgKHNpbmNlIGxhc3QgcmVwb3J0ZWQpCisJCXBvcnRTdGF0ZSwJCS8vIFBPUlRTVEFURV94eHggYml0cyAodXNlZnVsIGZvciBkZWJ1Z2dpbmcpCisJCW1lc3NhZ2VBY2ssCQkvLyBtZXNzYWdlIGFja25vd2xlZGdlbWVudAorCQljaGFyQWNrLAkJLy8gY2hhcmFjdGVyIGFja25vd2xlZGdlbWVudAorCQljb250cm9sUmVzcG9uc2U7CS8vICh2YWx1ZSA9IHJldHVyblN0YXR1cykgYSBjb250cm9sIG1lc3NhZ2UgaGFzIGJlZW4gcHJvY2Vzc2VkIAorfTsKKworLy8gYml0cyBpbiBSWCBkYXRhIG1lc3NhZ2Ugd2hlbiBTVEFUIGJ5dGUgaXMgaW5jbHVkZWQKKworI2RlZmluZQlSWEVSUk9SX09WRVJSVU4JCTB4MDIKKyNkZWZpbmUJUlhFUlJPUl9QQVJJVFkJCTB4MDQKKyNkZWZpbmUJUlhFUlJPUl9GUkFNSU5HCQkweDA4CisjZGVmaW5lCVJYRVJST1JfQlJFQUsJCTB4MTAKKworI2RlZmluZQlQT1JUU1RBVEVfRU5BQkxFRAkweDgwCisjZGVmaW5lCVBPUlRTVEFURV9UWEZMVVNICTB4MDEKKyNkZWZpbmUJUE9SVFNUQVRFX1RYQlJFQUsJMHgwMgorI2RlZmluZQlQT1JUU1RBVEVfTE9PUEJBQ0sgCTB4MDQKKworLy8gTVNSIGJpdHMKKworI2RlZmluZSBVU0FfTVNSX2RDVFMJICAJCTB4MDEJCS8vIENUUyBoYXMgY2hhbmdlZCBzaW5jZSBsYXN0IHJlcG9ydAkKKyNkZWZpbmUgVVNBX01TUl9kRFNSCSAgCQkweDAyCisjZGVmaW5lIFVTQV9NU1JfZFJJCQkJMHgwNAorI2RlZmluZSBVU0FfTVNSX2REQ0QJICAJCTB4MDgKKworI2RlZmluZSBVU0FfTVNSX0NUUwkJCTB4MTAJICAJLy8gY3VycmVudCBzdGF0ZSBvZiBDVFMKKyNkZWZpbmUgVVNBX01TUl9EU1IJCQkweDIwCisjZGVmaW5lIFVTQV9VU0FfTVNSX1JJCQkJMHg0MAorI2RlZmluZSBNU1JfRENECQkJCTB4ODAKKworLy8gaWU6IHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbiBlbmRwb2ludCBidWZmZXIKKyNkZWZpbmUJCU1BWF9EQVRBX0xFTgkJCTY0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tsNWt1c2IxMDUuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rbDVrdXNiMTA1LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDljNjAyYTAKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwva2w1a3VzYjEwNS5jCkBAIC0wLDAgKzEsMTAzNCBAQAorLyoKKyAqIEtMU0kgS0w1S1VTQjEwNSBjaGlwIFJTMjMyIGNvbnZlcnRlciBkcml2ZXIKKyAqCisgKiAgIENvcHlyaWdodCAoQykgMjAwMSBVdHotVXdlIEhhdXMgPGhhdXNAdXVoYXVzLmRlPgorICoKKyAqICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBBbGwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRldmljZSB3YXMgYWNxdWlyZWQgdXNpbmcgU25pZmZVU0IgYW5zIHNub29wVVNCCisgKiBvbiBXaW5kb3dzOTguCisgKiBJdCB3YXMgd3JpdHRlbiBvdXQgb2YgZnJ1c3RyYXRpb24gd2l0aCB0aGUgUGFsbUNvbm5lY3QgVVNCIFNlcmlhbCBhZGFwdGVyCisgKiBzb2xkIGJ5IFBhbG0gSW5jLgorICogTmVpdGhlciBQYWxtLCBub3IgdGhlaXIgY29udHJhY3RvciAoTUNDSSkgb3IgdGhlaXIgc3VwcGxpZXIgKEtMU0kpIHByb3ZpZGVkCisgKiBpbmZvcm1hdGlvbiB0aGF0IHdhcyBub3QgYWxyZWFkeSBhdmFpbGFibGUuCisgKgorICogSXQgc2VlbXMgdGhhdCBLTFNJIGJvdWdodCBzb21lIHNpbGljb24tZGVzaWduIGluZm9ybWF0aW9uIGZyb20gU2NhbkxvZ2ljLCAKKyAqIHdob3NlIFNMMTFSIHByb2Nlc3NvciBpcyBhdCB0aGUgY29yZSBvZiB0aGUgS0w1S1VTQiBjaGlwc2V0IGZyb20gS0xTSS4KKyAqIEtMU0kgaGFzIGZpcm13YXJlIGF2YWlsYWJsZSBmb3IgdGhlaXIgZGV2aWNlczsgaXQgaXMgcHJvYmFibGUgdGhhdCB0aGUKKyAqIGZpcm13YXJlIGRpZmZlcnMgZnJvbSB0aGF0IHVzZWQgYnkgS0xTSSBpbiB0aGVpciBwcm9kdWN0cy4gSWYgeW91IGhhdmUgYW4KKyAqIG9yaWdpbmFsIEtMU0kgZGV2aWNlIGFuZCBjYW4gcHJvdmlkZSBzb21lIGluZm9ybWF0aW9uIG9uIGl0LCBJIHdvdWxkIGJlIAorICogbW9zdCBpbnRlcmVzdGVkIGluIGFkZGluZyBzdXBwb3J0IGZvciBpdCBoZXJlLiBJZiB5b3UgaGF2ZSBhbnkgaW5mb3JtYXRpb24gCisgKiBvbiB0aGUgcHJvdG9jb2wgdXNlZCAob3IgZmluZCBlcnJvcnMgaW4gbXkgcmV2ZXJzZS1lbmdpbmVlcmVkIHN0dWZmKSwgcGxlYXNlCisgKiBsZXQgbWUga25vdy4KKyAqCisgKiBUaGUgY29kZSB3YXMgb25seSB0ZXN0ZWQgd2l0aCBhIFBhbG1Db25uZWN0IFVTQiBhZGFwdGVyOyBpZiB5b3UKKyAqIGFyZSBhZHZlbnR1cm91cywgdHJ5IGl0IHdpdGggYW55IEtMU0ktYmFzZWQgZGV2aWNlIGFuZCBsZXQgbWUga25vdyBob3cgaXQKKyAqIGJyZWFrcyBzbyB0aGF0IEkgY2FuIGZpeCBpdCEKKyAqLworCisvKiBUT0RPOgorICoJY2hlY2sgbW9kZW0gbGluZSBzaWduYWxzCisgKglpbXBsZW1lbnQgaGFuZHNoYWtpbmcgb3IgZGVjaWRlIHRoYXQgd2UgZG8gbm90IHN1cHBvcnQgaXQKKyAqLworCisvKiBIaXN0b3J5OgorICogICAwLjNhIC0gaW1wbGVtZW50ZWQgcG9vbHMgb2Ygd3JpdGUgVVJCcworICogICAwLjMgIC0gYWxwaGEgdmVyc2lvbiBmb3IgcHVibGljIHRlc3RpbmcKKyAqICAgMC4yICAtIFRJT0NNR0VUIHdvcmtzLCBzbyBhdXRvcGlsb3QoMSkgY2FuIGJlIHVzZWQhCisgKiAgIDAuMSAgLSBjYW4gYmUgdXNlZCB0byB0byBwaWxvdC14ZmVyIC1wIC9kZXYvdHR5VVNCMCAtbAorICoKKyAqICAgVGhlIGRyaXZlciBza2VsZXRvbiBpcyBtYWlubHkgYmFzZWQgb24gbWN0X3UyMzIuYyBhbmQgdmFyaW91cyBvdGhlciAKKyAqICAgcGllY2VzIG9mIGNvZGUgc2hhbWVsZXNzbHkgY29waWVkIGZyb20gdGhlIGRyaXZlcnMvdXNiL3NlcmlhbC8gZGlyZWN0b3J5LgorICovCisKKworI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC90dHkuaD4KKyNpbmNsdWRlIDxsaW51eC90dHlfZHJpdmVyLmg+CisjaW5jbHVkZSA8bGludXgvdHR5X2ZsaXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgorI2luY2x1ZGUgInVzYi1zZXJpYWwuaCIKKyNpbmNsdWRlICJrbDVrdXNiMTA1LmgiCisKK3N0YXRpYyBpbnQgZGVidWc7CisKKy8qCisgKiBWZXJzaW9uIEluZm9ybWF0aW9uCisgKi8KKyNkZWZpbmUgRFJJVkVSX1ZFUlNJT04gInYwLjNhIgorI2RlZmluZSBEUklWRVJfQVVUSE9SICJVdHotVXdlIEhhdXMgPGhhdXNAdXVoYXVzLmRlPiIKKyNkZWZpbmUgRFJJVkVSX0RFU0MgIktMU0kgS0w1S1VTQjEwNSBjaGlwc2V0IFVTQi0+U2VyaWFsIENvbnZlcnRlciBkcml2ZXIiCisKKworLyoKKyAqIEZ1bmN0aW9uIHByb3RvdHlwZXMKKyAqLworc3RhdGljIGludCAga2xzaV8xMDVfc3RhcnR1cAkgICAgICAgICAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCk7CitzdGF0aWMgdm9pZCBrbHNpXzEwNV9zaHV0ZG93bgkgICAgICAgICAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCk7CitzdGF0aWMgaW50ICBrbHNpXzEwNV9vcGVuCSAgICAgICAgIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LAorCQkJCQkgIHN0cnVjdCBmaWxlICpmaWxwKTsKK3N0YXRpYyB2b2lkIGtsc2lfMTA1X2Nsb3NlCSAgICAgICAgIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LAorCQkJCQkgIHN0cnVjdCBmaWxlICpmaWxwKTsKK3N0YXRpYyBpbnQgIGtsc2lfMTA1X3dyaXRlCSAgICAgICAgIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LAorCQkJCQkgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZiwKKwkJCQkJICBpbnQgY291bnQpOworc3RhdGljIHZvaWQga2xzaV8xMDVfd3JpdGVfYnVsa19jYWxsYmFjayAoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CitzdGF0aWMgaW50ICBrbHNpXzEwNV9jaGFyc19pbl9idWZmZXIgICAgIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KTsKK3N0YXRpYyBpbnQgIGtsc2lfMTA1X3dyaXRlX3Jvb20gICAgICAgICAgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworCitzdGF0aWMgdm9pZCBrbHNpXzEwNV9yZWFkX2J1bGtfY2FsbGJhY2sgIChzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKK3N0YXRpYyB2b2lkIGtsc2lfMTA1X3NldF90ZXJtaW9zICAgICAgICAgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCisJCQkJCSAgc3RydWN0IHRlcm1pb3MgKiBvbGQpOworc3RhdGljIGludCAga2xzaV8xMDVfaW9jdGwJICAgICAgICAgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCisJCQkJCSAgc3RydWN0IGZpbGUgKiBmaWxlLAorCQkJCQkgIHVuc2lnbmVkIGludCBjbWQsCisJCQkJCSAgdW5zaWduZWQgbG9uZyBhcmcpOworc3RhdGljIHZvaWQga2xzaV8xMDVfdGhyb3R0bGUJCSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCk7CitzdGF0aWMgdm9pZCBrbHNpXzEwNV91bnRocm90dGxlCQkgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworLyoKK3N0YXRpYyB2b2lkIGtsc2lfMTA1X2JyZWFrX2N0bAkgICAgICAgICAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwKKwkJCQkJICBpbnQgYnJlYWtfc3RhdGUgKTsKKyAqLworc3RhdGljIGludCAga2xzaV8xMDVfdGlvY21nZXQJICAgICAgICAgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCisJCQkJCSAgc3RydWN0IGZpbGUgKmZpbGUpOworc3RhdGljIGludCAga2xzaV8xMDVfdGlvY21zZXQJICAgICAgICAgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCisJCQkJCSAgc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBzZXQsCisJCQkJCSAgdW5zaWduZWQgaW50IGNsZWFyKTsKKworLyoKKyAqIEFsbCBvZiB0aGUgZGV2aWNlIGluZm8gbmVlZGVkIGZvciB0aGUgS0xTSSBjb252ZXJ0ZXJzLgorICovCitzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgaWRfdGFibGUgW10gPSB7CisJeyBVU0JfREVWSUNFKFBBTE1DT05ORUNUX1ZJRCwgUEFMTUNPTk5FQ1RfUElEKSB9LAorCXsgVVNCX0RFVklDRShLTFNJX1ZJRCwgS0xTSV9LTDVLVVNCMTA1RF9QSUQpIH0sCisJeyB9CQkvKiBUZXJtaW5hdGluZyBlbnRyeSAqLworfTsKKworTU9EVUxFX0RFVklDRV9UQUJMRSAodXNiLCBpZF90YWJsZSk7CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBrbDVrdXNiMTA1ZF9kcml2ZXIgPSB7CisJLm93bmVyID0JVEhJU19NT0RVTEUsCisJLm5hbWUgPQkJImtsNWt1c2IxMDVkIiwKKwkucHJvYmUgPQl1c2Jfc2VyaWFsX3Byb2JlLAorCS5kaXNjb25uZWN0ID0JdXNiX3NlcmlhbF9kaXNjb25uZWN0LAorCS5pZF90YWJsZSA9CWlkX3RhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCB1c2Jfc2VyaWFsX2RldmljZV90eXBlIGtsNWt1c2IxMDVkX2RldmljZSA9IHsKKwkub3duZXIgPSAgICAgICAgICAgICBUSElTX01PRFVMRSwKKwkubmFtZSA9CQkgICAgICJLTDVLVVNCMTA1RCAvIFBhbG1Db25uZWN0IiwKKwkuc2hvcnRfbmFtZSA9CSAgICAgImtsNWt1c2IxMDVkIiwKKwkuaWRfdGFibGUgPQkgICAgIGlkX3RhYmxlLAorCS5udW1faW50ZXJydXB0X2luID0gIDEsCisJLm51bV9idWxrX2luID0JICAgICAxLAorCS5udW1fYnVsa19vdXQgPQkgICAgIDEsCisJLm51bV9wb3J0cyA9CSAgICAgMSwKKwkub3BlbiA9CQkgICAgIGtsc2lfMTA1X29wZW4sCisJLmNsb3NlID0JICAgICBrbHNpXzEwNV9jbG9zZSwKKwkud3JpdGUgPQkgICAgIGtsc2lfMTA1X3dyaXRlLAorCS53cml0ZV9idWxrX2NhbGxiYWNrID0ga2xzaV8xMDVfd3JpdGVfYnVsa19jYWxsYmFjaywKKwkuY2hhcnNfaW5fYnVmZmVyID0gICBrbHNpXzEwNV9jaGFyc19pbl9idWZmZXIsCisJLndyaXRlX3Jvb20gPSAgICAgICAga2xzaV8xMDVfd3JpdGVfcm9vbSwKKwkucmVhZF9idWxrX2NhbGxiYWNrID1rbHNpXzEwNV9yZWFkX2J1bGtfY2FsbGJhY2ssCisJLmlvY3RsID0JICAgICBrbHNpXzEwNV9pb2N0bCwKKwkuc2V0X3Rlcm1pb3MgPQkgICAgIGtsc2lfMTA1X3NldF90ZXJtaW9zLAorCS8qLmJyZWFrX2N0bCA9CSAgICAga2xzaV8xMDVfYnJlYWtfY3RsLCovCisJLnRpb2NtZ2V0ID0gICAgICAgICAga2xzaV8xMDVfdGlvY21nZXQsCisJLnRpb2Ntc2V0ID0gICAgICAgICAga2xzaV8xMDVfdGlvY21zZXQsCisJLmF0dGFjaCA9CSAgICAga2xzaV8xMDVfc3RhcnR1cCwKKwkuc2h1dGRvd24gPQkgICAgIGtsc2lfMTA1X3NodXRkb3duLAorCS50aHJvdHRsZSA9CSAgICAga2xzaV8xMDVfdGhyb3R0bGUsCisJLnVudGhyb3R0bGUgPQkgICAgIGtsc2lfMTA1X3VudGhyb3R0bGUsCit9OworCitzdHJ1Y3Qga2xzaV8xMDVfcG9ydF9zZXR0aW5ncyB7CisJX191OAlwa3RsZW47CQkvKiBhbHdheXMgNSwgaXQgc2VlbXMgKi8KKwlfX3U4CWJhdWRyYXRlOworCV9fdTgJZGF0YWJpdHM7CisJX191OAl1bmtub3duMTsKKwlfX3U4CXVua25vd24yOworfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7CisKKy8qIHdlIGltcGxlbWVudCBhIHBvb2wgb2YgTlVNX1VSQlMgdXJicyBwZXIgdXNiX3NlcmlhbCAqLworI2RlZmluZSBOVU1fVVJCUwkJCTEKKyNkZWZpbmUgVVJCX1RSQU5TRkVSX0JVRkZFUl9TSVpFCTY0CitzdHJ1Y3Qga2xzaV8xMDVfcHJpdmF0ZSB7CisJc3RydWN0IGtsc2lfMTA1X3BvcnRfc2V0dGluZ3MJY2ZnOworCXN0cnVjdCB0ZXJtaW9zCQkJdGVybWlvczsKKwl1bnNpZ25lZCBsb25nCQkJbGluZV9zdGF0ZTsgLyogbW9kZW0gbGluZSBzZXR0aW5ncyAqLworCS8qIHdyaXRlIHBvb2wgKi8KKwlzdHJ1Y3QgdXJiICoJCQl3cml0ZV91cmJfcG9vbFtOVU1fVVJCU107CisJc3BpbmxvY2tfdAkJCWxvY2s7CisJdW5zaWduZWQgbG9uZwkJCWJ5dGVzX2luOworCXVuc2lnbmVkIGxvbmcJCQlieXRlc19vdXQ7Cit9OworCisKKy8qCisgKiBIYW5kbGUgdmVuZG9yIHNwZWNpZmljIFVTQiByZXF1ZXN0cworICovCisKKworI2RlZmluZSBLTFNJX1RJTUVPVVQJIDUwMDAgLyogZGVmYXVsdCB1cmIgdGltZW91dCAqLworCitzdGF0aWMgaW50IGtsc2lfMTA1X2NoZ19wb3J0X3NldHRpbmdzKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCisJCQkJICAgICAgc3RydWN0IGtsc2lfMTA1X3BvcnRfc2V0dGluZ3MgKnNldHRpbmdzKQoreworCWludCByYzsKKworICAgICAgICByYyA9IHVzYl9jb250cm9sX21zZyhwb3J0LT5zZXJpYWwtPmRldiwKKwkJCSAgICAgdXNiX3NuZGN0cmxwaXBlKHBvcnQtPnNlcmlhbC0+ZGV2LCAwKSwKKwkJCSAgICAgS0w1S1VTQjEwNUFfU0lPX1NFVF9EQVRBLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVU0JfVFlQRV9WRU5ET1IgfCBVU0JfRElSX09VVCB8IFVTQl9SRUNJUF9JTlRFUkZBQ0UsCisJCQkgICAgIDAsIC8qIHZhbHVlICovCisJCQkgICAgIDAsIC8qIGluZGV4ICovCisJCQkgICAgIHNldHRpbmdzLAorCQkJICAgICBzaXplb2Yoc3RydWN0IGtsc2lfMTA1X3BvcnRfc2V0dGluZ3MpLAorCQkJICAgICBLTFNJX1RJTUVPVVQpOworCWlmIChyYyA8IDApCisJCWVycigiQ2hhbmdlIHBvcnQgc2V0dGluZ3MgZmFpbGVkIChlcnJvciA9ICVkKSIsIHJjKTsKKwlpbmZvKCIlcyAtICVkIGJ5dGUgYmxvY2ssIGJhdWRyYXRlICV4LCBkYXRhYml0cyAlZCwgdTEgJWQsIHUyICVkIiwKKwkgICAgX19GVU5DVElPTl9fLAorCSAgICBzZXR0aW5ncy0+cGt0bGVuLAorCSAgICBzZXR0aW5ncy0+YmF1ZHJhdGUsIHNldHRpbmdzLT5kYXRhYml0cywKKwkgICAgc2V0dGluZ3MtPnVua25vd24xLCBzZXR0aW5ncy0+dW5rbm93bjIpOworICAgICAgICByZXR1cm4gcmM7Cit9IC8qIGtsc2lfMTA1X2NoZ19wb3J0X3NldHRpbmdzICovCisKKy8qIHRyYW5zbGF0ZSBhIDE2LWJpdCBzdGF0dXMgdmFsdWUgZnJvbSB0aGUgZGV2aWNlIHRvIGxpbnV4J3MgVElPIGJpdHMgKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nIGtsc2lfMTA1X3N0YXR1czJsaW5lc3RhdGUoY29uc3QgX191MTYgc3RhdHVzKQoreworCXVuc2lnbmVkIGxvbmcgcmVzID0gMDsKKworCXJlcyA9ICAgKChzdGF0dXMgJiBLTDVLVVNCMTA1QV9EU1IpID8gVElPQ01fRFNSIDogMCkKKwkgICAgICB8ICgoc3RhdHVzICYgS0w1S1VTQjEwNUFfQ1RTKSA/IFRJT0NNX0NUUyA6IDApCisJICAgICAgOworCisJcmV0dXJuIHJlczsKK30KKy8qIAorICogUmVhZCBsaW5lIGNvbnRyb2wgdmlhIHZlbmRvciBjb21tYW5kIGFuZCByZXR1cm4gcmVzdWx0IHRocm91Z2gKKyAqICpsaW5lX3N0YXRlX3AgCisgKi8KKy8qIEl0IHNlZW1zIHRoYXQgdGhlIHN0YXR1cyBidWZmZXIgaGFzIGFsd2F5cyBvbmx5IDIgYnl0ZXMgbGVuZ3RoICovCisjZGVmaW5lIEtMU0lfU1RBVFVTQlVGX0xFTgkyCitzdGF0aWMgaW50IGtsc2lfMTA1X2dldF9saW5lX3N0YXRlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCisJCQkJICAgdW5zaWduZWQgbG9uZyAqbGluZV9zdGF0ZV9wKQoreworCWludCByYzsKKwlfX3U4IHN0YXR1c19idWZbS0xTSV9TVEFUVVNCVUZfTEVOXSA9IHsgLTEsLTF9OworCV9fdTE2IHN0YXR1czsKKworCWluZm8oIiVzIC0gc2VuZGluZyBTSU8gUG9sbCByZXF1ZXN0IiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmMgPSB1c2JfY29udHJvbF9tc2cocG9ydC0+c2VyaWFsLT5kZXYsCisJCQkgICAgIHVzYl9yY3ZjdHJscGlwZShwb3J0LT5zZXJpYWwtPmRldiwgMCksCisJCQkgICAgIEtMNUtVU0IxMDVBX1NJT19QT0xMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVU0JfVFlQRV9WRU5ET1IgfCBVU0JfRElSX0lOLAorCQkJICAgICAwLCAvKiB2YWx1ZSAqLworCQkJICAgICAwLCAvKiBpbmRleCAqLworCQkJICAgICBzdGF0dXNfYnVmLCBLTFNJX1NUQVRVU0JVRl9MRU4sCisJCQkgICAgIDEwMDAwCisJCQkgICAgICk7CisJaWYgKHJjIDwgMCkKKwkJZXJyKCJSZWFkaW5nIGxpbmUgc3RhdHVzIGZhaWxlZCAoZXJyb3IgPSAlZCkiLCByYyk7CisJZWxzZSB7CisJCXN0YXR1cyA9IHN0YXR1c19idWZbMF0gKyAoc3RhdHVzX2J1ZlsxXTw8OCk7CisKKwkJaW5mbygiJXMgLSByZWFkIHN0YXR1cyAleCAleCIsIF9fRlVOQ1RJT05fXywKKwkJICAgICBzdGF0dXNfYnVmWzBdLCBzdGF0dXNfYnVmWzFdKTsKKworCQkqbGluZV9zdGF0ZV9wID0ga2xzaV8xMDVfc3RhdHVzMmxpbmVzdGF0ZShzdGF0dXMpOworCX0KKworICAgICAgICByZXR1cm4gcmM7Cit9CisKKworLyoKKyAqIERyaXZlcidzIHR0eSBpbnRlcmZhY2UgZnVuY3Rpb25zCisgKi8KKworc3RhdGljIGludCBrbHNpXzEwNV9zdGFydHVwIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQoreworCXN0cnVjdCBrbHNpXzEwNV9wcml2YXRlICpwcml2OworCWludCBpOworCisJLyogY2hlY2sgaWYgd2Ugc3VwcG9ydCB0aGUgcHJvZHVjdCBpZCAoc2VlIGtleXNwYW4uYykKKwkgKiBGSVhNRQorCSAqLworCisJLyogYWxsb2NhdGUgdGhlIHByaXZhdGUgZGF0YSBzdHJ1Y3R1cmUgKi8KKwlmb3IgKGk9MDsgaTxzZXJpYWwtPm51bV9wb3J0czsgaSsrKSB7CisJCWludCBqOworCQlwcml2ID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IGtsc2lfMTA1X3ByaXZhdGUpLAorCQkJCQkJICAgR0ZQX0tFUk5FTCk7CisJCWlmICghcHJpdikgeworCQkJZGJnKCIlc2ttYWxsb2MgZm9yIGtsc2lfMTA1X3ByaXZhdGUgZmFpbGVkLiIsIF9fRlVOQ1RJT05fXyk7CisJCQlyZXR1cm4gLUVOT01FTTsKKwkJfQorCQkvKiBzZXQgaW5pdGlhbCB2YWx1ZXMgZm9yIGNvbnRyb2wgc3RydWN0dXJlcyAqLworCQlwcml2LT5jZmcucGt0bGVuICAgID0gNTsKKwkJcHJpdi0+Y2ZnLmJhdWRyYXRlICA9IGtsNWt1c2IxMDVhX3Npb19iOTYwMDsKKwkJcHJpdi0+Y2ZnLmRhdGFiaXRzICA9IGtsNWt1c2IxMDVhX2R0Yl84OworCQlwcml2LT5jZmcudW5rbm93bjEgID0gMDsKKwkJcHJpdi0+Y2ZnLnVua25vd24yICA9IDE7CisKKwkJcHJpdi0+bGluZV9zdGF0ZSAgICA9IDA7CisKKwkJcHJpdi0+Ynl0ZXNfaW4JICAgID0gMDsKKwkJcHJpdi0+Ynl0ZXNfb3V0CSAgICA9IDA7CisJCXVzYl9zZXRfc2VyaWFsX3BvcnRfZGF0YShzZXJpYWwtPnBvcnRbaV0sIHByaXYpOworCisJCXNwaW5fbG9ja19pbml0ICgmcHJpdi0+bG9jayk7CisJCWZvciAoaj0wOyBqPE5VTV9VUkJTOyBqKyspIHsKKwkJCXN0cnVjdCB1cmIqIHVyYiA9IHVzYl9hbGxvY191cmIoMCwgR0ZQX0tFUk5FTCk7CisKKwkJCXByaXYtPndyaXRlX3VyYl9wb29sW2pdID0gdXJiOworCQkJaWYgKHVyYiA9PSBOVUxMKSB7CisJCQkJZXJyKCJObyBtb3JlIHVyYnM/Pz8iKTsKKwkJCQljb250aW51ZTsKKwkJCX0KKworCQkJdXJiLT50cmFuc2Zlcl9idWZmZXIgPSBOVUxMOworCQkJdXJiLT50cmFuc2Zlcl9idWZmZXIgPSBrbWFsbG9jIChVUkJfVFJBTlNGRVJfQlVGRkVSX1NJWkUsCisJCQkJCQkJR0ZQX0tFUk5FTCk7CisJCQlpZiAoIXVyYi0+dHJhbnNmZXJfYnVmZmVyKSB7CisJCQkJZXJyKCIlcyAtIG91dCBvZiBtZW1vcnkgZm9yIHVyYiBidWZmZXJzLiIsIF9fRlVOQ1RJT05fXyk7CisJCQkJY29udGludWU7CisJCQl9CisJCX0KKworCQkvKiBwcml2LT50ZXJtaW9zIGlzIGxlZnQgdW5pbml0YWxpemVkIHVudGlsIHBvcnQgb3BlbmluZyAqLworCQlpbml0X3dhaXRxdWV1ZV9oZWFkKCZzZXJpYWwtPnBvcnRbaV0tPndyaXRlX3dhaXQpOworCX0KKwkKKwlyZXR1cm4gKDApOworfSAvKiBrbHNpXzEwNV9zdGFydHVwICovCisKKworc3RhdGljIHZvaWQga2xzaV8xMDVfc2h1dGRvd24gKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7CisJaW50IGk7CisJCisJZGJnKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwkvKiBzdG9wIHJlYWRzIGFuZCB3cml0ZXMgb24gYWxsIHBvcnRzICovCisJZm9yIChpPTA7IGkgPCBzZXJpYWwtPm51bV9wb3J0czsgKytpKSB7CisJCXN0cnVjdCBrbHNpXzEwNV9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHNlcmlhbC0+cG9ydFtpXSk7CisJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwkJaWYgKHByaXYpIHsKKwkJCS8qIGtpbGwgb3VyIHdyaXRlIHVyYiBwb29sICovCisJCQlpbnQgajsKKwkJCXN0cnVjdCB1cmIgKip3cml0ZV91cmJzID0gcHJpdi0+d3JpdGVfdXJiX3Bvb2w7CisJCQlzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+bG9jayxmbGFncyk7CisKKwkJCWZvciAoaiA9IDA7IGogPCBOVU1fVVJCUzsgaisrKSB7CisJCQkJaWYgKHdyaXRlX3VyYnNbal0pIHsKKwkJCQkJLyogRklYTUUgLSB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZworCQkJCQkgKiB1c2Jfa2lsbF91cmIgY2FsbCB3aGVuIHRoZSBob3N0CisJCQkJCSAqIGNvbnRyb2xsZXJzIGdldCBmaXhlZCB0byBzZXQKKwkJCQkJICogdXJiLT5kZXYgPSBOVUxMIGFmdGVyIHRoZSB1cmIgaXMKKwkJCQkJICogZmluaXNoZWQuICBPdGhlcndpc2UgdGhpcyBjYWxsCisJCQkJCSAqIG9vcHNlcy4gKi8KKwkJCQkJLyogdXNiX2tpbGxfdXJiKHdyaXRlX3VyYnNbal0pOyAqLworCQkJCQlpZiAod3JpdGVfdXJic1tqXS0+dHJhbnNmZXJfYnVmZmVyKQorCQkJCQkJICAgIGtmcmVlKHdyaXRlX3VyYnNbal0tPnRyYW5zZmVyX2J1ZmZlcik7CisJCQkJCXVzYl9mcmVlX3VyYiAod3JpdGVfdXJic1tqXSk7CisJCQkJfQorCQkJfQorCisJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlICgmcHJpdi0+bG9jaywgZmxhZ3MpOworCisJCQlrZnJlZShwcml2KTsKKwkJCXVzYl9zZXRfc2VyaWFsX3BvcnRfZGF0YShzZXJpYWwtPnBvcnRbaV0sIE5VTEwpOworCQl9CisJfQorfSAvKiBrbHNpXzEwNV9zaHV0ZG93biAqLworCitzdGF0aWMgaW50ICBrbHNpXzEwNV9vcGVuIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlzdHJ1Y3Qga2xzaV8xMDVfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlpbnQgcmV0dmFsID0gMDsKKwlpbnQgcmM7CisJaW50IGk7CisJdW5zaWduZWQgbG9uZyBsaW5lX3N0YXRlOworCXN0cnVjdCBrbHNpXzEwNV9wb3J0X3NldHRpbmdzIGNmZzsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZGJnKCIlcyBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJLyogZm9yY2UgbG93X2xhdGVuY3kgb24gc28gdGhhdCBvdXIgdHR5X3B1c2ggYWN0dWFsbHkgZm9yY2VzCisJICogdGhlIGRhdGEgdGhyb3VnaAorCSAqIHBvcnQtPnR0eS0+bG93X2xhdGVuY3kgPSAxOyAqLworCisJLyogRG8gYSBkZWZpbmVkIHJlc3RhcnQ6CisJICogU2V0IHVwIHNhbmUgZGVmYXVsdCBiYXVkIHJhdGUgYW5kIHNlbmQgdGhlICdSRUFEX09OJworCSAqIHZlbmRvciBjb21tYW5kLiAKKwkgKiBGSVhNRTogc2V0IG1vZGVtIGxpbmUgY29udHJvbCAoaG93PykKKwkgKiBUaGVuIHJlYWQgdGhlIG1vZGVtIGxpbmUgY29udHJvbCBhbmQgc3RvcmUgdmFsdWVzIGluCisJICogcHJpdi0+bGluZV9zdGF0ZS4KKwkgKi8KKwljZmcucGt0bGVuICAgPSA1OworCWNmZy5iYXVkcmF0ZSA9IGtsNWt1c2IxMDVhX3Npb19iOTYwMDsKKwljZmcuZGF0YWJpdHMgPSBrbDVrdXNiMTA1YV9kdGJfODsKKwljZmcudW5rbm93bjEgPSAwOworCWNmZy51bmtub3duMiA9IDE7CisJa2xzaV8xMDVfY2hnX3BvcnRfc2V0dGluZ3MocG9ydCwgJmNmZyk7CisJCisJLyogc2V0IHVwIHRlcm1pb3Mgc3RydWN0dXJlICovCisJc3Bpbl9sb2NrX2lycXNhdmUgKCZwcml2LT5sb2NrLCBmbGFncyk7CisJcHJpdi0+dGVybWlvcy5jX2lmbGFnID0gcG9ydC0+dHR5LT50ZXJtaW9zLT5jX2lmbGFnOworCXByaXYtPnRlcm1pb3MuY19vZmxhZyA9IHBvcnQtPnR0eS0+dGVybWlvcy0+Y19vZmxhZzsKKwlwcml2LT50ZXJtaW9zLmNfY2ZsYWcgPSBwb3J0LT50dHktPnRlcm1pb3MtPmNfY2ZsYWc7CisJcHJpdi0+dGVybWlvcy5jX2xmbGFnID0gcG9ydC0+dHR5LT50ZXJtaW9zLT5jX2xmbGFnOworCWZvciAoaT0wOyBpPE5DQ1M7IGkrKykKKwkJcHJpdi0+dGVybWlvcy5jX2NjW2ldID0gcG9ydC0+dHR5LT50ZXJtaW9zLT5jX2NjW2ldOworCXByaXYtPmNmZy5wa3RsZW4gICA9IGNmZy5wa3RsZW47CisJcHJpdi0+Y2ZnLmJhdWRyYXRlID0gY2ZnLmJhdWRyYXRlOworCXByaXYtPmNmZy5kYXRhYml0cyA9IGNmZy5kYXRhYml0czsKKwlwcml2LT5jZmcudW5rbm93bjEgPSBjZmcudW5rbm93bjE7CisJcHJpdi0+Y2ZnLnVua25vd24yID0gY2ZnLnVua25vd24yOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUgKCZwcml2LT5sb2NrLCBmbGFncyk7CisKKwkvKiBSRUFEX09OIGFuZCB1cmIgc3VibWlzc2lvbiAqLworCXVzYl9maWxsX2J1bGtfdXJiKHBvcnQtPnJlYWRfdXJiLCBwb3J0LT5zZXJpYWwtPmRldiwgCisJCSAgICAgIHVzYl9yY3ZidWxrcGlwZShwb3J0LT5zZXJpYWwtPmRldiwKKwkJCQkgICAgICBwb3J0LT5idWxrX2luX2VuZHBvaW50QWRkcmVzcyksCisJCSAgICAgIHBvcnQtPnJlYWRfdXJiLT50cmFuc2Zlcl9idWZmZXIsCisJCSAgICAgIHBvcnQtPnJlYWRfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoLAorCQkgICAgICBrbHNpXzEwNV9yZWFkX2J1bGtfY2FsbGJhY2ssCisJCSAgICAgIHBvcnQpOworCisJcmMgPSB1c2Jfc3VibWl0X3VyYihwb3J0LT5yZWFkX3VyYiwgR0ZQX0tFUk5FTCk7CisJaWYgKHJjKSB7CisJCWVycigiJXMgLSBmYWlsZWQgc3VibWl0dGluZyByZWFkIHVyYiwgZXJyb3IgJWQiLCBfX0ZVTkNUSU9OX18sIHJjKTsKKwkJcmV0dmFsID0gcmM7CisJCWdvdG8gZXhpdDsKKwl9CisKKwlyYyA9IHVzYl9jb250cm9sX21zZyhwb3J0LT5zZXJpYWwtPmRldiwKKwkJCSAgICAgdXNiX3NuZGN0cmxwaXBlKHBvcnQtPnNlcmlhbC0+ZGV2LDApLAorCQkJICAgICBLTDVLVVNCMTA1QV9TSU9fQ09ORklHVVJFLAorCQkJICAgICBVU0JfVFlQRV9WRU5ET1J8VVNCX0RJUl9PVVR8VVNCX1JFQ0lQX0lOVEVSRkFDRSwKKwkJCSAgICAgS0w1S1VTQjEwNUFfU0lPX0NPTkZJR1VSRV9SRUFEX09OLAorCQkJICAgICAwLCAvKiBpbmRleCAqLworCQkJICAgICBOVUxMLAorCQkJICAgICAwLAorCQkJICAgICBLTFNJX1RJTUVPVVQpOworCWlmIChyYyA8IDApIHsKKwkJZXJyKCJFbmFibGluZyByZWFkIGZhaWxlZCAoZXJyb3IgPSAlZCkiLCByYyk7CisJCXJldHZhbCA9IHJjOworCX0gZWxzZSAKKwkJZGJnKCIlcyAtIGVuYWJsZWQgcmVhZGluZyIsIF9fRlVOQ1RJT05fXyk7CisKKwlyYyA9IGtsc2lfMTA1X2dldF9saW5lX3N0YXRlKHBvcnQsICZsaW5lX3N0YXRlKTsKKwlpZiAocmMgPj0gMCkgeworCQlzcGluX2xvY2tfaXJxc2F2ZSAoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwkJcHJpdi0+bGluZV9zdGF0ZSA9IGxpbmVfc3RhdGU7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUgKCZwcml2LT5sb2NrLCBmbGFncyk7CisJCWRiZygiJXMgLSByZWFkIGxpbmUgc3RhdGUgMHglbHgiLCBfX0ZVTkNUSU9OX18sIGxpbmVfc3RhdGUpOworCQlyZXR2YWwgPSAwOworCX0gZWxzZQorCQlyZXR2YWwgPSByYzsKKworZXhpdDoKKwlyZXR1cm4gcmV0dmFsOworfSAvKiBrbHNpXzEwNV9vcGVuICovCisKKworc3RhdGljIHZvaWQga2xzaV8xMDVfY2xvc2UgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKQoreworCXN0cnVjdCBrbHNpXzEwNV9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCWludCByYzsKKworCWRiZygiJXMgcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCS8qIHNlbmQgUkVBRF9PRkYgKi8KKwlyYyA9IHVzYl9jb250cm9sX21zZyAocG9ydC0+c2VyaWFsLT5kZXYsCisJCQkgICAgICB1c2Jfc25kY3RybHBpcGUocG9ydC0+c2VyaWFsLT5kZXYsIDApLAorCQkJICAgICAgS0w1S1VTQjEwNUFfU0lPX0NPTkZJR1VSRSwKKwkJCSAgICAgIFVTQl9UWVBFX1ZFTkRPUiB8IFVTQl9ESVJfT1VULAorCQkJICAgICAgS0w1S1VTQjEwNUFfU0lPX0NPTkZJR1VSRV9SRUFEX09GRiwKKwkJCSAgICAgIDAsIC8qIGluZGV4ICovCisJCQkgICAgICBOVUxMLCAwLAorCQkJICAgICAgS0xTSV9USU1FT1VUKTsKKwlpZiAocmMgPCAwKQorCQkgICAgZXJyKCJEaXNhYmxpbmcgcmVhZCBmYWlsZWQgKGVycm9yID0gJWQpIiwgcmMpOworCisJLyogc2h1dGRvd24gb3VyIGJ1bGsgcmVhZHMgYW5kIHdyaXRlcyAqLworCXVzYl9raWxsX3VyYihwb3J0LT53cml0ZV91cmIpOworCXVzYl9raWxsX3VyYihwb3J0LT5yZWFkX3VyYik7CisJLyogdW5saW5rIG91ciB3cml0ZSBwb29sICovCisJLyogRklYTUUgKi8KKwkvKiB3Z2cgLSBkbyBJIG5lZWQgdGhpcz8gSSB0aGluayBzby4gKi8KKwl1c2Jfa2lsbF91cmIocG9ydC0+aW50ZXJydXB0X2luX3VyYik7CisJaW5mbygia2w1a3VzYjEwNSBwb3J0IHN0YXRzOiAlbGQgYnl0ZXMgaW4sICVsZCBieXRlcyBvdXQiLCBwcml2LT5ieXRlc19pbiwgcHJpdi0+Ynl0ZXNfb3V0KTsKK30gLyoga2xzaV8xMDVfY2xvc2UgKi8KKworCisvKiBXZSBuZWVkIHRvIHdyaXRlIGEgY29tcGxldGUgNjQtYnl0ZSBkYXRhIGJsb2NrIGFuZCBlbmNvZGUgdGhlCisgKiBudW1iZXIgYWN0dWFsbHkgc2VudCBpbiB0aGUgZmlyc3QgZG91YmxlLWJ5dGUsIExTQi1vcmRlci4gVGhhdCAKKyAqIGxlYXZlcyBhdCBtb3N0IDYyIGJ5dGVzIG9mIHBheWxvYWQuCisgKi8KKyNkZWZpbmUgS0xTSV8xMDVfREFUQV9PRkZTRVQJMiAgIC8qIGluIHRoZSBidWxrIHVyYiBkYXRhIGJsb2NrICovCisKKworc3RhdGljIGludCBrbHNpXzEwNV93cml0ZSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwKKwkJCSAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGNvdW50KQoreworCXN0cnVjdCBrbHNpXzEwNV9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCWludCByZXN1bHQsIHNpemU7CisJaW50IGJ5dGVzX3NlbnQ9MDsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJd2hpbGUgKGNvdW50ID4gMCkgeworCQkvKiB0cnkgdG8gZmluZCBhIGZyZWUgdXJiICh3cml0ZSAwIGJ5dGVzIGlmIG5vbmUpICovCisJCXN0cnVjdCB1cmIgKnVyYiA9IE5VTEw7CisJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJCWludCBpOworCQkvKiBzaW5jZSB0aGUgcG9vbCBpcyBwZXItcG9ydCB3ZSBtaWdodCBub3QgbmVlZCB0aGUgc3BpbiBsb2NrICE/ICovCisJCXNwaW5fbG9ja19pcnFzYXZlICgmcHJpdi0+bG9jaywgZmxhZ3MpOworCQlmb3IgKGk9MDsgaTxOVU1fVVJCUzsgaSsrKSB7CisJCQlpZiAocHJpdi0+d3JpdGVfdXJiX3Bvb2xbaV0tPnN0YXR1cyAhPSAtRUlOUFJPR1JFU1MpIHsKKwkJCQl1cmIgPSBwcml2LT53cml0ZV91cmJfcG9vbFtpXTsKKwkJCQlkYmcoIiVzIC0gdXNpbmcgcG9vbCBVUkIgJWQiLCBfX0ZVTkNUSU9OX18sIGkpOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUgKCZwcml2LT5sb2NrLCBmbGFncyk7CisKKwkJaWYgKHVyYj09TlVMTCkgeworCQkJZGJnKCIlcyAtIG5vIG1vcmUgZnJlZSB1cmJzIiwgX19GVU5DVElPTl9fKTsKKwkJCWdvdG8gZXhpdDsKKwkJfQorCisJCWlmICh1cmItPnRyYW5zZmVyX2J1ZmZlciA9PSBOVUxMKSB7CisJCQl1cmItPnRyYW5zZmVyX2J1ZmZlciA9IGttYWxsb2MgKFVSQl9UUkFOU0ZFUl9CVUZGRVJfU0laRSwgR0ZQX0FUT01JQyk7CisJCQlpZiAodXJiLT50cmFuc2Zlcl9idWZmZXIgPT0gTlVMTCkgeworCQkJCWVycigiJXMgLSBubyBtb3JlIGtlcm5lbCBtZW1vcnkuLi4iLCBfX0ZVTkNUSU9OX18pOworCQkJCWdvdG8gZXhpdDsKKwkJCX0KKwkJfQorCisJCXNpemUgPSBtaW4gKGNvdW50LCBwb3J0LT5idWxrX291dF9zaXplIC0gS0xTSV8xMDVfREFUQV9PRkZTRVQpOworCQlzaXplID0gbWluIChzaXplLCBVUkJfVFJBTlNGRVJfQlVGRkVSX1NJWkUgLSBLTFNJXzEwNV9EQVRBX09GRlNFVCk7CisKKwkJbWVtY3B5ICh1cmItPnRyYW5zZmVyX2J1ZmZlciArIEtMU0lfMTA1X0RBVEFfT0ZGU0VULCBidWYsIHNpemUpOworCisJCS8qIHdyaXRlIHBheWxvYWQgc2l6ZSBpbnRvIHRyYW5zZmVyIGJ1ZmZlciAqLworCQkoKF9fdTggKil1cmItPnRyYW5zZmVyX2J1ZmZlcilbMF0gPSAoX191OCkgKHNpemUgJiAweEZGKTsKKwkJKChfX3U4ICopdXJiLT50cmFuc2Zlcl9idWZmZXIpWzFdID0gKF9fdTgpICgoc2l6ZSAmIDB4RkYwMCk+PjgpOworCisJCS8qIHNldCB1cCBvdXIgdXJiICovCisJCXVzYl9maWxsX2J1bGtfdXJiKHVyYiwgcG9ydC0+c2VyaWFsLT5kZXYsCisJCQkgICAgICB1c2Jfc25kYnVsa3BpcGUocG9ydC0+c2VyaWFsLT5kZXYsCisJCQkJCSAgICAgIHBvcnQtPmJ1bGtfb3V0X2VuZHBvaW50QWRkcmVzcyksCisJCQkgICAgICB1cmItPnRyYW5zZmVyX2J1ZmZlciwKKwkJCSAgICAgIFVSQl9UUkFOU0ZFUl9CVUZGRVJfU0laRSwKKwkJCSAgICAgIGtsc2lfMTA1X3dyaXRlX2J1bGtfY2FsbGJhY2ssCisJCQkgICAgICBwb3J0KTsKKworCQkvKiBzZW5kIHRoZSBkYXRhIG91dCB0aGUgYnVsayBwb3J0ICovCisJCXJlc3VsdCA9IHVzYl9zdWJtaXRfdXJiKHVyYiwgR0ZQX0FUT01JQyk7CisJCWlmIChyZXN1bHQpIHsKKwkJCWVycigiJXMgLSBmYWlsZWQgc3VibWl0dGluZyB3cml0ZSB1cmIsIGVycm9yICVkIiwgX19GVU5DVElPTl9fLCByZXN1bHQpOworCQkJZ290byBleGl0OworCQl9CisJCWJ1ZiArPSBzaXplOworCQlieXRlc19zZW50ICs9IHNpemU7CisJCWNvdW50IC09IHNpemU7CisJfQorZXhpdDoKKwkvKiBsb2NrbGVzcywgYnV0IGl0J3MgZm9yIGRlYnVnIGluZm8gb25seS4uLiAqLworCXByaXYtPmJ5dGVzX291dCs9Ynl0ZXNfc2VudDsKKworCXJldHVybiBieXRlc19zZW50OwkvKiB0aGF0J3MgaG93IG11Y2ggd2Ugd3JvdGUgKi8KK30gLyoga2xzaV8xMDVfd3JpdGUgKi8KKworc3RhdGljIHZvaWQga2xzaV8xMDVfd3JpdGVfYnVsa19jYWxsYmFjayAoIHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopdXJiLT5jb250ZXh0OworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisJCisJaWYgKHVyYi0+c3RhdHVzKSB7CisJCWRiZygiJXMgLSBub256ZXJvIHdyaXRlIGJ1bGsgc3RhdHVzIHJlY2VpdmVkOiAlZCIsIF9fRlVOQ1RJT05fXywKKwkJICAgIHVyYi0+c3RhdHVzKTsKKwkJcmV0dXJuOworCX0KKworCS8qIGZyb20gZ2VuZXJpY193cml0ZV9idWxrX2NhbGxiYWNrICovCisJc2NoZWR1bGVfd29yaygmcG9ydC0+d29yayk7Cit9IC8qIGtsc2lfMTA1X3dyaXRlX2J1bGtfY29tcGxldGlvbl9jYWxsYmFjayAqLworCisKKy8qIHJldHVybiBudW1iZXIgb2YgY2hhcmFjdGVycyBjdXJyZW50bHkgaW4gdGhlIHdyaXRpbmcgcHJvY2VzcyAqLworc3RhdGljIGludCBrbHNpXzEwNV9jaGFyc19pbl9idWZmZXIgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpCit7CisJaW50IGNoYXJzID0gMDsKKwlpbnQgaTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXN0cnVjdCBrbHNpXzEwNV9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCisJc3Bpbl9sb2NrX2lycXNhdmUgKCZwcml2LT5sb2NrLCBmbGFncyk7CisKKwlmb3IgKGkgPSAwOyBpIDwgTlVNX1VSQlM7ICsraSkgeworCQlpZiAocHJpdi0+d3JpdGVfdXJiX3Bvb2xbaV0tPnN0YXR1cyA9PSAtRUlOUFJPR1JFU1MpIHsKKwkJCWNoYXJzICs9IFVSQl9UUkFOU0ZFUl9CVUZGRVJfU0laRTsKKwkJfQorCX0KKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUgKCZwcml2LT5sb2NrLCBmbGFncyk7CisKKwlkYmcoIiVzIC0gcmV0dXJucyAlZCIsIF9fRlVOQ1RJT05fXywgY2hhcnMpOworCXJldHVybiAoY2hhcnMpOworfQorCitzdGF0aWMgaW50IGtsc2lfMTA1X3dyaXRlX3Jvb20gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQgaTsKKwlpbnQgcm9vbSA9IDA7CisJc3RydWN0IGtsc2lfMTA1X3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSAoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwlmb3IgKGkgPSAwOyBpIDwgTlVNX1VSQlM7ICsraSkgeworCQlpZiAocHJpdi0+d3JpdGVfdXJiX3Bvb2xbaV0tPnN0YXR1cyAhPSAtRUlOUFJPR1JFU1MpIHsKKwkJCXJvb20gKz0gVVJCX1RSQU5TRkVSX0JVRkZFUl9TSVpFOworCQl9CisJfQorCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSAoJnByaXYtPmxvY2ssIGZsYWdzKTsKKworCWRiZygiJXMgLSByZXR1cm5zICVkIiwgX19GVU5DVElPTl9fLCByb29tKTsKKwlyZXR1cm4gKHJvb20pOworfQorCisKKworc3RhdGljIHZvaWQga2xzaV8xMDVfcmVhZF9idWxrX2NhbGxiYWNrIChzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqKXVyYi0+Y29udGV4dDsKKwlzdHJ1Y3Qga2xzaV8xMDVfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5OworCXVuc2lnbmVkIGNoYXIgKmRhdGEgPSB1cmItPnRyYW5zZmVyX2J1ZmZlcjsKKwlpbnQgcmM7CisKKyAgICAgICAgZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwkvKiBUaGUgdXJiIG1pZ2h0IGhhdmUgYmVlbiBraWxsZWQuICovCisgICAgICAgIGlmICh1cmItPnN0YXR1cykgeworICAgICAgICAgICAgICAgIGRiZygiJXMgLSBub256ZXJvIHJlYWQgYnVsayBzdGF0dXMgcmVjZWl2ZWQ6ICVkIiwgX19GVU5DVElPTl9fLAorCQkgICAgdXJiLT5zdGF0dXMpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCQorCS8qIFRoZSBkYXRhIHJlY2VpdmVkIGlzIGFnYWluIHByZWNlZGVkIGJ5IGEgbGVuZ3RoIGRvdWJsZS1ieXRlIGluIExTQi0KKwkgKiBmaXJzdCBvcmRlciAoc2VlIGtsc2lfMTA1X3dyaXRlKCkgKQorCSAqLworCWlmICh1cmItPmFjdHVhbF9sZW5ndGggPT0gMCkgeworCQkvKiBlbXB0eSB1cmJzIHNlZW0gdG8gaGFwcGVuLCB3ZSBpZ25vcmUgdGhlbSAqLworCQkvKiBkYmcoIiVzIC0gZW10cHkgVVJCIiwgX19GVU5DVElPTl9fKTsgKi8KKwkgICAgICAgOworCX0gZWxzZSBpZiAodXJiLT5hY3R1YWxfbGVuZ3RoIDw9IDIpIHsKKwkJZGJnKCIlcyAtIHNpemUgJWQgVVJCIG5vdCB1bmRlcnN0b29kIiwgX19GVU5DVElPTl9fLAorCQkgICAgdXJiLT5hY3R1YWxfbGVuZ3RoKTsKKwkJdXNiX3NlcmlhbF9kZWJ1Z19kYXRhKGRlYnVnLCAmcG9ydC0+ZGV2LCBfX0ZVTkNUSU9OX18sCisJCQkJICAgICAgdXJiLT5hY3R1YWxfbGVuZ3RoLCBkYXRhKTsKKwl9IGVsc2UgeworCQlpbnQgaTsKKwkJaW50IGJ5dGVzX3NlbnQgPSAoKF9fdTggKikgZGF0YSlbMF0gKworCQkJCSAoKHVuc2lnbmVkIGludCkgKChfX3U4ICopIGRhdGEpWzFdIDw8IDgpOworCQl0dHkgPSBwb3J0LT50dHk7CisJCS8qIHdlIHNob3VsZCBpbW1lZGlhdGVseSByZXN1Ym1pdCB0aGUgVVJCLCBiZWZvcmUgYXR0ZW1wdGluZworCQkgKiB0byBwYXNzIHRoZSBkYXRhIG9uIHRvIHRoZSB0dHkgbGF5ZXIuIEJ1dCB0aGF0IG5lZWRzIGxvY2tpbmcKKwkJICogYWdhaW5zdCByZS1lbnRyeSBhbiB0aGVuIG1peGVkLXVwIGRhdGEgYmVjYXVzZSBvZgorCQkgKiBpbnRlcm1peGVkIHR0eV9mbGlwX2J1ZmZlcl9wdXNoKClzCisJCSAqIEZJWE1FCisJCSAqLyAKKwkJdXNiX3NlcmlhbF9kZWJ1Z19kYXRhKGRlYnVnLCAmcG9ydC0+ZGV2LCBfX0ZVTkNUSU9OX18sCisJCQkJICAgICAgdXJiLT5hY3R1YWxfbGVuZ3RoLCBkYXRhKTsKKworCQlpZiAoYnl0ZXNfc2VudCArIDIgPiB1cmItPmFjdHVhbF9sZW5ndGgpIHsKKwkJCWRiZygiJXMgLSB0cnlpbmcgdG8gcmVhZCBtb3JlIGRhdGEgdGhhbiBhdmFpbGFibGUiCisJCQkgICAgIiAoJWQgdnMuICVkKSIsIF9fRlVOQ1RJT05fXywKKwkJCSAgICBieXRlc19zZW50KzIsIHVyYi0+YWN0dWFsX2xlbmd0aCk7CisJCQkvKiBjYXAgYXQgaW1wbGllZCBsaW1pdCAqLworCQkJYnl0ZXNfc2VudCA9IHVyYi0+YWN0dWFsX2xlbmd0aCAtIDI7CisJCX0KKworCQlmb3IgKGkgPSAyOyBpIDwgMitieXRlc19zZW50OyBpKyspIHsKKwkJCS8qIGlmIHdlIGluc2VydCBtb3JlIHRoYW4gVFRZX0ZMSVBCVUZfU0laRSBjaGFyYWN0ZXJzLAorCQkJICogd2UgZHJvcCB0aGVtLiAqLworCQkJaWYodHR5LT5mbGlwLmNvdW50ID49IFRUWV9GTElQQlVGX1NJWkUpIHsKKwkJCQl0dHlfZmxpcF9idWZmZXJfcHVzaCh0dHkpOworCQkJfQorCQkJLyogdGhpcyBkb2Vzbid0IGFjdHVhbGx5IHB1c2ggdGhlIGRhdGEgdGhyb3VnaCB1bmxlc3MgCisJCQkgKiB0dHktPmxvd19sYXRlbmN5IGlzIHNldCAqLworCQkJdHR5X2luc2VydF9mbGlwX2NoYXIodHR5LCAoKF9fdTgqKSBkYXRhKVtpXSwgMCk7CisJCX0KKwkJdHR5X2ZsaXBfYnVmZmVyX3B1c2godHR5KTsKKworCQkvKiBhZ2FpbiBsb2NrbGVzcywgYnV0IGRlYnVnIGluZm8gb25seSAqLworCQlwcml2LT5ieXRlc19pbiArPSBieXRlc19zZW50OworCX0KKwkvKiBDb250aW51ZSB0cnlpbmcgdG8gYWx3YXlzIHJlYWQgICovCisJdXNiX2ZpbGxfYnVsa191cmIocG9ydC0+cmVhZF91cmIsIHBvcnQtPnNlcmlhbC0+ZGV2LCAKKwkJICAgICAgdXNiX3JjdmJ1bGtwaXBlKHBvcnQtPnNlcmlhbC0+ZGV2LAorCQkJCSAgICAgIHBvcnQtPmJ1bGtfaW5fZW5kcG9pbnRBZGRyZXNzKSwKKwkJICAgICAgcG9ydC0+cmVhZF91cmItPnRyYW5zZmVyX2J1ZmZlciwKKwkJICAgICAgcG9ydC0+cmVhZF91cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGgsCisJCSAgICAgIGtsc2lfMTA1X3JlYWRfYnVsa19jYWxsYmFjaywKKwkJICAgICAgcG9ydCk7CisJcmMgPSB1c2Jfc3VibWl0X3VyYihwb3J0LT5yZWFkX3VyYiwgR0ZQX0FUT01JQyk7CisJaWYgKHJjKQorCQllcnIoIiVzIC0gZmFpbGVkIHJlc3VibWl0dGluZyByZWFkIHVyYiwgZXJyb3IgJWQiLCBfX0ZVTkNUSU9OX18sIHJjKTsKK30gLyoga2xzaV8xMDVfcmVhZF9idWxrX2NhbGxiYWNrICovCisKKworc3RhdGljIHZvaWQga2xzaV8xMDVfc2V0X3Rlcm1pb3MgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCisJCQkJICBzdHJ1Y3QgdGVybWlvcyAqb2xkX3Rlcm1pb3MpCit7CisJc3RydWN0IGtsc2lfMTA1X3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJdW5zaWduZWQgaW50IGlmbGFnID0gcG9ydC0+dHR5LT50ZXJtaW9zLT5jX2lmbGFnOworCXVuc2lnbmVkIGludCBvbGRfaWZsYWcgPSBvbGRfdGVybWlvcy0+Y19pZmxhZzsKKwl1bnNpZ25lZCBpbnQgY2ZsYWcgPSBwb3J0LT50dHktPnRlcm1pb3MtPmNfY2ZsYWc7CisJdW5zaWduZWQgaW50IG9sZF9jZmxhZyA9IG9sZF90ZXJtaW9zLT5jX2NmbGFnOworCXN0cnVjdCBrbHNpXzEwNV9wb3J0X3NldHRpbmdzIGNmZzsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCQorCS8qIGxvY2sgd2hpbGUgd2UgYXJlIG1vZGlmeWluZyB0aGUgc2V0dGluZ3MgKi8KKwlzcGluX2xvY2tfaXJxc2F2ZSAoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwkKKwkvKgorCSAqIFVwZGF0ZSBiYXVkIHJhdGUKKwkgKi8KKwlpZiggKGNmbGFnICYgQ0JBVUQpICE9IChvbGRfY2ZsYWcgJiBDQkFVRCkgKSB7CisJICAgICAgICAvKiByZWFzc2VydCBEVFIgYW5kIChtYXliZSkgUlRTIG9uIHRyYW5zaXRpb24gZnJvbSBCMCAqLworCQlpZiggKG9sZF9jZmxhZyAmIENCQVVEKSA9PSBCMCApIHsKKwkJCWRiZygiJXM6IGJhdWQgd2FzIEIwIiwgX19GVU5DVElPTl9fKTsKKyNpZiAwCisJCQlwcml2LT5jb250cm9sX3N0YXRlIHw9IFRJT0NNX0RUUjsKKwkJCS8qIGRvbid0IHNldCBSVFMgaWYgdXNpbmcgaGFyZHdhcmUgZmxvdyBjb250cm9sICovCisJCQlpZiAoIShvbGRfY2ZsYWcgJiBDUlRTQ1RTKSkgeworCQkJCXByaXYtPmNvbnRyb2xfc3RhdGUgfD0gVElPQ01fUlRTOworCQkJfQorCQkJbWN0X3UyMzJfc2V0X21vZGVtX2N0cmwoc2VyaWFsLCBwcml2LT5jb250cm9sX3N0YXRlKTsKKyNlbmRpZgorCQl9CisJCQorCQlzd2l0Y2goY2ZsYWcgJiBDQkFVRCkgeworCQljYXNlIEIwOiAvKiBoYW5kbGVkIGJlbG93ICovCisJCQlicmVhazsKKwkJY2FzZSBCMTIwMDogcHJpdi0+Y2ZnLmJhdWRyYXRlID0ga2w1a3VzYjEwNWFfc2lvX2IxMjAwOworCQkJYnJlYWs7CisJCWNhc2UgQjI0MDA6IHByaXYtPmNmZy5iYXVkcmF0ZSA9IGtsNWt1c2IxMDVhX3Npb19iMjQwMDsKKwkJCWJyZWFrOworCQljYXNlIEI0ODAwOiBwcml2LT5jZmcuYmF1ZHJhdGUgPSBrbDVrdXNiMTA1YV9zaW9fYjQ4MDA7CisJCQlicmVhazsKKwkJY2FzZSBCOTYwMDogcHJpdi0+Y2ZnLmJhdWRyYXRlID0ga2w1a3VzYjEwNWFfc2lvX2I5NjAwOworCQkJYnJlYWs7CisJCWNhc2UgQjE5MjAwOiBwcml2LT5jZmcuYmF1ZHJhdGUgPSBrbDVrdXNiMTA1YV9zaW9fYjE5MjAwOworCQkJYnJlYWs7CisJCWNhc2UgQjM4NDAwOiBwcml2LT5jZmcuYmF1ZHJhdGUgPSBrbDVrdXNiMTA1YV9zaW9fYjM4NDAwOworCQkJYnJlYWs7CisJCWNhc2UgQjU3NjAwOiBwcml2LT5jZmcuYmF1ZHJhdGUgPSBrbDVrdXNiMTA1YV9zaW9fYjU3NjAwOworCQkJYnJlYWs7CisJCWNhc2UgQjExNTIwMDogcHJpdi0+Y2ZnLmJhdWRyYXRlID0ga2w1a3VzYjEwNWFfc2lvX2IxMTUyMDA7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWVycigiS0xTSSBVU0ItPlNlcmlhbCBjb252ZXJ0ZXI6IgorCQkJICAgICIgdW5zdXBwb3J0ZWQgYmF1ZHJhdGUgcmVxdWVzdCwgdXNpbmcgZGVmYXVsdCIKKwkJCSAgICAiIG9mIDk2MDAiKTsKKwkJCXByaXYtPmNmZy5iYXVkcmF0ZSA9IGtsNWt1c2IxMDVhX3Npb19iOTYwMDsKKwkJCWJyZWFrOworCQl9CisJCWlmICgoY2ZsYWcgJiBDQkFVRCkgPT0gQjAgKSB7CisJCQlkYmcoIiVzOiBiYXVkIGlzIEIwIiwgX19GVU5DVElPTl9fKTsKKwkJCS8qIERyb3AgUlRTIGFuZCBEVFIgKi8KKwkJCS8qIG1heWJlIHRoaXMgc2hvdWxkIGJlIHNpbXVsYXRlZCBieSBzZW5kaW5nIHJlYWQKKwkJCSAqIGRpc2FibGUgYW5kIHJlYWQgZW5hYmxlIG1lc3NhZ2VzPworCQkJICovCisJCQk7CisjaWYgMAorCQkJcHJpdi0+Y29udHJvbF9zdGF0ZSAmPSB+KFRJT0NNX0RUUiB8IFRJT0NNX1JUUyk7CisgICAgICAgIAkJbWN0X3UyMzJfc2V0X21vZGVtX2N0cmwoc2VyaWFsLCBwcml2LT5jb250cm9sX3N0YXRlKTsKKyNlbmRpZgorCQl9CisJfQorCisJaWYgKChjZmxhZyAmIENTSVpFKSAhPSAob2xkX2NmbGFnICYgQ1NJWkUpKSB7CisJCS8qIHNldCB0aGUgbnVtYmVyIG9mIGRhdGEgYml0cyAqLworCQlzd2l0Y2ggKGNmbGFnICYgQ1NJWkUpIHsKKwkJY2FzZSBDUzU6CisJCQlkYmcoIiVzIC0gNSBiaXRzL2J5dGUgbm90IHN1cHBvcnRlZCIsIF9fRlVOQ1RJT05fXyk7CisJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlICgmcHJpdi0+bG9jaywgZmxhZ3MpOworCQkJcmV0dXJuIDsKKwkJY2FzZSBDUzY6CisJCQlkYmcoIiVzIC0gNiBiaXRzL2J5dGUgbm90IHN1cHBvcnRlZCIsIF9fRlVOQ1RJT05fXyk7CisJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlICgmcHJpdi0+bG9jaywgZmxhZ3MpOworCQkJcmV0dXJuIDsKKwkJY2FzZSBDUzc6CisJCQlwcml2LT5jZmcuZGF0YWJpdHMgPSBrbDVrdXNiMTA1YV9kdGJfNzsKKwkJCWJyZWFrOworCQljYXNlIENTODoKKwkJCXByaXYtPmNmZy5kYXRhYml0cyA9IGtsNWt1c2IxMDVhX2R0Yl84OworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQllcnIoIkNTSVpFIHdhcyBub3QgQ1M1LUNTOCwgdXNpbmcgZGVmYXVsdCBvZiA4Iik7CisJCQlwcml2LT5jZmcuZGF0YWJpdHMgPSBrbDVrdXNiMTA1YV9kdGJfODsKKwkJCWJyZWFrOworCQl9CisJfQorCisJLyoKKwkgKiBVcGRhdGUgbGluZSBjb250cm9sIHJlZ2lzdGVyIChMQ1IpCisJICovCisJaWYgKChjZmxhZyAmIChQQVJFTkJ8UEFST0REKSkgIT0gKG9sZF9jZmxhZyAmIChQQVJFTkJ8UEFST0REKSkKKwkgICAgfHwgKGNmbGFnICYgQ1NUT1BCKSAhPSAob2xkX2NmbGFnICYgQ1NUT1BCKSApIHsKKwkJCisjaWYgMAorCQlwcml2LT5sYXN0X2xjciA9IDA7CisKKwkJLyogc2V0IHRoZSBwYXJpdHkgKi8KKwkJaWYgKGNmbGFnICYgUEFSRU5CKQorCQkJcHJpdi0+bGFzdF9sY3IgfD0gKGNmbGFnICYgUEFST0REKSA/CisJCQkJTUNUX1UyMzJfUEFSSVRZX09ERCA6IE1DVF9VMjMyX1BBUklUWV9FVkVOOworCQllbHNlCisJCQlwcml2LT5sYXN0X2xjciB8PSBNQ1RfVTIzMl9QQVJJVFlfTk9ORTsKKworCQkvKiBzZXQgdGhlIG51bWJlciBvZiBzdG9wIGJpdHMgKi8KKwkJcHJpdi0+bGFzdF9sY3IgfD0gKGNmbGFnICYgQ1NUT1BCKSA/CisJCQlNQ1RfVTIzMl9TVE9QX0JJVFNfMiA6IE1DVF9VMjMyX1NUT1BfQklUU18xOworCisJCW1jdF91MjMyX3NldF9saW5lX2N0cmwoc2VyaWFsLCBwcml2LT5sYXN0X2xjcik7CisjZW5kaWYKKwkJOworCX0KKwkKKwkvKgorCSAqIFNldCBmbG93IGNvbnRyb2w6IHdlbGwsIEkgZG8gbm90IHJlYWxseSBub3cgaG93IHRvIGhhbmRsZSBEVFIvUlRTLgorCSAqIEp1c3QgZG8gd2hhdCB3ZSBoYXZlIHNlZW4gd2l0aCBTbmlmZlVTQiBvbiBXaW45OC4KKwkgKi8KKwlpZiggKGlmbGFnICYgSVhPRkYpICE9IChvbGRfaWZsYWcgJiBJWE9GRikKKwkgICAgfHwgKGlmbGFnICYgSVhPTikgIT0gKG9sZF9pZmxhZyAmIElYT04pCisJICAgIHx8ICAoY2ZsYWcgJiBDUlRTQ1RTKSAhPSAob2xkX2NmbGFnICYgQ1JUU0NUUykgKSB7CisJCQorCQkvKiBEcm9wIERUUi9SVFMgaWYgbm8gZmxvdyBjb250cm9sIG90aGVyd2lzZSBhc3NlcnQgKi8KKyNpZiAwCisJCWlmICgoaWZsYWcgJiBJWE9GRikgfHwgKGlmbGFnICYgSVhPTikgfHwgKGNmbGFnICYgQ1JUU0NUUykgKQorCQkJcHJpdi0+Y29udHJvbF9zdGF0ZSB8PSBUSU9DTV9EVFIgfCBUSU9DTV9SVFM7CisJCWVsc2UKKwkJCXByaXYtPmNvbnRyb2xfc3RhdGUgJj0gfihUSU9DTV9EVFIgfCBUSU9DTV9SVFMpOworCQltY3RfdTIzMl9zZXRfbW9kZW1fY3RybChzZXJpYWwsIHByaXYtPmNvbnRyb2xfc3RhdGUpOworI2VuZGlmCisJCTsKKwl9CisJbWVtY3B5ICgmY2ZnLCAmcHJpdi0+Y2ZnLCBzaXplb2YoY2ZnKSk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSAoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwkKKwkvKiBub3cgY29tbWl0IGNoYW5nZXMgdG8gZGV2aWNlICovCisJa2xzaV8xMDVfY2hnX3BvcnRfc2V0dGluZ3MocG9ydCwgJmNmZyk7Cit9IC8qIGtsc2lfMTA1X3NldF90ZXJtaW9zICovCisKKworI2lmIDAKK3N0YXRpYyB2b2lkIG1jdF91MjMyX2JyZWFrX2N0bCggc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgaW50IGJyZWFrX3N0YXRlICkKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsID0gcG9ydC0+c2VyaWFsOworCXN0cnVjdCBtY3RfdTIzMl9wcml2YXRlICpwcml2ID0gKHN0cnVjdCBtY3RfdTIzMl9wcml2YXRlICopcG9ydC0+cHJpdmF0ZTsKKwl1bnNpZ25lZCBjaGFyIGxjciA9IHByaXYtPmxhc3RfbGNyOworCisJZGJnKCIlc3N0YXRlPSVkIiwgX19GVU5DVElPTl9fLCBicmVha19zdGF0ZSk7CisKKwlpZiAoYnJlYWtfc3RhdGUpCisJCWxjciB8PSBNQ1RfVTIzMl9TRVRfQlJFQUs7CisKKwltY3RfdTIzMl9zZXRfbGluZV9jdHJsKHNlcmlhbCwgbGNyKTsKK30gLyogbWN0X3UyMzJfYnJlYWtfY3RsICovCisjZW5kaWYKKworc3RhdGljIGludCBrbHNpXzEwNV90aW9jbWdldCAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJc3RydWN0IGtsc2lfMTA1X3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQgcmM7CisJdW5zaWduZWQgbG9uZyBsaW5lX3N0YXRlOworCWRiZygiJXMgLSByZXF1ZXN0LCBqdXN0IGd1ZXNzaW5nIiwgX19GVU5DVElPTl9fKTsKKworCXJjID0ga2xzaV8xMDVfZ2V0X2xpbmVfc3RhdGUocG9ydCwgJmxpbmVfc3RhdGUpOworCWlmIChyYyA8IDApIHsKKwkJZXJyKCJSZWFkaW5nIGxpbmUgY29udHJvbCBmYWlsZWQgKGVycm9yID0gJWQpIiwgcmMpOworCQkvKiBiZXR0ZXIgcmV0dXJuIHZhbHVlPyBFQUdBSU4/ICovCisJCXJldHVybiByYzsKKwl9CisKKwlzcGluX2xvY2tfaXJxc2F2ZSAoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwlwcml2LT5saW5lX3N0YXRlID0gbGluZV9zdGF0ZTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlICgmcHJpdi0+bG9jaywgZmxhZ3MpOworCWRiZygiJXMgLSByZWFkIGxpbmUgc3RhdGUgMHglbHgiLCBfX0ZVTkNUSU9OX18sIGxpbmVfc3RhdGUpOworCXJldHVybiAoaW50KWxpbmVfc3RhdGU7Cit9CisKK3N0YXRpYyBpbnQga2xzaV8xMDVfdGlvY21zZXQgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxlLAorCQkJICAgICAgdW5zaWduZWQgaW50IHNldCwgdW5zaWduZWQgaW50IGNsZWFyKQoreworCWludCByZXR2YWwgPSAtRUlOVkFMOworCQorCWRiZygiJXMiLCBfX0ZVTkNUSU9OX18pOworCisvKiBpZiB0aGlzIGV2ZXIgZ2V0cyBpbXBsZW1lbnRlZCwgaXQgc2hvdWxkIGJlIGRvbmUgc29tZXRoaW5nIGxpa2UgdGhpczoKKwlzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsID0gcG9ydC0+c2VyaWFsOworCXN0cnVjdCBrbHNpXzEwNV9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJaW50IGNvbnRyb2w7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSAoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwlpZiAoc2V0ICYgVElPQ01fUlRTKQorCQlwcml2LT5jb250cm9sX3N0YXRlIHw9IFRJT0NNX1JUUzsKKwlpZiAoc2V0ICYgVElPQ01fRFRSKQorCQlwcml2LT5jb250cm9sX3N0YXRlIHw9IFRJT0NNX0RUUjsKKwlpZiAoY2xlYXIgJiBUSU9DTV9SVFMpCisJCXByaXYtPmNvbnRyb2xfc3RhdGUgJj0gflRJT0NNX1JUUzsKKwlpZiAoY2xlYXIgJiBUSU9DTV9EVFIpCisJCXByaXYtPmNvbnRyb2xfc3RhdGUgJj0gflRJT0NNX0RUUjsKKwljb250cm9sID0gcHJpdi0+Y29udHJvbF9zdGF0ZTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlICgmcHJpdi0+bG9jaywgZmxhZ3MpOworCXJldHZhbCA9IG1jdF91MjMyX3NldF9tb2RlbV9jdHJsKHNlcmlhbCwgY29udHJvbCk7CisqLworCXJldHVybiByZXR2YWw7Cit9CisJCQkJCQorc3RhdGljIGludCBrbHNpXzEwNV9pb2N0bCAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKiBmaWxlLAorCQkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCit7CisJc3RydWN0IGtsc2lfMTA1X3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJdm9pZCBfX3VzZXIgKnVzZXJfYXJnID0gKHZvaWQgX191c2VyICopYXJnOworCQorCWRiZygiJXNjbWQ9MHgleCIsIF9fRlVOQ1RJT05fXywgY21kKTsKKworCS8qIEJhc2VkIG9uIGNvZGUgZnJvbSBhY20uYyBhbmQgb3RoZXJzICovCisJc3dpdGNoIChjbWQpIHsKKwljYXNlIFRJT0NNSVdBSVQ6CisJCS8qIHdhaXQgZm9yIGFueSBvZiB0aGUgNCBtb2RlbSBpbnB1dHMgKERDRCxSSSxEU1IsQ1RTKSovCisJCS8qIFRPRE8gKi8KKwkJZGJnKCIlcyAtIFRJT0NNSVdBSVQgbm90IGhhbmRsZWQiLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm4gLUVOT0lPQ1RMQ01EOworCWNhc2UgVElPQ0dJQ09VTlQ6CisJCS8qIHJldHVybiBjb3VudCBvZiBtb2RlbWxpbmUgdHJhbnNpdGlvbnMgKi8KKwkJLyogVE9ETyAqLworCQlkYmcoIiVzIC0gVElPQ0dJQ09VTlQgbm90IGhhbmRsZWQiLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm4gLUVOT0lPQ1RMQ01EOworCWNhc2UgVENHRVRTOgorCQkvKiByZXR1cm4gY3VycmVudCBpbmZvIHRvIGNhbGxlciAqLworCQlkYmcoIiVzIC0gVENHRVRTIGRhdGEgZmFrZWQvaW5jb21wbGV0ZSIsIF9fRlVOQ1RJT05fXyk7CisKKwkJaWYgKCFhY2Nlc3Nfb2soVkVSSUZZX1dSSVRFLCB1c2VyX2FyZywgc2l6ZW9mKHN0cnVjdCB0ZXJtaW9zKSkpCisJCQlyZXR1cm4gLUVGQVVMVDsKKworCQlpZiAoa2VybmVsX3Rlcm1pb3NfdG9fdXNlcl90ZXJtaW9zKChzdHJ1Y3QgdGVybWlvcyBfX3VzZXIgKilhcmcsCisJCQkJCQkgICAmcHJpdi0+dGVybWlvcykpCisJCQlyZXR1cm4gLUVGQVVMVDsKKwkJcmV0dXJuIDA7CisJY2FzZSBUQ1NFVFM6CisJCS8qIHNldCBwb3J0IHRlcm1pb3MgdG8gdGhlIG9uZSBnaXZlbiBieSB0aGUgdXNlciAqLworCQlkYmcoIiVzIC0gVENTRVRTIG5vdCBoYW5kbGVkIiwgX19GVU5DVElPTl9fKTsKKworCQlpZiAoIWFjY2Vzc19vayhWRVJJRllfUkVBRCwgdXNlcl9hcmcsIHNpemVvZihzdHJ1Y3QgdGVybWlvcykpKQorCQkJcmV0dXJuIC1FRkFVTFQ7CisKKwkJaWYgKHVzZXJfdGVybWlvc190b19rZXJuZWxfdGVybWlvcygmcHJpdi0+dGVybWlvcywKKwkJCQkJCSAgIChzdHJ1Y3QgdGVybWlvcyBfX3VzZXIgKilhcmcpKQorCQkJcmV0dXJuIC1FRkFVTFQ7CisJCWtsc2lfMTA1X3NldF90ZXJtaW9zKHBvcnQsICZwcml2LT50ZXJtaW9zKTsKKwkJcmV0dXJuIDA7CisJY2FzZSBUQ1NFVFNXOiB7CisJCS8qIHNldCBwb3J0IHRlcm1pb3MgYW5kIHRyeSB0byB3YWl0IGZvciBjb21wbGV0aW9uIG9mIGxhc3QKKwkJICogd3JpdGUgb3BlcmF0aW9uICovCisJCS8qIFdlIGd1ZXNzIGhlcmUuIElmIHRoZXJlIGFyZSBub3QgdG9vIG1hbnkgd3JpdGUgdXJicworCQkgKiBvdXRzdGFuZGluZywgd2UgbGllLiAqLworCQkvKiB3aGF0IGlzIHRoZSByaWdodCB3YXkgdG8gd2FpdCBoZXJlPyBzY2hlZHVsZSgpID8gKi8KKwkgICAgICAgIC8qCisJCXdoaWxlIChrbHNpXzEwNV9jaGFyc19pbl9idWZmZXIocG9ydCkgPiAoTlVNX1VSQlMgLyA0ICkgKiBVUkJfVFJBTlNGRVJfQlVGRkVSX1NJWkUpCisJCQkgICAgc2NoZWR1bGUoKTsKKwkJICovCisJCXJldHVybiAtRU5PSU9DVExDTUQ7CisJCSAgICAgIH0KKwlkZWZhdWx0OgorCQlkYmcoIiVzOiBhcmcgbm90IHN1cHBvcnRlZCAtIDB4JTA0eCIsIF9fRlVOQ1RJT05fXyxjbWQpOworCQlyZXR1cm4oLUVOT0lPQ1RMQ01EKTsKKwkJYnJlYWs7CisJfQorCXJldHVybiAwOworfSAvKiBrbHNpXzEwNV9pb2N0bCAqLworCitzdGF0aWMgdm9pZCBrbHNpXzEwNV90aHJvdHRsZSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKK3sKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKwl1c2Jfa2lsbF91cmIocG9ydC0+cmVhZF91cmIpOworfQorCitzdGF0aWMgdm9pZCBrbHNpXzEwNV91bnRocm90dGxlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCWludCByZXN1bHQ7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCXBvcnQtPnJlYWRfdXJiLT5kZXYgPSBwb3J0LT5zZXJpYWwtPmRldjsKKwlyZXN1bHQgPSB1c2Jfc3VibWl0X3VyYihwb3J0LT5yZWFkX3VyYiwgR0ZQX0FUT01JQyk7CisJaWYgKHJlc3VsdCkKKwkJZXJyKCIlcyAtIGZhaWxlZCBzdWJtaXR0aW5nIHJlYWQgdXJiLCBlcnJvciAlZCIsIF9fRlVOQ1RJT05fXywKKwkJICAgIHJlc3VsdCk7Cit9CisKKworCitzdGF0aWMgaW50IF9faW5pdCBrbHNpXzEwNV9pbml0ICh2b2lkKQoreworCWludCByZXR2YWw7CisJcmV0dmFsID0gdXNiX3NlcmlhbF9yZWdpc3Rlcigma2w1a3VzYjEwNWRfZGV2aWNlKTsKKwlpZiAocmV0dmFsKQorCQlnb3RvIGZhaWxlZF91c2Jfc2VyaWFsX3JlZ2lzdGVyOworCXJldHZhbCA9IHVzYl9yZWdpc3Rlcigma2w1a3VzYjEwNWRfZHJpdmVyKTsKKwlpZiAocmV0dmFsKQorCQlnb3RvIGZhaWxlZF91c2JfcmVnaXN0ZXI7CisKKwlpbmZvKERSSVZFUl9ERVNDICIgIiBEUklWRVJfVkVSU0lPTik7CisJcmV0dXJuIDA7CitmYWlsZWRfdXNiX3JlZ2lzdGVyOgorCXVzYl9zZXJpYWxfZGVyZWdpc3Rlcigma2w1a3VzYjEwNWRfZGV2aWNlKTsKK2ZhaWxlZF91c2Jfc2VyaWFsX3JlZ2lzdGVyOgorCXJldHVybiByZXR2YWw7Cit9CisKKworc3RhdGljIHZvaWQgX19leGl0IGtsc2lfMTA1X2V4aXQgKHZvaWQpCit7CisJdXNiX2RlcmVnaXN0ZXIgKCZrbDVrdXNiMTA1ZF9kcml2ZXIpOworCXVzYl9zZXJpYWxfZGVyZWdpc3RlciAoJmtsNWt1c2IxMDVkX2RldmljZSk7Cit9CisKKworbW9kdWxlX2luaXQgKGtsc2lfMTA1X2luaXQpOworbW9kdWxlX2V4aXQgKGtsc2lfMTA1X2V4aXQpOworCitNT0RVTEVfQVVUSE9SKCBEUklWRVJfQVVUSE9SICk7CitNT0RVTEVfREVTQ1JJUFRJT04oIERSSVZFUl9ERVNDICk7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7IAorCisKK21vZHVsZV9wYXJhbShkZWJ1ZywgYm9vbCwgU19JUlVHTyB8IFNfSVdVU1IpOworTU9EVUxFX1BBUk1fREVTQyhkZWJ1ZywgImVuYWJsZSBleHRlbnNpdmUgZGVidWdnaW5nIG1lc3NhZ2VzIik7CisKKy8qIHZpbTogc2V0IHN0cz04IHRzPTggc3c9ODogKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rbDVrdXNiMTA1LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwva2w1a3VzYjEwNS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyMzFkOWUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwva2w1a3VzYjEwNS5oCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBEZWZpbml0aW9ucyBmb3IgdGhlIEtMU0kgS0w1S1VTQjEwNSBzZXJpYWwgcG9ydCBhZGFwdGVyCisgKi8KKworLyogdmVuZG9yL3Byb2R1Y3QgcGFpcnMgdGhhdCBhcmUga25vd24gdG8gY29udGFpbiB0aGlzIGNoaXBzZXQgKi8KKyNkZWZpbmUgUEFMTUNPTk5FQ1RfVklECQkweDA4MzAKKyNkZWZpbmUgUEFMTUNPTk5FQ1RfUElECQkweDAwODAKKworI2RlZmluZSBLTFNJX1ZJRAkJMHgwNWU5CisjZGVmaW5lIEtMU0lfS0w1S1VTQjEwNURfUElECTB4MDBjMAorCisvKiBWZW5kb3IgY29tbWFuZHM6ICovCisKKworLyogcG9ydCB0YWJsZSAtLSB0aGUgY2hpcCBzdXBwb3J0cyB1cCB0byA0IGNoYW5uZWxzICovCisKKy8qIGJhdWQgcmF0ZXMgKi8KKworZW51bSB7CisgIGtsNWt1c2IxMDVhX3Npb19iMTE1MjAwID0gMCwKKyAga2w1a3VzYjEwNWFfc2lvX2I1NzYwMCAgPSAxLAorICBrbDVrdXNiMTA1YV9zaW9fYjM4NDAwICA9IDIsCisgIGtsNWt1c2IxMDVhX3Npb19iMTkyMDAgID0gNCwKKyAga2w1a3VzYjEwNWFfc2lvX2IxNDQwMCAgPSA1LAorICBrbDVrdXNiMTA1YV9zaW9fYjk2MDAgICA9IDYsCisgIGtsNWt1c2IxMDVhX3Npb19iNDgwMCAgID0gOCwgICAvKiB1bmNoZWNrZWQgKi8KKyAga2w1a3VzYjEwNWFfc2lvX2IyNDAwICAgPSA5LCAgIC8qIHVuY2hlY2tlZCAqLworICBrbDVrdXNiMTA1YV9zaW9fYjEyMDAgICA9IDB4YSwgIC8qIHVuY2hlY2tlZCAqLworICBrbDVrdXNiMTA1YV9zaW9fYjYwMCAgICA9IDB4YiAgIC8qIHVuY2hlY2tlZCAqLworfTsKKworLyogZGF0YSBiaXRzICovCisjZGVmaW5lIGtsNWt1c2IxMDVhX2R0Yl83ICAgNworI2RlZmluZSBrbDVrdXNiMTA1YV9kdGJfOCAgIDgKKworCisKKy8qIHJlcXVlc3RzOiAqLworI2RlZmluZSBLTDVLVVNCMTA1QV9TSU9fU0VUX0RBVEEgIDEKKyNkZWZpbmUgS0w1S1VTQjEwNUFfU0lPX1BPTEwgICAgICAyCisjZGVmaW5lIEtMNUtVU0IxMDVBX1NJT19DT05GSUdVUkUgICAgICAzCisvKiB2YWx1ZXMgdXNlZCBmb3IgcmVxdWVzdCBLTDVLVVNCMTA1QV9TSU9fQ09ORklHVVJFICovCisjZGVmaW5lIEtMNUtVU0IxMDVBX1NJT19DT05GSUdVUkVfUkVBRF9PTiAgICAgIDMKKyNkZWZpbmUgS0w1S1VTQjEwNUFfU0lPX0NPTkZJR1VSRV9SRUFEX09GRiAgICAgMgorCisvKiBJbnRlcnByZXRhdGlvbiBvZiBtb2RlbSBzdGF0dXMgbGluZXMgKi8KKy8qIFRoZXNlIG5lZWQgc29ydGluZyBvdXQgYnkgaW5kaXZpZHVhbGx5IGNvbm5lY3RpbmcgcGlucyBhbmQgY2hlY2tpbmcKKyAqIHJlc3VsdHMuIEZJWE1FIQorICogV2hlbiBkYXRhIGlzIGJlaW5nIHNlbnQgd2Ugc2VlIDB4MzAgaW4gdGhlIGxvd2VyIGJ5dGU7IHRoaXMgbXVzdAorICogY29udGFpbiBEU1IgYW5kIENUUyAuLi4KKyAqLworI2RlZmluZSBLTDVLVVNCMTA1QV9EU1IJCQkoKDE8PDQpIHwgKDE8PDUpKQorI2RlZmluZSBLTDVLVVNCMTA1QV9DVFMJCQkoKDE8PDUpIHwgKDE8PDQpKQorCisjZGVmaW5lIEtMNUtVU0IxMDVBX1dBTlRTX1RPX1NFTkQJMHgzMAorLy8jZGVmaW5lIEtMNUtVU0IxMDVBX0RUUgkJCS8qIERhdGEgVGVybWluYWwgUmVhZHkgKi8KKy8vI2RlZmluZSBLTDVLVVNCMTA1QV9DVFMJCQkvKiBDbGVhciBUbyBTZW5kICovCisvLyNkZWZpbmUgS0w1S1VTQjEwNUFfQ0QJCQkvKiBDYXJyaWVyIERldGVjdCAqLworLy8jZGVmaW5lIEtMNUtVU0IxMDVBX0RTUgkJCS8qIERhdGEgU2V0IFJlYWR5ICovCisvLyNkZWZpbmUgS0w1S1VTQjEwNUFfUnhECQkJLyogUmVjZWl2ZSBwaW4gKi8KKworLy8jZGVmaW5lIEtMNUtVU0IxMDVBX0xFCisvLyNkZWZpbmUgS0w1S1VTQjEwNUFfUlRTCQkKKy8vI2RlZmluZSBLTDVLVVNCMTA1QV9TVAkJCisvLyNkZWZpbmUgS0w1S1VTQjEwNUFfU1IJCQorLy8jZGVmaW5lIEtMNUtVU0IxMDVBX1JJCQkJLyogUmluZyBJbmRpY2F0b3IgKi8KKworLyogdmltOiBzZXQgdHM9OCBzdHM9ODogKi8KKwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tvYmlsX3NjdC5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tvYmlsX3NjdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlNGM5OGEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwva29iaWxfc2N0LmMKQEAgLTAsMCArMSw3NzQgQEAKKy8qCisgKiAgS09CSUwgVVNCIFNtYXJ0IENhcmQgVGVybWluYWwgRHJpdmVyCisgKgorICogIENvcHlyaWdodCAoQykgMjAwMiAgS09CSUwgU3lzdGVtcyBHbWJIIAorICogIEF1dGhvcjogVGhvbWFzIFdhaHJlbmJydWNoCisgKgorICogIENvbnRhY3Q6IGxpbnV4dXNiQGtvYmlsLmRlCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBsYXJnZWx5IGRlcml2ZWQgZnJvbSB3b3JrIGJ5IHRoZSBsaW51eC11c2IgZ3JvdXAKKyAqICBhbmQgYXNzb2NpYXRlZCBzb3VyY2UgZmlsZXMuICBQbGVhc2Ugc2VlIHRoZSB1c2Ivc2VyaWFsIGZpbGVzIGZvcgorICogIGluZGl2aWR1YWwgY3JlZGl0cyBhbmQgY29weXJpZ2h0cy4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhhbmtzIHRvIEdyZWcgS3JvYWgtSGFydG1hbiAoZ3JlZ0Brcm9haC5jb20pIGZvciBoaXMgaGVscCBhbmQKKyAqICBwYXRpZW5jZS4KKyAqCisgKiBTdXBwb3J0ZWQgcmVhZGVyczogVVNCIFRXSU4sIEtBQU4gU3RhbmRhcmQgUGx1cyBhbmQgU2VjT1ZJRCBSZWFkZXIgUGx1cworICogKEFkYXB0ZXIgSyksIEIxIFByb2Zlc3Npb25hbCBhbmQgS0FBTiBQcm9mZXNzaW9uYWwgKEFkYXB0ZXIgQikKKyAqIAorICogKDIxLzA1LzIwMDQpIHR3CisgKiAgICAgIEZpeCBidWcgd2l0aCBQJ24nUCByZWFkZXJzCisgKgorICogKDI4LzA1LzIwMDMpIHR3CisgKiAgICAgIEFkZCBzdXBwb3J0IGZvciBLQUFOIFNJTQorICoKKyAqICgxMi8wOS8yMDAyKSB0dworICogICAgICBBZGFwdGVkIHRvIDIuNS4KKyAqCisgKiAoMTEvMDgvMjAwMikgdHcKKyAqICAgICAgSW5pdGlhbCB2ZXJzaW9uLgorICovCisKKworI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC90dHkuaD4KKyNpbmNsdWRlIDxsaW51eC90dHlfZHJpdmVyLmg+CisjaW5jbHVkZSA8bGludXgvdHR5X2ZsaXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvdXNiLmg+CisjaW5jbHVkZSA8bGludXgvaW9jdGwuaD4KKyNpbmNsdWRlICJ1c2Itc2VyaWFsLmgiCisjaW5jbHVkZSAia29iaWxfc2N0LmgiCisKK3N0YXRpYyBpbnQgZGVidWc7CisKKy8qIFZlcnNpb24gSW5mb3JtYXRpb24gKi8KKyNkZWZpbmUgRFJJVkVSX1ZFUlNJT04gIjIxLzA1LzIwMDQiCisjZGVmaW5lIERSSVZFUl9BVVRIT1IgIktPQklMIFN5c3RlbXMgR21iSCAtIGh0dHA6Ly93d3cua29iaWwuY29tIgorI2RlZmluZSBEUklWRVJfREVTQyAiS09CSUwgVVNCIFNtYXJ0IENhcmQgVGVybWluYWwgRHJpdmVyIChleHBlcmltZW50YWwpIgorCisjZGVmaW5lIEtPQklMX1ZFTkRPUl9JRAkJCTB4MEQ0NgorI2RlZmluZSBLT0JJTF9BREFQVEVSX0JfUFJPRFVDVF9JRAkweDIwMTEKKyNkZWZpbmUgS09CSUxfQURBUFRFUl9LX1BST0RVQ1RfSUQJMHgyMDEyCisjZGVmaW5lIEtPQklMX1VTQlRXSU5fUFJPRFVDVF9JRAkweDAwNzgKKyNkZWZpbmUgS09CSUxfS0FBTl9TSU1fUFJPRFVDVF9JRCAgICAgICAweDAwODEKKworI2RlZmluZSBLT0JJTF9USU1FT1VUCQk1MDAKKyNkZWZpbmUgS09CSUxfQlVGX0xFTkdUSAkzMDAKKworCisvKiBGdW5jdGlvbiBwcm90b3R5cGVzICovCitzdGF0aWMgaW50ICBrb2JpbF9zdGFydHVwIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKTsKK3N0YXRpYyB2b2lkIGtvYmlsX3NodXRkb3duIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKTsKK3N0YXRpYyBpbnQgIGtvYmlsX29wZW4gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKTsKK3N0YXRpYyB2b2lkIGtvYmlsX2Nsb3NlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlscCk7CitzdGF0aWMgaW50ICBrb2JpbF93cml0ZSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgCisJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpOworc3RhdGljIGludCAga29iaWxfd3JpdGVfcm9vbShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KTsKK3N0YXRpYyBpbnQgIGtvYmlsX2lvY3RsKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxlLAorCQkJdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOworc3RhdGljIGludCAga29iaWxfdGlvY21nZXQoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbGUpOworc3RhdGljIGludCAga29iaWxfdGlvY21zZXQoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbGUsCisJCQkgICB1bnNpZ25lZCBpbnQgc2V0LCB1bnNpZ25lZCBpbnQgY2xlYXIpOworc3RhdGljIHZvaWQga29iaWxfcmVhZF9pbnRfY2FsbGJhY2soIHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MgKTsKK3N0YXRpYyB2b2lkIGtvYmlsX3dyaXRlX2NhbGxiYWNrKCBzdHJ1Y3QgdXJiICpwdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyApOworCisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90YWJsZSBbXSA9IHsKKwl7IFVTQl9ERVZJQ0UoS09CSUxfVkVORE9SX0lELCBLT0JJTF9BREFQVEVSX0JfUFJPRFVDVF9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoS09CSUxfVkVORE9SX0lELCBLT0JJTF9BREFQVEVSX0tfUFJPRFVDVF9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoS09CSUxfVkVORE9SX0lELCBLT0JJTF9VU0JUV0lOX1BST0RVQ1RfSUQpIH0sCisJeyBVU0JfREVWSUNFKEtPQklMX1ZFTkRPUl9JRCwgS09CSUxfS0FBTl9TSU1fUFJPRFVDVF9JRCkgfSwKKwl7IH0JCQkvKiBUZXJtaW5hdGluZyBlbnRyeSAqLworfTsKKworCitNT0RVTEVfREVWSUNFX1RBQkxFICh1c2IsIGlkX3RhYmxlKTsKKworc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIGtvYmlsX2RyaXZlciA9IHsKKwkub3duZXIgPQlUSElTX01PRFVMRSwKKwkubmFtZSA9CQkia29iaWwiLAorCS5wcm9iZSA9CXVzYl9zZXJpYWxfcHJvYmUsCisJLmRpc2Nvbm5lY3QgPQl1c2Jfc2VyaWFsX2Rpc2Nvbm5lY3QsCisJLmlkX3RhYmxlID0JaWRfdGFibGUsCit9OworCisKK3N0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kZXZpY2VfdHlwZSBrb2JpbF9kZXZpY2UgPSB7CisJLm93bmVyID0JCVRISVNfTU9EVUxFLAorCS5uYW1lID0JCQkiS09CSUwgVVNCIHNtYXJ0IGNhcmQgdGVybWluYWwiLAorCS5pZF90YWJsZSA9CQlpZF90YWJsZSwKKwkubnVtX2ludGVycnVwdF9pbiA9CU5VTV9ET05UX0NBUkUsCisJLm51bV9idWxrX2luID0JCTAsCisJLm51bV9idWxrX291dCA9CQkwLAorCS5udW1fcG9ydHMgPQkJMSwKKwkuYXR0YWNoID0JCWtvYmlsX3N0YXJ0dXAsCisJLnNodXRkb3duID0JCWtvYmlsX3NodXRkb3duLAorCS5pb2N0bCA9CQlrb2JpbF9pb2N0bCwKKwkudGlvY21nZXQgPQkJa29iaWxfdGlvY21nZXQsCisJLnRpb2Ntc2V0ID0JCWtvYmlsX3Rpb2Ntc2V0LAorCS5vcGVuID0JCQlrb2JpbF9vcGVuLAorCS5jbG9zZSA9CQlrb2JpbF9jbG9zZSwKKwkud3JpdGUgPQkJa29iaWxfd3JpdGUsCisJLndyaXRlX3Jvb20gPQkJa29iaWxfd3JpdGVfcm9vbSwKKwkucmVhZF9pbnRfY2FsbGJhY2sgPQlrb2JpbF9yZWFkX2ludF9jYWxsYmFjaywKK307CisKKworc3RydWN0IGtvYmlsX3ByaXZhdGUgeworCWludCB3cml0ZV9pbnRfZW5kcG9pbnRfYWRkcmVzczsKKwlpbnQgcmVhZF9pbnRfZW5kcG9pbnRfYWRkcmVzczsKKwl1bnNpZ25lZCBjaGFyIGJ1ZltLT0JJTF9CVUZfTEVOR1RIXTsgLy8gYnVmZmVyIGZvciB0aGUgQVBEVSB0byBzZW5kCisJaW50IGZpbGxlZDsgIC8vIGluZGV4IG9mIHRoZSBsYXN0IGNoYXIgaW4gYnVmCisJaW50IGN1cl9wb3M7IC8vIGluZGV4IG9mIHRoZSBuZXh0IGNoYXIgdG8gc2VuZCBpbiBidWYKKwlfX3UxNiBkZXZpY2VfdHlwZTsKKwlpbnQgbGluZV9zdGF0ZTsKKwlzdHJ1Y3QgdGVybWlvcyBpbnRlcm5hbF90ZXJtaW9zOworfTsKKworCitzdGF0aWMgaW50IGtvYmlsX3N0YXJ0dXAgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7CisJaW50IGk7CisJc3RydWN0IGtvYmlsX3ByaXZhdGUgKnByaXY7CisJc3RydWN0IHVzYl9kZXZpY2UgKnBkZXY7CisJc3RydWN0IHVzYl9ob3N0X2NvbmZpZyAqYWN0Y29uZmlnOworCXN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2U7CisJc3RydWN0IHVzYl9ob3N0X2ludGVyZmFjZSAqYWx0c2V0dGluZzsKKwlzdHJ1Y3QgdXNiX2hvc3RfZW5kcG9pbnQgKmVuZHBvaW50OworCisJcHJpdiA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBrb2JpbF9wcml2YXRlKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFwcml2KXsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJcHJpdi0+ZmlsbGVkID0gMDsKKwlwcml2LT5jdXJfcG9zID0gMDsKKwlwcml2LT5kZXZpY2VfdHlwZSA9IGxlMTZfdG9fY3B1KHNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCk7CisJcHJpdi0+bGluZV9zdGF0ZSA9IDA7CisKKwlzd2l0Y2ggKHByaXYtPmRldmljZV90eXBlKXsKKwljYXNlIEtPQklMX0FEQVBURVJfQl9QUk9EVUNUX0lEOgorCQlwcmludGsoS0VSTl9ERUJVRyAiS09CSUwgQjEgUFJPIC8gS0FBTiBQUk8gZGV0ZWN0ZWRcbiIpOworCQlicmVhazsKKwljYXNlIEtPQklMX0FEQVBURVJfS19QUk9EVUNUX0lEOgorCQlwcmludGsoS0VSTl9ERUJVRyAiS09CSUwgS0FBTiBTdGFuZGFyZCBQbHVzIC8gU2VjT1ZJRCBSZWFkZXIgUGx1cyBkZXRlY3RlZFxuIik7CisJCWJyZWFrOworCWNhc2UgS09CSUxfVVNCVFdJTl9QUk9EVUNUX0lEOgorCQlwcmludGsoS0VSTl9ERUJVRyAiS09CSUwgVVNCVFdJTiBkZXRlY3RlZFxuIik7CisJCWJyZWFrOworCWNhc2UgS09CSUxfS0FBTl9TSU1fUFJPRFVDVF9JRDoKKwkJcHJpbnRrKEtFUk5fREVCVUcgIktPQklMIEtBQU4gU0lNIGRldGVjdGVkXG4iKTsKKwkJYnJlYWs7CisJfQorCXVzYl9zZXRfc2VyaWFsX3BvcnRfZGF0YShzZXJpYWwtPnBvcnRbMF0sIHByaXYpOworCisJLy8gc2VhcmNoIGZvciB0aGUgbmVjZXNzYXJ5IGVuZHBvaW50cworCXBkZXYgPSBzZXJpYWwtPmRldjsKKyAJYWN0Y29uZmlnID0gcGRldi0+YWN0Y29uZmlnOworIAlpbnRlcmZhY2UgPSBhY3Rjb25maWctPmludGVyZmFjZVswXTsKKwlhbHRzZXR0aW5nID0gaW50ZXJmYWNlLT5jdXJfYWx0c2V0dGluZzsKKyAJZW5kcG9pbnQgPSBhbHRzZXR0aW5nLT5lbmRwb2ludDsKKyAgCisgCWZvciAoaSA9IDA7IGkgPCBhbHRzZXR0aW5nLT5kZXNjLmJOdW1FbmRwb2ludHM7IGkrKykgeworCQllbmRwb2ludCA9ICZhbHRzZXR0aW5nLT5lbmRwb2ludFtpXTsKKwkJaWYgKCgoZW5kcG9pbnQtPmRlc2MuYkVuZHBvaW50QWRkcmVzcyAmIFVTQl9FTkRQT0lOVF9ESVJfTUFTSykgPT0gVVNCX0RJUl9PVVQpICYmIAorIAkJICAgICgoZW5kcG9pbnQtPmRlc2MuYm1BdHRyaWJ1dGVzICYgVVNCX0VORFBPSU5UX1hGRVJUWVBFX01BU0spID09IFVTQl9FTkRQT0lOVF9YRkVSX0lOVCkpIHsKKwkJIAlkYmcoIiVzIEZvdW5kIGludGVycnVwdCBvdXQgZW5kcG9pbnQuIEFkZHJlc3M6ICVkIiwgX19GVU5DVElPTl9fLCBlbmRwb2ludC0+ZGVzYy5iRW5kcG9pbnRBZGRyZXNzKTsKKwkJIAlwcml2LT53cml0ZV9pbnRfZW5kcG9pbnRfYWRkcmVzcyA9IGVuZHBvaW50LT5kZXNjLmJFbmRwb2ludEFkZHJlc3M7CisgCQl9CisgCQlpZiAoKChlbmRwb2ludC0+ZGVzYy5iRW5kcG9pbnRBZGRyZXNzICYgVVNCX0VORFBPSU5UX0RJUl9NQVNLKSA9PSBVU0JfRElSX0lOKSAmJiAKKyAJCSAgICAoKGVuZHBvaW50LT5kZXNjLmJtQXR0cmlidXRlcyAmIFVTQl9FTkRQT0lOVF9YRkVSVFlQRV9NQVNLKSA9PSBVU0JfRU5EUE9JTlRfWEZFUl9JTlQpKSB7CisJCSAJZGJnKCIlcyBGb3VuZCBpbnRlcnJ1cHQgaW4gIGVuZHBvaW50LiBBZGRyZXNzOiAlZCIsIF9fRlVOQ1RJT05fXywgZW5kcG9pbnQtPmRlc2MuYkVuZHBvaW50QWRkcmVzcyk7CisJCSAJcHJpdi0+cmVhZF9pbnRfZW5kcG9pbnRfYWRkcmVzcyA9IGVuZHBvaW50LT5kZXNjLmJFbmRwb2ludEFkZHJlc3M7CisJIAl9CisJfQorCXJldHVybiAwOworfQorCisKK3N0YXRpYyB2b2lkIGtvYmlsX3NodXRkb3duIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQoreworCWludCBpOworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBzZXJpYWwtPnBvcnRbMF0tPm51bWJlcik7CisKKwlmb3IgKGk9MDsgaSA8IHNlcmlhbC0+bnVtX3BvcnRzOyArK2kpIHsKKwkJd2hpbGUgKHNlcmlhbC0+cG9ydFtpXS0+b3Blbl9jb3VudCA+IDApIHsKKwkJCWtvYmlsX2Nsb3NlIChzZXJpYWwtPnBvcnRbaV0sIE5VTEwpOworCQl9CisJCWtmcmVlKHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShzZXJpYWwtPnBvcnRbaV0pKTsKKwkJdXNiX3NldF9zZXJpYWxfcG9ydF9kYXRhKHNlcmlhbC0+cG9ydFtpXSwgTlVMTCk7CisJfQorfQorCisKK3N0YXRpYyBpbnQga29iaWxfb3BlbiAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbHApCit7CisJaW50IGksIHJlc3VsdCA9IDA7CisJc3RydWN0IGtvYmlsX3ByaXZhdGUgKnByaXY7CisJdW5zaWduZWQgY2hhciAqdHJhbnNmZXJfYnVmZmVyOworCWludCB0cmFuc2Zlcl9idWZmZXJfbGVuZ3RoID0gODsKKwlpbnQgd3JpdGVfdXJiX3RyYW5zZmVyX2J1ZmZlcl9sZW5ndGggPSA4OworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisJcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlwcml2LT5saW5lX3N0YXRlID0gMDsKKworCS8vIHNvbWVvbmUgc2V0cyB0aGUgZGV2IHRvIDAgaWYgdGhlIGNsb3NlIG1ldGhvZCBoYXMgYmVlbiBjYWxsZWQKKwlwb3J0LT5pbnRlcnJ1cHRfaW5fdXJiLT5kZXYgPSBwb3J0LT5zZXJpYWwtPmRldjsKKworCisJLyogZm9yY2UgbG93X2xhdGVuY3kgb24gc28gdGhhdCBvdXIgdHR5X3B1c2ggYWN0dWFsbHkgZm9yY2VzCisJICogdGhlIGRhdGEgdGhyb3VnaCwgb3RoZXJ3aXNlIGl0IGlzIHNjaGVkdWxlZCwgYW5kIHdpdGggaGlnaAorCSAqIGRhdGEgcmF0ZXMgKGxpa2Ugd2l0aCBPSENJKSBkYXRhIGNhbiBnZXQgbG9zdC4KKwkgKi8KKwlwb3J0LT50dHktPmxvd19sYXRlbmN5ID0gMTsKKworCS8vIHdpdGhvdXQgdGhpcywgZXZlcnkgcHVzaF90dHlfY2hhciBpcyBlY2hvZWQgOi0oICAKKwlwb3J0LT50dHktPnRlcm1pb3MtPmNfbGZsYWcgPSAwOworCXBvcnQtPnR0eS0+dGVybWlvcy0+Y19sZmxhZyAmPSB+KElTSUcgfCBJQ0FOT04gfCBFQ0hPIHwgSUVYVEVOIHwgWENBU0UpOworCXBvcnQtPnR0eS0+dGVybWlvcy0+Y19pZmxhZyA9IElHTkJSSyB8IElHTlBBUiB8IElYT0ZGOworCXBvcnQtPnR0eS0+dGVybWlvcy0+Y19vZmxhZyAmPSB+T05MQ1I7IC8vIGRvIE5PVCB0cmFuc2xhdGUgQ1IgdG8gQ1ItTkwgKDB4MEEgLT4gMHgwQSAweDBEKQorCQorCS8vIHNldCB1cCBpbnRlcm5hbCB0ZXJtaW9zIHN0cnVjdHVyZSAKKwlwcml2LT5pbnRlcm5hbF90ZXJtaW9zLmNfaWZsYWcgPSBwb3J0LT50dHktPnRlcm1pb3MtPmNfaWZsYWc7CisJcHJpdi0+aW50ZXJuYWxfdGVybWlvcy5jX29mbGFnID0gcG9ydC0+dHR5LT50ZXJtaW9zLT5jX29mbGFnOworCXByaXYtPmludGVybmFsX3Rlcm1pb3MuY19jZmxhZyA9IHBvcnQtPnR0eS0+dGVybWlvcy0+Y19jZmxhZzsKKwlwcml2LT5pbnRlcm5hbF90ZXJtaW9zLmNfbGZsYWcgPSBwb3J0LT50dHktPnRlcm1pb3MtPmNfbGZsYWc7CisKKwlmb3IgKGk9MDsgaTxOQ0NTOyBpKyspIHsKKwkJcHJpdi0+aW50ZXJuYWxfdGVybWlvcy5jX2NjW2ldID0gcG9ydC0+dHR5LT50ZXJtaW9zLT5jX2NjW2ldOworCX0KKwkKKwkvLyBhbGxvY2F0ZSBtZW1vcnkgZm9yIHRyYW5zZmVyIGJ1ZmZlcgorCXRyYW5zZmVyX2J1ZmZlciA9ICh1bnNpZ25lZCBjaGFyICopIGttYWxsb2ModHJhbnNmZXJfYnVmZmVyX2xlbmd0aCwgR0ZQX0tFUk5FTCk7ICAKKwlpZiAoISB0cmFuc2Zlcl9idWZmZXIpIHsKKwkJcmV0dXJuIC1FTk9NRU07CisJfSBlbHNlIHsKKwkJbWVtc2V0KHRyYW5zZmVyX2J1ZmZlciwgMCwgdHJhbnNmZXJfYnVmZmVyX2xlbmd0aCk7CisJfQorCQorCS8vIGFsbG9jYXRlIHdyaXRlX3VyYgorCWlmICghcG9ydC0+d3JpdGVfdXJiKSB7IAorCQlkYmcoIiVzIC0gcG9ydCAlZCAgQWxsb2NhdGluZyBwb3J0LT53cml0ZV91cmIiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisJCXBvcnQtPndyaXRlX3VyYiA9IHVzYl9hbGxvY191cmIoMCwgR0ZQX0tFUk5FTCk7ICAKKwkJaWYgKCFwb3J0LT53cml0ZV91cmIpIHsKKwkJCWRiZygiJXMgLSBwb3J0ICVkIHVzYl9hbGxvY191cmIgZmFpbGVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCQkJa2ZyZWUodHJhbnNmZXJfYnVmZmVyKTsKKwkJCXJldHVybiAtRU5PTUVNOworCQl9CisJfQorCisJLy8gYWxsb2NhdGUgbWVtb3J5IGZvciB3cml0ZV91cmIgdHJhbnNmZXIgYnVmZmVyCisJcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXIgPSAodW5zaWduZWQgY2hhciAqKSBrbWFsbG9jKHdyaXRlX3VyYl90cmFuc2Zlcl9idWZmZXJfbGVuZ3RoLCBHRlBfS0VSTkVMKTsKKwlpZiAoISBwb3J0LT53cml0ZV91cmItPnRyYW5zZmVyX2J1ZmZlcikgeworCQlrZnJlZSh0cmFuc2Zlcl9idWZmZXIpOworCQl1c2JfZnJlZV91cmIocG9ydC0+d3JpdGVfdXJiKTsKKwkJcG9ydC0+d3JpdGVfdXJiID0gTlVMTDsKKwkJcmV0dXJuIC1FTk9NRU07CisJfSAKKworCS8vIGdldCBoYXJkd2FyZSB2ZXJzaW9uCisJcmVzdWx0ID0gdXNiX2NvbnRyb2xfbXNnKCBwb3J0LT5zZXJpYWwtPmRldiwgCisJCQkJICB1c2JfcmN2Y3RybHBpcGUocG9ydC0+c2VyaWFsLT5kZXYsIDAgKSwgCisJCQkJICBTVVNCQ1JlcXVlc3RfR2V0TWlzYywKKwkJCQkgIFVTQl9UWVBFX1ZFTkRPUiB8IFVTQl9SRUNJUF9FTkRQT0lOVCB8IFVTQl9ESVJfSU4sCisJCQkJICBTVVNCQ1JfTVNDX0dldEhXVmVyc2lvbiwKKwkJCQkgIDAsCisJCQkJICB0cmFuc2Zlcl9idWZmZXIsCisJCQkJICB0cmFuc2Zlcl9idWZmZXJfbGVuZ3RoLAorCQkJCSAgS09CSUxfVElNRU9VVAorCQkpOworCWRiZygiJXMgLSBwb3J0ICVkIFNlbmQgZ2V0X0hXX3ZlcnNpb24gVVJCIHJldHVybnM6ICVpIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIsIHJlc3VsdCk7CisJZGJnKCJIYXJ3YXJlIHZlcnNpb246ICVpLiVpLiVpIiwgdHJhbnNmZXJfYnVmZmVyWzBdLCB0cmFuc2Zlcl9idWZmZXJbMV0sIHRyYW5zZmVyX2J1ZmZlclsyXSApOworCQorCS8vIGdldCBmaXJtd2FyZSB2ZXJzaW9uCisJcmVzdWx0ID0gdXNiX2NvbnRyb2xfbXNnKCBwb3J0LT5zZXJpYWwtPmRldiwgCisJCQkJICB1c2JfcmN2Y3RybHBpcGUocG9ydC0+c2VyaWFsLT5kZXYsIDAgKSwgCisJCQkJICBTVVNCQ1JlcXVlc3RfR2V0TWlzYywKKwkJCQkgIFVTQl9UWVBFX1ZFTkRPUiB8IFVTQl9SRUNJUF9FTkRQT0lOVCB8IFVTQl9ESVJfSU4sCisJCQkJICBTVVNCQ1JfTVNDX0dldEZXVmVyc2lvbiwKKwkJCQkgIDAsCisJCQkJICB0cmFuc2Zlcl9idWZmZXIsCisJCQkJICB0cmFuc2Zlcl9idWZmZXJfbGVuZ3RoLAorCQkJCSAgS09CSUxfVElNRU9VVAorCQkpOworCWRiZygiJXMgLSBwb3J0ICVkIFNlbmQgZ2V0X0ZXX3ZlcnNpb24gVVJCIHJldHVybnM6ICVpIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIsIHJlc3VsdCk7CisJZGJnKCJGaXJtd2FyZSB2ZXJzaW9uOiAlaS4laS4laSIsIHRyYW5zZmVyX2J1ZmZlclswXSwgdHJhbnNmZXJfYnVmZmVyWzFdLCB0cmFuc2Zlcl9idWZmZXJbMl0gKTsKKworCWlmIChwcml2LT5kZXZpY2VfdHlwZSA9PSBLT0JJTF9BREFQVEVSX0JfUFJPRFVDVF9JRCB8fCBwcml2LT5kZXZpY2VfdHlwZSA9PSBLT0JJTF9BREFQVEVSX0tfUFJPRFVDVF9JRCkgeworCQkvLyBTZXR0aW5nIEJhdWRyYXRlLCBQYXJpdHkgYW5kIFN0b3BiaXRzCisJCXJlc3VsdCA9IHVzYl9jb250cm9sX21zZyggcG9ydC0+c2VyaWFsLT5kZXYsIAorCQkJCQkgIHVzYl9yY3ZjdHJscGlwZShwb3J0LT5zZXJpYWwtPmRldiwgMCApLCAKKwkJCQkJICBTVVNCQ1JlcXVlc3RfU2V0QmF1ZFJhdGVQYXJpdHlBbmRTdG9wQml0cywKKwkJCQkJICBVU0JfVFlQRV9WRU5ET1IgfCBVU0JfUkVDSVBfRU5EUE9JTlQgfCBVU0JfRElSX09VVCwKKwkJCQkJICBTVVNCQ1JfU0JSXzk2MDAgfCBTVVNCQ1JfU1BBU0JfRXZlblBhcml0eSB8IFNVU0JDUl9TUEFTQl8xU3RvcEJpdCwKKwkJCQkJICAwLAorCQkJCQkgIHRyYW5zZmVyX2J1ZmZlciwKKwkJCQkJICAwLAorCQkJCQkgIEtPQklMX1RJTUVPVVQKKwkJCSk7CisJCWRiZygiJXMgLSBwb3J0ICVkIFNlbmQgc2V0X2JhdWRyYXRlIFVSQiByZXR1cm5zOiAlaSIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyLCByZXN1bHQpOworCQkKKwkJLy8gcmVzZXQgYWxsIHF1ZXVlcworCQlyZXN1bHQgPSB1c2JfY29udHJvbF9tc2coIHBvcnQtPnNlcmlhbC0+ZGV2LCAKKwkJCQkJICB1c2JfcmN2Y3RybHBpcGUocG9ydC0+c2VyaWFsLT5kZXYsIDAgKSwgCisJCQkJCSAgU1VTQkNSZXF1ZXN0X01pc2MsCisJCQkJCSAgVVNCX1RZUEVfVkVORE9SIHwgVVNCX1JFQ0lQX0VORFBPSU5UIHwgVVNCX0RJUl9PVVQsCisJCQkJCSAgU1VTQkNSX01TQ19SZXNldEFsbFF1ZXVlcywKKwkJCQkJICAwLAorCQkJCQkgIHRyYW5zZmVyX2J1ZmZlciwKKwkJCQkJICAwLAorCQkJCQkgIEtPQklMX1RJTUVPVVQKKwkJCSk7CisJCWRiZygiJXMgLSBwb3J0ICVkIFNlbmQgcmVzZXRfYWxsX3F1ZXVlcyBVUkIgcmV0dXJuczogJWkiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlciwgcmVzdWx0KTsKKwl9CisJaWYgKHByaXYtPmRldmljZV90eXBlID09IEtPQklMX1VTQlRXSU5fUFJPRFVDVF9JRCB8fCBwcml2LT5kZXZpY2VfdHlwZSA9PSBLT0JJTF9BREFQVEVSX0JfUFJPRFVDVF9JRCB8fAorCSAgICBwcml2LT5kZXZpY2VfdHlwZSA9PSBLT0JJTF9LQUFOX1NJTV9QUk9EVUNUX0lEKSB7CisJCS8vIHN0YXJ0IHJlYWRpbmcgKEFkYXB0ZXIgQiAnY2F1c2UgUE5QIHN0cmluZykKKwkJcmVzdWx0ID0gdXNiX3N1Ym1pdF91cmIoIHBvcnQtPmludGVycnVwdF9pbl91cmIsIEdGUF9BVE9NSUMgICk7IAorCQlkYmcoIiVzIC0gcG9ydCAlZCBTZW5kIHJlYWQgVVJCIHJldHVybnM6ICVpIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIsIHJlc3VsdCk7CisJfQorCisJa2ZyZWUodHJhbnNmZXJfYnVmZmVyKTsKKwlyZXR1cm4gMDsKK30KKworCitzdGF0aWMgdm9pZCBrb2JpbF9jbG9zZSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbHApCit7CisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAocG9ydC0+d3JpdGVfdXJiKSB7CisJCXVzYl9raWxsX3VyYihwb3J0LT53cml0ZV91cmIpOworCQl1c2JfZnJlZV91cmIoIHBvcnQtPndyaXRlX3VyYiApOworCQlwb3J0LT53cml0ZV91cmIgPSBOVUxMOworCX0KKwlpZiAocG9ydC0+aW50ZXJydXB0X2luX3VyYikKKwkJdXNiX2tpbGxfdXJiKHBvcnQtPmludGVycnVwdF9pbl91cmIpOworfQorCisKK3N0YXRpYyB2b2lkIGtvYmlsX3JlYWRfaW50X2NhbGxiYWNrKCBzdHJ1Y3QgdXJiICpwdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlpbnQgaTsKKwlpbnQgcmVzdWx0OworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqKSBwdXJiLT5jb250ZXh0OworCXN0cnVjdCB0dHlfc3RydWN0ICp0dHk7CisJdW5zaWduZWQgY2hhciAqZGF0YSA9IHB1cmItPnRyYW5zZmVyX2J1ZmZlcjsKKy8vCWNoYXIgKmRiZ19kYXRhOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAocHVyYi0+c3RhdHVzKSB7CisJCWRiZygiJXMgLSBwb3J0ICVkIFJlYWQgaW50IHN0YXR1cyBub3QgemVybzogJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlciwgcHVyYi0+c3RhdHVzKTsKKwkJcmV0dXJuOworCX0KKwkKKwl0dHkgPSBwb3J0LT50dHk7IAorCWlmIChwdXJiLT5hY3R1YWxfbGVuZ3RoKSB7CisJCQorCQkvLyBCRUdJTiBERUJVRworCQkvKgorCQkgIGRiZ19kYXRhID0gKHVuc2lnbmVkIGNoYXIgKikga21hbGxvYygoMyAqICBwdXJiLT5hY3R1YWxfbGVuZ3RoICsgMTApICogc2l6ZW9mKGNoYXIpLCBHRlBfS0VSTkVMKTsKKwkJICBpZiAoISBkYmdfZGF0YSkgeworCQkgIHJldHVybjsKKwkJICB9CisJCSAgbWVtc2V0KGRiZ19kYXRhLCAwLCAoMyAqICBwdXJiLT5hY3R1YWxfbGVuZ3RoICsgMTApKTsKKwkJICBmb3IgKGkgPSAwOyBpIDwgcHVyYi0+YWN0dWFsX2xlbmd0aDsgaSsrKSB7IAorCQkgIHNwcmludGYoZGJnX2RhdGEgKzMqaSwgIiUwMlggIiwgZGF0YVtpXSk7IAorCQkgIH0KKwkJICBkYmcoIiA8LS0gJXMiLCBkYmdfZGF0YSApOworCQkgIGtmcmVlKGRiZ19kYXRhKTsKKwkJKi8KKwkJLy8gRU5EIERFQlVHCisKKwkJZm9yIChpID0gMDsgaSA8IHB1cmItPmFjdHVhbF9sZW5ndGg7ICsraSkgeworCQkJLy8gaWYgd2UgaW5zZXJ0IG1vcmUgdGhhbiBUVFlfRkxJUEJVRl9TSVpFIGNoYXJhY3RlcnMsIHdlIGRyb3AgdGhlbS4KKwkJCWlmKHR0eS0+ZmxpcC5jb3VudCA+PSBUVFlfRkxJUEJVRl9TSVpFKSB7CisJCQkJdHR5X2ZsaXBfYnVmZmVyX3B1c2godHR5KTsKKwkJCX0KKwkJCS8vIHRoaXMgZG9lc24ndCBhY3R1YWxseSBwdXNoIHRoZSBkYXRhIHRocm91Z2ggdW5sZXNzIHR0eS0+bG93X2xhdGVuY3kgaXMgc2V0CisJCQl0dHlfaW5zZXJ0X2ZsaXBfY2hhcih0dHksIGRhdGFbaV0sIDApOworCQl9CisJCXR0eV9mbGlwX2J1ZmZlcl9wdXNoKHR0eSk7CisJfQorCisJLy8gc29tZW9uZSBzZXRzIHRoZSBkZXYgdG8gMCBpZiB0aGUgY2xvc2UgbWV0aG9kIGhhcyBiZWVuIGNhbGxlZAorCXBvcnQtPmludGVycnVwdF9pbl91cmItPmRldiA9IHBvcnQtPnNlcmlhbC0+ZGV2OworCisJcmVzdWx0ID0gdXNiX3N1Ym1pdF91cmIoIHBvcnQtPmludGVycnVwdF9pbl91cmIsIEdGUF9BVE9NSUMgKTsgCisJZGJnKCIlcyAtIHBvcnQgJWQgU2VuZCByZWFkIFVSQiByZXR1cm5zOiAlaSIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyLCByZXN1bHQpOworfQorCisKK3N0YXRpYyB2b2lkIGtvYmlsX3dyaXRlX2NhbGxiYWNrKCBzdHJ1Y3QgdXJiICpwdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyApCit7Cit9CisKKworc3RhdGljIGludCBrb2JpbF93cml0ZSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgCisJCQljb25zdCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBjb3VudCkKK3sKKwlpbnQgbGVuZ3RoID0gMDsKKwlpbnQgcmVzdWx0ID0gMDsKKwlpbnQgdG9kbyA9IDA7CisJc3RydWN0IGtvYmlsX3ByaXZhdGUgKiBwcml2OworCisJaWYgKGNvdW50ID09IDApIHsKKwkJZGJnKCIlcyAtIHBvcnQgJWQgd3JpdGUgcmVxdWVzdCBvZiAwIGJ5dGVzIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCQlyZXR1cm4gMDsKKwl9CisKKwlwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCisJaWYgKGNvdW50ID4gKEtPQklMX0JVRl9MRU5HVEggLSBwcml2LT5maWxsZWQpKSB7CisJCWRiZygiJXMgLSBwb3J0ICVkIEVycm9yOiB3cml0ZSByZXF1ZXN0IGJpZ2dlciB0aGFuIGJ1ZmZlciBzaXplIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwkvLyBDb3B5IGRhdGEgdG8gYnVmZmVyCisJbWVtY3B5IChwcml2LT5idWYgKyBwcml2LT5maWxsZWQsIGJ1ZiwgY291bnQpOworCisJdXNiX3NlcmlhbF9kZWJ1Z19kYXRhKGRlYnVnLCAmcG9ydC0+ZGV2LCBfX0ZVTkNUSU9OX18sIGNvdW50LCBwcml2LT5idWYgKyBwcml2LT5maWxsZWQpOworCisJcHJpdi0+ZmlsbGVkID0gcHJpdi0+ZmlsbGVkICsgY291bnQ7CisKKworCS8vIG9ubHkgc2VuZCBjb21wbGV0ZSBibG9jay4gVFdJTiwgS0FBTiBTSU0gYW5kIGFkYXB0ZXIgSyB1c2UgdGhlIHNhbWUgcHJvdG9jb2wuCisJaWYgKCAoKHByaXYtPmRldmljZV90eXBlICE9IEtPQklMX0FEQVBURVJfQl9QUk9EVUNUX0lEKSAmJiAocHJpdi0+ZmlsbGVkID4gMikgJiYgKHByaXYtPmZpbGxlZCA+PSAocHJpdi0+YnVmWzFdICsgMykpKSB8fCAKKwkgICAgICgocHJpdi0+ZGV2aWNlX3R5cGUgPT0gS09CSUxfQURBUFRFUl9CX1BST0RVQ1RfSUQpICYmIChwcml2LT5maWxsZWQgPiAzKSAmJiAocHJpdi0+ZmlsbGVkID49IChwcml2LT5idWZbMl0gKyA0KSkpICkgeworCQkKKwkJLy8gc3RvcCByZWFkaW5nIChleGNlcHQgVFdJTiBhbmQgS0FBTiBTSU0pCisJCWlmICggKHByaXYtPmRldmljZV90eXBlID09IEtPQklMX0FEQVBURVJfQl9QUk9EVUNUX0lEKSB8fCAocHJpdi0+ZGV2aWNlX3R5cGUgPT0gS09CSUxfQURBUFRFUl9LX1BST0RVQ1RfSUQpICkKKwkJCXVzYl9raWxsX3VyYihwb3J0LT5pbnRlcnJ1cHRfaW5fdXJiKTsKKworCQl0b2RvID0gcHJpdi0+ZmlsbGVkIC0gcHJpdi0+Y3VyX3BvczsKKworCQl3aGlsZSh0b2RvID4gMCkgeworCQkJLy8gbWF4IDggYnl0ZSBpbiBvbmUgdXJiIChlbmRwb2ludCBzaXplKQorCQkJbGVuZ3RoID0gKHRvZG8gPCA4KSA/IHRvZG8gOiA4OworCQkJLy8gY29weSBkYXRhIHRvIHRyYW5zZmVyIGJ1ZmZlcgorCQkJbWVtY3B5KHBvcnQtPndyaXRlX3VyYi0+dHJhbnNmZXJfYnVmZmVyLCBwcml2LT5idWYgKyBwcml2LT5jdXJfcG9zLCBsZW5ndGggKTsKKwkJCXVzYl9maWxsX2ludF91cmIoIHBvcnQtPndyaXRlX3VyYiwKKwkJCQkJICBwb3J0LT5zZXJpYWwtPmRldiwKKwkJCQkJICB1c2Jfc25kaW50cGlwZShwb3J0LT5zZXJpYWwtPmRldiwgcHJpdi0+d3JpdGVfaW50X2VuZHBvaW50X2FkZHJlc3MpLAorCQkJCQkgIHBvcnQtPndyaXRlX3VyYi0+dHJhbnNmZXJfYnVmZmVyLAorCQkJCQkgIGxlbmd0aCwKKwkJCQkJICBrb2JpbF93cml0ZV9jYWxsYmFjaywKKwkJCQkJICBwb3J0LAorCQkJCQkgIDgKKwkJCQkpOworCisJCQlwcml2LT5jdXJfcG9zID0gcHJpdi0+Y3VyX3BvcyArIGxlbmd0aDsKKwkJCXJlc3VsdCA9IHVzYl9zdWJtaXRfdXJiKCBwb3J0LT53cml0ZV91cmIsIEdGUF9OT0lPICk7CisJCQlkYmcoIiVzIC0gcG9ydCAlZCBTZW5kIHdyaXRlIFVSQiByZXR1cm5zOiAlaSIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyLCByZXN1bHQpOworCQkJdG9kbyA9IHByaXYtPmZpbGxlZCAtIHByaXYtPmN1cl9wb3M7CisKKwkJCWlmICh0b2RvID4gMCkgeworCQkJCW1zbGVlcCgyNCk7CisJCQl9CisKKwkJfSAvLyBlbmQgd2hpbGUKKwkJCisJCXByaXYtPmZpbGxlZCA9IDA7CisJCXByaXYtPmN1cl9wb3MgPSAwOworCisJCS8vIHNvbWVvbmUgc2V0cyB0aGUgZGV2IHRvIDAgaWYgdGhlIGNsb3NlIG1ldGhvZCBoYXMgYmVlbiBjYWxsZWQKKwkJcG9ydC0+aW50ZXJydXB0X2luX3VyYi0+ZGV2ID0gcG9ydC0+c2VyaWFsLT5kZXY7CisJCQorCQkvLyBzdGFydCByZWFkaW5nIChleGNlcHQgVFdJTiBhbmQgS0FBTiBTSU0pCisJCWlmICggKHByaXYtPmRldmljZV90eXBlID09IEtPQklMX0FEQVBURVJfQl9QUk9EVUNUX0lEKSB8fCAocHJpdi0+ZGV2aWNlX3R5cGUgPT0gS09CSUxfQURBUFRFUl9LX1BST0RVQ1RfSUQpICkgeworCQkJLy8gc29tZW9uZSBzZXRzIHRoZSBkZXYgdG8gMCBpZiB0aGUgY2xvc2UgbWV0aG9kIGhhcyBiZWVuIGNhbGxlZAorCQkJcG9ydC0+aW50ZXJydXB0X2luX3VyYi0+ZGV2ID0gcG9ydC0+c2VyaWFsLT5kZXY7CisJCQkKKwkJCXJlc3VsdCA9IHVzYl9zdWJtaXRfdXJiKCBwb3J0LT5pbnRlcnJ1cHRfaW5fdXJiLCBHRlBfTk9JTyApOyAKKwkJCWRiZygiJXMgLSBwb3J0ICVkIFNlbmQgcmVhZCBVUkIgcmV0dXJuczogJWkiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlciwgcmVzdWx0KTsKKwkJfQorCX0KKwlyZXR1cm4gY291bnQ7Cit9CisKKworc3RhdGljIGludCBrb2JpbF93cml0ZV9yb29tIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCS8vZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisJcmV0dXJuIDg7Cit9CisKKworc3RhdGljIGludCBrb2JpbF90aW9jbWdldChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlzdHJ1Y3Qga29iaWxfcHJpdmF0ZSAqIHByaXY7CisJaW50IHJlc3VsdDsKKwl1bnNpZ25lZCBjaGFyICp0cmFuc2Zlcl9idWZmZXI7CisJaW50IHRyYW5zZmVyX2J1ZmZlcl9sZW5ndGggPSA4OworCisJcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlpZiAoKHByaXYtPmRldmljZV90eXBlID09IEtPQklMX1VTQlRXSU5fUFJPRFVDVF9JRCkgfHwgKHByaXYtPmRldmljZV90eXBlID09IEtPQklMX0tBQU5fU0lNX1BST0RVQ1RfSUQpKSB7CisJCS8vIFRoaXMgZGV2aWNlIGRvZXNuJ3Qgc3VwcG9ydCBpb2N0bCBjYWxscworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvLyBhbGxvY2F0ZSBtZW1vcnkgZm9yIHRyYW5zZmVyIGJ1ZmZlcgorCXRyYW5zZmVyX2J1ZmZlciA9ICh1bnNpZ25lZCBjaGFyICopIGttYWxsb2ModHJhbnNmZXJfYnVmZmVyX2xlbmd0aCwgR0ZQX0tFUk5FTCk7ICAKKwlpZiAoIXRyYW5zZmVyX2J1ZmZlcikgeworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisJbWVtc2V0KHRyYW5zZmVyX2J1ZmZlciwgMCwgdHJhbnNmZXJfYnVmZmVyX2xlbmd0aCk7CisKKwlyZXN1bHQgPSB1c2JfY29udHJvbF9tc2coIHBvcnQtPnNlcmlhbC0+ZGV2LCAKKwkJCQkgIHVzYl9yY3ZjdHJscGlwZShwb3J0LT5zZXJpYWwtPmRldiwgMCApLCAKKwkJCQkgIFNVU0JDUmVxdWVzdF9HZXRTdGF0dXNMaW5lU3RhdGUsCisJCQkJICBVU0JfVFlQRV9WRU5ET1IgfCBVU0JfUkVDSVBfRU5EUE9JTlQgfCBVU0JfRElSX0lOLAorCQkJCSAgMCwKKwkJCQkgIDAsCisJCQkJICB0cmFuc2Zlcl9idWZmZXIsCisJCQkJICB0cmFuc2Zlcl9idWZmZXJfbGVuZ3RoLAorCQkJCSAgS09CSUxfVElNRU9VVCk7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCBTZW5kIGdldF9zdGF0dXNfbGluZV9zdGF0ZSBVUkIgcmV0dXJuczogJWkuIFN0YXR1c2xpbmU6ICUwMngiLCAKKwkgICAgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIsIHJlc3VsdCwgdHJhbnNmZXJfYnVmZmVyWzBdKTsKKworCWlmICgodHJhbnNmZXJfYnVmZmVyWzBdICYgU1VTQkNSX0dTTF9EU1IpICE9IDApIHsKKwkJcHJpdi0+bGluZV9zdGF0ZSB8PSBUSU9DTV9EU1I7CisJfSBlbHNlIHsKKwkJcHJpdi0+bGluZV9zdGF0ZSAmPSB+VElPQ01fRFNSOyAKKwl9CisKKwlrZnJlZSh0cmFuc2Zlcl9idWZmZXIpOworCXJldHVybiBwcml2LT5saW5lX3N0YXRlOworfQorCitzdGF0aWMgaW50ICBrb2JpbF90aW9jbXNldChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlsZSwKKwkJCSAgIHVuc2lnbmVkIGludCBzZXQsIHVuc2lnbmVkIGludCBjbGVhcikKK3sKKwlzdHJ1Y3Qga29iaWxfcHJpdmF0ZSAqIHByaXY7CisJaW50IHJlc3VsdDsKKwlpbnQgZHRyID0gMDsKKwlpbnQgcnRzID0gMDsKKwl1bnNpZ25lZCBjaGFyICp0cmFuc2Zlcl9idWZmZXI7CisJaW50IHRyYW5zZmVyX2J1ZmZlcl9sZW5ndGggPSA4OworCisJcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlpZiAoKHByaXYtPmRldmljZV90eXBlID09IEtPQklMX1VTQlRXSU5fUFJPRFVDVF9JRCkgfHwgKHByaXYtPmRldmljZV90eXBlID09IEtPQklMX0tBQU5fU0lNX1BST0RVQ1RfSUQpKSB7CisJCS8vIFRoaXMgZGV2aWNlIGRvZXNuJ3Qgc3VwcG9ydCBpb2N0bCBjYWxscworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvLyBhbGxvY2F0ZSBtZW1vcnkgZm9yIHRyYW5zZmVyIGJ1ZmZlcgorCXRyYW5zZmVyX2J1ZmZlciA9ICh1bnNpZ25lZCBjaGFyICopIGttYWxsb2ModHJhbnNmZXJfYnVmZmVyX2xlbmd0aCwgR0ZQX0tFUk5FTCk7CisJaWYgKCEgdHJhbnNmZXJfYnVmZmVyKSB7CisJCXJldHVybiAtRU5PTUVNOworCX0KKwltZW1zZXQodHJhbnNmZXJfYnVmZmVyLCAwLCB0cmFuc2Zlcl9idWZmZXJfbGVuZ3RoKTsKKworCWlmIChzZXQgJiBUSU9DTV9SVFMpCisJCXJ0cyA9IDE7CisJaWYgKHNldCAmIFRJT0NNX0RUUikKKwkJZHRyID0gMTsKKwlpZiAoY2xlYXIgJiBUSU9DTV9SVFMpCisJCXJ0cyA9IDA7CisJaWYgKGNsZWFyICYgVElPQ01fRFRSKQorCQlkdHIgPSAwOworCisJaWYgKHByaXYtPmRldmljZV90eXBlID09IEtPQklMX0FEQVBURVJfQl9QUk9EVUNUX0lEKSB7CisJCWlmIChkdHIgIT0gMCkKKwkJCWRiZygiJXMgLSBwb3J0ICVkIFNldHRpbmcgRFRSIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCQllbHNlCisJCQlkYmcoIiVzIC0gcG9ydCAlZCBDbGVhcmluZyBEVFIiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisJCXJlc3VsdCA9IHVzYl9jb250cm9sX21zZyggcG9ydC0+c2VyaWFsLT5kZXYsIAorCQkJCQkgIHVzYl9yY3ZjdHJscGlwZShwb3J0LT5zZXJpYWwtPmRldiwgMCApLCAKKwkJCQkJICBTVVNCQ1JlcXVlc3RfU2V0U3RhdHVzTGluZXNPclF1ZXVlcywKKwkJCQkJICBVU0JfVFlQRV9WRU5ET1IgfCBVU0JfUkVDSVBfRU5EUE9JTlQgfCBVU0JfRElSX09VVCwKKwkJCQkJICAoKGR0ciAhPSAwKSA/IFNVU0JDUl9TU0xfU0VURFRSIDogU1VTQkNSX1NTTF9DTFJEVFIpLAorCQkJCQkgIDAsCisJCQkJCSAgdHJhbnNmZXJfYnVmZmVyLAorCQkJCQkgIDAsCisJCQkJCSAgS09CSUxfVElNRU9VVCk7CisJfSBlbHNlIHsKKwkJaWYgKHJ0cyAhPSAwKQorCQkJZGJnKCIlcyAtIHBvcnQgJWQgU2V0dGluZyBSVFMiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisJCWVsc2UKKwkJCWRiZygiJXMgLSBwb3J0ICVkIENsZWFyaW5nIFJUUyIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKwkJcmVzdWx0ID0gdXNiX2NvbnRyb2xfbXNnKCBwb3J0LT5zZXJpYWwtPmRldiwgCisJCQkJCSAgdXNiX3JjdmN0cmxwaXBlKHBvcnQtPnNlcmlhbC0+ZGV2LCAwICksIAorCQkJCQkgIFNVU0JDUmVxdWVzdF9TZXRTdGF0dXNMaW5lc09yUXVldWVzLAorCQkJCQkgIFVTQl9UWVBFX1ZFTkRPUiB8IFVTQl9SRUNJUF9FTkRQT0lOVCB8IFVTQl9ESVJfT1VULAorCQkJCQkgICgocnRzICE9IDApID8gU1VTQkNSX1NTTF9TRVRSVFMgOiBTVVNCQ1JfU1NMX0NMUlJUUyksCisJCQkJCSAgMCwKKwkJCQkJICB0cmFuc2Zlcl9idWZmZXIsCisJCQkJCSAgMCwKKwkJCQkJICBLT0JJTF9USU1FT1VUKTsKKwl9CisJZGJnKCIlcyAtIHBvcnQgJWQgU2VuZCBzZXRfc3RhdHVzX2xpbmUgVVJCIHJldHVybnM6ICVpIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIsIHJlc3VsdCk7CisJa2ZyZWUodHJhbnNmZXJfYnVmZmVyKTsKKwlyZXR1cm4gKHJlc3VsdCA8IDApID8gcmVzdWx0IDogMDsKK30KKworCitzdGF0aWMgaW50ICBrb2JpbF9pb2N0bChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlsZSwKKwkJCXVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQoreworCXN0cnVjdCBrb2JpbF9wcml2YXRlICogcHJpdjsKKwlpbnQgcmVzdWx0OworCXVuc2lnbmVkIHNob3J0IHVyYl92YWwgPSAwOworCXVuc2lnbmVkIGNoYXIgKnRyYW5zZmVyX2J1ZmZlcjsKKwlpbnQgdHJhbnNmZXJfYnVmZmVyX2xlbmd0aCA9IDg7CisJY2hhciAqc2V0dGluZ3M7CisJdm9pZCBfX3VzZXIgKnVzZXJfYXJnID0gKHZvaWQgX191c2VyICopYXJnOworCisJcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlpZiAoKHByaXYtPmRldmljZV90eXBlID09IEtPQklMX1VTQlRXSU5fUFJPRFVDVF9JRCkgfHwgKHByaXYtPmRldmljZV90eXBlID09IEtPQklMX0tBQU5fU0lNX1BST0RVQ1RfSUQpKSB7CisJCS8vIFRoaXMgZGV2aWNlIGRvZXNuJ3Qgc3VwcG9ydCBpb2N0bCBjYWxscworCQlyZXR1cm4gMDsKKwl9CisKKwlzd2l0Y2ggKGNtZCkgeworCWNhc2UgVENHRVRTOiAgIC8vIDB4NTQwMQorCQlpZiAoIWFjY2Vzc19vayhWRVJJRllfV1JJVEUsIHVzZXJfYXJnLCBzaXplb2Yoc3RydWN0IHRlcm1pb3MpKSkgeworCQkJZGJnKCIlcyAtIHBvcnQgJWQgRXJyb3IgaW4gYWNjZXNzX29rIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCQkJcmV0dXJuIC1FRkFVTFQ7CisJCX0KKwkJaWYgKGtlcm5lbF90ZXJtaW9zX3RvX3VzZXJfdGVybWlvcygoc3RydWN0IHRlcm1pb3MgX191c2VyICopYXJnLAorCQkJCQkJICAgJnByaXYtPmludGVybmFsX3Rlcm1pb3MpKQorCQkJcmV0dXJuIC1FRkFVTFQ7CisJCXJldHVybiAwOworCisJY2FzZSBUQ1NFVFM6ICAgLy8gMHg1NDAyCisJCWlmICghKHBvcnQtPnR0eS0+dGVybWlvcykpIHsKKwkJCWRiZygiJXMgLSBwb3J0ICVkIEVycm9yOiBwb3J0LT50dHktPnRlcm1pb3MgaXMgTlVMTCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKwkJCXJldHVybiAtRU5PVFRZOworCQl9CisJCWlmICghYWNjZXNzX29rKFZFUklGWV9SRUFELCB1c2VyX2FyZywgc2l6ZW9mKHN0cnVjdCB0ZXJtaW9zKSkpIHsKKwkJCWRiZygiJXMgLSBwb3J0ICVkIEVycm9yIGluIGFjY2Vzc19vayIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKwkJCXJldHVybiAtRUZBVUxUOworCQl9CisJCWlmICh1c2VyX3Rlcm1pb3NfdG9fa2VybmVsX3Rlcm1pb3MoJnByaXYtPmludGVybmFsX3Rlcm1pb3MsCisJCQkJCQkgICAoc3RydWN0IHRlcm1pb3MgX191c2VyICopYXJnKSkKKwkJCXJldHVybiAtRUZBVUxUOworCQkKKwkJc2V0dGluZ3MgPSAodW5zaWduZWQgY2hhciAqKSBrbWFsbG9jKDUwLCBHRlBfS0VSTkVMKTsgIAorCQlpZiAoISBzZXR0aW5ncykgeworCQkJcmV0dXJuIC1FTk9CVUZTOworCQl9CisJCW1lbXNldChzZXR0aW5ncywgMCwgNTApOworCisJCXN3aXRjaCAocHJpdi0+aW50ZXJuYWxfdGVybWlvcy5jX2NmbGFnICYgQ0JBVUQpIHsKKwkJY2FzZSBCMTIwMDoKKwkJCXVyYl92YWwgPSBTVVNCQ1JfU0JSXzEyMDA7CisJCQlzdHJjYXQoc2V0dGluZ3MsICIxMjAwICIpOworCQkJYnJlYWs7CisJCWNhc2UgQjk2MDA6CisJCWRlZmF1bHQ6CisJCQl1cmJfdmFsID0gU1VTQkNSX1NCUl85NjAwOworCQkJc3RyY2F0KHNldHRpbmdzLCAiOTYwMCAiKTsKKwkJCWJyZWFrOworCQl9CisKKwkJdXJiX3ZhbCB8PSAocHJpdi0+aW50ZXJuYWxfdGVybWlvcy5jX2NmbGFnICYgQ1NUT1BCKSA/IFNVU0JDUl9TUEFTQl8yU3RvcEJpdHMgOiBTVVNCQ1JfU1BBU0JfMVN0b3BCaXQ7CisJCXN0cmNhdChzZXR0aW5ncywgKHByaXYtPmludGVybmFsX3Rlcm1pb3MuY19jZmxhZyAmIENTVE9QQikgPyAiMiBTdG9wQml0cyAiIDogIjEgU3RvcEJpdCAiKTsKKworCQlpZiAocHJpdi0+aW50ZXJuYWxfdGVybWlvcy5jX2NmbGFnICYgUEFSRU5CKSB7CisJCQlpZiAgKHByaXYtPmludGVybmFsX3Rlcm1pb3MuY19jZmxhZyAmIFBBUk9ERCkgeworCQkJCXVyYl92YWwgfD0gU1VTQkNSX1NQQVNCX09kZFBhcml0eTsKKwkJCQlzdHJjYXQoc2V0dGluZ3MsICJPZGQgUGFyaXR5Iik7CisJCQl9IGVsc2UgeworCQkJCXVyYl92YWwgfD0gU1VTQkNSX1NQQVNCX0V2ZW5QYXJpdHk7CisJCQkJc3RyY2F0KHNldHRpbmdzLCAiRXZlbiBQYXJpdHkiKTsKKwkJCX0KKwkJfSBlbHNlIHsKKwkJCXVyYl92YWwgfD0gU1VTQkNSX1NQQVNCX05vUGFyaXR5OworCQkJc3RyY2F0KHNldHRpbmdzLCAiTm8gUGFyaXR5Iik7CisJCX0KKwkJZGJnKCIlcyAtIHBvcnQgJWQgc2V0dGluZyBwb3J0IHRvOiAlcyIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyLCBzZXR0aW5ncyApOworCisJCXJlc3VsdCA9IHVzYl9jb250cm9sX21zZyggcG9ydC0+c2VyaWFsLT5kZXYsIAorCQkJCQkgIHVzYl9yY3ZjdHJscGlwZShwb3J0LT5zZXJpYWwtPmRldiwgMCApLCAKKwkJCQkJICBTVVNCQ1JlcXVlc3RfU2V0QmF1ZFJhdGVQYXJpdHlBbmRTdG9wQml0cywKKwkJCQkJICBVU0JfVFlQRV9WRU5ET1IgfCBVU0JfUkVDSVBfRU5EUE9JTlQgfCBVU0JfRElSX09VVCwKKwkJCQkJICB1cmJfdmFsLAorCQkJCQkgIDAsCisJCQkJCSAgc2V0dGluZ3MsCisJCQkJCSAgMCwKKwkJCQkJICBLT0JJTF9USU1FT1VUCisJCQkpOworCisJCWRiZygiJXMgLSBwb3J0ICVkIFNlbmQgc2V0X2JhdWRyYXRlIFVSQiByZXR1cm5zOiAlaSIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyLCByZXN1bHQpOworCQlrZnJlZShzZXR0aW5ncyk7CisJCXJldHVybiAwOworCisJY2FzZSBUQ0ZMU0g6ICAgLy8gMHg1NDBCCisJCXRyYW5zZmVyX2J1ZmZlciA9ICh1bnNpZ25lZCBjaGFyICopIGttYWxsb2ModHJhbnNmZXJfYnVmZmVyX2xlbmd0aCwgR0ZQX0tFUk5FTCk7CisJCWlmICghIHRyYW5zZmVyX2J1ZmZlcikgeworCQkgCXJldHVybiAtRU5PQlVGUzsKKwkJfQorCisJCXJlc3VsdCA9IHVzYl9jb250cm9sX21zZyggcG9ydC0+c2VyaWFsLT5kZXYsIAorCQkgCQkJICB1c2JfcmN2Y3RybHBpcGUocG9ydC0+c2VyaWFsLT5kZXYsIDAgKSwgCisJCQkJCSAgU1VTQkNSZXF1ZXN0X01pc2MsCisJCQkJCSAgVVNCX1RZUEVfVkVORE9SIHwgVVNCX1JFQ0lQX0VORFBPSU5UIHwgVVNCX0RJUl9PVVQsCisJCQkJCSAgU1VTQkNSX01TQ19SZXNldEFsbFF1ZXVlcywKKwkJCQkJICAwLAorCQkJCQkgIE5VTEwsLy90cmFuc2Zlcl9idWZmZXIsCisJCQkJCSAgMCwKKwkJCQkJICBLT0JJTF9USU1FT1VUCisJCQkpOworCQkKKwkJZGJnKCIlcyAtIHBvcnQgJWQgU2VuZCByZXNldF9hbGxfcXVldWVzIChGTFVTSCkgVVJCIHJldHVybnM6ICVpIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIsIHJlc3VsdCk7CisKKwkJa2ZyZWUodHJhbnNmZXJfYnVmZmVyKTsKKwkJcmV0dXJuICgocmVzdWx0IDwgMCkgPyAtRUZBVUxUIDogMCk7CisKKwl9CisJcmV0dXJuIC1FTk9JT0NUTENNRDsKK30KKworCitzdGF0aWMgaW50IF9faW5pdCBrb2JpbF9pbml0ICh2b2lkKQoreworCWludCByZXR2YWw7CisJcmV0dmFsID0gdXNiX3NlcmlhbF9yZWdpc3Rlcigma29iaWxfZGV2aWNlKTsKKwlpZiAocmV0dmFsKQorCQlnb3RvIGZhaWxlZF91c2Jfc2VyaWFsX3JlZ2lzdGVyOworCXJldHZhbCA9IHVzYl9yZWdpc3Rlcigma29iaWxfZHJpdmVyKTsKKwlpZiAocmV0dmFsKSAKKwkJZ290byBmYWlsZWRfdXNiX3JlZ2lzdGVyOworCisJaW5mbyhEUklWRVJfVkVSU0lPTiAiICIgRFJJVkVSX0FVVEhPUik7CisJaW5mbyhEUklWRVJfREVTQyk7CisKKwlyZXR1cm4gMDsKK2ZhaWxlZF91c2JfcmVnaXN0ZXI6CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyKCZrb2JpbF9kZXZpY2UpOworZmFpbGVkX3VzYl9zZXJpYWxfcmVnaXN0ZXI6CisJcmV0dXJuIHJldHZhbDsKK30KKworCitzdGF0aWMgdm9pZCBfX2V4aXQga29iaWxfZXhpdCAodm9pZCkKK3sKKwl1c2JfZGVyZWdpc3RlciAoJmtvYmlsX2RyaXZlcik7CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyICgma29iaWxfZGV2aWNlKTsKK30KKworbW9kdWxlX2luaXQoa29iaWxfaW5pdCk7Cittb2R1bGVfZXhpdChrb2JpbF9leGl0KTsKKworTU9EVUxFX0FVVEhPUiggRFJJVkVSX0FVVEhPUiApOworTU9EVUxFX0RFU0NSSVBUSU9OKCBEUklWRVJfREVTQyApOworTU9EVUxFX0xJQ0VOU0UoICJHUEwiICk7CisKK21vZHVsZV9wYXJhbShkZWJ1ZywgYm9vbCwgU19JUlVHTyB8IFNfSVdVU1IpOworTU9EVUxFX1BBUk1fREVTQyhkZWJ1ZywgIkRlYnVnIGVuYWJsZWQgb3Igbm90Iik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva29iaWxfc2N0LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwva29iaWxfc2N0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTUxZmJiNQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rb2JpbF9zY3QuaApAQCAtMCwwICsxLDYwIEBACisjZGVmaW5lIFNVU0JDUmVxdWVzdF9TZXRCYXVkUmF0ZVBhcml0eUFuZFN0b3BCaXRzICAgICAgIDEKKyNkZWZpbmUgU1VTQkNSX1NCUl9NQVNLCQkJCTB4RkYwMAorI2RlZmluZSBTVVNCQ1JfU0JSXzEyMDAJCQkJMHgwMTAwCisjZGVmaW5lIFNVU0JDUl9TQlJfOTYwMAkJCQkweDAyMDAKKyNkZWZpbmUgU1VTQkNSX1NCUl8xOTIwMAkJCTB4MDQwMAorI2RlZmluZSBTVVNCQ1JfU0JSXzI4ODAwCQkJMHgwODAwCisjZGVmaW5lIFNVU0JDUl9TQlJfMzg0MDAJCQkweDEwMDAKKyNkZWZpbmUgU1VTQkNSX1NCUl81NzYwMAkJCTB4MjAwMAorI2RlZmluZSBTVVNCQ1JfU0JSXzExNTIwMAkJCTB4NDAwMAorCisjZGVmaW5lIFNVU0JDUl9TUEFTQl9NQVNLCQkJMHgwMDcwCisjZGVmaW5lIFNVU0JDUl9TUEFTQl9Ob1Bhcml0eQkJCTB4MDAxMAorI2RlZmluZSBTVVNCQ1JfU1BBU0JfT2RkUGFyaXR5CQkJMHgwMDIwCisjZGVmaW5lIFNVU0JDUl9TUEFTQl9FdmVuUGFyaXR5CQkJMHgwMDQwCisKKyNkZWZpbmUgU1VTQkNSX1NQQVNCX1NUUE1BU0sJCQkweDAwMDMKKyNkZWZpbmUgU1VTQkNSX1NQQVNCXzFTdG9wQml0CQkJMHgwMDAxCisjZGVmaW5lIFNVU0JDUl9TUEFTQl8yU3RvcEJpdHMJCQkweDAwMDIKKworI2RlZmluZSBTVVNCQ1JlcXVlc3RfU2V0U3RhdHVzTGluZXNPclF1ZXVlcwkyCisjZGVmaW5lIFNVU0JDUl9TU0xfU0VUUlRTCQkJMHgwMDAxCisjZGVmaW5lIFNVU0JDUl9TU0xfQ0xSUlRTCQkJMHgwMDAyCisjZGVmaW5lIFNVU0JDUl9TU0xfU0VURFRSCQkJMHgwMDA0CisjZGVmaW5lIFNVU0JDUl9TU0xfQ0xSRFRSCQkJMHgwMDEwCisKKyNkZWZpbmUgU1VTQkNSX1NTTF9QVVJHRV9UWEFCT1JUCQkweDAxMDAgIC8vIEtpbGwgdGhlIHBlbmRpbmcvY3VycmVudCB3cml0ZXMgdG8gdGhlIGNvbW0gcG9ydC4KKyNkZWZpbmUgU1VTQkNSX1NTTF9QVVJHRV9SWEFCT1JUCQkweDAyMDAgIC8vIEtpbGwgdGhlIHBlbmRpbmcvY3VycmVudCByZWFkcyB0byB0aGUgY29tbSBwb3J0LgorI2RlZmluZSBTVVNCQ1JfU1NMX1BVUkdFX1RYQ0xFQVIJCTB4MDQwMCAgLy8gS2lsbCB0aGUgdHJhbnNtaXQgcXVldWUgaWYgdGhlcmUuCisjZGVmaW5lIFNVU0JDUl9TU0xfUFVSR0VfUlhDTEVBUgkJMHgwODAwICAvLyBLaWxsIHRoZSB0eXBlYWhlYWQgYnVmZmVyIGlmIHRoZXJlLgorCisjZGVmaW5lIFNVU0JDUmVxdWVzdF9HZXRTdGF0dXNMaW5lU3RhdGUJCTQKKyNkZWZpbmUgU1VTQkNSX0dTTF9SWENIQVIJCQkweDAwMDEgIC8vIEFueSBDaGFyYWN0ZXIgcmVjZWl2ZWQKKyNkZWZpbmUgU1VTQkNSX0dTTF9UWEVNUFRZCQkJMHgwMDA0ICAvLyBUcmFuc21pdHQgUXVldWUgRW1wdHkKKyNkZWZpbmUgU1VTQkNSX0dTTF9DVFMJCQkJMHgwMDA4ICAvLyBDVFMgY2hhbmdlZCBzdGF0ZQorI2RlZmluZSBTVVNCQ1JfR1NMX0RTUgkJCQkweDAwMTAgIC8vIERTUiBjaGFuZ2VkIHN0YXRlCisjZGVmaW5lIFNVU0JDUl9HU0xfUkxTRAkJCQkweDAwMjAgIC8vIFJMU0QgY2hhbmdlZCBzdGF0ZQorI2RlZmluZSBTVVNCQ1JfR1NMX0JSRUFLCQkJMHgwMDQwICAvLyBCUkVBSyByZWNlaXZlZAorI2RlZmluZSBTVVNCQ1JfR1NMX0VSUgkJCQkweDAwODAgIC8vIExpbmUgc3RhdHVzIGVycm9yIG9jY3VycmVkCisjZGVmaW5lIFNVU0JDUl9HU0xfUklORwkJCQkweDAxMDAgIC8vIFJpbmcgc2lnbmFsIGRldGVjdGVkCisKKyNkZWZpbmUgU1VTQkNSZXF1ZXN0X01pc2MJCQk4CisjZGVmaW5lIFNVU0JDUl9NU0NfUmVzZXRSZWFkZXIJCQkweDAwMDEJLy8gdXNlIGEgcHJlZGVmaW5lZCByZXNldCBzZXF1ZW5jZQorI2RlZmluZSBTVVNCQ1JfTVNDX1Jlc2V0QWxsUXVldWVzCQkweDAwMDIJLy8gdXNlIGEgcHJlZGVmaW5lZCBzZXF1ZW5jZSB0byByZXNldCB0aGUgaW50ZXJuYWwgcXVldWVzCisKKyNkZWZpbmUgU1VTQkNSZXF1ZXN0X0dldE1pc2MJCQkweDEwCisjZGVmaW5lIFNVU0JDUl9NU0NfR2V0RldWZXJzaW9uCQkJMHgwMDAxCS8qIGdldCB0aGUgZmlybXdhcmUgdmVyc2lvbiBmcm9tIGRldmljZSwKKwkJCQkJCQkgICBjb2RlZCBsaWtlIHRoaXMgMHhISExMQkJQUAorCQkJCQkJCSAgIHdpdGggSEggPSBGaXJtd2FyZSBWZXJzaW9uIEhpZ2ggQnl0ZQorCQkJCQkJCSAgIExMID0gRmlybXdhcmUgVmVyc2lvbiBMb3cgQnl0ZQorCQkJCQkJCSAgIEJCID0gQnVpbGQgTnVtYmVyCisJCQkJCQkJICAgUFAgPSBGdXJ0aGVyIEF0dHJpYnV0ZXMKKwkJCQkJCQkqLworCisjZGVmaW5lIFNVU0JDUl9NU0NfR2V0SFdWZXJzaW9uCQkJMHgwMDAyCS8qIGdldCB0aGUgaGFyZHdhcmUgdmVyc2lvbiBmcm9tIGRldmljZQorCQkJCQkJCSAgIGNvZGVkIGxpa2UgdGhpcyAweEhITExQUFJSCisJCQkJCQkJICAgd2l0aCBISCA9IFNvZnR3YXJlIFZlcnNpb24gSGlnaCBCeXRlCisJCQkJCQkJICAgTEwgPSBTb2Z0d2FyZSBWZXJzaW9uIExvdyBCeXRlCisJCQkJCQkJICAgUFAgPSBGdXJ0aGVyIEF0dHJpYnV0ZXMKKwkJCQkJCQkgICBSUiA9IFJlc2VydmVkIGZvciB0aGUgaGFyZHdhcmUgSUQgCisJCQkJCQkJKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9tY3RfdTIzMi5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL21jdF91MjMyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTBiNjM2OTYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvbWN0X3UyMzIuYwpAQCAtMCwwICsxLDc4MSBAQAorLyoKKyAqIE1DVCAoTWFnaWMgQ29udHJvbCBUZWNobm9sb2d5IENvcnAuKSBVU0IgUlMyMzIgQ29udmVydGVyIERyaXZlcgorICoKKyAqICAgQ29weXJpZ2h0IChDKSAyMDAwIFdvbGZnYW5nIEdyYW5kZWdnZXIgKHdvbGZnYW5nQGNlcy5jaCkKKyAqCisgKiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGxhcmdlbHkgZGVyaXZlZCBmcm9tIHRoZSBCZWxraW4gVVNCIFNlcmlhbCBBZGFwdGVyIERyaXZlcgorICogKHNlZSBiZWxraW5fc2EuW2NoXSkuIEFsbCBvZiB0aGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRldmljZSB3YXMgYWNxdWlyZWQKKyAqIGJ5IHVzaW5nIFNuaWZmVVNCIG9uIFdpbmRvd3M5OC4gRm9yIHRlY2huaWNhbCBkZXRhaWxzIHNlZSBtY3RfdTIzMi5oLgorICoKKyAqIFdpbGxpYW0gRy4gR3JlYXRob3VzZSBhbmQgR3JlZyBLcm9haC1IYXJ0bWFuIHByb3ZpZGVkIGdyZWF0IGhlbHAgb24gaG93IHRvCisgKiBkbyB0aGUgcmV2ZXJzZSBlbmdpbmVlcmluZyBhbmQgaG93IHRvIHdyaXRlIGEgVVNCIHNlcmlhbCBkZXZpY2UgZHJpdmVyLgorICoKKyAqIFRPIEJFIERPTkUsIFRPIEJFIENIRUNLRUQ6CisgKiAgIERUUi9SVFMgc2lnbmFsIGhhbmRsaW5nIG1heSBiZSBpbmNvbXBsZXRlIG9yIGluY29ycmVjdC4gSSBoYXZlIG1haW5seQorICogICBpbXBsZW1lbnRlZCB3aGF0IEkgaGF2ZSBzZWVuIHdpdGggU25pZmZVU0Igb3IgZm91bmQgaW4gYmVsa2luX3NhLmMuCisgKiAgIEZvciBmdXJ0aGVyIFRPRE9zIGNoZWNrIGFsc28gYmVsa2luX3NhLmMuCisgKgorICogVEVTVCBTVEFUVVM6CisgKiAgIEJhc2ljIHRlc3RzIGhhdmUgYmVlbiBwZXJmb3JtZWQgd2l0aCBtaW5pY29tL3ptb2RlbSB0cmFuc2ZlcnMgYW5kCisgKiAgIG1vZGVtIGRpYWxpbmcgdW5kZXIgTGludXggMi40LjAtdGVzdDEwIChmb3IgbWUgaXQgd29ya3MgZmluZSkuCisgKgorICogMDQtTm92LTIwMDMgQmlsbCBNYXJyIDxtYXJyIGF0IGZsZXggZG90IGNvbT4KKyAqICAgLSBNaW1pYyBXaW5kb3dzIGRyaXZlciBieSBzZW5kaW5nIDIgVVNCICdkZXZpY2UgcmVxdWVzdCcgbWVzc2FnZXMKKyAqICAgICBmb2xsb3dpbmcgbm9ybWFsICdiYXVkIHJhdGUgY2hhbmdlJyBtZXNzYWdlLiAgVGhpcyBhbGxvd3MgZGF0YSB0byBiZQorICogICAgIHRyYW5zbWl0dGVkIHRvIFJTLTIzMiBkZXZpY2VzIHdoaWNoIGRvbid0IGFzc2VydCB0aGUgJ0NUUycgc2lnbmFsLgorICoKKyAqIDEwLU5vdi0yMDAxIFdvbGZnYW5nIEdyYW5kZWdnZXIKKyAqICAgLSBGaXhlZCBhbiBlbmRpYW5lc3MgcHJvYmxlbSB3aXRoIHRoZSBiYXVkcmF0ZSBzZWxlY3Rpb24gZm9yIFBvd2VyUEMuCisgKgorICogMDYtRGVjLTIwMDEgTWFydGluIEhhbWlsdG9uIDxtYXJ0aW5oQGdudS5vcmc+CisgKglBZGRlZCBzdXBwb3J0IGZvciB0aGUgQmVsa2luIEY1VTEwOSBEQjkgYWRhcHRvcgorICoKKyAqIDMwLU1heS0yMDAxIEdyZWcgS3JvYWgtSGFydG1hbgorICoJc3dpdGNoZWQgZnJvbSB1c2luZyBzcGlubG9jayB0byBhIHNlbWFwaG9yZSwgd2hpY2ggZml4ZXMgbG90cyBvZiBwcm9ibGVtcy4KKyAqCisgKiAwNC1NYXktMjAwMSBTdGVsaWFuIFBvcAorICogICAtIFNldCB0aGUgbWF4aW11bSBidWxrIG91dHB1dCBzaXplIGZvciBTaXRlY29tIFUyMzItUDI1IG1vZGVsIHRvIDE2IGJ5dGVzCisgKiAgICAgaW5zdGVhZCBvZiB0aGUgZGV2aWNlIHJlcG9ydGVkIDMyICh1c2luZyAzMiBieXRlcyBjYXVzZXMgbWFueSBkYXRhCisgKiAgICAgbG9zcywgV2luZG93cyBkcml2ZXIgdXNlcyAxNiB0b28pLgorICoKKyAqIDAyLU1heS0yMDAxIFN0ZWxpYW4gUG9wCisgKiAgIC0gRml4ZWQgdGhlIGJhdWQgY2FsY3VsYXRpb24gZm9yIFNpdGVjb20gVTIzMi1QMjUgbW9kZWwKKyAqCisgKiAwOC1BcHItMjAwMSBnYgorICogICAtIElkZW50aWZ5IHZlcnNpb24gb24gbW9kdWxlIGxvYWQuCisgKgorICogMDYtSmFuLTIwMDEgQ29ybmVsIENpb2NpcmxhbiAKKyAqICAgLSBBZGRlZCBzdXBwb3J0IGZvciBTaXRlY29tIFUyMzItUDI1IG1vZGVsIChQcm9kdWN0IElkIDB4MDIzMCkKKyAqICAgLSBBZGRlZCBzdXBwb3J0IGZvciBELUxpbmsgRFUtSDNTUCBVU0IgQkFZIChQcm9kdWN0IElkIDB4MDIwMCkKKyAqCisgKiAyOS1Ob3YtMjAwMCBHcmVnIEtyb2FoLUhhcnRtYW4KKyAqICAgLSBBZGRlZCBkZXZpY2UgaWQgdGFibGUgdG8gZml0IHdpdGggMi40LjAtdGVzdDExIHN0cnVjdHVyZS4KKyAqICAgLSB0b29rIG91dCBERUFMX1dJVEhfVFdPX0lOVF9JTl9FTkRQT0lOVFMgI2RlZmluZSBhcyBpdCdzIG5vdCBuZWVkZWQKKyAqICAgICAobG90cyBvZiB0aGluZ3Mgd2lsbCBjaGFuZ2UgaWYvd2hlbiB0aGUgdXNiLXNlcmlhbCBjb3JlIGNoYW5nZXMgdG8KKyAqICAgICBoYW5kbGUgdGhlc2UgaXNzdWVzLgorICoKKyAqIDI3LU5vdi0yMDAwIFdvbGZnYW5nIEdyYW5kZWdnZXIKKyAqICAgQSB2ZXJzaW9uIGZvciBrZXJuZWwgMi40LjAtdGVzdDEwIHJlbGVhc2VkIHRvIHRoZSBMaW51eCBjb21tdW5pdHkgCisgKiAgICh2aWEgbGludXgtdXNiLWRldmVsKS4KKyAqLworCisjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eS5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eV9kcml2ZXIuaD4KKyNpbmNsdWRlIDxsaW51eC90dHlfZmxpcC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC91c2IuaD4KKyNpbmNsdWRlICJ1c2Itc2VyaWFsLmgiCisjaW5jbHVkZSAibWN0X3UyMzIuaCIKKworLyoKKyAqIFZlcnNpb24gSW5mb3JtYXRpb24KKyAqLworI2RlZmluZSBEUklWRVJfVkVSU0lPTiAiejIuMCIJCS8qIExpbnV4IGluLWtlcm5lbCB2ZXJzaW9uICovCisjZGVmaW5lIERSSVZFUl9BVVRIT1IgIldvbGZnYW5nIEdyYW5kZWdnZXIgPHdvbGZnYW5nQGNlcy5jaD4iCisjZGVmaW5lIERSSVZFUl9ERVNDICJNYWdpYyBDb250cm9sIFRlY2hub2xvZ3kgVVNCLVJTMjMyIGNvbnZlcnRlciBkcml2ZXIiCisKK3N0YXRpYyBpbnQgZGVidWc7CisKKy8qCisgKiBGdW5jdGlvbiBwcm90b3R5cGVzCisgKi8KK3N0YXRpYyBpbnQgIG1jdF91MjMyX3N0YXJ0dXAJICAgICAgICAgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpOworc3RhdGljIHZvaWQgbWN0X3UyMzJfc2h1dGRvd24JICAgICAgICAgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpOworc3RhdGljIGludCAgbWN0X3UyMzJfb3BlbgkgICAgICAgICAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwKKwkJCQkJICBzdHJ1Y3QgZmlsZSAqZmlscCk7CitzdGF0aWMgdm9pZCBtY3RfdTIzMl9jbG9zZQkgICAgICAgICAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwKKwkJCQkJICBzdHJ1Y3QgZmlsZSAqZmlscCk7CitzdGF0aWMgdm9pZCBtY3RfdTIzMl9yZWFkX2ludF9jYWxsYmFjayAgIChzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKK3N0YXRpYyB2b2lkIG1jdF91MjMyX3NldF90ZXJtaW9zICAgICAgICAgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCisJCQkJCSAgc3RydWN0IHRlcm1pb3MgKiBvbGQpOworc3RhdGljIGludCAgbWN0X3UyMzJfaW9jdGwJICAgICAgICAgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCisJCQkJCSAgc3RydWN0IGZpbGUgKiBmaWxlLAorCQkJCQkgIHVuc2lnbmVkIGludCBjbWQsCisJCQkJCSAgdW5zaWduZWQgbG9uZyBhcmcpOworc3RhdGljIHZvaWQgbWN0X3UyMzJfYnJlYWtfY3RsCSAgICAgICAgIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LAorCQkJCQkgIGludCBicmVha19zdGF0ZSApOworc3RhdGljIGludCAgbWN0X3UyMzJfdGlvY21nZXQJCSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwKKwkJCQkJICBzdHJ1Y3QgZmlsZSAqZmlsZSk7CitzdGF0aWMgaW50ICBtY3RfdTIzMl90aW9jbXNldAkJIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LAorCQkJCQkgIHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgc2V0LAorCQkJCQkgIHVuc2lnbmVkIGludCBjbGVhcik7CisvKgorICogQWxsIG9mIHRoZSBkZXZpY2UgaW5mbyBuZWVkZWQgZm9yIHRoZSBNQ1QgVVNCLVJTMjMyIGNvbnZlcnRlci4KKyAqLworc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlX2NvbWJpbmVkIFtdID0geworCXsgVVNCX0RFVklDRShNQ1RfVTIzMl9WSUQsIE1DVF9VMjMyX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTUNUX1UyMzJfVklELCBNQ1RfVTIzMl9TSVRFQ09NX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTUNUX1UyMzJfVklELCBNQ1RfVTIzMl9EVV9IM1NQX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTUNUX1UyMzJfQkVMS0lOX0Y1VTEwOV9WSUQsIE1DVF9VMjMyX0JFTEtJTl9GNVUxMDlfUElEKSB9LAorCXsgfQkJLyogVGVybWluYXRpbmcgZW50cnkgKi8KK307CisKK01PRFVMRV9ERVZJQ0VfVEFCTEUgKHVzYiwgaWRfdGFibGVfY29tYmluZWQpOworCitzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgbWN0X3UyMzJfZHJpdmVyID0geworCS5vd25lciA9CVRISVNfTU9EVUxFLAorCS5uYW1lID0JCSJtY3RfdTIzMiIsCisJLnByb2JlID0JdXNiX3NlcmlhbF9wcm9iZSwKKwkuZGlzY29ubmVjdCA9CXVzYl9zZXJpYWxfZGlzY29ubmVjdCwKKwkuaWRfdGFibGUgPQlpZF90YWJsZV9jb21iaW5lZCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kZXZpY2VfdHlwZSBtY3RfdTIzMl9kZXZpY2UgPSB7CisJLm93bmVyID0JICAgICBUSElTX01PRFVMRSwKKwkubmFtZSA9CQkgICAgICJNQ1QgVTIzMiIsCisJLnNob3J0X25hbWUgPQkgICAgICJtY3RfdTIzMiIsCisJLmlkX3RhYmxlID0JICAgICBpZF90YWJsZV9jb21iaW5lZCwKKwkubnVtX2ludGVycnVwdF9pbiA9ICAyLAorCS5udW1fYnVsa19pbiA9CSAgICAgMCwKKwkubnVtX2J1bGtfb3V0ID0JICAgICAxLAorCS5udW1fcG9ydHMgPQkgICAgIDEsCisJLm9wZW4gPQkJICAgICBtY3RfdTIzMl9vcGVuLAorCS5jbG9zZSA9CSAgICAgbWN0X3UyMzJfY2xvc2UsCisJLnJlYWRfaW50X2NhbGxiYWNrID0gbWN0X3UyMzJfcmVhZF9pbnRfY2FsbGJhY2ssCisJLmlvY3RsID0JICAgICBtY3RfdTIzMl9pb2N0bCwKKwkuc2V0X3Rlcm1pb3MgPQkgICAgIG1jdF91MjMyX3NldF90ZXJtaW9zLAorCS5icmVha19jdGwgPQkgICAgIG1jdF91MjMyX2JyZWFrX2N0bCwKKwkudGlvY21nZXQgPQkgICAgIG1jdF91MjMyX3Rpb2NtZ2V0LAorCS50aW9jbXNldCA9CSAgICAgbWN0X3UyMzJfdGlvY21zZXQsCisJLmF0dGFjaCA9CSAgICAgbWN0X3UyMzJfc3RhcnR1cCwKKwkuc2h1dGRvd24gPQkgICAgIG1jdF91MjMyX3NodXRkb3duLAorfTsKKworCitzdHJ1Y3QgbWN0X3UyMzJfcHJpdmF0ZSB7CisJc3BpbmxvY2tfdCBsb2NrOworCXVuc2lnbmVkIGludAkgICAgIGNvbnRyb2xfc3RhdGU7IC8qIE1vZGVtIExpbmUgU2V0dGluZyAoVElPQ00pICovCisJdW5zaWduZWQgY2hhciAgICAgICAgbGFzdF9sY3I7ICAgICAgLyogTGluZSBDb250cm9sIFJlZ2lzdGVyICovCisJdW5zaWduZWQgY2hhcgkgICAgIGxhc3RfbHNyOyAgICAgIC8qIExpbmUgU3RhdHVzIFJlZ2lzdGVyICovCisJdW5zaWduZWQgY2hhcgkgICAgIGxhc3RfbXNyOyAgICAgIC8qIE1vZGVtIFN0YXR1cyBSZWdpc3RlciAqLworfTsKKworLyoKKyAqIEhhbmRsZSB2ZW5kb3Igc3BlY2lmaWMgVVNCIHJlcXVlc3RzCisgKi8KKworI2RlZmluZSBXRFJfVElNRU9VVCA1MDAwIC8qIGRlZmF1bHQgdXJiIHRpbWVvdXQgKi8KKworLyoKKyAqIExhdGVyIGRheSAyLjYuMC10ZXN0IGtlcm5lbHMgaGF2ZSBuZXcgYmF1ZCByYXRlcyBsaWtlIEIyMzA0MDAgd2hpY2gKKyAqIHdlIGRvIG5vdCBrbm93IGhvdyB0byBzdXBwb3J0LiBXZSBpZ25vcmUgdGhlbSBmb3IgdGhlIG1vbWVudC4KKyAqIFhYWCBSYXRlLWxpbWl0IHRoZSBlcnJvciBtZXNzYWdlLCBpdCdzIHVzZXIgdHJpZ2dlcmFibGUuCisgKi8KK3N0YXRpYyBpbnQgbWN0X3UyMzJfY2FsY3VsYXRlX2JhdWRfcmF0ZShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLCBpbnQgdmFsdWUpCit7CisJaWYgKGxlMTZfdG9fY3B1KHNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCkgPT0gTUNUX1UyMzJfU0lURUNPTV9QSUQKKwkgIHx8IGxlMTZfdG9fY3B1KHNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCkgPT0gTUNUX1UyMzJfQkVMS0lOX0Y1VTEwOV9QSUQpIHsKKwkJc3dpdGNoICh2YWx1ZSkgeworCQljYXNlICAgIEIzMDA6IHJldHVybiAweDAxOworCQljYXNlICAgIEI2MDA6IHJldHVybiAweDAyOyAvKiB0aGlzIG9uZSBub3QgdGVzdGVkICovCisJCWNhc2UgICBCMTIwMDogcmV0dXJuIDB4MDM7CisJCWNhc2UgICBCMjQwMDogcmV0dXJuIDB4MDQ7CisJCWNhc2UgICBCNDgwMDogcmV0dXJuIDB4MDY7CisJCWNhc2UgICBCOTYwMDogcmV0dXJuIDB4MDg7CisJCWNhc2UgIEIxOTIwMDogcmV0dXJuIDB4MDk7CisJCWNhc2UgIEIzODQwMDogcmV0dXJuIDB4MGE7CisJCWNhc2UgIEI1NzYwMDogcmV0dXJuIDB4MGI7CisJCWNhc2UgQjExNTIwMDogcmV0dXJuIDB4MGM7CisJCWRlZmF1bHQ6CisJCQllcnIoIk1DVCBVU0ItUlMyMzI6IHVuc3VwcG9ydGVkIGJhdWRyYXRlIHJlcXVlc3QgMHgleCwiCisJCQkgICAgIiB1c2luZyBkZWZhdWx0IG9mIEI5NjAwIiwgdmFsdWUpOworCQkJcmV0dXJuIDB4MDg7CisJCX0KKwl9IGVsc2UgeworCQlzd2l0Y2ggKHZhbHVlKSB7CisJCWNhc2UgICAgQjMwMDogdmFsdWUgPSAgICAgMzAwOyBicmVhazsKKwkJY2FzZSAgICBCNjAwOiB2YWx1ZSA9ICAgICA2MDA7IGJyZWFrOworCQljYXNlICAgQjEyMDA6IHZhbHVlID0gICAgMTIwMDsgYnJlYWs7CisJCWNhc2UgICBCMjQwMDogdmFsdWUgPSAgICAyNDAwOyBicmVhazsKKwkJY2FzZSAgIEI0ODAwOiB2YWx1ZSA9ICAgIDQ4MDA7IGJyZWFrOworCQljYXNlICAgQjk2MDA6IHZhbHVlID0gICAgOTYwMDsgYnJlYWs7CisJCWNhc2UgIEIxOTIwMDogdmFsdWUgPSAgIDE5MjAwOyBicmVhazsKKwkJY2FzZSAgQjM4NDAwOiB2YWx1ZSA9ICAgMzg0MDA7IGJyZWFrOworCQljYXNlICBCNTc2MDA6IHZhbHVlID0gICA1NzYwMDsgYnJlYWs7CisJCWNhc2UgQjExNTIwMDogdmFsdWUgPSAgMTE1MjAwOyBicmVhazsKKwkJZGVmYXVsdDoKKwkJCWVycigiTUNUIFVTQi1SUzIzMjogdW5zdXBwb3J0ZWQgYmF1ZHJhdGUgcmVxdWVzdCAweCV4LCIKKwkJCSAgICAiIHVzaW5nIGRlZmF1bHQgb2YgQjk2MDAiLCB2YWx1ZSk7CisJCQl2YWx1ZSA9IDk2MDA7CisJCX0KKwkJcmV0dXJuIDExNTIwMC92YWx1ZTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgbWN0X3UyMzJfc2V0X2JhdWRfcmF0ZShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLCBpbnQgdmFsdWUpCit7CisJX19sZTMyIGRpdmlzb3I7CisgICAgICAgIGludCByYzsKKyAgICAgICAgdW5zaWduZWQgY2hhciB6ZXJvX2J5dGUgPSAwOworCisJZGl2aXNvciA9IGNwdV90b19sZTMyKG1jdF91MjMyX2NhbGN1bGF0ZV9iYXVkX3JhdGUoc2VyaWFsLCB2YWx1ZSkpOworCisgICAgICAgIHJjID0gdXNiX2NvbnRyb2xfbXNnKHNlcmlhbC0+ZGV2LCB1c2Jfc25kY3RybHBpcGUoc2VyaWFsLT5kZXYsIDApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQ1RfVTIzMl9TRVRfQkFVRF9SQVRFX1JFUVVFU1QsCisJCQkgICAgIE1DVF9VMjMyX1NFVF9SRVFVRVNUX1RZUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsICZkaXZpc29yLCBNQ1RfVTIzMl9TRVRfQkFVRF9SQVRFX1NJWkUsCisJCQkgICAgIFdEUl9USU1FT1VUKTsKKwlpZiAocmMgPCAwKQorCQllcnIoIlNldCBCQVVEIFJBVEUgJWQgZmFpbGVkIChlcnJvciA9ICVkKSIsIHZhbHVlLCByYyk7CisJZGJnKCJzZXRfYmF1ZF9yYXRlOiB2YWx1ZTogMHgleCwgZGl2aXNvcjogMHgleCIsIHZhbHVlLCBkaXZpc29yKTsKKworCS8qIE1pbWljIHRoZSBNQ1Qtc3VwcGxpZWQgV2luZG93cyBkcml2ZXIgKHZlcnNpb24gMS4yMVAuMDEwNCksIHdoaWNoCisJICAgYWx3YXlzIHNlbmRzIHR3byBleHRyYSBVU0IgJ2RldmljZSByZXF1ZXN0JyBtZXNzYWdlcyBhZnRlciB0aGUKKwkgICAnYmF1ZCByYXRlIGNoYW5nZScgbWVzc2FnZS4gIFRoZSBhY3R1YWwgZnVuY3Rpb25hbGl0eSBvZiB0aGUKKwkgICByZXF1ZXN0IGNvZGVzIGluIHRoZXNlIG1lc3NhZ2VzIGlzIG5vdCBmdWxseSB1bmRlcnN0b29kIGJ1dCB0aGVzZQorCSAgIHBhcnRpY3VsYXIgY29kZXMgYXJlIG5ldmVyIHNlZW4gaW4gYW55IG9wZXJhdGlvbiBiZXNpZGVzIGEgYmF1ZAorCSAgIHJhdGUgY2hhbmdlLiAgQm90aCBvZiB0aGVzZSBtZXNzYWdlcyBzZW5kIGEgc2luZ2xlIGJ5dGUgb2YgZGF0YQorCSAgIHdob3NlIHZhbHVlIGlzIGFsd2F5cyB6ZXJvLiAgVGhlIHNlY29uZCBvZiB0aGVzZSB0d28gZXh0cmEgbWVzc2FnZXMKKwkgICBpcyByZXF1aXJlZCBpbiBvcmRlciBmb3IgZGF0YSB0byBiZSBwcm9wZXJseSB3cml0dGVuIHRvIGFuIFJTLTIzMgorCSAgIGRldmljZSB3aGljaCBkb2VzIG5vdCBhc3NlcnQgdGhlICdDVFMnIHNpZ25hbC4gKi8KKworCXJjID0gdXNiX2NvbnRyb2xfbXNnKHNlcmlhbC0+ZGV2LCB1c2Jfc25kY3RybHBpcGUoc2VyaWFsLT5kZXYsIDApLAorCQkJICAgICBNQ1RfVTIzMl9TRVRfVU5LTk9XTjFfUkVRVUVTVCwgCisJCQkgICAgIE1DVF9VMjMyX1NFVF9SRVFVRVNUX1RZUEUsCisJCQkgICAgIDAsIDAsICZ6ZXJvX2J5dGUsIE1DVF9VMjMyX1NFVF9VTktOT1dOMV9TSVpFLCAKKwkJCSAgICAgV0RSX1RJTUVPVVQpOworCWlmIChyYyA8IDApCisJCWVycigiU2VuZGluZyBVU0IgZGV2aWNlIHJlcXVlc3QgY29kZSAlZCBmYWlsZWQgKGVycm9yID0gJWQpIiwgCisJCSAgICBNQ1RfVTIzMl9TRVRfVU5LTk9XTjFfUkVRVUVTVCwgcmMpOworCisJcmMgPSB1c2JfY29udHJvbF9tc2coc2VyaWFsLT5kZXYsIHVzYl9zbmRjdHJscGlwZShzZXJpYWwtPmRldiwgMCksCisJCQkgICAgIE1DVF9VMjMyX1NFVF9VTktOT1dOMl9SRVFVRVNULCAKKwkJCSAgICAgTUNUX1UyMzJfU0VUX1JFUVVFU1RfVFlQRSwKKwkJCSAgICAgMCwgMCwgJnplcm9fYnl0ZSwgTUNUX1UyMzJfU0VUX1VOS05PV04yX1NJWkUsIAorCQkJICAgICBXRFJfVElNRU9VVCk7CisJaWYgKHJjIDwgMCkKKwkJZXJyKCJTZW5kaW5nIFVTQiBkZXZpY2UgcmVxdWVzdCBjb2RlICVkIGZhaWxlZCAoZXJyb3IgPSAlZCkiLCAKKwkJICAgIE1DVF9VMjMyX1NFVF9VTktOT1dOMl9SRVFVRVNULCByYyk7CisKKyAgICAgICAgcmV0dXJuIHJjOworfSAvKiBtY3RfdTIzMl9zZXRfYmF1ZF9yYXRlICovCisKK3N0YXRpYyBpbnQgbWN0X3UyMzJfc2V0X2xpbmVfY3RybChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLCB1bnNpZ25lZCBjaGFyIGxjcikKK3sKKyAgICAgICAgaW50IHJjOworICAgICAgICByYyA9IHVzYl9jb250cm9sX21zZyhzZXJpYWwtPmRldiwgdXNiX3NuZGN0cmxwaXBlKHNlcmlhbC0+ZGV2LCAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUNUX1UyMzJfU0VUX0xJTkVfQ1RSTF9SRVFVRVNULAorCQkJICAgICBNQ1RfVTIzMl9TRVRfUkVRVUVTVF9UWVBFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAmbGNyLCBNQ1RfVTIzMl9TRVRfTElORV9DVFJMX1NJWkUsCisJCQkgICAgIFdEUl9USU1FT1VUKTsKKwlpZiAocmMgPCAwKQorCQllcnIoIlNldCBMSU5FIENUUkwgMHgleCBmYWlsZWQgKGVycm9yID0gJWQpIiwgbGNyLCByYyk7CisJZGJnKCJzZXRfbGluZV9jdHJsOiAweCV4IiwgbGNyKTsKKyAgICAgICAgcmV0dXJuIHJjOworfSAvKiBtY3RfdTIzMl9zZXRfbGluZV9jdHJsICovCisKK3N0YXRpYyBpbnQgbWN0X3UyMzJfc2V0X21vZGVtX2N0cmwoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwKKwkJCQkgICB1bnNpZ25lZCBpbnQgY29udHJvbF9zdGF0ZSkKK3sKKyAgICAgICAgaW50IHJjOworCXVuc2lnbmVkIGNoYXIgbWNyID0gTUNUX1UyMzJfTUNSX05PTkU7CisKKwlpZiAoY29udHJvbF9zdGF0ZSAmIFRJT0NNX0RUUikKKwkJbWNyIHw9IE1DVF9VMjMyX01DUl9EVFI7CisJaWYgKGNvbnRyb2xfc3RhdGUgJiBUSU9DTV9SVFMpCisJCW1jciB8PSBNQ1RfVTIzMl9NQ1JfUlRTOworCisgICAgICAgIHJjID0gdXNiX2NvbnRyb2xfbXNnKHNlcmlhbC0+ZGV2LCB1c2Jfc25kY3RybHBpcGUoc2VyaWFsLT5kZXYsIDApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQ1RfVTIzMl9TRVRfTU9ERU1fQ1RSTF9SRVFVRVNULAorCQkJICAgICBNQ1RfVTIzMl9TRVRfUkVRVUVTVF9UWVBFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAmbWNyLCBNQ1RfVTIzMl9TRVRfTU9ERU1fQ1RSTF9TSVpFLAorCQkJICAgICBXRFJfVElNRU9VVCk7CisJaWYgKHJjIDwgMCkKKwkJZXJyKCJTZXQgTU9ERU0gQ1RSTCAweCV4IGZhaWxlZCAoZXJyb3IgPSAlZCkiLCBtY3IsIHJjKTsKKwlkYmcoInNldF9tb2RlbV9jdHJsOiBzdGF0ZT0weCV4ID09PiBtY3I9MHgleCIsIGNvbnRyb2xfc3RhdGUsIG1jcik7CisKKyAgICAgICAgcmV0dXJuIHJjOworfSAvKiBtY3RfdTIzMl9zZXRfbW9kZW1fY3RybCAqLworCitzdGF0aWMgaW50IG1jdF91MjMyX2dldF9tb2RlbV9zdGF0KHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIHVuc2lnbmVkIGNoYXIgKm1zcikKK3sKKyAgICAgICAgaW50IHJjOworICAgICAgICByYyA9IHVzYl9jb250cm9sX21zZyhzZXJpYWwtPmRldiwgdXNiX3JjdmN0cmxwaXBlKHNlcmlhbC0+ZGV2LCAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUNUX1UyMzJfR0VUX01PREVNX1NUQVRfUkVRVUVTVCwKKwkJCSAgICAgTUNUX1UyMzJfR0VUX1JFUVVFU1RfVFlQRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgbXNyLCBNQ1RfVTIzMl9HRVRfTU9ERU1fU1RBVF9TSVpFLAorCQkJICAgICBXRFJfVElNRU9VVCk7CisJaWYgKHJjIDwgMCkgeworCQllcnIoIkdldCBNT0RFTSBTVEFUdXMgZmFpbGVkIChlcnJvciA9ICVkKSIsIHJjKTsKKwkJKm1zciA9IDA7CisJfQorCWRiZygiZ2V0X21vZGVtX3N0YXQ6IDB4JXgiLCAqbXNyKTsKKyAgICAgICAgcmV0dXJuIHJjOworfSAvKiBtY3RfdTIzMl9nZXRfbW9kZW1fc3RhdCAqLworCitzdGF0aWMgdm9pZCBtY3RfdTIzMl9tc3JfdG9fc3RhdGUodW5zaWduZWQgaW50ICpjb250cm9sX3N0YXRlLCB1bnNpZ25lZCBjaGFyIG1zcikKK3sKKyAJLyogVHJhbnNsYXRlIENvbnRyb2wgTGluZSBzdGF0ZXMgKi8KKwlpZiAobXNyICYgTUNUX1UyMzJfTVNSX0RTUikKKwkJKmNvbnRyb2xfc3RhdGUgfD0gIFRJT0NNX0RTUjsKKwllbHNlCisJCSpjb250cm9sX3N0YXRlICY9IH5USU9DTV9EU1I7CisJaWYgKG1zciAmIE1DVF9VMjMyX01TUl9DVFMpCisJCSpjb250cm9sX3N0YXRlIHw9ICBUSU9DTV9DVFM7CisJZWxzZQorCQkqY29udHJvbF9zdGF0ZSAmPSB+VElPQ01fQ1RTOworCWlmIChtc3IgJiBNQ1RfVTIzMl9NU1JfUkkpCisJCSpjb250cm9sX3N0YXRlIHw9ICBUSU9DTV9SSTsKKwllbHNlCisJCSpjb250cm9sX3N0YXRlICY9IH5USU9DTV9SSTsKKwlpZiAobXNyICYgTUNUX1UyMzJfTVNSX0NEKQorCQkqY29udHJvbF9zdGF0ZSB8PSAgVElPQ01fQ0Q7CisJZWxzZQorCQkqY29udHJvbF9zdGF0ZSAmPSB+VElPQ01fQ0Q7CisgCWRiZygibXNyX3RvX3N0YXRlOiBtc3I9MHgleCA9PT4gc3RhdGU9MHgleCIsIG1zciwgKmNvbnRyb2xfc3RhdGUpOworfSAvKiBtY3RfdTIzMl9tc3JfdG9fc3RhdGUgKi8KKworLyoKKyAqIERyaXZlcidzIHR0eSBpbnRlcmZhY2UgZnVuY3Rpb25zCisgKi8KKworc3RhdGljIGludCBtY3RfdTIzMl9zdGFydHVwIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQoreworCXN0cnVjdCBtY3RfdTIzMl9wcml2YXRlICpwcml2OworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsICpycG9ydDsKKworCXByaXYgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgbWN0X3UyMzJfcHJpdmF0ZSksIEdGUF9LRVJORUwpOworCWlmICghcHJpdikKKwkJcmV0dXJuIC1FTk9NRU07CisJbWVtc2V0KHByaXYsIDAsIHNpemVvZihzdHJ1Y3QgbWN0X3UyMzJfcHJpdmF0ZSkpOworCXNwaW5fbG9ja19pbml0KCZwcml2LT5sb2NrKTsKKwl1c2Jfc2V0X3NlcmlhbF9wb3J0X2RhdGEoc2VyaWFsLT5wb3J0WzBdLCBwcml2KTsKKworCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnNlcmlhbC0+cG9ydFswXS0+d3JpdGVfd2FpdCk7CisKKwkvKiBQdWgsIHRoYXQncyBkaXJ0eSAqLworCXBvcnQgPSBzZXJpYWwtPnBvcnRbMF07CisJcnBvcnQgPSBzZXJpYWwtPnBvcnRbMV07CisJaWYgKHBvcnQtPnJlYWRfdXJiKSB7CisJCS8qIE5vIHVubGlua2luZywgaXQgd2Fzbid0IHN1Ym1pdHRlZCB5ZXQuICovCisJCXVzYl9mcmVlX3VyYihwb3J0LT5yZWFkX3VyYik7CisJfQorCXBvcnQtPnJlYWRfdXJiID0gcnBvcnQtPmludGVycnVwdF9pbl91cmI7CisJcnBvcnQtPmludGVycnVwdF9pbl91cmIgPSBOVUxMOworCXBvcnQtPnJlYWRfdXJiLT5jb250ZXh0ID0gcG9ydDsKKworCXJldHVybiAoMCk7Cit9IC8qIG1jdF91MjMyX3N0YXJ0dXAgKi8KKworCitzdGF0aWMgdm9pZCBtY3RfdTIzMl9zaHV0ZG93biAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkKK3sKKwlzdHJ1Y3QgbWN0X3UyMzJfcHJpdmF0ZSAqcHJpdjsKKwlpbnQgaTsKKwkKKwlkYmcoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCWZvciAoaT0wOyBpIDwgc2VyaWFsLT5udW1fcG9ydHM7ICsraSkgeworCQkvKiBNeSBzcGVjaWFsIGl0ZW1zLCB0aGUgc3RhbmRhcmQgcm91dGluZXMgZnJlZSBteSB1cmJzICovCisJCXByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEoc2VyaWFsLT5wb3J0W2ldKTsKKwkJaWYgKHByaXYpIHsKKwkJCXVzYl9zZXRfc2VyaWFsX3BvcnRfZGF0YShzZXJpYWwtPnBvcnRbaV0sIE5VTEwpOworCQkJa2ZyZWUocHJpdik7CisJCX0KKwl9Cit9IC8qIG1jdF91MjMyX3NodXRkb3duICovCisKK3N0YXRpYyBpbnQgIG1jdF91MjMyX29wZW4gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgPSBwb3J0LT5zZXJpYWw7CisJc3RydWN0IG1jdF91MjMyX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJaW50IHJldHZhbCA9IDA7CisJdW5zaWduZWQgaW50IGNvbnRyb2xfc3RhdGU7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBjaGFyIGxhc3RfbGNyOworCXVuc2lnbmVkIGNoYXIgbGFzdF9tc3I7CisKKwlkYmcoIiVzIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwkvKiBDb21wZW5zYXRlIGZvciBhIGhhcmR3YXJlIGJ1ZzogYWx0aG91Z2ggdGhlIFNpdGVjb20gVTIzMi1QMjUKKwkgKiBkZXZpY2UgcmVwb3J0cyBhIG1heGltdW0gb3V0cHV0IHBhY2tldCBzaXplIG9mIDMyIGJ5dGVzLAorCSAqIGl0IHNlZW1zIHRvIGJlIGFibGUgdG8gYWNjZXB0IG9ubHkgMTYgYnl0ZXMgKGFuZCB0aGF0J3Mgd2hhdAorCSAqIFNuaWZmVVNCIHNheXMgdG9vLi4uKQorCSAqLworCWlmIChsZTE2X3RvX2NwdShzZXJpYWwtPmRldi0+ZGVzY3JpcHRvci5pZFByb2R1Y3QpID09IE1DVF9VMjMyX1NJVEVDT01fUElEKQorCQlwb3J0LT5idWxrX291dF9zaXplID0gMTY7CisKKwkvKiBEbyBhIGRlZmluZWQgcmVzdGFydDogdGhlIG5vcm1hbCBzZXJpYWwgZGV2aWNlIHNlZW1zIHRvIAorCSAqIGFsd2F5cyB0dXJuIG9uIERUUiBhbmQgUlRTIGhlcmUsIHNvIGRvIHRoZSBzYW1lLiBJJ20gbm90CisJICogc3VyZSBpZiB0aGlzIGlzIHJlYWxseSBuZWNlc3NhcnkuIEJ1dCBpdCBzaG91bGQgbm90IGhhcm0KKwkgKiBlaXRoZXIuCisJICovCisJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwlpZiAocG9ydC0+dHR5LT50ZXJtaW9zLT5jX2NmbGFnICYgQ0JBVUQpCisJCXByaXYtPmNvbnRyb2xfc3RhdGUgPSBUSU9DTV9EVFIgfCBUSU9DTV9SVFM7CisJZWxzZQorCQlwcml2LT5jb250cm9sX3N0YXRlID0gMDsKKwkKKwlwcml2LT5sYXN0X2xjciA9IChNQ1RfVTIzMl9EQVRBX0JJVFNfOCB8IAorCQkJICBNQ1RfVTIzMl9QQVJJVFlfTk9ORSB8CisJCQkgIE1DVF9VMjMyX1NUT1BfQklUU18xKTsKKwljb250cm9sX3N0YXRlID0gcHJpdi0+Y29udHJvbF9zdGF0ZTsKKwlsYXN0X2xjciA9IHByaXYtPmxhc3RfbGNyOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwltY3RfdTIzMl9zZXRfbW9kZW1fY3RybChzZXJpYWwsIGNvbnRyb2xfc3RhdGUpOworCW1jdF91MjMyX3NldF9saW5lX2N0cmwoc2VyaWFsLCBsYXN0X2xjcik7CisKKwkvKiBSZWFkIG1vZGVtIHN0YXR1cyBhbmQgdXBkYXRlIGNvbnRyb2wgc3RhdGUgKi8KKwltY3RfdTIzMl9nZXRfbW9kZW1fc3RhdChzZXJpYWwsICZsYXN0X21zcik7CisJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwlwcml2LT5sYXN0X21zciA9IGxhc3RfbXNyOworCW1jdF91MjMyX21zcl90b19zdGF0ZSgmcHJpdi0+Y29udHJvbF9zdGF0ZSwgcHJpdi0+bGFzdF9tc3IpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKworCXBvcnQtPnJlYWRfdXJiLT5kZXYgPSBwb3J0LT5zZXJpYWwtPmRldjsKKwlyZXR2YWwgPSB1c2Jfc3VibWl0X3VyYihwb3J0LT5yZWFkX3VyYiwgR0ZQX0tFUk5FTCk7CisJaWYgKHJldHZhbCkgeworCQllcnIoInVzYl9zdWJtaXRfdXJiKHJlYWQgYnVsaykgZmFpbGVkIHBpcGUgMHgleCBlcnIgJWQiLAorCQkgICAgcG9ydC0+cmVhZF91cmItPnBpcGUsIHJldHZhbCk7CisJCWdvdG8gZXhpdDsKKwl9CisKKwlwb3J0LT5pbnRlcnJ1cHRfaW5fdXJiLT5kZXYgPSBwb3J0LT5zZXJpYWwtPmRldjsKKwlyZXR2YWwgPSB1c2Jfc3VibWl0X3VyYihwb3J0LT5pbnRlcnJ1cHRfaW5fdXJiLCBHRlBfS0VSTkVMKTsKKwlpZiAocmV0dmFsKQorCQllcnIoIiB1c2Jfc3VibWl0X3VyYihyZWFkIGludCkgZmFpbGVkIHBpcGUgMHgleCBlcnIgJWQiLAorCQkgICAgcG9ydC0+aW50ZXJydXB0X2luX3VyYi0+cGlwZSwgcmV0dmFsKTsKKworZXhpdDoKKwlyZXR1cm4gMDsKK30gLyogbWN0X3UyMzJfb3BlbiAqLworCisKK3N0YXRpYyB2b2lkIG1jdF91MjMyX2Nsb3NlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlkYmcoIiVzIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAocG9ydC0+c2VyaWFsLT5kZXYpIHsKKwkJLyogc2h1dGRvd24gb3VyIHVyYnMgKi8KKwkJdXNiX2tpbGxfdXJiKHBvcnQtPndyaXRlX3VyYik7CisJCXVzYl9raWxsX3VyYihwb3J0LT5yZWFkX3VyYik7CisJCXVzYl9raWxsX3VyYihwb3J0LT5pbnRlcnJ1cHRfaW5fdXJiKTsKKwl9Cit9IC8qIG1jdF91MjMyX2Nsb3NlICovCisKKworc3RhdGljIHZvaWQgbWN0X3UyMzJfcmVhZF9pbnRfY2FsbGJhY2sgKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopdXJiLT5jb250ZXh0OworCXN0cnVjdCBtY3RfdTIzMl9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgPSBwb3J0LT5zZXJpYWw7CisJc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eTsKKwl1bnNpZ25lZCBjaGFyICpkYXRhID0gdXJiLT50cmFuc2Zlcl9idWZmZXI7CisJaW50IHN0YXR1czsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3dpdGNoICh1cmItPnN0YXR1cykgeworCWNhc2UgMDoKKwkJLyogc3VjY2VzcyAqLworCQlicmVhazsKKwljYXNlIC1FQ09OTlJFU0VUOgorCWNhc2UgLUVOT0VOVDoKKwljYXNlIC1FU0hVVERPV046CisJCS8qIHRoaXMgdXJiIGlzIHRlcm1pbmF0ZWQsIGNsZWFuIHVwICovCisJCWRiZygiJXMgLSB1cmIgc2h1dHRpbmcgZG93biB3aXRoIHN0YXR1czogJWQiLCBfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzKTsKKwkJcmV0dXJuOworCWRlZmF1bHQ6CisJCWRiZygiJXMgLSBub256ZXJvIHVyYiBzdGF0dXMgcmVjZWl2ZWQ6ICVkIiwgX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyk7CisJCWdvdG8gZXhpdDsKKwl9CisKKwlpZiAoIXNlcmlhbCkgeworCQlkYmcoIiVzIC0gYmFkIHNlcmlhbCBwb2ludGVyLCBleGl0aW5nIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuOworCX0KKworICAgICAgICBkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKwl1c2Jfc2VyaWFsX2RlYnVnX2RhdGEoZGVidWcsICZwb3J0LT5kZXYsIF9fRlVOQ1RJT05fXywgdXJiLT5hY3R1YWxfbGVuZ3RoLCBkYXRhKTsKKworCS8qCisJICogV29yay1hLXJvdW5kOiBoYW5kbGUgdGhlICd1c3VhbCcgYnVsay1pbiBwaXBlIGhlcmUKKwkgKi8KKwlpZiAodXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoID4gMikgeworCQlpbnQgaTsKKwkJdHR5ID0gcG9ydC0+dHR5OworCQlpZiAodXJiLT5hY3R1YWxfbGVuZ3RoKSB7CisJCQlmb3IgKGkgPSAwOyBpIDwgdXJiLT5hY3R1YWxfbGVuZ3RoIDsgKytpKSB7CisJCQkJdHR5X2luc2VydF9mbGlwX2NoYXIodHR5LCBkYXRhW2ldLCAwKTsKKwkJCX0KKwkJCXR0eV9mbGlwX2J1ZmZlcl9wdXNoKHR0eSk7CisJCX0KKwkJZ290byBleGl0OworCX0KKwkKKwkvKgorCSAqIFRoZSBpbnRlcnJ1cHQtaW4gcGlwZSBzaWduYWxzIGV4Y2VwdGlvbmFsIGNvbmRpdGlvbnMgKG1vZGVtIGxpbmUKKwkgKiBzaWduYWwgY2hhbmdlcyBhbmQgZXJyb3JzKS4gZGF0YVswXSBob2xkcyBNU1IsIGRhdGFbMV0gaG9sZHMgTFNSLgorCSAqLworCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJcHJpdi0+bGFzdF9tc3IgPSBkYXRhW01DVF9VMjMyX01TUl9JTkRFWF07CisJCisJLyogUmVjb3JkIENvbnRyb2wgTGluZSBzdGF0ZXMgKi8KKwltY3RfdTIzMl9tc3JfdG9fc3RhdGUoJnByaXYtPmNvbnRyb2xfc3RhdGUsIHByaXYtPmxhc3RfbXNyKTsKKworI2lmIDAKKwkvKiBOb3QgeWV0IGhhbmRsZWQuIFNlZSBiZWxpbl9zYS5jIGZvciBmdXJ0aGVyIGluZm9ybWF0aW9uICovCisJLyogTm93IHRvIHJlcG9ydCBhbnkgZXJyb3JzICovCisJcHJpdi0+bGFzdF9sc3IgPSBkYXRhW01DVF9VMjMyX0xTUl9JTkRFWF07CisJLyoKKwkgKiBmaWxsIGluIHRoZSBmbGlwIGJ1ZmZlciBoZXJlLCBidXQgSSBkbyBub3Qga25vdyB0aGUgcmVsYXRpb24KKwkgKiB0byB0aGUgY3VycmVudC9uZXh0IHJlY2VpdmUgYnVmZmVyIG9yIGNoYXJhY3RlcnMuICBJIG5lZWQKKwkgKiB0byBsb29rIGluIHRvIHRoaXMgYmVmb3JlIGNvbW1pdHRpbmcgYW55IGNvZGUuCisJICovCisJaWYgKHByaXYtPmxhc3RfbHNyICYgTUNUX1UyMzJfTFNSX0VSUikgeworCQl0dHkgPSBwb3J0LT50dHk7CisJCS8qIE92ZXJydW4gRXJyb3IgKi8KKwkJaWYgKHByaXYtPmxhc3RfbHNyICYgTUNUX1UyMzJfTFNSX09FKSB7CisJCX0KKwkJLyogUGFyaXR5IEVycm9yICovCisJCWlmIChwcml2LT5sYXN0X2xzciAmIE1DVF9VMjMyX0xTUl9QRSkgeworCQl9CisJCS8qIEZyYW1pbmcgRXJyb3IgKi8KKwkJaWYgKHByaXYtPmxhc3RfbHNyICYgTUNUX1UyMzJfTFNSX0ZFKSB7CisJCX0KKwkJLyogQnJlYWsgSW5kaWNhdG9yICovCisJCWlmIChwcml2LT5sYXN0X2xzciAmIE1DVF9VMjMyX0xTUl9CSSkgeworCQl9CisJfQorI2VuZGlmCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworZXhpdDoKKwlzdGF0dXMgPSB1c2Jfc3VibWl0X3VyYiAodXJiLCBHRlBfQVRPTUlDKTsKKwlpZiAoc3RhdHVzKQorCQllcnIgKCIlcyAtIHVzYl9zdWJtaXRfdXJiIGZhaWxlZCB3aXRoIHJlc3VsdCAlZCIsCisJCSAgICAgX19GVU5DVElPTl9fLCBzdGF0dXMpOworfSAvKiBtY3RfdTIzMl9yZWFkX2ludF9jYWxsYmFjayAqLworCitzdGF0aWMgdm9pZCBtY3RfdTIzMl9zZXRfdGVybWlvcyAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwKKwkJCQkgIHN0cnVjdCB0ZXJtaW9zICpvbGRfdGVybWlvcykKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsID0gcG9ydC0+c2VyaWFsOworCXN0cnVjdCBtY3RfdTIzMl9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXVuc2lnbmVkIGludCBpZmxhZyA9IHBvcnQtPnR0eS0+dGVybWlvcy0+Y19pZmxhZzsKKwl1bnNpZ25lZCBpbnQgY2ZsYWcgPSBwb3J0LT50dHktPnRlcm1pb3MtPmNfY2ZsYWc7CisJdW5zaWduZWQgaW50IG9sZF9jZmxhZyA9IG9sZF90ZXJtaW9zLT5jX2NmbGFnOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdW5zaWduZWQgaW50IGNvbnRyb2xfc3RhdGUsIG5ld19zdGF0ZTsKKwl1bnNpZ25lZCBjaGFyIGxhc3RfbGNyOworCisJLyogZ2V0IGEgbG9jYWwgY29weSBvZiB0aGUgY3VycmVudCBwb3J0IHNldHRpbmdzICovCisJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwljb250cm9sX3N0YXRlID0gcHJpdi0+Y29udHJvbF9zdGF0ZTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJbGFzdF9sY3IgPSAwOworCisJLyoKKwkgKiBVcGRhdGUgYmF1ZCByYXRlLgorCSAqIERvIG5vdCBhdHRlbXB0IHRvIGNhY2hlIG9sZCByYXRlcyBhbmQgc2tpcCBzZXR0aW5ncywKKwkgKiBkaXNjb25uZWN0cyBzY3JldyBzdWNoIHRyaWNrcyB1cCBjb21wbGV0ZWx5LgorCSAqIFByZW1hdHVyZSBvcHRpbWl6YXRpb24gaXMgdGhlIHJvb3Qgb2YgYWxsIGV2aWwuCisJICovCisKKyAgICAgICAgLyogcmVhc3NlcnQgRFRSIGFuZCAobWF5YmUpIFJUUyBvbiB0cmFuc2l0aW9uIGZyb20gQjAgKi8KKwlpZiAoKG9sZF9jZmxhZyAmIENCQVVEKSA9PSBCMCkgeworCQlkYmcoIiVzOiBiYXVkIHdhcyBCMCIsIF9fRlVOQ1RJT05fXyk7CisJCWNvbnRyb2xfc3RhdGUgfD0gVElPQ01fRFRSOworCQkvKiBkb24ndCBzZXQgUlRTIGlmIHVzaW5nIGhhcmR3YXJlIGZsb3cgY29udHJvbCAqLworCQlpZiAoIShvbGRfY2ZsYWcgJiBDUlRTQ1RTKSkgeworCQkJY29udHJvbF9zdGF0ZSB8PSBUSU9DTV9SVFM7CisJCX0KKwkJbWN0X3UyMzJfc2V0X21vZGVtX2N0cmwoc2VyaWFsLCBjb250cm9sX3N0YXRlKTsKKwl9CisKKwltY3RfdTIzMl9zZXRfYmF1ZF9yYXRlKHNlcmlhbCwgY2ZsYWcgJiBDQkFVRCk7CisKKwlpZiAoKGNmbGFnICYgQ0JBVUQpID09IEIwICkgeworCQlkYmcoIiVzOiBiYXVkIGlzIEIwIiwgX19GVU5DVElPTl9fKTsKKwkJLyogRHJvcCBSVFMgYW5kIERUUiAqLworCQljb250cm9sX3N0YXRlICY9IH4oVElPQ01fRFRSIHwgVElPQ01fUlRTKTsKKyAgICAgICAJCW1jdF91MjMyX3NldF9tb2RlbV9jdHJsKHNlcmlhbCwgY29udHJvbF9zdGF0ZSk7CisJfQorCisJLyoKKwkgKiBVcGRhdGUgbGluZSBjb250cm9sIHJlZ2lzdGVyIChMQ1IpCisJICovCisKKwkvKiBzZXQgdGhlIHBhcml0eSAqLworCWlmIChjZmxhZyAmIFBBUkVOQikKKwkJbGFzdF9sY3IgfD0gKGNmbGFnICYgUEFST0REKSA/CisJCQlNQ1RfVTIzMl9QQVJJVFlfT0REIDogTUNUX1UyMzJfUEFSSVRZX0VWRU47CisJZWxzZQorCQlsYXN0X2xjciB8PSBNQ1RfVTIzMl9QQVJJVFlfTk9ORTsKKworCS8qIHNldCB0aGUgbnVtYmVyIG9mIGRhdGEgYml0cyAqLworCXN3aXRjaCAoY2ZsYWcgJiBDU0laRSkgeworCWNhc2UgQ1M1OgorCQlsYXN0X2xjciB8PSBNQ1RfVTIzMl9EQVRBX0JJVFNfNTsgYnJlYWs7CisJY2FzZSBDUzY6CisJCWxhc3RfbGNyIHw9IE1DVF9VMjMyX0RBVEFfQklUU182OyBicmVhazsKKwljYXNlIENTNzoKKwkJbGFzdF9sY3IgfD0gTUNUX1UyMzJfREFUQV9CSVRTXzc7IGJyZWFrOworCWNhc2UgQ1M4OgorCQlsYXN0X2xjciB8PSBNQ1RfVTIzMl9EQVRBX0JJVFNfODsgYnJlYWs7CisJZGVmYXVsdDoKKwkJZXJyKCJDU0laRSB3YXMgbm90IENTNS1DUzgsIHVzaW5nIGRlZmF1bHQgb2YgOCIpOworCQlsYXN0X2xjciB8PSBNQ1RfVTIzMl9EQVRBX0JJVFNfODsKKwkJYnJlYWs7CisJfQorCisJLyogc2V0IHRoZSBudW1iZXIgb2Ygc3RvcCBiaXRzICovCisJbGFzdF9sY3IgfD0gKGNmbGFnICYgQ1NUT1BCKSA/CisJCU1DVF9VMjMyX1NUT1BfQklUU18yIDogTUNUX1UyMzJfU1RPUF9CSVRTXzE7CisKKwltY3RfdTIzMl9zZXRfbGluZV9jdHJsKHNlcmlhbCwgbGFzdF9sY3IpOworCisJLyoKKwkgKiBTZXQgZmxvdyBjb250cm9sOiB3ZWxsLCBJIGRvIG5vdCByZWFsbHkgbm93IGhvdyB0byBoYW5kbGUgRFRSL1JUUy4KKwkgKiBKdXN0IGRvIHdoYXQgd2UgaGF2ZSBzZWVuIHdpdGggU25pZmZVU0Igb24gV2luOTguCisJICovCisJLyogRHJvcCBEVFIvUlRTIGlmIG5vIGZsb3cgY29udHJvbCBvdGhlcndpc2UgYXNzZXJ0ICovCisJbmV3X3N0YXRlID0gY29udHJvbF9zdGF0ZTsKKwlpZiAoKGlmbGFnICYgSVhPRkYpIHx8IChpZmxhZyAmIElYT04pIHx8IChjZmxhZyAmIENSVFNDVFMpKQorCQluZXdfc3RhdGUgfD0gVElPQ01fRFRSIHwgVElPQ01fUlRTOworCWVsc2UKKwkJbmV3X3N0YXRlICY9IH4oVElPQ01fRFRSIHwgVElPQ01fUlRTKTsKKwlpZiAobmV3X3N0YXRlICE9IGNvbnRyb2xfc3RhdGUpIHsKKwkJbWN0X3UyMzJfc2V0X21vZGVtX2N0cmwoc2VyaWFsLCBuZXdfc3RhdGUpOworCQljb250cm9sX3N0YXRlID0gbmV3X3N0YXRlOworCX0KKworCS8qIHNhdmUgb2ZmIHRoZSBtb2RpZmllZCBwb3J0IHNldHRpbmdzICovCisJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwlwcml2LT5jb250cm9sX3N0YXRlID0gY29udHJvbF9zdGF0ZTsKKwlwcml2LT5sYXN0X2xjciA9IGxhc3RfbGNyOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKK30gLyogbWN0X3UyMzJfc2V0X3Rlcm1pb3MgKi8KKworc3RhdGljIHZvaWQgbWN0X3UyMzJfYnJlYWtfY3RsKCBzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBpbnQgYnJlYWtfc3RhdGUgKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgPSBwb3J0LT5zZXJpYWw7CisJc3RydWN0IG1jdF91MjMyX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJdW5zaWduZWQgY2hhciBsY3I7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCWRiZygiJXNzdGF0ZT0lZCIsIF9fRlVOQ1RJT05fXywgYnJlYWtfc3RhdGUpOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwlsY3IgPSBwcml2LT5sYXN0X2xjcjsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CisKKwlpZiAoYnJlYWtfc3RhdGUpCisJCWxjciB8PSBNQ1RfVTIzMl9TRVRfQlJFQUs7CisKKwltY3RfdTIzMl9zZXRfbGluZV9jdHJsKHNlcmlhbCwgbGNyKTsKK30gLyogbWN0X3UyMzJfYnJlYWtfY3RsICovCisKKworc3RhdGljIGludCBtY3RfdTIzMl90aW9jbWdldCAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJc3RydWN0IG1jdF91MjMyX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJdW5zaWduZWQgaW50IGNvbnRyb2xfc3RhdGU7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwkKKwlkYmcoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJY29udHJvbF9zdGF0ZSA9IHByaXYtPmNvbnRyb2xfc3RhdGU7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCisJcmV0dXJuIGNvbnRyb2xfc3RhdGU7Cit9CisKK3N0YXRpYyBpbnQgbWN0X3UyMzJfdGlvY21zZXQgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxlLAorCQkJICAgICAgdW5zaWduZWQgaW50IHNldCwgdW5zaWduZWQgaW50IGNsZWFyKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgPSBwb3J0LT5zZXJpYWw7CisJc3RydWN0IG1jdF91MjMyX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJdW5zaWduZWQgaW50IGNvbnRyb2xfc3RhdGU7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwkKKwlkYmcoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJY29udHJvbF9zdGF0ZSA9IHByaXYtPmNvbnRyb2xfc3RhdGU7CisKKwlpZiAoc2V0ICYgVElPQ01fUlRTKQorCQljb250cm9sX3N0YXRlIHw9IFRJT0NNX1JUUzsKKwlpZiAoc2V0ICYgVElPQ01fRFRSKQorCQljb250cm9sX3N0YXRlIHw9IFRJT0NNX0RUUjsKKwlpZiAoY2xlYXIgJiBUSU9DTV9SVFMpCisJCWNvbnRyb2xfc3RhdGUgJj0gflRJT0NNX1JUUzsKKwlpZiAoY2xlYXIgJiBUSU9DTV9EVFIpCisJCWNvbnRyb2xfc3RhdGUgJj0gflRJT0NNX0RUUjsKKworCXByaXYtPmNvbnRyb2xfc3RhdGUgPSBjb250cm9sX3N0YXRlOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwlyZXR1cm4gbWN0X3UyMzJfc2V0X21vZGVtX2N0cmwoc2VyaWFsLCBjb250cm9sX3N0YXRlKTsKK30KKworc3RhdGljIGludCBtY3RfdTIzMl9pb2N0bCAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKiBmaWxlLAorCQkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCit7CisJZGJnKCIlc2NtZD0weCV4IiwgX19GVU5DVElPTl9fLCBjbWQpOworCisJLyogQmFzZWQgb24gY29kZSBmcm9tIGFjbS5jIGFuZCBvdGhlcnMgKi8KKwlzd2l0Y2ggKGNtZCkgeworCWNhc2UgVElPQ01JV0FJVDoKKwkJLyogd2FpdCBmb3IgYW55IG9mIHRoZSA0IG1vZGVtIGlucHV0cyAoRENELFJJLERTUixDVFMpKi8KKwkJLyogVE9ETyAqLworCQlyZXR1cm4oIDAgKTsKKworCWNhc2UgVElPQ0dJQ09VTlQ6CisJCS8qIHJldHVybiBjb3VudCBvZiBtb2RlbWxpbmUgdHJhbnNpdGlvbnMgKi8KKwkJLyogVE9ETyAqLworCQlyZXR1cm4gMDsKKworCWRlZmF1bHQ6CisJCWRiZygiJXM6IGFyZyBub3Qgc3VwcG9ydGVkIC0gMHglMDR4IiwgX19GVU5DVElPTl9fLGNtZCk7CisJCXJldHVybigtRU5PSU9DVExDTUQpOworCQlicmVhazsKKwl9CisJcmV0dXJuIDA7Cit9IC8qIG1jdF91MjMyX2lvY3RsICovCisKKworc3RhdGljIGludCBfX2luaXQgbWN0X3UyMzJfaW5pdCAodm9pZCkKK3sKKwlpbnQgcmV0dmFsOworCXJldHZhbCA9IHVzYl9zZXJpYWxfcmVnaXN0ZXIoJm1jdF91MjMyX2RldmljZSk7CisJaWYgKHJldHZhbCkKKwkJZ290byBmYWlsZWRfdXNiX3NlcmlhbF9yZWdpc3RlcjsKKwlyZXR2YWwgPSB1c2JfcmVnaXN0ZXIoJm1jdF91MjMyX2RyaXZlcik7CisJaWYgKHJldHZhbCkKKwkJZ290byBmYWlsZWRfdXNiX3JlZ2lzdGVyOworCWluZm8oRFJJVkVSX0RFU0MgIiAiIERSSVZFUl9WRVJTSU9OKTsKKwlyZXR1cm4gMDsKK2ZhaWxlZF91c2JfcmVnaXN0ZXI6CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyKCZtY3RfdTIzMl9kZXZpY2UpOworZmFpbGVkX3VzYl9zZXJpYWxfcmVnaXN0ZXI6CisJcmV0dXJuIHJldHZhbDsKK30KKworCitzdGF0aWMgdm9pZCBfX2V4aXQgbWN0X3UyMzJfZXhpdCAodm9pZCkKK3sKKwl1c2JfZGVyZWdpc3RlciAoJm1jdF91MjMyX2RyaXZlcik7CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyICgmbWN0X3UyMzJfZGV2aWNlKTsKK30KKworCittb2R1bGVfaW5pdCAobWN0X3UyMzJfaW5pdCk7Cittb2R1bGVfZXhpdChtY3RfdTIzMl9leGl0KTsKKworTU9EVUxFX0FVVEhPUiggRFJJVkVSX0FVVEhPUiApOworTU9EVUxFX0RFU0NSSVBUSU9OKCBEUklWRVJfREVTQyApOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworCittb2R1bGVfcGFyYW0oZGVidWcsIGJvb2wsIFNfSVJVR08gfCBTX0lXVVNSKTsKK01PRFVMRV9QQVJNX0RFU0MoZGVidWcsICJEZWJ1ZyBlbmFibGVkIG9yIG5vdCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL21jdF91MjMyLmggYi9kcml2ZXJzL3VzYi9zZXJpYWwvbWN0X3UyMzIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43M2RkMGQ5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL21jdF91MjMyLmgKQEAgLTAsMCArMSw0NTMgQEAKKy8qCisgKiBEZWZpbml0aW9ucyBmb3IgTUNUIChNYWdpYyBDb250cm9sIFRlY2hub2xvZ3kpIFVTQi1SUzIzMiBDb252ZXJ0ZXIgRHJpdmVyCisgKgorICogICBDb3B5cmlnaHQgKEMpIDIwMDAgV29sZmdhbmcgR3JhbmRlZ2dlciAod29sZmdhbmdAY2VzLmNoKQorICoKKyAqICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGRyaXZlciBpcyBmb3IgdGhlIGRldmljZSBNQ1QgVVNCLVJTMjMyIENvbnZlcnRlciAoMjUgcGluLCBNb2RlbCBOby4KKyAqIFUyMzItUDI1KSBmcm9tIE1hZ2ljIENvbnRyb2wgVGVjaG5vbG9neSBDb3JwLiAodGhlcmUgaXMgYWxzbyBhIDkgcGluCisgKiBNb2RlbCBOby4gVTIzMi1QOSkuIFNlZSBodHRwOi8vd3d3Lm1jdC5jb20udHcvcF91MjMyLmh0bWwgZm9yIGZ1cnRoZXIKKyAqIGluZm9ybWF0aW9uLiBUaGUgcHJvcGVydGllcyBvZiB0aGlzIGRldmljZSBhcmUgbGlzdGVkIGF0IHRoZSBlbmQgb2YgdGhpcworICogZmlsZS4gVGhpcyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZyb20gdmFyaW91cyBkaXN0cmlidXRvcnMuIEkga25vdyBIYW5hLAorICogaHR0cDovL3d3dy5oYW5hLmRlIGFuZCBELUxpbmssIGh0dHA6Ly93d3cuZGxpbmsuY29tL3Byb2R1Y3RzL3VzYi9kc2JzMjUuCisgKgorICogQWxsIG9mIHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZGV2aWNlIHdhcyBhY3F1aXJlZCBieSB1c2luZyBTbmlmZlVTQgorICogb24gV2luZG93czk4LiBUaGUgdGVjaG5pY2FsIGRldGFpbHMgb2YgdGhlIHJldmVyc2UgZW5naW5lZXJpbmcgYXJlCisgKiBzdW1tYXJpemVkIGF0IHRoZSBlbmQgb2YgdGhpcyBmaWxlLgorICovCisKKyNpZm5kZWYgX19MSU5VWF9VU0JfU0VSSUFMX01DVF9VMjMyX0gKKyNkZWZpbmUgX19MSU5VWF9VU0JfU0VSSUFMX01DVF9VMjMyX0gKKworI2RlZmluZSBNQ1RfVTIzMl9WSUQJICAgICAgICAgICAgICAgIDB4MDcxMQkvKiBWZW5kb3IgSWQgKi8KKyNkZWZpbmUgTUNUX1UyMzJfUElECSAgICAgICAgICAgICAgICAweDAyMTAJLyogT3JpZ2luYWwgTUNUIFByb2R1Y3QgSWQgKi8KKworLyogVTIzMi1QMjUsIFNpdGVjb20gKi8KKyNkZWZpbmUgTUNUX1UyMzJfU0lURUNPTV9QSUQJCTB4MDIzMAkvKiBTaXRlY29tIFByb2R1Y3QgSWQgKi8KKworLyogRFUtSDNTUCBVU0IgQkFZIGh1YiAqLworI2RlZmluZSBNQ1RfVTIzMl9EVV9IM1NQX1BJRAkJMHgwMjAwCS8qIEQtTGluayBEVS1IM1NQIFVTQiBCQVkgKi8KKworLyogQmVsa2luIGJhZGdlIHRoZSBNQ1QgVTIzMi1QOSBhcyB0aGUgRjVVMTA5ICovCisjZGVmaW5lIE1DVF9VMjMyX0JFTEtJTl9GNVUxMDlfVklECTB4MDUwZAkvKiBWZW5kb3IgSWQgKi8KKyNkZWZpbmUgTUNUX1UyMzJfQkVMS0lOX0Y1VTEwOV9QSUQJMHgwMTA5CS8qIFByb2R1Y3QgSWQgKi8KKworLyoKKyAqIFZlbmRvciBSZXF1ZXN0IEludGVyZmFjZQorICovCisjZGVmaW5lIE1DVF9VMjMyX1NFVF9SRVFVRVNUX1RZUEUJMHg0MAorI2RlZmluZSBNQ1RfVTIzMl9HRVRfUkVRVUVTVF9UWVBFCTB4YzAKKworI2RlZmluZSBNQ1RfVTIzMl9HRVRfTU9ERU1fU1RBVF9SRVFVRVNUIDIgIC8qIEdldCBNb2RlbSBTdGF0dXMgUmVnaXN0ZXIgKE1TUikgKi8KKyNkZWZpbmUgTUNUX1UyMzJfR0VUX01PREVNX1NUQVRfU0laRSAgICAxCisKKyNkZWZpbmUgTUNUX1UyMzJfR0VUX0xJTkVfQ1RSTF9SRVFVRVNUICA2ICAvKiBHZXQgTGluZSBDb250cm9sIFJlZ2lzdGVyIChMQ1IpICovCisjZGVmaW5lIE1DVF9VMjMyX0dFVF9MSU5FX0NUUkxfU0laRSAgICAgMSAgLyogLi4uIG5vdCB1c2VkIGJ5IHRoaXMgZHJpdmVyICovCisKKyNkZWZpbmUgTUNUX1UyMzJfU0VUX0JBVURfUkFURV9SRVFVRVNUCTUgIC8qIFNldCBCYXVkIFJhdGUgRGl2aXNvciAqLworI2RlZmluZSBNQ1RfVTIzMl9TRVRfQkFVRF9SQVRFX1NJWkUgICAgIDQKKworI2RlZmluZSBNQ1RfVTIzMl9TRVRfTElORV9DVFJMX1JFUVVFU1QJNyAgLyogU2V0IExpbmUgQ29udHJvbCBSZWdpc3RlciAoTENSKSAqLworI2RlZmluZSBNQ1RfVTIzMl9TRVRfTElORV9DVFJMX1NJWkUgICAgIDEKKworI2RlZmluZSBNQ1RfVTIzMl9TRVRfTU9ERU1fQ1RSTF9SRVFVRVNUCTEwIC8qIFNldCBNb2RlbSBDb250cm9sIFJlZ2lzdGVyIChNQ1IpICovCisjZGVmaW5lIE1DVF9VMjMyX1NFVF9NT0RFTV9DVFJMX1NJWkUgICAgMQorCisvKiBUaGlzIFVTQiBkZXZpY2UgcmVxdWVzdCBjb2RlIGlzIG5vdCB3ZWxsIHVuZGVyc3Rvb2QuICBJdCBpcyB0cmFuc21pdHRlZCBieQorICAgdGhlIE1DVC1zdXBwbGllZCBXaW5kb3dzIGRyaXZlciB3aGVuZXZlciB0aGUgYmF1ZCByYXRlIGNoYW5nZXMuIAorKi8KKyNkZWZpbmUgTUNUX1UyMzJfU0VUX1VOS05PV04xX1JFUVVFU1QgICAxMSAgLyogVW5rbm93biBmdW5jdGlvbmFsaXR5ICovCisjZGVmaW5lIE1DVF9VMjMyX1NFVF9VTktOT1dOMV9TSVpFICAgICAgIDEKKworLyogVGhpcyBVU0IgZGV2aWNlIHJlcXVlc3QgY29kZSBpcyBub3Qgd2VsbCB1bmRlcnN0b29kLiAgSXQgaXMgdHJhbnNtaXR0ZWQgYnkKKyAgIHRoZSBNQ1Qtc3VwcGxpZWQgV2luZG93cyBkcml2ZXIgd2hlbmV2ZXIgdGhlIGJhdWQgcmF0ZSBjaGFuZ2VzLiAKKyAgIAorICAgV2l0aG91dCB0aGlzIFVTQiBkZXZpY2UgcmVxdWVzdCwgdGhlIFVTQi9SUy0yMzIgYWRhcHRlciB3aWxsIG5vdCB3cml0ZSB0bworICAgUlMtMjMyIGRldmljZXMgd2hpY2ggZG8gbm90IGFzc2VydCB0aGUgJ0NUUycgc2lnbmFsLgorKi8KKyNkZWZpbmUgTUNUX1UyMzJfU0VUX1VOS05PV04yX1JFUVVFU1QgICAxMiAgLyogVW5rbm93biBmdW5jdGlvbmFsaXR5ICovCisjZGVmaW5lIE1DVF9VMjMyX1NFVF9VTktOT1dOMl9TSVpFICAgICAgIDEKKworLyoKKyAqIEJhdWQgcmF0ZSAoZGl2aXNvcikKKyAqIEFjdHVhbGx5LCB0aGVyZSBhcmUgdHdvIG9mIHRoZW0sIE1DVCB3ZWJzaXRlIGNhbGxzIHRoZW0gIlBoaWxpcHMgc29sdXRpb24iCisgKiBhbmQgIkludGVsIHNvbHV0aW9uIi4gVGhleSBhcmUgdGhlIHJlZ3VsYXIgTUNUIGFuZCAiU2l0ZWNvbSIgZm9yIHVzLgorICogVGhpcyBpcyBwb2ludGxlc3MgdG8gZG9jdW1lbnQgaW4gdGhlIGhlYWRlciwgc2VlIHRoZSBjb2RlIGZvciB0aGUgYml0cy4KKyAqLworc3RhdGljIGludCBtY3RfdTIzMl9jYWxjdWxhdGVfYmF1ZF9yYXRlKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIGludCB2YWx1ZSk7CisKKy8qCisgKiBMaW5lIENvbnRyb2wgUmVnaXN0ZXIgKExDUikKKyAqLworI2RlZmluZSBNQ1RfVTIzMl9TRVRfQlJFQUsgICAgICAgICAgICAgIDB4NDAKKworI2RlZmluZSBNQ1RfVTIzMl9QQVJJVFlfU1BBQ0UJCTB4MzgKKyNkZWZpbmUgTUNUX1UyMzJfUEFSSVRZX01BUksJCTB4MjgKKyNkZWZpbmUgTUNUX1UyMzJfUEFSSVRZX0VWRU4JCTB4MTgKKyNkZWZpbmUgTUNUX1UyMzJfUEFSSVRZX09ERAkJMHgwOAorI2RlZmluZSBNQ1RfVTIzMl9QQVJJVFlfTk9ORQkJMHgwMAorCisjZGVmaW5lIE1DVF9VMjMyX0RBVEFfQklUU181ICAgICAgICAgICAgMHgwMAorI2RlZmluZSBNQ1RfVTIzMl9EQVRBX0JJVFNfNiAgICAgICAgICAgIDB4MDEKKyNkZWZpbmUgTUNUX1UyMzJfREFUQV9CSVRTXzcgICAgICAgICAgICAweDAyCisjZGVmaW5lIE1DVF9VMjMyX0RBVEFfQklUU184ICAgICAgICAgICAgMHgwMworCisjZGVmaW5lIE1DVF9VMjMyX1NUT1BfQklUU18yICAgICAgICAgICAgMHgwNAorI2RlZmluZSBNQ1RfVTIzMl9TVE9QX0JJVFNfMSAgICAgICAgICAgIDB4MDAKKworLyoKKyAqIE1vZGVtIENvbnRyb2wgUmVnaXN0ZXIgKE1DUikKKyAqLworI2RlZmluZSBNQ1RfVTIzMl9NQ1JfTk9ORSAgICAgICAgICAgICAgIDB4OCAgICAgLyogRGVhY3RpdmF0ZSBEVFIgYW5kIFJUUyAqLworI2RlZmluZSBNQ1RfVTIzMl9NQ1JfUlRTICAgICAgICAgICAgICAgIDB4YSAgICAgLyogQWN0aXZhdGUgUlRTICovCisjZGVmaW5lIE1DVF9VMjMyX01DUl9EVFIgICAgICAgICAgICAgICAgMHg5ICAgICAvKiBBY3RpdmF0ZSBEVFIgKi8KKworLyoKKyAqIE1vZGVtIFN0YXR1cyBSZWdpc3RlciAoTVNSKQorICovCisjZGVmaW5lIE1DVF9VMjMyX01TUl9JTkRFWCAgICAgICAgICAgICAgMHgwICAgICAvKiBkYXRhW2luZGV4XSAqLworI2RlZmluZSBNQ1RfVTIzMl9NU1JfQ0QgICAgICAgICAgICAgICAgIDB4ODAgICAgLyogQ3VycmVudCBDRCAqLworI2RlZmluZSBNQ1RfVTIzMl9NU1JfUkkgICAgICAgICAgICAgICAgIDB4NDAgICAgLyogQ3VycmVudCBSSSAqLworI2RlZmluZSBNQ1RfVTIzMl9NU1JfRFNSICAgICAgICAgICAgICAgIDB4MjAgICAgLyogQ3VycmVudCBEU1IgKi8KKyNkZWZpbmUgTUNUX1UyMzJfTVNSX0NUUyAgICAgICAgICAgICAgICAweDEwICAgIC8qIEN1cnJlbnQgQ1RTICovCisjZGVmaW5lIE1DVF9VMjMyX01TUl9EQ0QgICAgICAgICAgICAgICAgMHgwOCAgICAvKiBEZWx0YSBDRCAqLworI2RlZmluZSBNQ1RfVTIzMl9NU1JfRFJJICAgICAgICAgICAgICAgIDB4MDQgICAgLyogRGVsdGEgUkkgKi8KKyNkZWZpbmUgTUNUX1UyMzJfTVNSX0REU1IgICAgICAgICAgICAgICAweDAyICAgIC8qIERlbHRhIERTUiAqLworI2RlZmluZSBNQ1RfVTIzMl9NU1JfRENUUyAgICAgICAgICAgICAgIDB4MDEgICAgLyogRGVsdGEgQ1RTICovCisKKy8qCisgKiBMaW5lIFN0YXR1cyBSZWdpc3RlciAoTFNSKQorICovCisjZGVmaW5lIE1DVF9VMjMyX0xTUl9JTkRFWCAgICAgICAgICAgICAgMSAgICAgICAvKiBkYXRhW2luZGV4XSAqLworI2RlZmluZSBNQ1RfVTIzMl9MU1JfRVJSICAgICAgICAgICAgICAgIDB4ODAgICAgLyogT0UgfCBQRSB8IEZFIHwgQkkgKi8KKyNkZWZpbmUgTUNUX1UyMzJfTFNSX1RFTVQgICAgICAgICAgICAgICAweDQwICAgIC8qIHRyYW5zbWl0IHJlZ2lzdGVyIGVtcHR5ICovCisjZGVmaW5lIE1DVF9VMjMyX0xTUl9USFJFICAgICAgICAgICAgICAgMHgyMCAgICAvKiB0cmFuc21pdCBob2xkaW5nIHJlZ2lzdGVyIGVtcHR5ICovCisjZGVmaW5lIE1DVF9VMjMyX0xTUl9CSSAgICAgICAgICAgICAgICAgMHgxMCAgICAvKiBicmVhayBpbmRpY2F0b3IgKi8KKyNkZWZpbmUgTUNUX1UyMzJfTFNSX0ZFICAgICAgICAgICAgICAgICAweDA4ICAgIC8qIGZyYW1pbmcgZXJyb3IgKi8KKyNkZWZpbmUgTUNUX1UyMzJfTFNSX09FICAgICAgICAgICAgICAgICAweDAyICAgIC8qIG92ZXJydW4gZXJyb3IgKi8KKyNkZWZpbmUgTUNUX1UyMzJfTFNSX1BFICAgICAgICAgICAgICAgICAweDA0ICAgIC8qIHBhcml0eSBlcnJvciAqLworI2RlZmluZSBNQ1RfVTIzMl9MU1JfT0UgICAgICAgICAgICAgICAgIDB4MDIgICAgLyogb3ZlcnJ1biBlcnJvciAqLworI2RlZmluZSBNQ1RfVTIzMl9MU1JfRFIgICAgICAgICAgICAgICAgIDB4MDEgICAgLyogcmVjZWl2ZSBkYXRhIHJlYWR5ICovCisKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFRlY2huaWNhbCBTcGVjaWZpY2F0aW9uIHJldmVyc2UgZW5naW5lZXJlZCB3aXRoIFNuaWZmVVNCIG9uIFdpbmRvd3M5OAorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKgorICogIFRoZSB0ZWNobmljYWwgZGV0YWlscyBvZiB0aGUgZGV2aWNlIGhhdmUgYmVlbiBhY3F1aXJlZCBiZSB1c2luZyAiU25pZmZVU0IiCisgKiAgYW5kIHRoZSB2ZW5kb3Itc3VwcGxpZWQgZGV2aWNlIGRyaXZlciAodmVyc2lvbiAyLjNBKSB1bmRlciBXaW5kb3dzOTguIFRvCisgKiAgaWRlbnRpZnkgdGhlIFVTQiB2ZW5kb3Itc3BlY2lmaWMgcmVxdWVzdHMgYW5kIHRvIGFzc2lnbiB0aGVtIHRvIHRlcm1pbmFsIAorICogIHNldHRpbmdzIChmbG93IGNvbnRyb2wsIGJhdWQgcmF0ZSwgZXRjLikgdGhlIHByb2dyYW0gIlNlcmlhbFNldHRpbmdzIiBmcm9tCisgKiAgV2lsbGlhbSBHLiBHcmVhdGhvdXNlIGhhcyBiZWVuIHByb3ZlbiB0byBiZSB2ZXJ5IHVzZWZ1bC4gSSBhbHNvIHVzZWQgdGhlCisgKiAgV2luOTggIkh5cGVyVGVybWluYWwiIGFuZCAidXNiLXJvYm90IiBvbiBMaW51eCBmb3IgdGVzdGluZy4gVGhlIHJlc3VsdHMgYW5kIAorICogIG9ic2VydmF0aW9ucyBhcmUgc3VtbWFyaXplZCBiZWxvdzoKKyAqCisgKiAgVGhlIFVTQiByZXF1ZXN0cyBzZWVtIHRvIGJlIGRpcmVjdGx5IG1hcHBlZCB0byB0aGUgcmVnaXN0ZXJzIG9mIGEgODI1MCwKKyAqICAxNjQ1MCBvciAxNjU1MCBVQVJULiBUaGUgRnJlZUJTRCBoYW5kYm9vayAoYXBwZW5kaXggRi40ICJJbnB1dC9PdXRwdXQKKyAqICBkZXZpY2VzIikgY29udGFpbnMgYSBjb21wcmVoZW5zaXZlIGRlc2NyaXB0aW9uIG9mIFVBUlRzIGFuZCBpdHMgcmVnaXN0ZXJzLgorICogIFRoZSBiaXQgZGVzY3JpcHRpb25zIGFyZSBhY3R1YWxseSB0YWtlbiBmcm9tIHRoZXJlLgorICoKKyAqCisgKiBCYXVkIHJhdGUgKGRpdmlzb3IpCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogICBCbVJlcXVlc3RUeXBlOiAgMHg0MCAoMDEwMCAwMDAwQikKKyAqICAgYlJlcXVlc3Q6ICAgICAgIDB4MDUKKyAqICAgd1ZhbHVlOiAgICAgICAgIDB4MDAwMAorICogICB3SW5kZXg6ICAgICAgICAgMHgwMDAwCisgKiAgIHdMZW5ndGg6ICAgICAgICAweDAwMDQKKyAqICAgRGF0YTogICAgICAgICAgIGRpdmlzb3IgPSAxMTUyMDAgLyBiYXVkX3JhdGUKKyAqCisgKiAgIFNuaWZmVVNCIG9ic2VydmF0aW9ucyAoTm92IDIwMDMpOiBDb250cmFyeSB0byB0aGUgJ3dMZW5ndGgnIHZhbHVlIG9mIDQKKyAqICAgc2hvd24gYWJvdmUsIG9ic2VydmF0aW9ucyB3aXRoIGEgQmVsa2luIEY1VTEwOSBhZGFwdGVyLCB1c2luZyB0aGUKKyAqICAgTUNULXN1cHBsaWVkIFdpbmRvd3M5OCBkcml2ZXIgKFUyU1BPUlQuVlhELCAiRmlsZSB2ZXJzaW9uOiAxLjIxUC4wMTA0IGZvcgorICogICBXaW45OC9NZSIpLCBzaG93IHRoaXMgcmVxdWVzdCBoYXMgYSBsZW5ndGggb2YgMSBieXRlLCBwcmVzdW1hYmx5IGJlY2F1c2UKKyAqICAgb2YgdGhlIGZhY3QgdGhhdCB0aGUgQmVsa2luIGFkYXB0ZXIgYW5kIHRoZSAnU2l0ZWNvbSBVMjMyLVAyNScgYWRhcHRlcgorICogICB1c2UgYSBiYXVkLXJhdGUgY29kZSBpbnN0ZWFkIG9mIGEgY29udmVudGlvbmFsIFJTLTIzMiBiYXVkIHJhdGUgZGl2aXNvci4KKyAqICAgVGhlIGN1cnJlbnQgc291cmNlIGNvZGUgZm9yIHRoaXMgZHJpdmVyIGRvZXMgbm90IHJlZmxlY3QgdGhpcyBmYWN0LCBidXQKKyAqICAgdGhlIGRyaXZlciB3b3JrcyBmaW5lIHdpdGggdGhpcyBhZGFwdGVyL2RyaXZlciBjb21iaW5hdGlvbiBub25ldGhlbGVzcy4KKyAqCisgKgorICogTGluZSBDb250cm9sIFJlZ2lzdGVyIChMQ1IpCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAgQm1SZXF1ZXN0VHlwZTogIDB4NDAgKDAxMDAgMDAwMEIpICAgIDB4YzAgKDExMDAgMDAwMEIpCisgKiAgYlJlcXVlc3Q6ICAgICAgIDB4MDcgICAgICAgICAgICAgICAgIDB4MDYKKyAqICB3VmFsdWU6ICAgICAgICAgMHgwMDAwCisgKiAgd0luZGV4OiAgICAgICAgIDB4MDAwMAorICogIHdMZW5ndGg6ICAgICAgICAweDAwMDEKKyAqICBEYXRhOiAgICAgICAgICAgTENSIChzZWUgYmVsb3cpCisgKgorICogIEJpdCA3OiBEaXZpc29yIExhdGNoIEFjY2VzcyBCaXQgKERMQUIpLiBXaGVuIHNldCwgYWNjZXNzIHRvIHRoZSBkYXRhCisgKiAgCSAgIHRyYW5zbWl0L3JlY2VpdmUgcmVnaXN0ZXIgKFRIUi9SQlIpIGFuZCB0aGUgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlcgorICogIAkgICAoSUVSKSBpcyBkaXNhYmxlZC4gQW55IGFjY2VzcyB0byB0aGVzZSBwb3J0cyBpcyBub3cgcmVkaXJlY3RlZCB0byB0aGUKKyAqICAJICAgRGl2aXNvciBMYXRjaCBSZWdpc3RlcnMuIFNldHRpbmcgdGhpcyBiaXQsIGxvYWRpbmcgdGhlIERpdmlzb3IKKyAqICAJICAgUmVnaXN0ZXJzLCBhbmQgY2xlYXJpbmcgRExBQiBzaG91bGQgYmUgZG9uZSB3aXRoIGludGVycnVwdHMgZGlzYWJsZWQuCisgKiAgQml0IDY6IFNldCBCcmVhay4gV2hlbiBzZXQgdG8gIjEiLCB0aGUgdHJhbnNtaXR0ZXIgYmVnaW5zIHRvIHRyYW5zbWl0CisgKiAgCSAgIGNvbnRpbnVvdXMgU3BhY2luZyB1bnRpbCB0aGlzIGJpdCBpcyBzZXQgdG8gIjAiLiBUaGlzIG92ZXJyaWRlcyBhbnkKKyAqICAJICAgYml0cyBvZiBjaGFyYWN0ZXJzIHRoYXQgYXJlIGJlaW5nIHRyYW5zbWl0dGVkLgorICogIEJpdCA1OiBTdGljayBQYXJpdHkuIFdoZW4gcGFyaXR5IGlzIGVuYWJsZWQsIHNldHRpbmcgdGhpcyBiaXQgY2F1c2VzIHBhcml0eQorICogIAkgICB0byBhbHdheXMgYmUgIjEiIG9yICIwIiwgYmFzZWQgb24gdGhlIHZhbHVlIG9mIEJpdCA0LgorICogIEJpdCA0OiBFdmVuIFBhcml0eSBTZWxlY3QgKEVQUykuIFdoZW4gcGFyaXR5IGlzIGVuYWJsZWQgYW5kIEJpdCA1IGlzICIwIiwKKyAqICAJICAgc2V0dGluZyB0aGlzIGJpdCBjYXVzZXMgZXZlbiBwYXJpdHkgdG8gYmUgdHJhbnNtaXR0ZWQgYW5kIGV4cGVjdGVkLgorICogIAkgICBPdGhlcndpc2UsIG9kZCBwYXJpdHkgaXMgdXNlZC4KKyAqICBCaXQgMzogUGFyaXR5IEVuYWJsZSAoUEVOKS4gV2hlbiBzZXQgdG8gIjEiLCBhIHBhcml0eSBiaXQgaXMgaW5zZXJ0ZWQKKyAqICAJICAgYmV0d2VlbiB0aGUgbGFzdCBiaXQgb2YgdGhlIGRhdGEgYW5kIHRoZSBTdG9wIEJpdC4gVGhlIFVBUlQgd2lsbCBhbHNvCisgKiAgCSAgIGV4cGVjdCBwYXJpdHkgdG8gYmUgcHJlc2VudCBpbiB0aGUgcmVjZWl2ZWQgZGF0YS4KKyAqICBCaXQgMjogTnVtYmVyIG9mIFN0b3AgQml0cyAoU1RCKS4gSWYgc2V0IHRvICIxIiBhbmQgdXNpbmcgNS1iaXQgZGF0YSB3b3JkcywKKyAqICAJICAgMS41IFN0b3AgQml0cyBhcmUgdHJhbnNtaXR0ZWQgYW5kIGV4cGVjdGVkIGluIGVhY2ggZGF0YSB3b3JkLiBGb3IKKyAqICAJICAgNiwgNyBhbmQgOC1iaXQgZGF0YSB3b3JkcywgMiBTdG9wIEJpdHMgYXJlIHRyYW5zbWl0dGVkIGFuZCBleHBlY3RlZC4KKyAqICAJICAgV2hlbiB0aGlzIGJpdCBpcyBzZXQgdG8gIjAiLCBvbmUgU3RvcCBCaXQgaXMgdXNlZCBvbiBlYWNoIGRhdGEgd29yZC4KKyAqICBCaXQgMTogV29yZCBMZW5ndGggU2VsZWN0IEJpdCAjMSAoV0xTQjEpCisgKiAgQml0IDA6IFdvcmQgTGVuZ3RoIFNlbGVjdCBCaXQgIzAgKFdMU0IwKQorICogIAkgICBUb2dldGhlciB0aGVzZSBiaXRzIHNwZWNpZnkgdGhlIG51bWJlciBvZiBiaXRzIGluIGVhY2ggZGF0YSB3b3JkLgorICogIAkgICAgIDEgMCAgV29yZCBMZW5ndGgKKyAqICAJICAgICAwIDAgIDUgRGF0YSBCaXRzCisgKiAgCSAgICAgMCAxICA2IERhdGEgQml0cworICogIAkgICAgIDEgMCAgNyBEYXRhIEJpdHMKKyAqICAJICAgICAxIDEgIDggRGF0YSBCaXRzCisgKgorICogIFNuaWZmVVNCIG9ic2VydmF0aW9uczogQml0IDcgc2VlbXMgbm90IHRvIGJlIHVzZWQuIFRoZXJlIHNlZW0gdG8gYmUgdHdvIGJ1Z3MKKyAqICBpbiB0aGUgV2luOTggZHJpdmVyOiB0aGUgYnJlYWsgZG9lcyBub3Qgd29yayAoYml0IDYgaXMgbm90IGFzc2VydGVkKSBhbmQgdGhlCisgKiAgc3RpY2sgcGFyaXR5IGJpdCBpcyBub3QgY2xlYXJlZCB3aGVuIHNldCBvbmNlLiBUaGUgTENSIGNhbiBhbHNvIGJlIHJlYWQKKyAqICBiYWNrIHdpdGggVVNCIHJlcXVlc3QgNiBidXQgdGhpcyBoYXMgbmV2ZXIgYmVlbiBvYnNlcnZlZCB3aXRoIFNuaWZmVVNCLgorICoKKyAqCisgKiBNb2RlbSBDb250cm9sIFJlZ2lzdGVyIChNQ1IpCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogIEJtUmVxdWVzdFR5cGU6ICAweDQwICAoMDEwMCAwMDAwQikKKyAqICBiUmVxdWVzdDogICAgICAgMHgwYQorICogIHdWYWx1ZTogICAgICAgICAweDAwMDAKKyAqICB3SW5kZXg6ICAgICAgICAgMHgwMDAwCisgKiAgd0xlbmd0aDogICAgICAgIDB4MDAwMQorICogIERhdGE6ICAgICAgICAgICBNQ1IgKEJpdCA0Li43LCBzZWUgYmVsb3cpCisgKgorICogIEJpdCA3OiBSZXNlcnZlZCwgYWx3YXlzIDAuCisgKiAgQml0IDY6IFJlc2VydmVkLCBhbHdheXMgMC4KKyAqICBCaXQgNTogUmVzZXJ2ZWQsIGFsd2F5cyAwLgorICogIEJpdCA0OiBMb29wLUJhY2sgRW5hYmxlLiBXaGVuIHNldCB0byAiMSIsIHRoZSBVQVJUIHRyYW5zbWl0dGVyIGFuZCByZWNlaXZlcgorICogIAkgICBhcmUgaW50ZXJuYWxseSBjb25uZWN0ZWQgdG9nZXRoZXIgdG8gYWxsb3cgZGlhZ25vc3RpYyBvcGVyYXRpb25zLiBJbgorICogIAkgICBhZGRpdGlvbiwgdGhlIFVBUlQgbW9kZW0gY29udHJvbCBvdXRwdXRzIGFyZSBjb25uZWN0ZWQgdG8gdGhlIFVBUlQKKyAqICAJICAgbW9kZW0gY29udHJvbCBpbnB1dHMuIENUUyBpcyBjb25uZWN0ZWQgdG8gUlRTLCBEVFIgaXMgY29ubmVjdGVkIHRvCisgKiAgCSAgIERTUiwgT1VUMSBpcyBjb25uZWN0ZWQgdG8gUkksIGFuZCBPVVQgMiBpcyBjb25uZWN0ZWQgdG8gRENELgorICogIEJpdCAzOiBPVVQgMi4gQW4gYXV4aWxpYXJ5IG91dHB1dCB0aGF0IHRoZSBob3N0IHByb2Nlc3NvciBtYXkgc2V0IGhpZ2ggb3IKKyAqICAJICAgbG93LiBJbiB0aGUgSUJNIFBDIHNlcmlhbCBhZGFwdGVyIChhbmQgbW9zdCBjbG9uZXMpLCBPVVQgMiBpcyB1c2VkCisgKiAgCSAgIHRvIHRyaS1zdGF0ZSAoZGlzYWJsZSkgdGhlIGludGVycnVwdCBzaWduYWwgZnJvbSB0aGUKKyAqICAJICAgODI1MC8xNjQ1MC8xNjU1MCBVQVJULgorICogIEJpdCAyOiBPVVQgMS4gQW4gYXV4aWxpYXJ5IG91dHB1dCB0aGF0IHRoZSBob3N0IHByb2Nlc3NvciBtYXkgc2V0IGhpZ2ggb3IKKyAqICAJICAgbG93LiBUaGlzIG91dHB1dCBpcyBub3QgdXNlZCBvbiB0aGUgSUJNIFBDIHNlcmlhbCBhZGFwdGVyLgorICogIEJpdCAxOiBSZXF1ZXN0IHRvIFNlbmQgKFJUUykuIFdoZW4gc2V0IHRvICIxIiwgdGhlIG91dHB1dCBvZiB0aGUgVUFSVCAtUlRTCisgKiAgCSAgIGxpbmUgaXMgTG93IChBY3RpdmUpLgorICogIEJpdCAwOiBEYXRhIFRlcm1pbmFsIFJlYWR5IChEVFIpLiBXaGVuIHNldCB0byAiMSIsIHRoZSBvdXRwdXQgb2YgdGhlIFVBUlQKKyAqICAJICAgLURUUiBsaW5lIGlzIExvdyAoQWN0aXZlKS4KKyAqCisgKiAgU25pZmZVU0Igb2JzZXJ2YXRpb25zOiBCaXQgMiBhbmQgNCBzZWVtIG5vdCB0byBiZSB1c2VkIGJ1dCBiaXQgMyBoYXMgYmVlbgorICogIHNlZW4gX2Fsd2F5c18gc2V0LgorICoKKyAqCisgKiBNb2RlbSBTdGF0dXMgUmVnaXN0ZXIgKE1TUikKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqICBCbVJlcXVlc3RUeXBlOiAgMHhjMCAgKDExMDAgMDAwMEIpCisgKiAgYlJlcXVlc3Q6ICAgICAgIDB4MDIKKyAqICB3VmFsdWU6ICAgICAgICAgMHgwMDAwCisgKiAgd0luZGV4OiAgICAgICAgIDB4MDAwMAorICogIHdMZW5ndGg6ICAgICAgICAweDAwMDEKKyAqICBEYXRhOiAgICAgICAgICAgTVNSIChzZWUgYmVsb3cpCisgKgorICogIEJpdCA3OiBEYXRhIENhcnJpZXIgRGV0ZWN0IChDRCkuIFJlZmxlY3RzIHRoZSBzdGF0ZSBvZiB0aGUgRENEIGxpbmUgb24gdGhlCisgKiAgCSAgIFVBUlQuCisgKiAgQml0IDY6IFJpbmcgSW5kaWNhdG9yIChSSSkuIFJlZmxlY3RzIHRoZSBzdGF0ZSBvZiB0aGUgUkkgbGluZSBvbiB0aGUgVUFSVC4KKyAqICBCaXQgNTogRGF0YSBTZXQgUmVhZHkgKERTUikuIFJlZmxlY3RzIHRoZSBzdGF0ZSBvZiB0aGUgRFNSIGxpbmUgb24gdGhlIFVBUlQuCisgKiAgQml0IDQ6IENsZWFyIFRvIFNlbmQgKENUUykuIFJlZmxlY3RzIHRoZSBzdGF0ZSBvZiB0aGUgQ1RTIGxpbmUgb24gdGhlIFVBUlQuCisgKiAgQml0IDM6IERlbHRhIERhdGEgQ2FycmllciBEZXRlY3QgKEREQ0QpLiBTZXQgdG8gIjEiIGlmIHRoZSAtRENEIGxpbmUgaGFzCisgKiAgCSAgIGNoYW5nZWQgc3RhdGUgb25lIG1vcmUgbW9yZSB0aW1lcyBzaW5jZSB0aGUgbGFzdCB0aW1lIHRoZSBNU1Igd2FzCisgKiAgCSAgIHJlYWQgYnkgdGhlIGhvc3QuCisgKiAgQml0IDI6IFRyYWlsaW5nIEVkZ2UgUmluZyBJbmRpY2F0b3IgKFRFUkkpLiBTZXQgdG8gIjEiIGlmIHRoZSAtUkkgbGluZSBoYXMKKyAqICAJICAgaGFkIGEgbG93IHRvIGhpZ2ggdHJhbnNpdGlvbiBzaW5jZSB0aGUgbGFzdCB0aW1lIHRoZSBNU1Igd2FzIHJlYWQgYnkKKyAqICAJICAgdGhlIGhvc3QuCisgKiAgQml0IDE6IERlbHRhIERhdGEgU2V0IFJlYWR5IChERFNSKS4gU2V0IHRvICIxIiBpZiB0aGUgLURTUiBsaW5lIGhhcyBjaGFuZ2VkCisgKiAgCSAgIHN0YXRlIG9uZSBtb3JlIG1vcmUgdGltZXMgc2luY2UgdGhlIGxhc3QgdGltZSB0aGUgTVNSIHdhcyByZWFkIGJ5IHRoZQorICogIAkgICBob3N0LgorICogIEJpdCAwOiBEZWx0YSBDbGVhciBUbyBTZW5kIChEQ1RTKS4gU2V0IHRvICIxIiBpZiB0aGUgLUNUUyBsaW5lIGhhcyBjaGFuZ2VkCisgKiAgCSAgIHN0YXRlIG9uZSBtb3JlIHRpbWVzIHNpbmNlIHRoZSBsYXN0IHRpbWUgdGhlIE1TUiB3YXMgcmVhZCBieSB0aGUKKyAqICAJICAgaG9zdC4KKyAqCisgKiAgU25pZmZVU0Igb2JzZXJ2YXRpb25zOiB0aGUgTVNSIGlzIGFsc28gcmV0dXJuZWQgYXMgZmlyc3QgYnl0ZSBvbiB0aGUKKyAqICBpbnRlcnJ1cHQtaW4gZW5kcG9pbnQgMHg4MyB0byBzaWduYWwgY2hhbmdlcyBvZiBtb2RlbSBzdGF0dXMgbGluZXMuIFRoZSBVU0IKKyAqICByZXF1ZXN0IHRvIHJlYWQgTVNSIGNhbm5vdCBiZSBhcHBsaWVkIGR1cmluZyBub3JtYWwgZGV2aWNlIG9wZXJhdGlvbi4KKyAqCisgKgorICogTGluZSBTdGF0dXMgUmVnaXN0ZXIgKExTUikKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogIEJpdCA3ICAgRXJyb3IgaW4gUmVjZWl2ZXIgRklGTy4gT24gdGhlIDgyNTAvMTY0NTAgVUFSVCwgdGhpcyBiaXQgaXMgemVyby4KKyAqICAJICAgIFRoaXMgYml0IGlzIHNldCB0byAiMSIgd2hlbiBhbnkgb2YgdGhlIGJ5dGVzIGluIHRoZSBGSUZPIGhhdmUgb25lIG9yCisgKiAgCSAgICBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgZXJyb3IgY29uZGl0aW9uczogUEUsIEZFLCBvciBCSS4KKyAqICBCaXQgNiAgIFRyYW5zbWl0dGVyIEVtcHR5IChURU1UKS4gV2hlbiBzZXQgdG8gIjEiLCB0aGVyZSBhcmUgbm8gd29yZHMKKyAqICAJICAgIHJlbWFpbmluZyBpbiB0aGUgdHJhbnNtaXQgRklGTyBvciB0aGUgdHJhbnNtaXQgc2hpZnQgcmVnaXN0ZXIuIFRoZQorICogIAkgICAgdHJhbnNtaXR0ZXIgaXMgY29tcGxldGVseSBpZGxlLgorICogIEJpdCA1ICAgVHJhbnNtaXR0ZXIgSG9sZGluZyBSZWdpc3RlciBFbXB0eSAoVEhSRSkuIFdoZW4gc2V0IHRvICIxIiwgdGhlIEZJRk8KKyAqICAJICAgIChvciBob2xkaW5nIHJlZ2lzdGVyKSBub3cgaGFzIHJvb20gZm9yIGF0IGxlYXN0IG9uZSBhZGRpdGlvbmFsIHdvcmQKKyAqICAJICAgIHRvIHRyYW5zbWl0LiBUaGUgdHJhbnNtaXR0ZXIgbWF5IHN0aWxsIGJlIHRyYW5zbWl0dGluZyB3aGVuIHRoaXMgYml0CisgKiAgCSAgICBpcyBzZXQgdG8gIjEiLgorICogIEJpdCA0ICAgQnJlYWsgSW50ZXJydXB0IChCSSkuIFRoZSByZWNlaXZlciBoYXMgZGV0ZWN0ZWQgYSBCcmVhayBzaWduYWwuCisgKiAgQml0IDMgICBGcmFtaW5nIEVycm9yIChGRSkuIEEgU3RhcnQgQml0IHdhcyBkZXRlY3RlZCBidXQgdGhlIFN0b3AgQml0IGRpZCBub3QKKyAqICAJICAgIGFwcGVhciBhdCB0aGUgZXhwZWN0ZWQgdGltZS4gVGhlIHJlY2VpdmVkIHdvcmQgaXMgcHJvYmFibHkgZ2FyYmxlZC4KKyAqICBCaXQgMiAgIFBhcml0eSBFcnJvciAoUEUpLiBUaGUgcGFyaXR5IGJpdCB3YXMgaW5jb3JyZWN0IGZvciB0aGUgd29yZCByZWNlaXZlZC4KKyAqICBCaXQgMSAgIE92ZXJydW4gRXJyb3IgKE9FKS4gQSBuZXcgd29yZCB3YXMgcmVjZWl2ZWQgYW5kIHRoZXJlIHdhcyBubyByb29tIGluCisgKiAgCSAgICB0aGUgcmVjZWl2ZSBidWZmZXIuIFRoZSBuZXdseS1hcnJpdmVkIHdvcmQgaW4gdGhlIHNoaWZ0IHJlZ2lzdGVyIGlzCisgKiAgCSAgICBkaXNjYXJkZWQuIE9uIDgyNTAvMTY0NTAgVUFSVHMsIHRoZSB3b3JkIGluIHRoZSBob2xkaW5nIHJlZ2lzdGVyIGlzCisgKiAgCSAgICBkaXNjYXJkZWQgYW5kIHRoZSBuZXdseS0gYXJyaXZlZCB3b3JkIGlzIHB1dCBpbiB0aGUgaG9sZGluZyByZWdpc3Rlci4KKyAqICBCaXQgMCAgIERhdGEgUmVhZHkgKERSKS4gT25lIG9yIG1vcmUgd29yZHMgYXJlIGluIHRoZSByZWNlaXZlIEZJRk8gdGhhdCB0aGUKKyAqICAJICAgIGhvc3QgbWF5IHJlYWQuIEEgd29yZCBtdXN0IGJlIGNvbXBsZXRlbHkgcmVjZWl2ZWQgYW5kIG1vdmVkIGZyb20gdGhlCisgKiAgCSAgICBzaGlmdCByZWdpc3RlciBpbnRvIHRoZSBGSUZPIChvciBob2xkaW5nIHJlZ2lzdGVyIGZvciA4MjUwLzE2NDUwCisgKiAgCSAgICBkZXNpZ25zKSBiZWZvcmUgdGhpcyBiaXQgaXMgc2V0LgorICoKKyAqICBTbmlmZlVTQiBvYnNlcnZhdGlvbnM6IHRoZSBMU1IgaXMgcmV0dXJuZWQgYXMgc2Vjb25kIGJ5dGUgb24gdGhlIGludGVycnVwdC1pbgorICogIGVuZHBvaW50IDB4ODMgdG8gc2lnbmFsIGVycm9yIGNvbmRpdGlvbnMuIFN1Y2ggZXJyb3JzIGhhdmUgYmVlbiBzZWVuIHdpdGgKKyAqICBtaW5pY29tL3ptb2RlbSB0cmFuc2ZlcnMgKENSQyBlcnJvcnMpLgorICoKKyAqCisgKiBVbmtub3duICMxCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogICBCbVJlcXVlc3RUeXBlOiAgMHg0MCAoMDEwMCAwMDAwQikKKyAqICAgYlJlcXVlc3Q6ICAgICAgIDB4MGIKKyAqICAgd1ZhbHVlOiAgICAgICAgIDB4MDAwMAorICogICB3SW5kZXg6ICAgICAgICAgMHgwMDAwCisgKiAgIHdMZW5ndGg6ICAgICAgICAweDAwMDEKKyAqICAgRGF0YTogICAgICAgICAgIDB4MDAKKyAqCisgKiAgIFNuaWZmVVNCIG9ic2VydmF0aW9ucyAoTm92IDIwMDMpOiBXaXRoIHRoZSBNQ1Qtc3VwcGxpZWQgV2luZG93czk4IGRyaXZlcgorICogICAoVTJTUE9SVC5WWEQsICJGaWxlIHZlcnNpb246IDEuMjFQLjAxMDQgZm9yIFdpbjk4L01lIiksIHRoaXMgcmVxdWVzdAorICogICBvY2N1cnMgaW1tZWRpYXRlbHkgYWZ0ZXIgYSAiQmF1ZCByYXRlIChkaXZpc29yKSIgbWVzc2FnZS4gIEl0IHdhcyBub3QKKyAqICAgb2JzZXJ2ZWQgYXQgYW55IG90aGVyIHRpbWUuICBJdCBpcyB1bmNsZWFyIHdoYXQgcHVycG9zZSB0aGlzIG1lc3NhZ2UKKyAqICAgc2VydmVzLgorICoKKyAqCisgKiBVbmtub3duICMyCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogICBCbVJlcXVlc3RUeXBlOiAgMHg0MCAoMDEwMCAwMDAwQikKKyAqICAgYlJlcXVlc3Q6ICAgICAgIDB4MGMKKyAqICAgd1ZhbHVlOiAgICAgICAgIDB4MDAwMAorICogICB3SW5kZXg6ICAgICAgICAgMHgwMDAwCisgKiAgIHdMZW5ndGg6ICAgICAgICAweDAwMDEKKyAqICAgRGF0YTogICAgICAgICAgIDB4MDAKKyAqCisgKiAgIFNuaWZmVVNCIG9ic2VydmF0aW9ucyAoTm92IDIwMDMpOiBXaXRoIHRoZSBNQ1Qtc3VwcGxpZWQgV2luZG93czk4IGRyaXZlcgorICogICAoVTJTUE9SVC5WWEQsICJGaWxlIHZlcnNpb246IDEuMjFQLjAxMDQgZm9yIFdpbjk4L01lIiksIHRoaXMgcmVxdWVzdAorICogICBvY2N1cnMgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlICdVbmtub3duICMxJyBtZXNzYWdlIChzZWUgYWJvdmUpLiAgSXQgd2FzCisgKiAgIG5vdCBvYnNlcnZlZCBhdCBhbnkgb3RoZXIgdGltZS4gIEl0IGlzIHVuY2xlYXIgd2hhdCBvdGhlciBwdXJwb3NlIChpZgorICogICBhbnkpIHRoaXMgbWVzc2FnZSBtaWdodCBzZXJ2ZSwgYnV0IHdpdGhvdXQgaXQsIHRoZSBVU0IvUlMtMjMyIGFkYXB0ZXIKKyAqICAgd2lsbCBub3Qgd3JpdGUgdG8gUlMtMjMyIGRldmljZXMgd2hpY2ggZG8gbm90IGFzc2VydCB0aGUgJ0NUUycgc2lnbmFsLgorICoKKyAqCisgKiBGbG93IGNvbnRyb2wKKyAqIC0tLS0tLS0tLS0tLQorICoKKyAqICBTbmlmZlVTQiBvYnNlcnZhdGlvbnM6IG5vIGZsb3cgY29udHJvbCBzcGVjaWZpYyByZXF1ZXN0cyBoYXZlIGJlZW4gcmVhbGl6ZWQKKyAqICBhcGFydCBmcm9tIERUUi9SVFMgc2V0dGluZ3MuIEJvdGggc2lnbmFscyBhcmUgZHJvcHBlZCBmb3Igbm8gZmxvdyBjb250cm9sCisgKiAgYnV0IGFzc2VydGVkIGZvciBoYXJkd2FyZSBvciBzb2Z0d2FyZSBmbG93IGNvbnRyb2wuCisgKgorICoKKyAqIEVuZHBvaW50IHVzYWdlCisgKiAtLS0tLS0tLS0tLS0tLQorICoKKyAqICBTbmlmZlVTQiBvYnNlcnZhdGlvbnM6IHRoZSBidWxrLW91dCBlbmRwb2ludCAweDEgYW5kIGludGVycnVwdC1pbiBlbmRwb2ludAorICogIDB4ODEgaXMgdXNlZCB0byB0cmFuc21pdCBhbmQgcmVjZWl2ZSBjaGFyYWN0ZXJzLiBUaGUgc2Vjb25kIGludGVycnVwdC1pbiAKKyAqICBlbmRwb2ludCAweDgzIHNpZ25hbHMgZXhjZXB0aW9uYWwgY29uZGl0aW9ucyBsaWtlIG1vZGVtIGxpbmUgY2hhbmdlcyBhbmQgCisgKiAgZXJyb3JzLiBUaGUgZmlyc3QgYnl0ZSByZXR1cm5lZCBpcyB0aGUgTVNSIGFuZCB0aGUgc2Vjb25kIGJ5dGUgdGhlIExTUi4KKyAqCisgKgorICogT3RoZXIgb2JzZXJ2YXRpb25zCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAgUXVldWVkIGJ1bGsgdHJhbnNmZXJzIGxpa2UgdXNlZCBpbiB2aXNvci5jIGRpZCBub3Qgd29yay4gCisgKiAgCisgKgorICogUHJvcGVydGllcyBvZiB0aGUgVVNCIGRldmljZSB1c2VkIChhcyBmb3VuZCBpbiAvdmFyL2xvZy9tZXNzYWdlcykKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogIE1hbnVmYWN0dXJlcjogTUNUIENvcnBvcmF0aW9uLgorICogIFByb2R1Y3Q6IFVTQi0yMzIgSW50ZXJmYWN0IENvbnRyb2xsZXIKKyAqICBTZXJpYWxOdW1iZXI6IFUyUzIyMDUwCisgKgorICogICAgTGVuZ3RoICAgICAgICAgICAgICA9IDE4CisgKiAgICBEZXNjcmlwdG9yVHlwZSAgICAgID0gMDEKKyAqICAgIFVTQiB2ZXJzaW9uICAgICAgICAgPSAxLjAwCisgKiAgICBWZW5kb3I6UHJvZHVjdCAgICAgID0gMDcxMTowMjEwCisgKiAgICBNYXhQYWNrZXRTaXplMCAgICAgID0gOAorICogICAgTnVtQ29uZmlndXJhdGlvbnMgICA9IDEKKyAqICAgIERldmljZSB2ZXJzaW9uICAgICAgPSAxLjAyCisgKiAgICBEZXZpY2UgQ2xhc3M6U3ViQ2xhc3M6UHJvdG9jb2wgPSAwMDowMDowMAorICogICAgICBQZXItaW50ZXJmYWNlIGNsYXNzZXMKKyAqICBDb25maWd1cmF0aW9uOgorICogICAgYkxlbmd0aCAgICAgICAgICAgICA9ICAgIDkKKyAqICAgIGJEZXNjcmlwdG9yVHlwZSAgICAgPSAgIDAyCisgKiAgICB3VG90YWxMZW5ndGggICAgICAgID0gMDAyNworICogICAgYk51bUludGVyZmFjZXMgICAgICA9ICAgMDEKKyAqICAgIGJDb25maWd1cmF0aW9uVmFsdWUgPSAgIDAxCisgKiAgICBpQ29uZmlndXJhdGlvbiAgICAgID0gICAwMAorICogICAgYm1BdHRyaWJ1dGVzICAgICAgICA9ICAgYzAKKyAqICAgIE1heFBvd2VyICAgICAgICAgICAgPSAgMTAwbUEKKyAqCisgKiAgICBJbnRlcmZhY2U6IDAKKyAqICAgIEFsdGVybmF0ZSBTZXR0aW5nOiAgMAorICogICAgICBiTGVuZ3RoICAgICAgICAgICAgID0gICAgOQorICogICAgICBiRGVzY3JpcHRvclR5cGUgICAgID0gICAwNAorICogICAgICBiSW50ZXJmYWNlTnVtYmVyICAgID0gICAwMAorICogICAgICBiQWx0ZXJuYXRlU2V0dGluZyAgID0gICAwMAorICogICAgICBiTnVtRW5kcG9pbnRzICAgICAgID0gICAwMworICogICAgICBiSW50ZXJmYWNlIENsYXNzOlN1YkNsYXNzOlByb3RvY29sID0gICAwMDowMDowMAorICogICAgICBpSW50ZXJmYWNlICAgICAgICAgID0gICAwMAorICogICAgICBFbmRwb2ludDoKKyAqIAkgIGJMZW5ndGggICAgICAgICAgICAgPSAgICA3CisgKiAJICBiRGVzY3JpcHRvclR5cGUgICAgID0gICAwNQorICogCSAgYkVuZHBvaW50QWRkcmVzcyAgICA9ICAgODEgKGluKQorICogCSAgYm1BdHRyaWJ1dGVzICAgICAgICA9ICAgMDMgKEludGVycnVwdCkKKyAqIAkgIHdNYXhQYWNrZXRTaXplICAgICAgPSAwMDQwCisgKiAJICBiSW50ZXJ2YWwgICAgICAgICAgID0gICAwMgorICogICAgICBFbmRwb2ludDoKKyAqIAkgIGJMZW5ndGggICAgICAgICAgICAgPSAgICA3CisgKiAJICBiRGVzY3JpcHRvclR5cGUgICAgID0gICAwNQorICogCSAgYkVuZHBvaW50QWRkcmVzcyAgICA9ICAgMDEgKG91dCkKKyAqIAkgIGJtQXR0cmlidXRlcyAgICAgICAgPSAgIDAyIChCdWxrKQorICogCSAgd01heFBhY2tldFNpemUgICAgICA9IDAwNDAKKyAqIAkgIGJJbnRlcnZhbCAgICAgICAgICAgPSAgIDAwCisgKiAgICAgIEVuZHBvaW50OgorICogCSAgYkxlbmd0aCAgICAgICAgICAgICA9ICAgIDcKKyAqIAkgIGJEZXNjcmlwdG9yVHlwZSAgICAgPSAgIDA1CisgKiAJICBiRW5kcG9pbnRBZGRyZXNzICAgID0gICA4MyAoaW4pCisgKiAJICBibUF0dHJpYnV0ZXMgICAgICAgID0gICAwMyAoSW50ZXJydXB0KQorICogCSAgd01heFBhY2tldFNpemUgICAgICA9IDAwMDIKKyAqIAkgIGJJbnRlcnZhbCAgICAgICAgICAgPSAgIDAyCisgKgorICoKKyAqIEhhcmR3YXJlIGRldGFpbHMgKGFkZGVkIGJ5IE1hcnRpbiBIYW1pbHRvbiwgMjAwMS8xMi8wNikKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogVGhpcyBpbmZvIHdhcyBnbGVhbmVkIGZyb20gb3BlbmluZyBhIEJlbGtpbiBGNVUxMDkgREI5IFVTQiBzZXJpYWwKKyAqIGFkYXB0b3IsIHdoaWNoIHR1cm5zIG91dCB0byBzaW1wbHkgYmUgYSByZS1iYWRnZWQgVTIzMi1QOS4gIFdlCisgKiBrbm93IHRoaXMgYmVjYXVzZSB0aGVyZSBpcyBhIHN0aWNreSBsYWJlbCBvbiB0aGUgY2lyY3VpdCBib2FyZAorICogd2hpY2ggc2F5cyAiVTIzMi1QOSIgOy0pCisgKiAKKyAqIFRoZSBjaXJjdWl0IGJvYXJkIGluc2lkZSB0aGUgYWRhcHRvciBjb250YWlucyBhIFBoaWxpcHMgUERJVVNCRDEyCisgKiBVU0IgZW5kcG9pbnQgY2hpcCBhbmQgYSBQaGlsbGlwcyBQODdDNTJVQkFBIG1pY3JvY29udHJvbGxlciB3aXRoCisgKiBlbWJlZGRlZCBVQVJULiAgRXhoYXVzdGl2ZSBkb2N1bWVudGF0aW9uIGZvciB0aGVzZSBpcyBhdmFpbGFibGUgYXQ6CisgKgorICogICBodHRwOi8vd3d3LnNlbWljb25kdWN0b3JzLnBoaWxpcHMuY29tL3BpcC9wODdjNTJ1YmFhCisgKiAgIGh0dHA6Ly93d3cuc2VtaWNvbmR1Y3RvcnMucGhpbGlwcy5jb20vcGlwL3BkaXVzYmQxMgorICoKKyAqIFRoYW5rcyB0byBKdWxpYW4gSGlnaGZpZWxkIGZvciB0aGUgcG9pbnRlciB0byB0aGUgUGhpbGlwcyBkYXRhYmFzZS4KKyAqIAorICovCisKKyNlbmRpZiAvKiBfX0xJTlVYX1VTQl9TRVJJQUxfTUNUX1UyMzJfSCAqLworCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvb21uaW5ldC5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL29tbmluZXQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMWNiYTRiCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL29tbmluZXQuYwpAQCAtMCwwICsxLDM2MiBAQAorLyoKKyAqIFVTQiBaeVhFTCBvbW5pLm5ldCBMQ0QgUExVUyBkcml2ZXIKKyAqCisgKglUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICoJaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqCXRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKgkoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFNlZSBEb2N1bWVudGF0aW9uL3VzYi91c2Itc2VyaWFsLnR4dCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB1c2luZyB0aGlzIGRyaXZlcgorICoKKyAqIFBsZWFzZSByZXBvcnQgYm90aCBzdWNjZXNzZXMgYW5kIHRyb3VibGVzIHRvIHRoZSBhdXRob3IgYXQgb21uaW5ldEBrcm9haC5jb20KKyAqIAorICogKDA1LzMwLzIwMDEpIGdraAorICoJc3dpdGNoZWQgZnJvbSB1c2luZyBzcGlubG9jayB0byBhIHNlbWFwaG9yZSwgd2hpY2ggZml4ZXMgbG90cyBvZiBwcm9ibGVtcy4KKyAqCisgKiAoMDQvMDgvMjAwMSkgZ2IKKyAqCUlkZW50aWZ5IHZlcnNpb24gb24gbW9kdWxlIGxvYWQuCisgKgorICogKDExLzAxLzIwMDApIEFkYW0gSi4gUmljaHRlcgorICoJdXNiX2RldmljZV9pZCB0YWJsZSBzdXBwb3J0CisgKiAKKyAqICgxMC8wNS8yMDAwKSBna2gKKyAqCUZpeGVkIGJ1ZyB3aXRoIHVyYi0+ZGV2IG5vdCBiZWluZyBzZXQgcHJvcGVybHksIG5vdyB0aGF0IHRoZSB1c2IKKyAqCWNvcmUgbmVlZHMgaXQuCisgKiAKKyAqICgwOC8yOC8yMDAwKSBna2gKKyAqCUFkZGVkIGxvY2tzIGZvciBTTVAgc2FmZW5lc3MuCisgKglGaXhlZCBNT0RfSU5DIGFuZCBNT0RfREVDIGxvZ2ljIGFuZCB0aGUgYWJpbGl0eSB0byBvcGVuIGEgcG9ydCBtb3JlIAorICoJdGhhbiBvbmNlLgorICoJRml4ZWQgcG90ZW50aWFsIHJhY2UgaW4gb21uaW5ldF93cml0ZV9idWxrX2NhbGxiYWNrCisgKgorICogKDA3LzE5LzIwMDApIGdraAorICoJQWRkZWQgbW9kdWxlX2luaXQgYW5kIG1vZHVsZV9leGl0IGZ1bmN0aW9ucyB0byBoYW5kbGUgdGhlIGZhY3QgdGhhdCB0aGlzCisgKglkcml2ZXIgaXMgYSBsb2FkYWJsZSBtb2R1bGUgbm93LgorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eS5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eV9kcml2ZXIuaD4KKyNpbmNsdWRlIDxsaW51eC90dHlfZmxpcC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC91c2IuaD4KKyNpbmNsdWRlICJ1c2Itc2VyaWFsLmgiCisKK3N0YXRpYyBpbnQgZGVidWc7CisKKy8qCisgKiBWZXJzaW9uIEluZm9ybWF0aW9uCisgKi8KKyNkZWZpbmUgRFJJVkVSX1ZFUlNJT04gInYxLjEiCisjZGVmaW5lIERSSVZFUl9BVVRIT1IgIkFsZXNzYW5kcm8gWnVtbW8iCisjZGVmaW5lIERSSVZFUl9ERVNDICJVU0IgWnlYRUwgb21uaS5uZXQgTENEIFBMVVMgRHJpdmVyIgorCisjZGVmaW5lIFpZWEVMX1ZFTkRPUl9JRAkJMHgwNTg2CisjZGVmaW5lIFpZWEVMX09NTklORVRfSUQJMHgxMDAwCisjZGVmaW5lIEJUX0lHTklUSU9OUFJPX0lECTB4MjAwMCAgLyogVGhpcyBvbmUgc2VlbXMgdG8gYmUgYSByZS1icmFuZGVkIFp5WEVMIGRldmljZSAqLworCisvKiBmdW5jdGlvbiBwcm90b3R5cGVzICovCitzdGF0aWMgaW50ICBvbW5pbmV0X29wZW4JCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlscCk7CitzdGF0aWMgdm9pZCBvbW5pbmV0X2Nsb3NlCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbHApOworc3RhdGljIHZvaWQgb21uaW5ldF9yZWFkX2J1bGtfY2FsbGJhY2sJKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOworc3RhdGljIHZvaWQgb21uaW5ldF93cml0ZV9idWxrX2NhbGxiYWNrCShzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKK3N0YXRpYyBpbnQgIG9tbmluZXRfd3JpdGUJCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBjb3VudCk7CitzdGF0aWMgaW50ICBvbW5pbmV0X3dyaXRlX3Jvb20JCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KTsKK3N0YXRpYyB2b2lkIG9tbmluZXRfc2h1dGRvd24JCShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKTsKKworc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlIFtdID0geworCXsgVVNCX0RFVklDRShaWVhFTF9WRU5ET1JfSUQsIFpZWEVMX09NTklORVRfSUQpIH0sCisJeyBVU0JfREVWSUNFKFpZWEVMX1ZFTkRPUl9JRCwgQlRfSUdOSVRJT05QUk9fSUQpIH0sCisJeyB9CQkJCQkJLyogVGVybWluYXRpbmcgZW50cnkgKi8KK307CisKK01PRFVMRV9ERVZJQ0VfVEFCTEUgKHVzYiwgaWRfdGFibGUpOworCitzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgb21uaW5ldF9kcml2ZXIgPSB7CisJLm93bmVyID0JVEhJU19NT0RVTEUsCisJLm5hbWUgPQkJIm9tbmluZXQiLAorCS5wcm9iZSA9CXVzYl9zZXJpYWxfcHJvYmUsCisJLmRpc2Nvbm5lY3QgPQl1c2Jfc2VyaWFsX2Rpc2Nvbm5lY3QsCisJLmlkX3RhYmxlID0JaWRfdGFibGUsCit9OworCisKK3N0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kZXZpY2VfdHlwZSB6eXhlbF9vbW5pbmV0X2RldmljZSA9IHsKKwkub3duZXIgPQkJVEhJU19NT0RVTEUsCisJLm5hbWUgPQkJCSJaeVhFTCAtIG9tbmkubmV0IGxjZCBwbHVzIHVzYiIsCisJLnNob3J0X25hbWUgPQkJIm9tbmluZXQiLAorCS5pZF90YWJsZSA9CQlpZF90YWJsZSwKKwkubnVtX2ludGVycnVwdF9pbiA9CTEsCisJLm51bV9idWxrX2luID0JCTEsCisJLm51bV9idWxrX291dCA9CQkyLAorCS5udW1fcG9ydHMgPQkJMSwKKwkub3BlbiA9CQkJb21uaW5ldF9vcGVuLAorCS5jbG9zZSA9CQlvbW5pbmV0X2Nsb3NlLAorCS53cml0ZSA9CQlvbW5pbmV0X3dyaXRlLAorCS53cml0ZV9yb29tID0JCW9tbmluZXRfd3JpdGVfcm9vbSwKKwkucmVhZF9idWxrX2NhbGxiYWNrID0Jb21uaW5ldF9yZWFkX2J1bGtfY2FsbGJhY2ssCisJLndyaXRlX2J1bGtfY2FsbGJhY2sgPQlvbW5pbmV0X3dyaXRlX2J1bGtfY2FsbGJhY2ssCisJLnNodXRkb3duID0JCW9tbmluZXRfc2h1dGRvd24sCit9OworCisKKy8qIFRoZSBwcm90b2NvbC4KKyAqCisgKiBUaGUgb21uaS5uZXQgYWx3YXlzIGV4Y2hhbmdlIDY0IGJ5dGVzIG9mIGRhdGEgd2l0aCB0aGUgaG9zdC4gVGhlIGZpcnN0CisgKiBmb3VyIGJ5dGVzIGFyZSB0aGUgY29udHJvbCBoZWFkZXIsIHlvdSBjYW4gc2VlIGl0IGluIHRoZSBhYm92ZSBzdHJ1Y3R1cmUuCisgKgorICogb2hfc2VxIGlzIGEgc2VxdWVuY2UgbnVtYmVyLiBEb24ndCBrbm93IGlmL2hvdyBpdCdzIHVzZWQuCisgKiBvaF9sZW4gaXMgdGhlIGxlbmd0aCBvZiB0aGUgZGF0YSBieXRlcyBpbiB0aGUgcGFja2V0LgorICogb2hfeHh4IEJpdC1tYXBwZWQsIHJlbGF0ZWQgdG8gaGFuZHNoYWtpbmcgYW5kIHN0YXR1cyBpbmZvLgorICoJSSBub3JtYWxseSBzZXQgaXQgdG8gMHgwMyBpbiB0cmFzbWl0dGVkIGZyYW1lcy4KKyAqCTc6IEFjdGl2ZSB3aGVuIHRoZSBUQSBpcyBpbiBhIENPTk5FQ1RlZCBzdGF0ZS4KKyAqCTY6IHVua25vd24KKyAqCTU6IGhhbmRzaGFraW5nLCB1bmtub3duCisgKgk0OiBoYW5kc2hha2luZywgdW5rbm93bgorICoJMzogdW5rbm93biwgdXN1YWxseSAwCisgKgkyOiB1bmtub3duLCB1c3VhbGx5IDAKKyAqCTE6IGhhbmRzaGFraW5nLCB1bmtub3duLCB1c3VhbGx5IHNldCB0byAxIGluIHRyYXNtaXR0ZWQgZnJhbWVzCisgKgkwOiBoYW5kc2hha2luZywgdW5rbm93biwgdXN1YWxseSBzZXQgdG8gMSBpbiB0cmFzbWl0dGVkIGZyYW1lcworICogb2hfcGFkIFByb2JhYmx5IGEgcGFkIGJ5dGUuCisgKgorICogQWZ0ZXIgdGhlIGhlYWRlciB5b3Ugd2lsbCBmaW5kIGRhdGEgYnl0ZXMgaWYgb2hfbGVuIHdhcyBncmVhdGVyIHRoYW4gemVyby4KKyAqCisgKi8KKworc3RydWN0IG9tbmluZXRfaGVhZGVyCit7CisJX191OAlvaF9zZXE7CisJX191OAlvaF9sZW47CisJX191OAlvaF94eHg7CisJX191OAlvaF9wYWQ7Cit9OworCitzdHJ1Y3Qgb21uaW5ldF9kYXRhCit7CisJX191OAlvZF9vdXRzZXE7CS8vIFNlcXVlbmNlIG51bWJlciBmb3IgYnVsa19vdXQgVVJCcworfTsKKworc3RhdGljIGludCBvbW5pbmV0X29wZW4gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsCSpzZXJpYWwgPSBwb3J0LT5zZXJpYWw7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydAkqd3BvcnQ7CisJc3RydWN0IG9tbmluZXRfZGF0YQkqb2Q7CisJaW50CQkJcmVzdWx0ID0gMDsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJb2QgPSBrbWFsbG9jKCBzaXplb2Yoc3RydWN0IG9tbmluZXRfZGF0YSksIEdGUF9LRVJORUwgKTsKKwlpZiggIW9kICkgeworCQllcnIoIiVzLSBrbWFsbG9jKCVaZCkgZmFpbGVkLiIsIF9fRlVOQ1RJT05fXywgc2l6ZW9mKHN0cnVjdCBvbW5pbmV0X2RhdGEpKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJdXNiX3NldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQsIG9kKTsKKwl3cG9ydCA9IHNlcmlhbC0+cG9ydFsxXTsKKwl3cG9ydC0+dHR5ID0gcG9ydC0+dHR5OworCisJLyogU3RhcnQgcmVhZGluZyBmcm9tIHRoZSBkZXZpY2UgKi8KKwl1c2JfZmlsbF9idWxrX3VyYihwb3J0LT5yZWFkX3VyYiwgc2VyaWFsLT5kZXYsIAorCQkgICAgICB1c2JfcmN2YnVsa3BpcGUoc2VyaWFsLT5kZXYsIHBvcnQtPmJ1bGtfaW5fZW5kcG9pbnRBZGRyZXNzKSwKKwkJICAgICAgcG9ydC0+cmVhZF91cmItPnRyYW5zZmVyX2J1ZmZlciwgcG9ydC0+cmVhZF91cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGgsCisJCSAgICAgIG9tbmluZXRfcmVhZF9idWxrX2NhbGxiYWNrLCBwb3J0KTsKKwlyZXN1bHQgPSB1c2Jfc3VibWl0X3VyYihwb3J0LT5yZWFkX3VyYiwgR0ZQX0tFUk5FTCk7CisJaWYgKHJlc3VsdCkKKwkJZXJyKCIlcyAtIGZhaWxlZCBzdWJtaXR0aW5nIHJlYWQgdXJiLCBlcnJvciAlZCIsIF9fRlVOQ1RJT05fXywgcmVzdWx0KTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyB2b2lkIG9tbmluZXRfY2xvc2UgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICogZmlscCkKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbCAJKnNlcmlhbCA9IHBvcnQtPnNlcmlhbDsKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0IAkqd3BvcnQ7CisJc3RydWN0IG9tbmluZXRfZGF0YSAJKm9kOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwl3cG9ydCA9IHNlcmlhbC0+cG9ydFsxXTsKKwl1c2Jfa2lsbF91cmIod3BvcnQtPndyaXRlX3VyYik7CisJdXNiX2tpbGxfdXJiKHBvcnQtPnJlYWRfdXJiKTsKKworCW9kID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCWlmIChvZCkKKwkJa2ZyZWUob2QpOworfQorCisKKyNkZWZpbmUgT01OSU5FVF9EQVRBT0ZGU0VUCTB4MDQKKyNkZWZpbmUgT01OSU5FVF9IRUFERVJMRU4Jc2l6ZW9mKHN0cnVjdCBvbW5pbmV0X2hlYWRlcikKKyNkZWZpbmUgT01OSU5FVF9CVUxLT1VUU0laRSAJKDY0IC0gT01OSU5FVF9IRUFERVJMRU4pCisKK3N0YXRpYyB2b2lkIG9tbmluZXRfcmVhZF9idWxrX2NhbGxiYWNrIChzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgCSpwb3J0IAk9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopdXJiLT5jb250ZXh0OworCXVuc2lnbmVkIGNoYXIgCQkqZGF0YSAJPSB1cmItPnRyYW5zZmVyX2J1ZmZlcjsKKwlzdHJ1Y3Qgb21uaW5ldF9oZWFkZXIgCSpoZWFkZXIgPSAoc3RydWN0IG9tbmluZXRfaGVhZGVyICopICZkYXRhWzBdOworCisJaW50IGk7CisJaW50IHJlc3VsdDsKKworLy8JZGJnKCJvbW5pbmV0X3JlYWRfYnVsa19jYWxsYmFjayIpOworCisJaWYgKHVyYi0+c3RhdHVzKSB7CisJCWRiZygiJXMgLSBub256ZXJvIHJlYWQgYnVsayBzdGF0dXMgcmVjZWl2ZWQ6ICVkIiwgX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyk7CisJCXJldHVybjsKKwl9CisKKwlpZiAoKGRlYnVnKSAmJiAoaGVhZGVyLT5vaF94eHggIT0gMHgzMCkpIHsKKwkJaWYgKHVyYi0+YWN0dWFsX2xlbmd0aCkgeworCQkJcHJpbnRrIChLRVJOX0RFQlVHIF9fRklMRV9fICI6IG9tbmluZXRfcmVhZCAlZDogIiwgaGVhZGVyLT5vaF9sZW4pOworCQkJZm9yIChpID0gMDsgaSA8IChoZWFkZXItPm9oX2xlbiArIE9NTklORVRfSEVBREVSTEVOKTsgaSsrKSB7CisJCQkJcHJpbnRrICgiJS4yeCAiLCBkYXRhW2ldKTsKKwkJCX0KKwkJCXByaW50ayAoIlxuIik7CisJCX0KKwl9CisKKwlpZiAodXJiLT5hY3R1YWxfbGVuZ3RoICYmIGhlYWRlci0+b2hfbGVuKSB7CisJCWZvciAoaSA9IDA7IGkgPCBoZWFkZXItPm9oX2xlbjsgaSsrKSB7CisJCQkgdHR5X2luc2VydF9mbGlwX2NoYXIocG9ydC0+dHR5LCBkYXRhW09NTklORVRfREFUQU9GRlNFVCArIGldLCAwKTsKKwkgIAl9CisJICAJdHR5X2ZsaXBfYnVmZmVyX3B1c2gocG9ydC0+dHR5KTsKKwl9CisKKwkvKiBDb250aW51ZSB0cnlpbmcgdG8gYWx3YXlzIHJlYWQgICovCisJdXNiX2ZpbGxfYnVsa191cmIodXJiLCBwb3J0LT5zZXJpYWwtPmRldiwgCisJCSAgICAgIHVzYl9yY3ZidWxrcGlwZShwb3J0LT5zZXJpYWwtPmRldiwgcG9ydC0+YnVsa19pbl9lbmRwb2ludEFkZHJlc3MpLAorCQkgICAgICB1cmItPnRyYW5zZmVyX2J1ZmZlciwgdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoLAorCQkgICAgICBvbW5pbmV0X3JlYWRfYnVsa19jYWxsYmFjaywgcG9ydCk7CisJcmVzdWx0ID0gdXNiX3N1Ym1pdF91cmIodXJiLCBHRlBfQVRPTUlDKTsKKwlpZiAocmVzdWx0KQorCQllcnIoIiVzIC0gZmFpbGVkIHJlc3VibWl0dGluZyByZWFkIHVyYiwgZXJyb3IgJWQiLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisKKwlyZXR1cm47Cit9CisKK3N0YXRpYyBpbnQgb21uaW5ldF93cml0ZSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpCit7CisJc3RydWN0IHVzYl9zZXJpYWwgCSpzZXJpYWwJPSBwb3J0LT5zZXJpYWw7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAJKndwb3J0CT0gc2VyaWFsLT5wb3J0WzFdOworCisJc3RydWN0IG9tbmluZXRfZGF0YSAJKm9kIAk9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlzdHJ1Y3Qgb21uaW5ldF9oZWFkZXIJKmhlYWRlciA9IChzdHJ1Y3Qgb21uaW5ldF9oZWFkZXIgKikgd3BvcnQtPndyaXRlX3VyYi0+dHJhbnNmZXJfYnVmZmVyOworCisJaW50CQkJcmVzdWx0OworCisvLwlkYmcoIm9tbmluZXRfd3JpdGUgcG9ydCAlZCIsIHBvcnQtPm51bWJlcik7CisKKwlpZiAoY291bnQgPT0gMCkgeworCQlkYmcoIiVzIC0gd3JpdGUgcmVxdWVzdCBvZiAwIGJ5dGVzIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuICgwKTsKKwl9CisJaWYgKHdwb3J0LT53cml0ZV91cmItPnN0YXR1cyA9PSAtRUlOUFJPR1JFU1MpIHsKKwkJZGJnKCIlcyAtIGFscmVhZHkgd3JpdGluZyIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybiAoMCk7CisJfQorCisJY291bnQgPSAoY291bnQgPiBPTU5JTkVUX0JVTEtPVVRTSVpFKSA/IE9NTklORVRfQlVMS09VVFNJWkUgOiBjb3VudDsKKworCW1lbWNweSAod3BvcnQtPndyaXRlX3VyYi0+dHJhbnNmZXJfYnVmZmVyICsgT01OSU5FVF9EQVRBT0ZGU0VULCBidWYsIGNvdW50KTsKKworCXVzYl9zZXJpYWxfZGVidWdfZGF0YShkZWJ1ZywgJnBvcnQtPmRldiwgX19GVU5DVElPTl9fLCBjb3VudCwgd3BvcnQtPndyaXRlX3VyYi0+dHJhbnNmZXJfYnVmZmVyKTsKKworCWhlYWRlci0+b2hfc2VxIAk9IG9kLT5vZF9vdXRzZXErKzsKKwloZWFkZXItPm9oX2xlbiAJPSBjb3VudDsKKwloZWFkZXItPm9oX3h4eCAgPSAweDAzOworCWhlYWRlci0+b2hfcGFkIAk9IDB4MDA7CisKKwkvKiBzZW5kIHRoZSBkYXRhIG91dCB0aGUgYnVsayBwb3J0LCBhbHdheXMgNjQgYnl0ZXMgKi8KKwl3cG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoID0gNjQ7CisKKwl3cG9ydC0+d3JpdGVfdXJiLT5kZXYgPSBzZXJpYWwtPmRldjsKKwlyZXN1bHQgPSB1c2Jfc3VibWl0X3VyYih3cG9ydC0+d3JpdGVfdXJiLCBHRlBfQVRPTUlDKTsKKwlpZiAocmVzdWx0KQorCQllcnIoIiVzIC0gZmFpbGVkIHN1Ym1pdHRpbmcgd3JpdGUgdXJiLCBlcnJvciAlZCIsIF9fRlVOQ1RJT05fXywgcmVzdWx0KTsKKwllbHNlCisJCXJlc3VsdCA9IGNvdW50OworCisJcmV0dXJuIHJlc3VsdDsKK30KKworCitzdGF0aWMgaW50IG9tbmluZXRfd3JpdGVfcm9vbSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbCAJKnNlcmlhbCA9IHBvcnQtPnNlcmlhbDsKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0IAkqd3BvcnQgCT0gc2VyaWFsLT5wb3J0WzFdOworCisJaW50IHJvb20gPSAwOyAvLyBEZWZhdWx0OiBubyByb29tCisKKwlpZiAod3BvcnQtPndyaXRlX3VyYi0+c3RhdHVzICE9IC1FSU5QUk9HUkVTUykKKwkJcm9vbSA9IHdwb3J0LT5idWxrX291dF9zaXplIC0gT01OSU5FVF9IRUFERVJMRU47CisKKy8vCWRiZygib21uaW5ldF93cml0ZV9yb29tIHJldHVybnMgJWQiLCByb29tKTsKKworCXJldHVybiAocm9vbSk7Cit9CisKK3N0YXRpYyB2b2lkIG9tbmluZXRfd3JpdGVfYnVsa19jYWxsYmFjayAoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKy8qCXN0cnVjdCBvbW5pbmV0X2hlYWRlcgkqaGVhZGVyID0gKHN0cnVjdCBvbW5pbmV0X2hlYWRlciAgKikgdXJiLT50cmFuc2Zlcl9idWZmZXI7ICovCisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAJKnBvcnQgICA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopIHVyYi0+Y29udGV4dDsKKworLy8JZGJnKCJvbW5pbmV0X3dyaXRlX2J1bGtfY2FsbGJhY2ssIHBvcnQgJTB4XG4iLCBwb3J0KTsKKworCWlmICh1cmItPnN0YXR1cykgeworCQlkYmcoIiVzIC0gbm9uemVybyB3cml0ZSBidWxrIHN0YXR1cyByZWNlaXZlZDogJWQiLCBfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzKTsKKwkJcmV0dXJuOworCX0KKworCXNjaGVkdWxlX3dvcmsoJnBvcnQtPndvcmspOworCisvLwlkYmcoIm9tbmluZXRfd3JpdGVfYnVsa19jYWxsYmFjaywgdHR5ICUweFxuIiwgdHR5KTsKK30KKworCitzdGF0aWMgdm9pZCBvbW5pbmV0X3NodXRkb3duIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQoreworCWRiZyAoIiVzIiwgX19GVU5DVElPTl9fKTsKK30KKworCitzdGF0aWMgaW50IF9faW5pdCBvbW5pbmV0X2luaXQgKHZvaWQpCit7CisJaW50IHJldHZhbDsKKwlyZXR2YWwgPSB1c2Jfc2VyaWFsX3JlZ2lzdGVyKCZ6eXhlbF9vbW5pbmV0X2RldmljZSk7CisJaWYgKHJldHZhbCkKKwkJZ290byBmYWlsZWRfdXNiX3NlcmlhbF9yZWdpc3RlcjsKKwlyZXR2YWwgPSB1c2JfcmVnaXN0ZXIoJm9tbmluZXRfZHJpdmVyKTsKKwlpZiAocmV0dmFsKQorCQlnb3RvIGZhaWxlZF91c2JfcmVnaXN0ZXI7CisJaW5mbyhEUklWRVJfVkVSU0lPTiAiOiIgRFJJVkVSX0RFU0MpOworCXJldHVybiAwOworZmFpbGVkX3VzYl9yZWdpc3RlcjoKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIoJnp5eGVsX29tbmluZXRfZGV2aWNlKTsKK2ZhaWxlZF91c2Jfc2VyaWFsX3JlZ2lzdGVyOgorCXJldHVybiByZXR2YWw7Cit9CisKKworc3RhdGljIHZvaWQgX19leGl0IG9tbmluZXRfZXhpdCAodm9pZCkKK3sKKwl1c2JfZGVyZWdpc3RlciAoJm9tbmluZXRfZHJpdmVyKTsKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIgKCZ6eXhlbF9vbW5pbmV0X2RldmljZSk7Cit9CisKKworbW9kdWxlX2luaXQob21uaW5ldF9pbml0KTsKK21vZHVsZV9leGl0KG9tbmluZXRfZXhpdCk7CisKK01PRFVMRV9BVVRIT1IoIERSSVZFUl9BVVRIT1IgKTsKK01PRFVMRV9ERVNDUklQVElPTiggRFJJVkVSX0RFU0MgKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKKworbW9kdWxlX3BhcmFtKGRlYnVnLCBib29sLCBTX0lSVUdPIHwgU19JV1VTUik7CitNT0RVTEVfUEFSTV9ERVNDKGRlYnVnLCAiRGVidWcgZW5hYmxlZCBvciBub3QiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzY4ZDJiCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5jCkBAIC0wLDAgKzEsMTIwMCBAQAorLyoKKyAqIFByb2xpZmljIFBMMjMwMyBVU0IgdG8gc2VyaWFsIGFkYXB0b3IgZHJpdmVyCisgKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQgR3JlZyBLcm9haC1IYXJ0bWFuIChncmVnQGtyb2FoLmNvbSkKKyAqIENvcHlyaWdodCAoQykgMjAwMyBJQk0gQ29ycC4KKyAqCisgKiBPcmlnaW5hbCBkcml2ZXIgZm9yIDIuMi54IGJ5IGFub255bW91cworICoKKyAqCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKglpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICoJdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqCShhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogU2VlIERvY3VtZW50YXRpb24vdXNiL3VzYi1zZXJpYWwudHh0IGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHVzaW5nIHRoaXMgZHJpdmVyCisgKgorICogMjAwMl9NYXJfMjYgZ2toCisgKglhbGxvd2VkIGRyaXZlciB0byB3b3JrIHByb3Blcmx5IGlmIHRoZXJlIGlzIG5vIHR0eSBhc3NpZ25lZCB0byBhIHBvcnQKKyAqCSh0aGlzIGhhcHBlbnMgZm9yIHNlcmlhbCBjb25zb2xlIGRldmljZXMuKQorICoKKyAqIDIwMDFfT2N0XzA2IGdraAorICoJQWRkZWQgUlRTIGFuZCBEVFIgbGluZSBjb250cm9sLiAgVGhhbmtzIHRvIGpvZUBibmRsZy5kZSBmb3IgcGFydHMgb2YgaXQuCisgKgorICogMjAwMV9TZXBfMTkgZ2toCisgKglBZGRlZCBicmVhayBzdXBwb3J0LgorICoKKyAqIDIwMDFfQXVnXzMwIGdraAorICoJZml4ZWQgb29wcyBpbiB3cml0ZV9idWxrX2NhbGxiYWNrLgorICoKKyAqIDIwMDFfQXVnXzI4IGdraAorICoJcmV3b3JrZWQgYnVmZmVyIGxvZ2ljIHRvIGJlIGxpa2Ugb3RoZXIgdXNiLXNlcmlhbCBkcml2ZXJzLiAgSG9wZWZ1bGx5CisgKglyZW1vdmluZyBzb21lIHJlcG9ydGVkIHByb2JsZW1zLgorICoKKyAqIDIwMDFfSnVuXzA2IGdraAorICoJZmluaXNoZWQgcG9ydGluZyB0byAyLjQgZm9ybWF0LgorICogCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC90dHkuaD4KKyNpbmNsdWRlIDxsaW51eC90dHlfZHJpdmVyLmg+CisjaW5jbHVkZSA8bGludXgvdHR5X2ZsaXAuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpYWwuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC91c2IuaD4KKyNpbmNsdWRlICJ1c2Itc2VyaWFsLmgiCisjaW5jbHVkZSAicGwyMzAzLmgiCisKKy8qCisgKiBWZXJzaW9uIEluZm9ybWF0aW9uCisgKi8KKyNkZWZpbmUgRFJJVkVSX1ZFUlNJT04gInYwLjEyIgorI2RlZmluZSBEUklWRVJfREVTQyAiUHJvbGlmaWMgUEwyMzAzIFVTQiB0byBzZXJpYWwgYWRhcHRvciBkcml2ZXIiCisKK3N0YXRpYyBpbnQgZGVidWc7CisKKyNkZWZpbmUgUEwyMzAzX0NMT1NJTkdfV0FJVAkoMzAqSFopCisKKyNkZWZpbmUgUEwyMzAzX0JVRl9TSVpFCQkxMDI0CisjZGVmaW5lIFBMMjMwM19UTVBfQlVGX1NJWkUJMTAyNAorCitzdGF0aWMgREVDTEFSRV9NVVRFWChwbDIzMDNfdG1wX2J1Zl9zZW0pOworCitzdHJ1Y3QgcGwyMzAzX2J1ZiB7CisJdW5zaWduZWQgaW50CWJ1Zl9zaXplOworCWNoYXIJCSpidWZfYnVmOworCWNoYXIJCSpidWZfZ2V0OworCWNoYXIJCSpidWZfcHV0OworfTsKKworc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlIFtdID0geworCXsgVVNCX0RFVklDRShQTDIzMDNfVkVORE9SX0lELCBQTDIzMDNfUFJPRFVDVF9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoUEwyMzAzX1ZFTkRPUl9JRCwgUEwyMzAzX1BST0RVQ1RfSURfUlNBUTIpIH0sCisJeyBVU0JfREVWSUNFKFBMMjMwM19WRU5ET1JfSUQsIFBMMjMwM19QUk9EVUNUX0lEX1JTQVEzKSB9LAorCXsgVVNCX0RFVklDRShQTDIzMDNfVkVORE9SX0lELCBQTDIzMDNfUFJPRFVDVF9JRF9QSEFST1MpIH0sCisJeyBVU0JfREVWSUNFKElPREFUQV9WRU5ET1JfSUQsIElPREFUQV9QUk9EVUNUX0lEKSB9LAorCXsgVVNCX0RFVklDRShBVEVOX1ZFTkRPUl9JRCwgQVRFTl9QUk9EVUNUX0lEKSB9LAorCXsgVVNCX0RFVklDRShBVEVOX1ZFTkRPUl9JRDIsIEFURU5fUFJPRFVDVF9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoRUxDT01fVkVORE9SX0lELCBFTENPTV9QUk9EVUNUX0lEKSB9LAorCXsgVVNCX0RFVklDRShFTENPTV9WRU5ET1JfSUQsIEVMQ09NX1BST0RVQ1RfSURfVUNTR1QpIH0sCisJeyBVU0JfREVWSUNFKElURUdOT19WRU5ET1JfSUQsIElURUdOT19QUk9EVUNUX0lEKSB9LAorCXsgVVNCX0RFVklDRShNQTYyMF9WRU5ET1JfSUQsIE1BNjIwX1BST0RVQ1RfSUQpIH0sCisJeyBVU0JfREVWSUNFKFJBVE9DX1ZFTkRPUl9JRCwgUkFUT0NfUFJPRFVDVF9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoVFJJUFBfVkVORE9SX0lELCBUUklQUF9QUk9EVUNUX0lEKSB9LAorCXsgVVNCX0RFVklDRShSQURJT1NIQUNLX1ZFTkRPUl9JRCwgUkFESU9TSEFDS19QUk9EVUNUX0lEKSB9LAorCXsgVVNCX0RFVklDRShEQ1UxMF9WRU5ET1JfSUQsIERDVTEwX1BST0RVQ1RfSUQpIH0sCisJeyBVU0JfREVWSUNFKFNJVEVDT01fVkVORE9SX0lELCBTSVRFQ09NX1BST0RVQ1RfSUQpIH0sCisJeyBVU0JfREVWSUNFKEFMQ0FURUxfVkVORE9SX0lELCBBTENBVEVMX1BST0RVQ1RfSUQpIH0sCisJeyBVU0JfREVWSUNFKFNBTVNVTkdfVkVORE9SX0lELCBTQU1TVU5HX1BST0RVQ1RfSUQpIH0sCisJeyBVU0JfREVWSUNFKFNJRU1FTlNfVkVORE9SX0lELCBTSUVNRU5TX1BST0RVQ1RfSURfWDY1KSB9LAorCXsgfQkJCQkJLyogVGVybWluYXRpbmcgZW50cnkgKi8KK307CisKK01PRFVMRV9ERVZJQ0VfVEFCTEUgKHVzYiwgaWRfdGFibGUpOworCitzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcGwyMzAzX2RyaXZlciA9IHsKKwkub3duZXIgPQlUSElTX01PRFVMRSwKKwkubmFtZSA9CQkicGwyMzAzIiwKKwkucHJvYmUgPQl1c2Jfc2VyaWFsX3Byb2JlLAorCS5kaXNjb25uZWN0ID0JdXNiX3NlcmlhbF9kaXNjb25uZWN0LAorCS5pZF90YWJsZSA9CWlkX3RhYmxlLAorfTsKKworI2RlZmluZSBTRVRfTElORV9SRVFVRVNUX1RZUEUJCTB4MjEKKyNkZWZpbmUgU0VUX0xJTkVfUkVRVUVTVAkJMHgyMAorCisjZGVmaW5lIFNFVF9DT05UUk9MX1JFUVVFU1RfVFlQRQkweDIxCisjZGVmaW5lIFNFVF9DT05UUk9MX1JFUVVFU1QJCTB4MjIKKyNkZWZpbmUgQ09OVFJPTF9EVFIJCQkweDAxCisjZGVmaW5lIENPTlRST0xfUlRTCQkJMHgwMgorCisjZGVmaW5lIEJSRUFLX1JFUVVFU1RfVFlQRQkJMHgyMQorI2RlZmluZSBCUkVBS19SRVFVRVNUCQkJMHgyMwkKKyNkZWZpbmUgQlJFQUtfT04JCQkweGZmZmYKKyNkZWZpbmUgQlJFQUtfT0ZGCQkJMHgwMDAwCisKKyNkZWZpbmUgR0VUX0xJTkVfUkVRVUVTVF9UWVBFCQkweGExCisjZGVmaW5lIEdFVF9MSU5FX1JFUVVFU1QJCTB4MjEKKworI2RlZmluZSBWRU5ET1JfV1JJVEVfUkVRVUVTVF9UWVBFCTB4NDAKKyNkZWZpbmUgVkVORE9SX1dSSVRFX1JFUVVFU1QJCTB4MDEKKworI2RlZmluZSBWRU5ET1JfUkVBRF9SRVFVRVNUX1RZUEUJMHhjMAorI2RlZmluZSBWRU5ET1JfUkVBRF9SRVFVRVNUCQkweDAxCisKKyNkZWZpbmUgVUFSVF9TVEFURQkJCTB4MDgKKyNkZWZpbmUgVUFSVF9TVEFURV9UUkFOU0lFTlRfTUFTSwkweDc0CisjZGVmaW5lIFVBUlRfRENECQkJMHgwMQorI2RlZmluZSBVQVJUX0RTUgkJCTB4MDIKKyNkZWZpbmUgVUFSVF9CUkVBS19FUlJPUgkJMHgwNAorI2RlZmluZSBVQVJUX1JJTkcJCQkweDA4CisjZGVmaW5lIFVBUlRfRlJBTUVfRVJST1IJCTB4MTAKKyNkZWZpbmUgVUFSVF9QQVJJVFlfRVJST1IJCTB4MjAKKyNkZWZpbmUgVUFSVF9PVkVSUlVOX0VSUk9SCQkweDQwCisjZGVmaW5lIFVBUlRfQ1RTCQkJMHg4MAorCisvKiBmdW5jdGlvbiBwcm90b3R5cGVzIGZvciBhIFBMMjMwMyBzZXJpYWwgY29udmVydGVyICovCitzdGF0aWMgaW50IHBsMjMwM19vcGVuIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlscCk7CitzdGF0aWMgdm9pZCBwbDIzMDNfY2xvc2UgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKTsKK3N0YXRpYyB2b2lkIHBsMjMwM19zZXRfdGVybWlvcyAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwKKwkJCQlzdHJ1Y3QgdGVybWlvcyAqb2xkKTsKK3N0YXRpYyBpbnQgcGwyMzAzX2lvY3RsIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlsZSwKKwkJCSB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7CitzdGF0aWMgdm9pZCBwbDIzMDNfcmVhZF9pbnRfY2FsbGJhY2sgKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOworc3RhdGljIHZvaWQgcGwyMzAzX3JlYWRfYnVsa19jYWxsYmFjayAoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CitzdGF0aWMgdm9pZCBwbDIzMDNfd3JpdGVfYnVsa19jYWxsYmFjayAoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CitzdGF0aWMgaW50IHBsMjMwM193cml0ZSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwKKwkJCSBjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBjb3VudCk7CitzdGF0aWMgdm9pZCBwbDIzMDNfc2VuZCAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCk7CitzdGF0aWMgaW50IHBsMjMwM193cml0ZV9yb29tKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworc3RhdGljIGludCBwbDIzMDNfY2hhcnNfaW5fYnVmZmVyKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworc3RhdGljIHZvaWQgcGwyMzAzX2JyZWFrX2N0bChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LGludCBicmVha19zdGF0ZSk7CitzdGF0aWMgaW50IHBsMjMwM190aW9jbWdldCAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbGUpOworc3RhdGljIGludCBwbDIzMDNfdGlvY21zZXQgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxlLAorCQkJICAgIHVuc2lnbmVkIGludCBzZXQsIHVuc2lnbmVkIGludCBjbGVhcik7CitzdGF0aWMgaW50IHBsMjMwM19zdGFydHVwIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKTsKK3N0YXRpYyB2b2lkIHBsMjMwM19zaHV0ZG93biAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCk7CitzdGF0aWMgc3RydWN0IHBsMjMwM19idWYgKnBsMjMwM19idWZfYWxsb2ModW5zaWduZWQgaW50IHNpemUpOworc3RhdGljIHZvaWQgcGwyMzAzX2J1Zl9mcmVlKHN0cnVjdCBwbDIzMDNfYnVmICpwYik7CitzdGF0aWMgdm9pZCBwbDIzMDNfYnVmX2NsZWFyKHN0cnVjdCBwbDIzMDNfYnVmICpwYik7CitzdGF0aWMgdW5zaWduZWQgaW50IHBsMjMwM19idWZfZGF0YV9hdmFpbChzdHJ1Y3QgcGwyMzAzX2J1ZiAqcGIpOworc3RhdGljIHVuc2lnbmVkIGludCBwbDIzMDNfYnVmX3NwYWNlX2F2YWlsKHN0cnVjdCBwbDIzMDNfYnVmICpwYik7CitzdGF0aWMgdW5zaWduZWQgaW50IHBsMjMwM19idWZfcHV0KHN0cnVjdCBwbDIzMDNfYnVmICpwYiwgY29uc3QgY2hhciAqYnVmLAorCXVuc2lnbmVkIGludCBjb3VudCk7CitzdGF0aWMgdW5zaWduZWQgaW50IHBsMjMwM19idWZfZ2V0KHN0cnVjdCBwbDIzMDNfYnVmICpwYiwgY2hhciAqYnVmLAorCXVuc2lnbmVkIGludCBjb3VudCk7CisKKworLyogQWxsIG9mIHRoZSBkZXZpY2UgaW5mbyBuZWVkZWQgZm9yIHRoZSBQTDIzMDMgU0lPIHNlcmlhbCBjb252ZXJ0ZXIgKi8KK3N0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kZXZpY2VfdHlwZSBwbDIzMDNfZGV2aWNlID0geworCS5vd25lciA9CQlUSElTX01PRFVMRSwKKwkubmFtZSA9CQkJIlBMLTIzMDMiLAorCS5pZF90YWJsZSA9CQlpZF90YWJsZSwKKwkubnVtX2ludGVycnVwdF9pbiA9CU5VTV9ET05UX0NBUkUsCisJLm51bV9idWxrX2luID0JCTEsCisJLm51bV9idWxrX291dCA9CQkxLAorCS5udW1fcG9ydHMgPQkJMSwKKwkub3BlbiA9CQkJcGwyMzAzX29wZW4sCisJLmNsb3NlID0JCXBsMjMwM19jbG9zZSwKKwkud3JpdGUgPQkJcGwyMzAzX3dyaXRlLAorCS5pb2N0bCA9CQlwbDIzMDNfaW9jdGwsCisJLmJyZWFrX2N0bCA9CQlwbDIzMDNfYnJlYWtfY3RsLAorCS5zZXRfdGVybWlvcyA9CQlwbDIzMDNfc2V0X3Rlcm1pb3MsCisJLnRpb2NtZ2V0ID0JCXBsMjMwM190aW9jbWdldCwKKwkudGlvY21zZXQgPQkJcGwyMzAzX3Rpb2Ntc2V0LAorCS5yZWFkX2J1bGtfY2FsbGJhY2sgPQlwbDIzMDNfcmVhZF9idWxrX2NhbGxiYWNrLAorCS5yZWFkX2ludF9jYWxsYmFjayA9CXBsMjMwM19yZWFkX2ludF9jYWxsYmFjaywKKwkud3JpdGVfYnVsa19jYWxsYmFjayA9CXBsMjMwM193cml0ZV9idWxrX2NhbGxiYWNrLAorCS53cml0ZV9yb29tID0JCXBsMjMwM193cml0ZV9yb29tLAorCS5jaGFyc19pbl9idWZmZXIgPQlwbDIzMDNfY2hhcnNfaW5fYnVmZmVyLAorCS5hdHRhY2ggPQkJcGwyMzAzX3N0YXJ0dXAsCisJLnNodXRkb3duID0JCXBsMjMwM19zaHV0ZG93biwKK307CisKK2VudW0gcGwyMzAzX3R5cGUgeworCXR5cGVfMCwJCS8qIGRvbid0IGtub3cgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0eXBlIDAgYW5kICovCisJdHlwZV8xLAkJLyogdHlwZSAxLCB1bnRpbCBzb21lb25lIGZyb20gcHJvbGlmaWMgdGVsbHMgdXMuLi4gKi8KKwlIWCwJCS8qIEhYIHZlcnNpb24gb2YgdGhlIHBsMjMwMyBjaGlwICovCit9OworCitzdHJ1Y3QgcGwyMzAzX3ByaXZhdGUgeworCXNwaW5sb2NrX3QgbG9jazsKKwlzdHJ1Y3QgcGwyMzAzX2J1ZiAqYnVmOworCWludCB3cml0ZV91cmJfaW5fdXNlOworCXdhaXRfcXVldWVfaGVhZF90IGRlbHRhX21zcl93YWl0OworCXU4IGxpbmVfY29udHJvbDsKKwl1OCBsaW5lX3N0YXR1czsKKwl1OCB0ZXJtaW9zX2luaXRpYWxpemVkOworCWVudW0gcGwyMzAzX3R5cGUgdHlwZTsKK307CisKKworc3RhdGljIGludCBwbDIzMDNfc3RhcnR1cCAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkKK3sKKwlzdHJ1Y3QgcGwyMzAzX3ByaXZhdGUgKnByaXY7CisJZW51bSBwbDIzMDNfdHlwZSB0eXBlID0gdHlwZV8wOworCWludCBpOworCisJaWYgKHNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmJEZXZpY2VDbGFzcyA9PSAweDAyKQorCQl0eXBlID0gdHlwZV8wOworCWVsc2UgaWYgKHNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmJNYXhQYWNrZXRTaXplMCA9PSAweDQwKQorCQl0eXBlID0gSFg7CisJZWxzZSBpZiAoc2VyaWFsLT5kZXYtPmRlc2NyaXB0b3IuYkRldmljZUNsYXNzID09IDB4MDApCisJCXR5cGUgPSB0eXBlXzE7CisJZWxzZSBpZiAoc2VyaWFsLT5kZXYtPmRlc2NyaXB0b3IuYkRldmljZUNsYXNzID09IDB4RkYpCisJCXR5cGUgPSB0eXBlXzE7CisJZGJnKCJkZXZpY2UgdHlwZTogJWQiLCB0eXBlKTsKKworCWZvciAoaSA9IDA7IGkgPCBzZXJpYWwtPm51bV9wb3J0czsgKytpKSB7CisJCXByaXYgPSBrbWFsbG9jIChzaXplb2YgKHN0cnVjdCBwbDIzMDNfcHJpdmF0ZSksIEdGUF9LRVJORUwpOworCQlpZiAoIXByaXYpCisJCQlnb3RvIGNsZWFudXA7CisJCW1lbXNldCAocHJpdiwgMHgwMCwgc2l6ZW9mIChzdHJ1Y3QgcGwyMzAzX3ByaXZhdGUpKTsKKwkJc3Bpbl9sb2NrX2luaXQoJnByaXYtPmxvY2spOworCQlwcml2LT5idWYgPSBwbDIzMDNfYnVmX2FsbG9jKFBMMjMwM19CVUZfU0laRSk7CisJCWlmIChwcml2LT5idWYgPT0gTlVMTCkgeworCQkJa2ZyZWUocHJpdik7CisJCQlnb3RvIGNsZWFudXA7CisJCX0KKwkJaW5pdF93YWl0cXVldWVfaGVhZCgmcHJpdi0+ZGVsdGFfbXNyX3dhaXQpOworCQlwcml2LT50eXBlID0gdHlwZTsKKwkJdXNiX3NldF9zZXJpYWxfcG9ydF9kYXRhKHNlcmlhbC0+cG9ydFtpXSwgcHJpdik7CisJfQorCXJldHVybiAwOworCitjbGVhbnVwOgorCWZvciAoLS1pOyBpPj0wOyAtLWkpIHsKKwkJcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShzZXJpYWwtPnBvcnRbaV0pOworCQlwbDIzMDNfYnVmX2ZyZWUocHJpdi0+YnVmKTsKKwkJa2ZyZWUocHJpdik7CisJCXVzYl9zZXRfc2VyaWFsX3BvcnRfZGF0YShzZXJpYWwtPnBvcnRbaV0sIE5VTEwpOworCX0KKwlyZXR1cm4gLUVOT01FTTsKK30KKworc3RhdGljIGludCBzZXRfY29udHJvbF9saW5lcyAoc3RydWN0IHVzYl9kZXZpY2UgKmRldiwgdTggdmFsdWUpCit7CisJaW50IHJldHZhbDsKKwkKKwlyZXR2YWwgPSB1c2JfY29udHJvbF9tc2cgKGRldiwgdXNiX3NuZGN0cmxwaXBlIChkZXYsIDApLAorCQkJCSAgU0VUX0NPTlRST0xfUkVRVUVTVCwgU0VUX0NPTlRST0xfUkVRVUVTVF9UWVBFLAorCQkJCSAgdmFsdWUsIDAsIE5VTEwsIDAsIDEwMCk7CisJZGJnKCIlcyAtIHZhbHVlID0gJWQsIHJldHZhbCA9ICVkIiwgX19GVU5DVElPTl9fLCB2YWx1ZSwgcmV0dmFsKTsKKwlyZXR1cm4gcmV0dmFsOworfQorCitzdGF0aWMgaW50IHBsMjMwM193cml0ZSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGNvdW50KQoreworCXN0cnVjdCBwbDIzMDNfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZGJnKCIlcyAtIHBvcnQgJWQsICVkIGJ5dGVzIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIsIGNvdW50KTsKKworCWlmICghY291bnQpCisJCXJldHVybiBjb3VudDsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJY291bnQgPSBwbDIzMDNfYnVmX3B1dChwcml2LT5idWYsIGJ1ZiwgY291bnQpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKworCXBsMjMwM19zZW5kKHBvcnQpOworCisJcmV0dXJuIGNvdW50OworfQorCitzdGF0aWMgdm9pZCBwbDIzMDNfc2VuZChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCWludCBjb3VudCwgcmVzdWx0OworCXN0cnVjdCBwbDIzMDNfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCisJaWYgKHByaXYtPndyaXRlX3VyYl9pbl91c2UpIHsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCQlyZXR1cm47CisJfQorCisJY291bnQgPSBwbDIzMDNfYnVmX2dldChwcml2LT5idWYsIHBvcnQtPndyaXRlX3VyYi0+dHJhbnNmZXJfYnVmZmVyLAorCQlwb3J0LT5idWxrX291dF9zaXplKTsKKworCWlmIChjb3VudCA9PSAwKSB7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwkJcmV0dXJuOworCX0KKworCXByaXYtPndyaXRlX3VyYl9pbl91c2UgPSAxOworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCisJdXNiX3NlcmlhbF9kZWJ1Z19kYXRhKGRlYnVnLCAmcG9ydC0+ZGV2LCBfX0ZVTkNUSU9OX18sIGNvdW50LCBwb3J0LT53cml0ZV91cmItPnRyYW5zZmVyX2J1ZmZlcik7CisKKwlwb3J0LT53cml0ZV91cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGggPSBjb3VudDsKKwlwb3J0LT53cml0ZV91cmItPmRldiA9IHBvcnQtPnNlcmlhbC0+ZGV2OworCXJlc3VsdCA9IHVzYl9zdWJtaXRfdXJiIChwb3J0LT53cml0ZV91cmIsIEdGUF9BVE9NSUMpOworCWlmIChyZXN1bHQpIHsKKwkJZGV2X2VycigmcG9ydC0+ZGV2LCAiJXMgLSBmYWlsZWQgc3VibWl0dGluZyB3cml0ZSB1cmIsIGVycm9yICVkXG4iLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisJCXByaXYtPndyaXRlX3VyYl9pbl91c2UgPSAwOworCQkvLyBUT0RPOiByZXNjaGVkdWxlIHBsMjMwM19zZW5kCisJfQorCisJc2NoZWR1bGVfd29yaygmcG9ydC0+d29yayk7Cit9CisKK3N0YXRpYyBpbnQgcGwyMzAzX3dyaXRlX3Jvb20oc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKK3sKKwlzdHJ1Y3QgcGwyMzAzX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJaW50IHJvb20gPSAwOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJcm9vbSA9IHBsMjMwM19idWZfc3BhY2VfYXZhaWwocHJpdi0+YnVmKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CisKKwlkYmcoIiVzIC0gcmV0dXJucyAlZCIsIF9fRlVOQ1RJT05fXywgcm9vbSk7CisJcmV0dXJuIHJvb207Cit9CisKK3N0YXRpYyBpbnQgcGwyMzAzX2NoYXJzX2luX2J1ZmZlcihzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCBwbDIzMDNfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlpbnQgY2hhcnMgPSAwOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJY2hhcnMgPSBwbDIzMDNfYnVmX2RhdGFfYXZhaWwocHJpdi0+YnVmKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CisKKwlkYmcoIiVzIC0gcmV0dXJucyAlZCIsIF9fRlVOQ1RJT05fXywgY2hhcnMpOworCXJldHVybiBjaGFyczsKK30KKworc3RhdGljIHZvaWQgcGwyMzAzX3NldF90ZXJtaW9zIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgdGVybWlvcyAqb2xkX3Rlcm1pb3MpCit7CisJc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCA9IHBvcnQtPnNlcmlhbDsKKwlzdHJ1Y3QgcGwyMzAzX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBpbnQgY2ZsYWc7CisJdW5zaWduZWQgY2hhciAqYnVmOworCWludCBiYXVkOworCWludCBpOworCXU4IGNvbnRyb2w7CisKKwlkYmcoIiVzIC0gIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAoKCFwb3J0LT50dHkpIHx8ICghcG9ydC0+dHR5LT50ZXJtaW9zKSkgeworCQlkYmcoIiVzIC0gbm8gdHR5IHN0cnVjdHVyZXMiLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm47CisJfQorCisJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwlpZiAoIXByaXYtPnRlcm1pb3NfaW5pdGlhbGl6ZWQpIHsKKwkJKihwb3J0LT50dHktPnRlcm1pb3MpID0gdHR5X3N0ZF90ZXJtaW9zOworCQlwb3J0LT50dHktPnRlcm1pb3MtPmNfY2ZsYWcgPSBCOTYwMCB8IENTOCB8IENSRUFEIHwgSFVQQ0wgfCBDTE9DQUw7CisJCXByaXYtPnRlcm1pb3NfaW5pdGlhbGl6ZWQgPSAxOworCX0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CisKKwljZmxhZyA9IHBvcnQtPnR0eS0+dGVybWlvcy0+Y19jZmxhZzsKKwkvKiBjaGVjayB0aGF0IHRoZXkgcmVhbGx5IHdhbnQgdXMgdG8gY2hhbmdlIHNvbWV0aGluZyAqLworCWlmIChvbGRfdGVybWlvcykgeworCQlpZiAoKGNmbGFnID09IG9sZF90ZXJtaW9zLT5jX2NmbGFnKSAmJgorCQkgICAgKFJFTEVWQU5UX0lGTEFHKHBvcnQtPnR0eS0+dGVybWlvcy0+Y19pZmxhZykgPT0gUkVMRVZBTlRfSUZMQUcob2xkX3Rlcm1pb3MtPmNfaWZsYWcpKSkgeworCQkgICAgZGJnKCIlcyAtIG5vdGhpbmcgdG8gY2hhbmdlLi4uIiwgX19GVU5DVElPTl9fKTsKKwkJICAgIHJldHVybjsKKwkJfQorCX0KKworCWJ1ZiA9IGttYWxsb2MgKDcsIEdGUF9LRVJORUwpOworCWlmICghYnVmKSB7CisJCWRldl9lcnIoJnBvcnQtPmRldiwgIiVzIC0gb3V0IG9mIG1lbW9yeS5cbiIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybjsKKwl9CisJbWVtc2V0IChidWYsIDB4MDAsIDB4MDcpOworCQorCWkgPSB1c2JfY29udHJvbF9tc2cgKHNlcmlhbC0+ZGV2LCB1c2JfcmN2Y3RybHBpcGUgKHNlcmlhbC0+ZGV2LCAwKSwKKwkJCSAgICAgR0VUX0xJTkVfUkVRVUVTVCwgR0VUX0xJTkVfUkVRVUVTVF9UWVBFLAorCQkJICAgICAwLCAwLCBidWYsIDcsIDEwMCk7CisJZGJnICgiMHhhMToweDIxOjA6MCAgJWQgLSAleCAleCAleCAleCAleCAleCAleCIsIGksCisJICAgICBidWZbMF0sIGJ1ZlsxXSwgYnVmWzJdLCBidWZbM10sIGJ1Zls0XSwgYnVmWzVdLCBidWZbNl0pOworCisKKwlpZiAoY2ZsYWcgJiBDU0laRSkgeworCQlzd2l0Y2ggKGNmbGFnICYgQ1NJWkUpIHsKKwkJCWNhc2UgQ1M1OglidWZbNl0gPSA1OwlicmVhazsKKwkJCWNhc2UgQ1M2OglidWZbNl0gPSA2OwlicmVhazsKKwkJCWNhc2UgQ1M3OglidWZbNl0gPSA3OwlicmVhazsKKwkJCWRlZmF1bHQ6CisJCQljYXNlIENTODoJYnVmWzZdID0gODsJYnJlYWs7CisJCX0KKwkJZGJnKCIlcyAtIGRhdGEgYml0cyA9ICVkIiwgX19GVU5DVElPTl9fLCBidWZbNl0pOworCX0KKworCWJhdWQgPSAwOworCXN3aXRjaCAoY2ZsYWcgJiBDQkFVRCkgeworCQljYXNlIEIwOgliYXVkID0gMDsJYnJlYWs7CisJCWNhc2UgQjc1OgliYXVkID0gNzU7CWJyZWFrOworCQljYXNlIEIxNTA6CWJhdWQgPSAxNTA7CWJyZWFrOworCQljYXNlIEIzMDA6CWJhdWQgPSAzMDA7CWJyZWFrOworCQljYXNlIEI2MDA6CWJhdWQgPSA2MDA7CWJyZWFrOworCQljYXNlIEIxMjAwOgliYXVkID0gMTIwMDsJYnJlYWs7CisJCWNhc2UgQjE4MDA6CWJhdWQgPSAxODAwOwlicmVhazsKKwkJY2FzZSBCMjQwMDoJYmF1ZCA9IDI0MDA7CWJyZWFrOworCQljYXNlIEI0ODAwOgliYXVkID0gNDgwMDsJYnJlYWs7CisJCWNhc2UgQjk2MDA6CWJhdWQgPSA5NjAwOwlicmVhazsKKwkJY2FzZSBCMTkyMDA6CWJhdWQgPSAxOTIwMDsJYnJlYWs7CisJCWNhc2UgQjM4NDAwOgliYXVkID0gMzg0MDA7CWJyZWFrOworCQljYXNlIEI1NzYwMDoJYmF1ZCA9IDU3NjAwOwlicmVhazsKKwkJY2FzZSBCMTE1MjAwOgliYXVkID0gMTE1MjAwOwlicmVhazsKKwkJY2FzZSBCMjMwNDAwOgliYXVkID0gMjMwNDAwOwlicmVhazsKKwkJY2FzZSBCNDYwODAwOgliYXVkID0gNDYwODAwOwlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWRldl9lcnIoJnBvcnQtPmRldiwgInBsMjMwMyBkcml2ZXIgZG9lcyBub3Qgc3VwcG9ydCB0aGUgYmF1ZHJhdGUgcmVxdWVzdGVkIChmaXggaXQpXG4iKTsKKwkJCWJyZWFrOworCX0KKwlkYmcoIiVzIC0gYmF1ZCA9ICVkIiwgX19GVU5DVElPTl9fLCBiYXVkKTsKKwlpZiAoYmF1ZCkgeworCQlidWZbMF0gPSBiYXVkICYgMHhmZjsKKwkJYnVmWzFdID0gKGJhdWQgPj4gOCkgJiAweGZmOworCQlidWZbMl0gPSAoYmF1ZCA+PiAxNikgJiAweGZmOworCQlidWZbM10gPSAoYmF1ZCA+PiAyNCkgJiAweGZmOworCX0KKworCS8qIEZvciByZWZlcmVuY2UgYnVmWzRdPTAgaXMgMSBzdG9wIGJpdHMgKi8KKwkvKiBGb3IgcmVmZXJlbmNlIGJ1Zls0XT0xIGlzIDEuNSBzdG9wIGJpdHMgKi8KKwkvKiBGb3IgcmVmZXJlbmNlIGJ1Zls0XT0yIGlzIDIgc3RvcCBiaXRzICovCisJaWYgKGNmbGFnICYgQ1NUT1BCKSB7CisJCWJ1Zls0XSA9IDI7CisJCWRiZygiJXMgLSBzdG9wIGJpdHMgPSAyIiwgX19GVU5DVElPTl9fKTsKKwl9IGVsc2UgeworCQlidWZbNF0gPSAwOworCQlkYmcoIiVzIC0gc3RvcCBiaXRzID0gMSIsIF9fRlVOQ1RJT05fXyk7CisJfQorCisJaWYgKGNmbGFnICYgUEFSRU5CKSB7CisJCS8qIEZvciByZWZlcmVuY2UgYnVmWzVdPTAgaXMgbm9uZSBwYXJpdHkgKi8KKwkJLyogRm9yIHJlZmVyZW5jZSBidWZbNV09MSBpcyBvZGQgcGFyaXR5ICovCisJCS8qIEZvciByZWZlcmVuY2UgYnVmWzVdPTIgaXMgZXZlbiBwYXJpdHkgKi8KKwkJLyogRm9yIHJlZmVyZW5jZSBidWZbNV09MyBpcyBtYXJrIHBhcml0eSAqLworCQkvKiBGb3IgcmVmZXJlbmNlIGJ1Zls1XT00IGlzIHNwYWNlIHBhcml0eSAqLworCQlpZiAoY2ZsYWcgJiBQQVJPREQpIHsKKwkJCWJ1Zls1XSA9IDE7CisJCQlkYmcoIiVzIC0gcGFyaXR5ID0gb2RkIiwgX19GVU5DVElPTl9fKTsKKwkJfSBlbHNlIHsKKwkJCWJ1Zls1XSA9IDI7CisJCQlkYmcoIiVzIC0gcGFyaXR5ID0gZXZlbiIsIF9fRlVOQ1RJT05fXyk7CisJCX0KKwl9IGVsc2UgeworCQlidWZbNV0gPSAwOworCQlkYmcoIiVzIC0gcGFyaXR5ID0gbm9uZSIsIF9fRlVOQ1RJT05fXyk7CisJfQorCisJaSA9IHVzYl9jb250cm9sX21zZyAoc2VyaWFsLT5kZXYsIHVzYl9zbmRjdHJscGlwZSAoc2VyaWFsLT5kZXYsIDApLAorCQkJICAgICBTRVRfTElORV9SRVFVRVNULCBTRVRfTElORV9SRVFVRVNUX1RZUEUsIAorCQkJICAgICAwLCAwLCBidWYsIDcsIDEwMCk7CisJZGJnICgiMHgyMToweDIwOjA6MCAgJWQiLCBpKTsKKworCS8qIGNoYW5nZSBjb250cm9sIGxpbmVzIGlmIHdlIGFyZSBzd2l0Y2hpbmcgdG8gb3IgZnJvbSBCMCAqLworCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJY29udHJvbCA9IHByaXYtPmxpbmVfY29udHJvbDsKKwlpZiAoKGNmbGFnICYgQ0JBVUQpID09IEIwKQorCQlwcml2LT5saW5lX2NvbnRyb2wgJj0gfihDT05UUk9MX0RUUiB8IENPTlRST0xfUlRTKTsKKwllbHNlCisJCXByaXYtPmxpbmVfY29udHJvbCB8PSAoQ09OVFJPTF9EVFIgfCBDT05UUk9MX1JUUyk7CisJaWYgKGNvbnRyb2wgIT0gcHJpdi0+bGluZV9jb250cm9sKSB7CisJCWNvbnRyb2wgPSBwcml2LT5saW5lX2NvbnRyb2w7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwkJc2V0X2NvbnRyb2xfbGluZXMoc2VyaWFsLT5kZXYsIGNvbnRyb2wpOworCX0gZWxzZSB7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwl9CisJCisJYnVmWzBdID0gYnVmWzFdID0gYnVmWzJdID0gYnVmWzNdID0gYnVmWzRdID0gYnVmWzVdID0gYnVmWzZdID0gMDsKKworCWkgPSB1c2JfY29udHJvbF9tc2cgKHNlcmlhbC0+ZGV2LCB1c2JfcmN2Y3RybHBpcGUgKHNlcmlhbC0+ZGV2LCAwKSwKKwkJCSAgICAgR0VUX0xJTkVfUkVRVUVTVCwgR0VUX0xJTkVfUkVRVUVTVF9UWVBFLAorCQkJICAgICAwLCAwLCBidWYsIDcsIDEwMCk7CisJZGJnICgiMHhhMToweDIxOjA6MCAgJWQgLSAleCAleCAleCAleCAleCAleCAleCIsIGksCisJICAgICBidWZbMF0sIGJ1ZlsxXSwgYnVmWzJdLCBidWZbM10sIGJ1Zls0XSwgYnVmWzVdLCBidWZbNl0pOworCisJaWYgKGNmbGFnICYgQ1JUU0NUUykgeworCQlfX3UxNiBpbmRleDsKKwkJaWYgKHByaXYtPnR5cGUgPT0gSFgpCisJCQlpbmRleCA9IDB4NjE7CisJCWVsc2UKKwkJCWluZGV4ID0gMHg0MTsKKwkJaSA9IHVzYl9jb250cm9sX21zZyhzZXJpYWwtPmRldiwgCisJCQkJICAgIHVzYl9zbmRjdHJscGlwZShzZXJpYWwtPmRldiwgMCksCisJCQkJICAgIFZFTkRPUl9XUklURV9SRVFVRVNULAorCQkJCSAgICBWRU5ET1JfV1JJVEVfUkVRVUVTVF9UWVBFLAorCQkJCSAgICAweDAsIGluZGV4LCBOVUxMLCAwLCAxMDApOworCQlkYmcgKCIweDQwOjB4MToweDA6MHgleCAgJWQiLCBpbmRleCwgaSk7CisJfQorCisJa2ZyZWUgKGJ1Zik7Cit9CisKK3N0YXRpYyBpbnQgcGwyMzAzX29wZW4gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKQoreworCXN0cnVjdCB0ZXJtaW9zIHRtcF90ZXJtaW9zOworCXN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgPSBwb3J0LT5zZXJpYWw7CisJc3RydWN0IHBsMjMwM19wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXVuc2lnbmVkIGNoYXIgKmJ1ZjsKKwlpbnQgcmVzdWx0OworCisJZGJnKCIlcyAtICBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJdXNiX2NsZWFyX2hhbHQoc2VyaWFsLT5kZXYsIHBvcnQtPndyaXRlX3VyYi0+cGlwZSk7CisJdXNiX2NsZWFyX2hhbHQoc2VyaWFsLT5kZXYsIHBvcnQtPnJlYWRfdXJiLT5waXBlKTsKKworCWJ1ZiA9IGttYWxsb2MoMTAsIEdGUF9LRVJORUwpOworCWlmIChidWY9PU5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCisjZGVmaW5lIEZJU0goYSxiLGMsZCkJCQkJCQkJCVwKKwlyZXN1bHQ9dXNiX2NvbnRyb2xfbXNnKHNlcmlhbC0+ZGV2LCB1c2JfcmN2Y3RybHBpcGUoc2VyaWFsLT5kZXYsMCksCVwKKwkJCSAgICAgICBiLCBhLCBjLCBkLCBidWYsIDEsIDEwMCk7CQkJXAorCWRiZygiMHgleDoweCV4OjB4JXg6MHgleCAgJWQgLSAleCIsYSxiLGMsZCxyZXN1bHQsYnVmWzBdKTsKKworI2RlZmluZSBTT1VQKGEsYixjLGQpCQkJCQkJCQlcCisJcmVzdWx0PXVzYl9jb250cm9sX21zZyhzZXJpYWwtPmRldiwgdXNiX3NuZGN0cmxwaXBlKHNlcmlhbC0+ZGV2LDApLAlcCisJCQkgICAgICAgYiwgYSwgYywgZCwgTlVMTCwgMCwgMTAwKTsJCQlcCisJZGJnKCIweCV4OjB4JXg6MHgleDoweCV4ICAlZCIsYSxiLGMsZCxyZXN1bHQpOworCisJRklTSCAoVkVORE9SX1JFQURfUkVRVUVTVF9UWVBFLCBWRU5ET1JfUkVBRF9SRVFVRVNULCAweDg0ODQsIDApOworCVNPVVAgKFZFTkRPUl9XUklURV9SRVFVRVNUX1RZUEUsIFZFTkRPUl9XUklURV9SRVFVRVNULCAweDA0MDQsIDApOworCUZJU0ggKFZFTkRPUl9SRUFEX1JFUVVFU1RfVFlQRSwgVkVORE9SX1JFQURfUkVRVUVTVCwgMHg4NDg0LCAwKTsKKwlGSVNIIChWRU5ET1JfUkVBRF9SRVFVRVNUX1RZUEUsIFZFTkRPUl9SRUFEX1JFUVVFU1QsIDB4ODM4MywgMCk7CisJRklTSCAoVkVORE9SX1JFQURfUkVRVUVTVF9UWVBFLCBWRU5ET1JfUkVBRF9SRVFVRVNULCAweDg0ODQsIDApOworCVNPVVAgKFZFTkRPUl9XUklURV9SRVFVRVNUX1RZUEUsIFZFTkRPUl9XUklURV9SRVFVRVNULCAweDA0MDQsIDEpOworCUZJU0ggKFZFTkRPUl9SRUFEX1JFUVVFU1RfVFlQRSwgVkVORE9SX1JFQURfUkVRVUVTVCwgMHg4NDg0LCAwKTsKKwlGSVNIIChWRU5ET1JfUkVBRF9SRVFVRVNUX1RZUEUsIFZFTkRPUl9SRUFEX1JFUVVFU1QsIDB4ODM4MywgMCk7CisJU09VUCAoVkVORE9SX1dSSVRFX1JFUVVFU1RfVFlQRSwgVkVORE9SX1dSSVRFX1JFUVVFU1QsIDAsIDEpOworCVNPVVAgKFZFTkRPUl9XUklURV9SRVFVRVNUX1RZUEUsIFZFTkRPUl9XUklURV9SRVFVRVNULCAxLCAwKTsKKworCWlmIChwcml2LT50eXBlID09IEhYKSB7CisJCS8qIEhYIGNoaXAgKi8KKwkJU09VUCAoVkVORE9SX1dSSVRFX1JFUVVFU1RfVFlQRSwgVkVORE9SX1dSSVRFX1JFUVVFU1QsIDIsIDB4NDQpOworCQkvKiByZXNldCB1cHN0cmVhbSBkYXRhIHBpcGVzICovCisgICAgICAgICAgCVNPVVAgKFZFTkRPUl9XUklURV9SRVFVRVNUX1RZUEUsIFZFTkRPUl9XUklURV9SRVFVRVNULCA4LCAwKTsKKyAgICAgICAgCVNPVVAgKFZFTkRPUl9XUklURV9SRVFVRVNUX1RZUEUsIFZFTkRPUl9XUklURV9SRVFVRVNULCA5LCAwKTsKKwl9IGVsc2UgeworCQlTT1VQIChWRU5ET1JfV1JJVEVfUkVRVUVTVF9UWVBFLCBWRU5ET1JfV1JJVEVfUkVRVUVTVCwgMiwgMHgyNCk7CisJfQorCisJa2ZyZWUoYnVmKTsKKworCS8qIFNldHVwIHRlcm1pb3MgKi8KKwlpZiAocG9ydC0+dHR5KSB7CisJCXBsMjMwM19zZXRfdGVybWlvcyAocG9ydCwgJnRtcF90ZXJtaW9zKTsKKwl9CisKKwkvL0ZJWE1FOiBuZWVkIHRvIGFzc2VydCBSVFMgYW5kIERUUiBpZiBDUlRTQ1RTIG9mZgorCisJZGJnKCIlcyAtIHN1Ym1pdHRpbmcgcmVhZCB1cmIiLCBfX0ZVTkNUSU9OX18pOworCXBvcnQtPnJlYWRfdXJiLT5kZXYgPSBzZXJpYWwtPmRldjsKKwlyZXN1bHQgPSB1c2Jfc3VibWl0X3VyYiAocG9ydC0+cmVhZF91cmIsIEdGUF9LRVJORUwpOworCWlmIChyZXN1bHQpIHsKKwkJZGV2X2VycigmcG9ydC0+ZGV2LCAiJXMgLSBmYWlsZWQgc3VibWl0dGluZyByZWFkIHVyYiwgZXJyb3IgJWRcbiIsIF9fRlVOQ1RJT05fXywgcmVzdWx0KTsKKwkJcGwyMzAzX2Nsb3NlIChwb3J0LCBOVUxMKTsKKwkJcmV0dXJuIC1FUFJPVE87CisJfQorCisJZGJnKCIlcyAtIHN1Ym1pdHRpbmcgaW50ZXJydXB0IHVyYiIsIF9fRlVOQ1RJT05fXyk7CisJcG9ydC0+aW50ZXJydXB0X2luX3VyYi0+ZGV2ID0gc2VyaWFsLT5kZXY7CisJcmVzdWx0ID0gdXNiX3N1Ym1pdF91cmIgKHBvcnQtPmludGVycnVwdF9pbl91cmIsIEdGUF9LRVJORUwpOworCWlmIChyZXN1bHQpIHsKKwkJZGV2X2VycigmcG9ydC0+ZGV2LCAiJXMgLSBmYWlsZWQgc3VibWl0dGluZyBpbnRlcnJ1cHQgdXJiLCBlcnJvciAlZFxuIiwgX19GVU5DVElPTl9fLCByZXN1bHQpOworCQlwbDIzMDNfY2xvc2UgKHBvcnQsIE5VTEwpOworCQlyZXR1cm4gLUVQUk9UTzsKKwl9CisJcmV0dXJuIDA7Cit9CisKKworc3RhdGljIHZvaWQgcGwyMzAzX2Nsb3NlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlzdHJ1Y3QgcGwyMzAzX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBpbnQgY19jZmxhZzsKKwlpbnQgYnBzOworCWxvbmcgdGltZW91dDsKKwl3YWl0X3F1ZXVlX3Qgd2FpdDsJCQkJCQlcCisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCS8qIHdhaXQgZm9yIGRhdGEgdG8gZHJhaW4gZnJvbSB0aGUgYnVmZmVyICovCisJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwl0aW1lb3V0ID0gUEwyMzAzX0NMT1NJTkdfV0FJVDsKKwlpbml0X3dhaXRxdWV1ZV9lbnRyeSgmd2FpdCwgY3VycmVudCk7CisJYWRkX3dhaXRfcXVldWUoJnBvcnQtPnR0eS0+d3JpdGVfd2FpdCwgJndhaXQpOworCWZvciAoOzspIHsKKwkJc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19JTlRFUlJVUFRJQkxFKTsKKwkJaWYgKHBsMjMwM19idWZfZGF0YV9hdmFpbChwcml2LT5idWYpID09IDAKKwkJfHwgdGltZW91dCA9PSAwIHx8IHNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpCisJCXx8ICF1c2JfZ2V0X2ludGZkYXRhKHBvcnQtPnNlcmlhbC0+aW50ZXJmYWNlKSkJLyogZGlzY29ubmVjdCAqLworCQkJYnJlYWs7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwkJdGltZW91dCA9IHNjaGVkdWxlX3RpbWVvdXQodGltZW91dCk7CisJCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJfQorCXNldF9jdXJyZW50X3N0YXRlKFRBU0tfUlVOTklORyk7CisJcmVtb3ZlX3dhaXRfcXVldWUoJnBvcnQtPnR0eS0+d3JpdGVfd2FpdCwgJndhaXQpOworCS8qIGNsZWFyIG91dCBhbnkgcmVtYWluaW5nIGRhdGEgaW4gdGhlIGJ1ZmZlciAqLworCXBsMjMwM19idWZfY2xlYXIocHJpdi0+YnVmKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CisKKwkvKiB3YWl0IGZvciBjaGFyYWN0ZXJzIHRvIGRyYWluIGZyb20gdGhlIGRldmljZSAqLworCS8qICh0aGlzIGlzIGxvbmcgZW5vdWdoIGZvciB0aGUgZW50aXJlIDI1NiBieXRlICovCisJLyogcGwyMzAzIGhhcmR3YXJlIGJ1ZmZlciB0byBkcmFpbiB3aXRoIG5vIGZsb3cgKi8KKwkvKiBjb250cm9sIGZvciBkYXRhIHJhdGVzIG9mIDEyMDAgYnBzIG9yIG1vcmUsICovCisJLyogZm9yIGxvd2VyIHJhdGVzIHdlIHNob3VsZCByZWFsbHkga25vdyBob3cgbXVjaCAqLworCS8qIGRhdGEgaXMgaW4gdGhlIGJ1ZmZlciB0byBjb21wdXRlIGEgZGVsYXkgKi8KKwkvKiB0aGF0IGlzIG5vdCB1bm5lY2Vzc2FyaWx5IGxvbmcpICovCisJYnBzID0gdHR5X2dldF9iYXVkX3JhdGUocG9ydC0+dHR5KTsKKwlpZiAoYnBzID4gMTIwMCkKKwkJdGltZW91dCA9IG1heCgoSFoqMjU2MCkvYnBzLEhaLzEwKTsKKwllbHNlCisJCXRpbWVvdXQgPSAyKkhaOworCXNldF9jdXJyZW50X3N0YXRlKFRBU0tfSU5URVJSVVBUSUJMRSk7CisJc2NoZWR1bGVfdGltZW91dCh0aW1lb3V0KTsKKworCS8qIHNodXRkb3duIG91ciB1cmJzICovCisJZGJnKCIlcyAtIHNodXR0aW5nIGRvd24gdXJicyIsIF9fRlVOQ1RJT05fXyk7CisJdXNiX2tpbGxfdXJiKHBvcnQtPndyaXRlX3VyYik7CisJdXNiX2tpbGxfdXJiKHBvcnQtPnJlYWRfdXJiKTsKKwl1c2Jfa2lsbF91cmIocG9ydC0+aW50ZXJydXB0X2luX3VyYik7CisKKwlpZiAocG9ydC0+dHR5KSB7CisJCWNfY2ZsYWcgPSBwb3J0LT50dHktPnRlcm1pb3MtPmNfY2ZsYWc7CisJCWlmIChjX2NmbGFnICYgSFVQQ0wpIHsKKwkJCS8qIGRyb3AgRFRSIGFuZCBSVFMgKi8KKwkJCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJCQlwcml2LT5saW5lX2NvbnRyb2wgPSAwOworCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSAoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwkJCXNldF9jb250cm9sX2xpbmVzIChwb3J0LT5zZXJpYWwtPmRldiwgMCk7CisJCX0KKwl9Cit9CisKK3N0YXRpYyBpbnQgcGwyMzAzX3Rpb2Ntc2V0IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlsZSwKKwkJCSAgICB1bnNpZ25lZCBpbnQgc2V0LCB1bnNpZ25lZCBpbnQgY2xlYXIpCit7CisJc3RydWN0IHBsMjMwM19wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdTggY29udHJvbDsKKworCXNwaW5fbG9ja19pcnFzYXZlICgmcHJpdi0+bG9jaywgZmxhZ3MpOworCWlmIChzZXQgJiBUSU9DTV9SVFMpCisJCXByaXYtPmxpbmVfY29udHJvbCB8PSBDT05UUk9MX1JUUzsKKwlpZiAoc2V0ICYgVElPQ01fRFRSKQorCQlwcml2LT5saW5lX2NvbnRyb2wgfD0gQ09OVFJPTF9EVFI7CisJaWYgKGNsZWFyICYgVElPQ01fUlRTKQorCQlwcml2LT5saW5lX2NvbnRyb2wgJj0gfkNPTlRST0xfUlRTOworCWlmIChjbGVhciAmIFRJT0NNX0RUUikKKwkJcHJpdi0+bGluZV9jb250cm9sICY9IH5DT05UUk9MX0RUUjsKKwljb250cm9sID0gcHJpdi0+bGluZV9jb250cm9sOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUgKCZwcml2LT5sb2NrLCBmbGFncyk7CisKKwlyZXR1cm4gc2V0X2NvbnRyb2xfbGluZXMgKHBvcnQtPnNlcmlhbC0+ZGV2LCBjb250cm9sKTsKK30KKworc3RhdGljIGludCBwbDIzMDNfdGlvY21nZXQgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXN0cnVjdCBwbDIzMDNfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGludCBtY3I7CisJdW5zaWduZWQgaW50IHN0YXR1czsKKwl1bnNpZ25lZCBpbnQgcmVzdWx0OworCisJZGJnKCIlcyAoJWQpIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJc3Bpbl9sb2NrX2lycXNhdmUgKCZwcml2LT5sb2NrLCBmbGFncyk7CisJbWNyID0gcHJpdi0+bGluZV9jb250cm9sOworCXN0YXR1cyA9IHByaXYtPmxpbmVfc3RhdHVzOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUgKCZwcml2LT5sb2NrLCBmbGFncyk7CisKKwlyZXN1bHQgPSAoKG1jciAmIENPTlRST0xfRFRSKQkJPyBUSU9DTV9EVFIgOiAwKQorCQkgIHwgKChtY3IgJiBDT05UUk9MX1JUUykJPyBUSU9DTV9SVFMgOiAwKQorCQkgIHwgKChzdGF0dXMgJiBVQVJUX0NUUykJPyBUSU9DTV9DVFMgOiAwKQorCQkgIHwgKChzdGF0dXMgJiBVQVJUX0RTUikJPyBUSU9DTV9EU1IgOiAwKQorCQkgIHwgKChzdGF0dXMgJiBVQVJUX1JJTkcpCT8gVElPQ01fUkkgIDogMCkKKwkJICB8ICgoc3RhdHVzICYgVUFSVF9EQ0QpCT8gVElPQ01fQ0QgIDogMCk7CisKKwlkYmcoIiVzIC0gcmVzdWx0ID0gJXgiLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgaW50IHdhaXRfbW9kZW1faW5mbyhzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCB1bnNpZ25lZCBpbnQgYXJnKQoreworCXN0cnVjdCBwbDIzMDNfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGludCBwcmV2c3RhdHVzOworCXVuc2lnbmVkIGludCBzdGF0dXM7CisJdW5zaWduZWQgaW50IGNoYW5nZWQ7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSAoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwlwcmV2c3RhdHVzID0gcHJpdi0+bGluZV9zdGF0dXM7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSAoJnByaXYtPmxvY2ssIGZsYWdzKTsKKworCXdoaWxlICgxKSB7CisJCWludGVycnVwdGlibGVfc2xlZXBfb24oJnByaXYtPmRlbHRhX21zcl93YWl0KTsKKwkJLyogc2VlIGlmIGEgc2lnbmFsIGRpZCBpdCAqLworCQlpZiAoc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpCisJCQlyZXR1cm4gLUVSRVNUQVJUU1lTOworCQkKKwkJc3Bpbl9sb2NrX2lycXNhdmUgKCZwcml2LT5sb2NrLCBmbGFncyk7CisJCXN0YXR1cyA9IHByaXYtPmxpbmVfc3RhdHVzOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlICgmcHJpdi0+bG9jaywgZmxhZ3MpOworCQkKKwkJY2hhbmdlZD1wcmV2c3RhdHVzXnN0YXR1czsKKwkJCisJCWlmICgoKGFyZyAmIFRJT0NNX1JORykgJiYgKGNoYW5nZWQgJiBVQVJUX1JJTkcpKSB8fAorCQkgICAgKChhcmcgJiBUSU9DTV9EU1IpICYmIChjaGFuZ2VkICYgVUFSVF9EU1IpKSB8fAorCQkgICAgKChhcmcgJiBUSU9DTV9DRCkgICYmIChjaGFuZ2VkICYgVUFSVF9EQ0QpKSB8fAorCQkgICAgKChhcmcgJiBUSU9DTV9DVFMpICYmIChjaGFuZ2VkICYgVUFSVF9DVFMpKSApIHsKKwkJCXJldHVybiAwOworCQl9CisJCXByZXZzdGF0dXMgPSBzdGF0dXM7CisJfQorCS8qIE5PVFJFQUNIRUQgKi8KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBwbDIzMDNfaW9jdGwgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKK3sKKwlkYmcoIiVzICglZCkgY21kID0gMHglMDR4IiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIsIGNtZCk7CisKKwlzd2l0Y2ggKGNtZCkgeworCQljYXNlIFRJT0NNSVdBSVQ6CisJCQlkYmcoIiVzICglZCkgVElPQ01JV0FJVCIsIF9fRlVOQ1RJT05fXywgIHBvcnQtPm51bWJlcik7CisJCQlyZXR1cm4gd2FpdF9tb2RlbV9pbmZvKHBvcnQsIGFyZyk7CisKKwkJZGVmYXVsdDoKKwkJCWRiZygiJXMgbm90IHN1cHBvcnRlZCA9IDB4JTA0eCIsIF9fRlVOQ1RJT05fXywgY21kKTsKKwkJCWJyZWFrOworCX0KKworCXJldHVybiAtRU5PSU9DVExDTUQ7Cit9CisKK3N0YXRpYyB2b2lkIHBsMjMwM19icmVha19jdGwgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIGludCBicmVha19zdGF0ZSkKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsID0gcG9ydC0+c2VyaWFsOworCXUxNiBzdGF0ZTsKKwlpbnQgcmVzdWx0OworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAoYnJlYWtfc3RhdGUgPT0gMCkKKwkJc3RhdGUgPSBCUkVBS19PRkY7CisJZWxzZQorCQlzdGF0ZSA9IEJSRUFLX09OOworCWRiZygiJXMgLSB0dXJuaW5nIGJyZWFrICVzIiwgX19GVU5DVElPTl9fLCBzdGF0ZT09QlJFQUtfT0ZGID8gIm9mZiIgOiAib24iKTsKKworCXJlc3VsdCA9IHVzYl9jb250cm9sX21zZyAoc2VyaWFsLT5kZXYsIHVzYl9zbmRjdHJscGlwZSAoc2VyaWFsLT5kZXYsIDApLAorCQkJCSAgQlJFQUtfUkVRVUVTVCwgQlJFQUtfUkVRVUVTVF9UWVBFLCBzdGF0ZSwgCisJCQkJICAwLCBOVUxMLCAwLCAxMDApOworCWlmIChyZXN1bHQpCisJCWRiZygiJXMgLSBlcnJvciBzZW5kaW5nIGJyZWFrID0gJWQiLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7Cit9CisKKworc3RhdGljIHZvaWQgcGwyMzAzX3NodXRkb3duIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQoreworCWludCBpOworCXN0cnVjdCBwbDIzMDNfcHJpdmF0ZSAqcHJpdjsKKworCWRiZygiJXMiLCBfX0ZVTkNUSU9OX18pOworCisJZm9yIChpID0gMDsgaSA8IHNlcmlhbC0+bnVtX3BvcnRzOyArK2kpIHsKKwkJcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShzZXJpYWwtPnBvcnRbaV0pOworCQlpZiAocHJpdikgeworCQkJcGwyMzAzX2J1Zl9mcmVlKHByaXYtPmJ1Zik7CisJCQlrZnJlZShwcml2KTsKKwkJCXVzYl9zZXRfc2VyaWFsX3BvcnRfZGF0YShzZXJpYWwtPnBvcnRbaV0sIE5VTEwpOworCQl9CisJfQkJCit9CisKKworc3RhdGljIHZvaWQgcGwyMzAzX3JlYWRfaW50X2NhbGxiYWNrIChzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqKSB1cmItPmNvbnRleHQ7CisJc3RydWN0IHBsMjMwM19wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXVuc2lnbmVkIGNoYXIgKmRhdGEgPSB1cmItPnRyYW5zZmVyX2J1ZmZlcjsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCBzdGF0dXM7CisJdTggdWFydF9zdGF0ZTsKKworCWRiZygiJXMgKCVkKSIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCXN3aXRjaCAodXJiLT5zdGF0dXMpIHsKKwljYXNlIDA6CisJCS8qIHN1Y2Nlc3MgKi8KKwkJYnJlYWs7CisJY2FzZSAtRUNPTk5SRVNFVDoKKwljYXNlIC1FTk9FTlQ6CisJY2FzZSAtRVNIVVRET1dOOgorCQkvKiB0aGlzIHVyYiBpcyB0ZXJtaW5hdGVkLCBjbGVhbiB1cCAqLworCQlkYmcoIiVzIC0gdXJiIHNodXR0aW5nIGRvd24gd2l0aCBzdGF0dXM6ICVkIiwgX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyk7CisJCXJldHVybjsKKwlkZWZhdWx0OgorCQlkYmcoIiVzIC0gbm9uemVybyB1cmIgc3RhdHVzIHJlY2VpdmVkOiAlZCIsIF9fRlVOQ1RJT05fXywgdXJiLT5zdGF0dXMpOworCQlnb3RvIGV4aXQ7CisJfQorCisKKwl1c2Jfc2VyaWFsX2RlYnVnX2RhdGEoZGVidWcsICZwb3J0LT5kZXYsIF9fRlVOQ1RJT05fXywgdXJiLT5hY3R1YWxfbGVuZ3RoLCB1cmItPnRyYW5zZmVyX2J1ZmZlcik7CisKKwlpZiAodXJiLT5hY3R1YWxfbGVuZ3RoIDwgVUFSVF9TVEFURSkKKwkJZ290byBleGl0OworCisJLyogU2F2ZSBvZmYgdGhlIHVhcnQgc3RhdHVzIGZvciBvdGhlcnMgdG8gbG9vayBhdCAqLworCXVhcnRfc3RhdGUgPSBkYXRhW1VBUlRfU1RBVEVdOworCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJdWFydF9zdGF0ZSB8PSAocHJpdi0+bGluZV9zdGF0dXMgJiBVQVJUX1NUQVRFX1RSQU5TSUVOVF9NQVNLKTsKKwlwcml2LT5saW5lX3N0YXR1cyA9IHVhcnRfc3RhdGU7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCQkKK2V4aXQ6CisJc3RhdHVzID0gdXNiX3N1Ym1pdF91cmIgKHVyYiwgR0ZQX0FUT01JQyk7CisJaWYgKHN0YXR1cykKKwkJZGV2X2VycigmdXJiLT5kZXYtPmRldiwgIiVzIC0gdXNiX3N1Ym1pdF91cmIgZmFpbGVkIHdpdGggcmVzdWx0ICVkXG4iLAorCQkJX19GVU5DVElPTl9fLCBzdGF0dXMpOworfQorCisKK3N0YXRpYyB2b2lkIHBsMjMwM19yZWFkX2J1bGtfY2FsbGJhY2sgKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopIHVyYi0+Y29udGV4dDsKKwlzdHJ1Y3QgcGwyMzAzX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eTsKKwl1bnNpZ25lZCBjaGFyICpkYXRhID0gdXJiLT50cmFuc2Zlcl9idWZmZXI7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQgaTsKKwlpbnQgcmVzdWx0OworCXU4IHN0YXR1czsKKwljaGFyIHR0eV9mbGFnOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAodXJiLT5zdGF0dXMpIHsKKwkJZGJnKCIlcyAtIHVyYi0+c3RhdHVzID0gJWQiLCBfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzKTsKKwkJaWYgKCFwb3J0LT5vcGVuX2NvdW50KSB7CisJCQlkYmcoIiVzIC0gcG9ydCBpcyBjbG9zZWQsIGV4aXRpbmcuIiwgX19GVU5DVElPTl9fKTsKKwkJCXJldHVybjsKKwkJfQorCQlpZiAodXJiLT5zdGF0dXMgPT0gLUVQUk9UTykgeworCQkJLyogUEwyMzAzIG15c3RlcmlvdXNseSBmYWlscyB3aXRoIC1FUFJPVE8gcmVzY2hlZHVsZSB0aGUgcmVhZCAqLworCQkJZGJnKCIlcyAtIGNhdWdodCAtRVBST1RPLCByZXN1Ym1pdHRpbmcgdGhlIHVyYiIsIF9fRlVOQ1RJT05fXyk7CisJCQl1cmItPnN0YXR1cyA9IDA7CisJCQl1cmItPmRldiA9IHBvcnQtPnNlcmlhbC0+ZGV2OworCQkJcmVzdWx0ID0gdXNiX3N1Ym1pdF91cmIodXJiLCBHRlBfQVRPTUlDKTsKKwkJCWlmIChyZXN1bHQpCisJCQkJZGV2X2VycigmdXJiLT5kZXYtPmRldiwgIiVzIC0gZmFpbGVkIHJlc3VibWl0dGluZyByZWFkIHVyYiwgZXJyb3IgJWRcbiIsIF9fRlVOQ1RJT05fXywgcmVzdWx0KTsKKwkJCXJldHVybjsKKwkJfQorCQlkYmcoIiVzIC0gdW5hYmxlIHRvIGhhbmRsZSB0aGUgZXJyb3IsIGV4aXRpbmcuIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuOworCX0KKworCXVzYl9zZXJpYWxfZGVidWdfZGF0YShkZWJ1ZywgJnBvcnQtPmRldiwgX19GVU5DVElPTl9fLCB1cmItPmFjdHVhbF9sZW5ndGgsIGRhdGEpOworCisJLyogZ2V0IHR0eV9mbGFnIGZyb20gc3RhdHVzICovCisJdHR5X2ZsYWcgPSBUVFlfTk9STUFMOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwlzdGF0dXMgPSBwcml2LT5saW5lX3N0YXR1czsKKwlwcml2LT5saW5lX3N0YXR1cyAmPSB+VUFSVF9TVEFURV9UUkFOU0lFTlRfTUFTSzsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJd2FrZV91cF9pbnRlcnJ1cHRpYmxlICgmcHJpdi0+ZGVsdGFfbXNyX3dhaXQpOworCisJLyogYnJlYWsgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHBhcml0eSwgKi8KKwkvKiB3aGljaCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgZnJhbWluZyBlcnJvcnMgKi8KKwlpZiAoc3RhdHVzICYgVUFSVF9CUkVBS19FUlJPUiApCisJCXR0eV9mbGFnID0gVFRZX0JSRUFLOworCWVsc2UgaWYgKHN0YXR1cyAmIFVBUlRfUEFSSVRZX0VSUk9SKQorCQl0dHlfZmxhZyA9IFRUWV9QQVJJVFk7CisJZWxzZSBpZiAoc3RhdHVzICYgVUFSVF9GUkFNRV9FUlJPUikKKwkJdHR5X2ZsYWcgPSBUVFlfRlJBTUU7CisJZGJnKCIlcyAtIHR0eV9mbGFnID0gJWQiLCBfX0ZVTkNUSU9OX18sIHR0eV9mbGFnKTsKKworCXR0eSA9IHBvcnQtPnR0eTsKKwlpZiAodHR5ICYmIHVyYi0+YWN0dWFsX2xlbmd0aCkgeworCQkvKiBvdmVycnVuIGlzIHNwZWNpYWwsIG5vdCBhc3NvY2lhdGVkIHdpdGggYSBjaGFyICovCisJCWlmIChzdGF0dXMgJiBVQVJUX09WRVJSVU5fRVJST1IpCisJCQl0dHlfaW5zZXJ0X2ZsaXBfY2hhcih0dHksIDAsIFRUWV9PVkVSUlVOKTsKKworCQlmb3IgKGkgPSAwOyBpIDwgdXJiLT5hY3R1YWxfbGVuZ3RoOyArK2kpIHsKKwkJCWlmICh0dHktPmZsaXAuY291bnQgPj0gVFRZX0ZMSVBCVUZfU0laRSkgeworCQkJCXR0eV9mbGlwX2J1ZmZlcl9wdXNoKHR0eSk7CisJCQl9CisJCQl0dHlfaW5zZXJ0X2ZsaXBfY2hhciAodHR5LCBkYXRhW2ldLCB0dHlfZmxhZyk7CisJCX0KKwkJdHR5X2ZsaXBfYnVmZmVyX3B1c2ggKHR0eSk7CisJfQorCisJLyogU2NoZWR1bGUgdGhlIG5leHQgcmVhZCBfaWZfIHdlIGFyZSBzdGlsbCBvcGVuICovCisJaWYgKHBvcnQtPm9wZW5fY291bnQpIHsKKwkJdXJiLT5kZXYgPSBwb3J0LT5zZXJpYWwtPmRldjsKKwkJcmVzdWx0ID0gdXNiX3N1Ym1pdF91cmIodXJiLCBHRlBfQVRPTUlDKTsKKwkJaWYgKHJlc3VsdCkKKwkJCWRldl9lcnIoJnVyYi0+ZGV2LT5kZXYsICIlcyAtIGZhaWxlZCByZXN1Ym1pdHRpbmcgcmVhZCB1cmIsIGVycm9yICVkXG4iLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisJfQorCisJcmV0dXJuOworfQorCisKKworc3RhdGljIHZvaWQgcGwyMzAzX3dyaXRlX2J1bGtfY2FsbGJhY2sgKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopIHVyYi0+Y29udGV4dDsKKwlzdHJ1Y3QgcGwyMzAzX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJaW50IHJlc3VsdDsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJc3dpdGNoICh1cmItPnN0YXR1cykgeworCWNhc2UgMDoKKwkJLyogc3VjY2VzcyAqLworCQlicmVhazsKKwljYXNlIC1FQ09OTlJFU0VUOgorCWNhc2UgLUVOT0VOVDoKKwljYXNlIC1FU0hVVERPV046CisJCS8qIHRoaXMgdXJiIGlzIHRlcm1pbmF0ZWQsIGNsZWFuIHVwICovCisJCWRiZygiJXMgLSB1cmIgc2h1dHRpbmcgZG93biB3aXRoIHN0YXR1czogJWQiLCBfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzKTsKKwkJcHJpdi0+d3JpdGVfdXJiX2luX3VzZSA9IDA7CisJCXJldHVybjsKKwlkZWZhdWx0OgorCQkvKiBlcnJvciBpbiB0aGUgdXJiLCBzbyB3ZSBoYXZlIHRvIHJlc3VibWl0IGl0ICovCisJCWRiZygiJXMgLSBPdmVyZmxvdyBpbiB3cml0ZSIsIF9fRlVOQ1RJT05fXyk7CisJCWRiZygiJXMgLSBub256ZXJvIHdyaXRlIGJ1bGsgc3RhdHVzIHJlY2VpdmVkOiAlZCIsIF9fRlVOQ1RJT05fXywgdXJiLT5zdGF0dXMpOworCQlwb3J0LT53cml0ZV91cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGggPSAxOworCQlwb3J0LT53cml0ZV91cmItPmRldiA9IHBvcnQtPnNlcmlhbC0+ZGV2OworCQlyZXN1bHQgPSB1c2Jfc3VibWl0X3VyYiAocG9ydC0+d3JpdGVfdXJiLCBHRlBfQVRPTUlDKTsKKwkJaWYgKHJlc3VsdCkKKwkJCWRldl9lcnIoJnVyYi0+ZGV2LT5kZXYsICIlcyAtIGZhaWxlZCByZXN1Ym1pdHRpbmcgd3JpdGUgdXJiLCBlcnJvciAlZFxuIiwgX19GVU5DVElPTl9fLCByZXN1bHQpOworCQllbHNlCisJCQlyZXR1cm47CisJfQorCisJcHJpdi0+d3JpdGVfdXJiX2luX3VzZSA9IDA7CisKKwkvKiBzZW5kIGFueSBidWZmZXJlZCBkYXRhICovCisJcGwyMzAzX3NlbmQocG9ydCk7Cit9CisKKworLyoKKyAqIHBsMjMwM19idWZfYWxsb2MKKyAqCisgKiBBbGxvY2F0ZSBhIGNpcmN1bGFyIGJ1ZmZlciBhbmQgYWxsIGFzc29jaWF0ZWQgbWVtb3J5LgorICovCisKK3N0YXRpYyBzdHJ1Y3QgcGwyMzAzX2J1ZiAqcGwyMzAzX2J1Zl9hbGxvYyh1bnNpZ25lZCBpbnQgc2l6ZSkKK3sKKworCXN0cnVjdCBwbDIzMDNfYnVmICpwYjsKKworCisJaWYgKHNpemUgPT0gMCkKKwkJcmV0dXJuIE5VTEw7CisKKwlwYiA9IChzdHJ1Y3QgcGwyMzAzX2J1ZiAqKWttYWxsb2Moc2l6ZW9mKHN0cnVjdCBwbDIzMDNfYnVmKSwgR0ZQX0tFUk5FTCk7CisJaWYgKHBiID09IE5VTEwpCisJCXJldHVybiBOVUxMOworCisJcGItPmJ1Zl9idWYgPSBrbWFsbG9jKHNpemUsIEdGUF9LRVJORUwpOworCWlmIChwYi0+YnVmX2J1ZiA9PSBOVUxMKSB7CisJCWtmcmVlKHBiKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJcGItPmJ1Zl9zaXplID0gc2l6ZTsKKwlwYi0+YnVmX2dldCA9IHBiLT5idWZfcHV0ID0gcGItPmJ1Zl9idWY7CisKKwlyZXR1cm4gcGI7CisKK30KKworCisvKgorICogcGwyMzAzX2J1Zl9mcmVlCisgKgorICogRnJlZSB0aGUgYnVmZmVyIGFuZCBhbGwgYXNzb2NpYXRlZCBtZW1vcnkuCisgKi8KKworc3RhdGljIHZvaWQgcGwyMzAzX2J1Zl9mcmVlKHN0cnVjdCBwbDIzMDNfYnVmICpwYikKK3sKKwlpZiAocGIgIT0gTlVMTCkgeworCQlpZiAocGItPmJ1Zl9idWYgIT0gTlVMTCkKKwkJCWtmcmVlKHBiLT5idWZfYnVmKTsKKwkJa2ZyZWUocGIpOworCX0KK30KKworCisvKgorICogcGwyMzAzX2J1Zl9jbGVhcgorICoKKyAqIENsZWFyIG91dCBhbGwgZGF0YSBpbiB0aGUgY2lyY3VsYXIgYnVmZmVyLgorICovCisKK3N0YXRpYyB2b2lkIHBsMjMwM19idWZfY2xlYXIoc3RydWN0IHBsMjMwM19idWYgKnBiKQoreworCWlmIChwYiAhPSBOVUxMKQorCQlwYi0+YnVmX2dldCA9IHBiLT5idWZfcHV0OworCQkvKiBlcXVpdmFsZW50IHRvIGEgZ2V0IG9mIGFsbCBkYXRhIGF2YWlsYWJsZSAqLworfQorCisKKy8qCisgKiBwbDIzMDNfYnVmX2RhdGFfYXZhaWwKKyAqCisgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcyBvZiBkYXRhIGF2YWlsYWJsZSBpbiB0aGUgY2lyY3VsYXIKKyAqIGJ1ZmZlci4KKyAqLworCitzdGF0aWMgdW5zaWduZWQgaW50IHBsMjMwM19idWZfZGF0YV9hdmFpbChzdHJ1Y3QgcGwyMzAzX2J1ZiAqcGIpCit7CisJaWYgKHBiICE9IE5VTEwpCisJCXJldHVybiAoKHBiLT5idWZfc2l6ZSArIHBiLT5idWZfcHV0IC0gcGItPmJ1Zl9nZXQpICUgcGItPmJ1Zl9zaXplKTsKKwllbHNlCisJCXJldHVybiAwOworfQorCisKKy8qCisgKiBwbDIzMDNfYnVmX3NwYWNlX2F2YWlsCisgKgorICogUmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0ZXMgb2Ygc3BhY2UgYXZhaWxhYmxlIGluIHRoZSBjaXJjdWxhcgorICogYnVmZmVyLgorICovCisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgcGwyMzAzX2J1Zl9zcGFjZV9hdmFpbChzdHJ1Y3QgcGwyMzAzX2J1ZiAqcGIpCit7CisJaWYgKHBiICE9IE5VTEwpCisJCXJldHVybiAoKHBiLT5idWZfc2l6ZSArIHBiLT5idWZfZ2V0IC0gcGItPmJ1Zl9wdXQgLSAxKSAlIHBiLT5idWZfc2l6ZSk7CisJZWxzZQorCQlyZXR1cm4gMDsKK30KKworCisvKgorICogcGwyMzAzX2J1Zl9wdXQKKyAqCisgKiBDb3B5IGRhdGEgZGF0YSBmcm9tIGEgdXNlciBidWZmZXIgYW5kIHB1dCBpdCBpbnRvIHRoZSBjaXJjdWxhciBidWZmZXIuCisgKiBSZXN0cmljdCB0byB0aGUgYW1vdW50IG9mIHNwYWNlIGF2YWlsYWJsZS4KKyAqCisgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcyBjb3BpZWQuCisgKi8KKworc3RhdGljIHVuc2lnbmVkIGludCBwbDIzMDNfYnVmX3B1dChzdHJ1Y3QgcGwyMzAzX2J1ZiAqcGIsIGNvbnN0IGNoYXIgKmJ1ZiwKKwl1bnNpZ25lZCBpbnQgY291bnQpCit7CisKKwl1bnNpZ25lZCBpbnQgbGVuOworCisKKwlpZiAocGIgPT0gTlVMTCkKKwkJcmV0dXJuIDA7CisKKwlsZW4gID0gcGwyMzAzX2J1Zl9zcGFjZV9hdmFpbChwYik7CisJaWYgKGNvdW50ID4gbGVuKQorCQljb3VudCA9IGxlbjsKKworCWlmIChjb3VudCA9PSAwKQorCQlyZXR1cm4gMDsKKworCWxlbiA9IHBiLT5idWZfYnVmICsgcGItPmJ1Zl9zaXplIC0gcGItPmJ1Zl9wdXQ7CisJaWYgKGNvdW50ID4gbGVuKSB7CisJCW1lbWNweShwYi0+YnVmX3B1dCwgYnVmLCBsZW4pOworCQltZW1jcHkocGItPmJ1Zl9idWYsIGJ1ZitsZW4sIGNvdW50IC0gbGVuKTsKKwkJcGItPmJ1Zl9wdXQgPSBwYi0+YnVmX2J1ZiArIGNvdW50IC0gbGVuOworCX0gZWxzZSB7CisJCW1lbWNweShwYi0+YnVmX3B1dCwgYnVmLCBjb3VudCk7CisJCWlmIChjb3VudCA8IGxlbikKKwkJCXBiLT5idWZfcHV0ICs9IGNvdW50OworCQllbHNlIC8qIGNvdW50ID09IGxlbiAqLworCQkJcGItPmJ1Zl9wdXQgPSBwYi0+YnVmX2J1ZjsKKwl9CisKKwlyZXR1cm4gY291bnQ7CisKK30KKworCisvKgorICogcGwyMzAzX2J1Zl9nZXQKKyAqCisgKiBHZXQgZGF0YSBmcm9tIHRoZSBjaXJjdWxhciBidWZmZXIgYW5kIGNvcHkgdG8gdGhlIGdpdmVuIGJ1ZmZlci4KKyAqIFJlc3RyaWN0IHRvIHRoZSBhbW91bnQgb2YgZGF0YSBhdmFpbGFibGUuCisgKgorICogUmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0ZXMgY29waWVkLgorICovCisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgcGwyMzAzX2J1Zl9nZXQoc3RydWN0IHBsMjMwM19idWYgKnBiLCBjaGFyICpidWYsCisJdW5zaWduZWQgaW50IGNvdW50KQoreworCisJdW5zaWduZWQgaW50IGxlbjsKKworCisJaWYgKHBiID09IE5VTEwpCisJCXJldHVybiAwOworCisJbGVuID0gcGwyMzAzX2J1Zl9kYXRhX2F2YWlsKHBiKTsKKwlpZiAoY291bnQgPiBsZW4pCisJCWNvdW50ID0gbGVuOworCisJaWYgKGNvdW50ID09IDApCisJCXJldHVybiAwOworCisJbGVuID0gcGItPmJ1Zl9idWYgKyBwYi0+YnVmX3NpemUgLSBwYi0+YnVmX2dldDsKKwlpZiAoY291bnQgPiBsZW4pIHsKKwkJbWVtY3B5KGJ1ZiwgcGItPmJ1Zl9nZXQsIGxlbik7CisJCW1lbWNweShidWYrbGVuLCBwYi0+YnVmX2J1ZiwgY291bnQgLSBsZW4pOworCQlwYi0+YnVmX2dldCA9IHBiLT5idWZfYnVmICsgY291bnQgLSBsZW47CisJfSBlbHNlIHsKKwkJbWVtY3B5KGJ1ZiwgcGItPmJ1Zl9nZXQsIGNvdW50KTsKKwkJaWYgKGNvdW50IDwgbGVuKQorCQkJcGItPmJ1Zl9nZXQgKz0gY291bnQ7CisJCWVsc2UgLyogY291bnQgPT0gbGVuICovCisJCQlwYi0+YnVmX2dldCA9IHBiLT5idWZfYnVmOworCX0KKworCXJldHVybiBjb3VudDsKKworfQorCitzdGF0aWMgaW50IF9faW5pdCBwbDIzMDNfaW5pdCAodm9pZCkKK3sKKwlpbnQgcmV0dmFsOworCXJldHZhbCA9IHVzYl9zZXJpYWxfcmVnaXN0ZXIoJnBsMjMwM19kZXZpY2UpOworCWlmIChyZXR2YWwpCisJCWdvdG8gZmFpbGVkX3VzYl9zZXJpYWxfcmVnaXN0ZXI7CisJcmV0dmFsID0gdXNiX3JlZ2lzdGVyKCZwbDIzMDNfZHJpdmVyKTsKKwlpZiAocmV0dmFsKQorCQlnb3RvIGZhaWxlZF91c2JfcmVnaXN0ZXI7CisJaW5mbyhEUklWRVJfREVTQyAiICIgRFJJVkVSX1ZFUlNJT04pOworCXJldHVybiAwOworZmFpbGVkX3VzYl9yZWdpc3RlcjoKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIoJnBsMjMwM19kZXZpY2UpOworZmFpbGVkX3VzYl9zZXJpYWxfcmVnaXN0ZXI6CisJcmV0dXJuIHJldHZhbDsKK30KKworCitzdGF0aWMgdm9pZCBfX2V4aXQgcGwyMzAzX2V4aXQgKHZvaWQpCit7CisJdXNiX2RlcmVnaXN0ZXIgKCZwbDIzMDNfZHJpdmVyKTsKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIgKCZwbDIzMDNfZGV2aWNlKTsKK30KKworCittb2R1bGVfaW5pdChwbDIzMDNfaW5pdCk7Cittb2R1bGVfZXhpdChwbDIzMDNfZXhpdCk7CisKK01PRFVMRV9ERVNDUklQVElPTihEUklWRVJfREVTQyk7CitNT0RVTEVfVkVSU0lPTihEUklWRVJfVkVSU0lPTik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CisKK21vZHVsZV9wYXJhbShkZWJ1ZywgYm9vbCwgU19JUlVHTyB8IFNfSVdVU1IpOworTU9EVUxFX1BBUk1fREVTQyhkZWJ1ZywgIkRlYnVnIGVuYWJsZWQgb3Igbm90Iik7CisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YzFiNDcxCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBQcm9saWZpYyBQTDIzMDMgVVNCIHRvIHNlcmlhbCBhZGFwdG9yIGRyaXZlciBoZWFkZXIgZmlsZQorICoKKyAqCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKglpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICoJdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqCShhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiAKKyAqLworI2RlZmluZSBQTDIzMDNfVkVORE9SX0lECTB4MDY3YgorI2RlZmluZSBQTDIzMDNfUFJPRFVDVF9JRAkweDIzMDMKKyNkZWZpbmUgUEwyMzAzX1BST0RVQ1RfSURfUlNBUTIJCTB4MDRiYgorI2RlZmluZSBQTDIzMDNfUFJPRFVDVF9JRF9QSEFST1MJMHhhYWEwCisjZGVmaW5lIFBMMjMwM19QUk9EVUNUX0lEX1JTQVEzCQkweGFhYTIKKworI2RlZmluZSBBVEVOX1ZFTkRPUl9JRAkJMHgwNTU3CisjZGVmaW5lIEFURU5fVkVORE9SX0lEMgkJMHgwNTQ3CisjZGVmaW5lIEFURU5fUFJPRFVDVF9JRAkJMHgyMDA4CisKKyNkZWZpbmUgSU9EQVRBX1ZFTkRPUl9JRAkweDA0YmIKKyNkZWZpbmUgSU9EQVRBX1BST0RVQ1RfSUQJMHgwYTAzCisKKyNkZWZpbmUgRUxDT01fVkVORE9SX0lECQkweDA1NmUKKyNkZWZpbmUgRUxDT01fUFJPRFVDVF9JRAkweDUwMDMKKyNkZWZpbmUgRUxDT01fUFJPRFVDVF9JRF9VQ1NHVAkweDUwMDQKKworI2RlZmluZSBJVEVHTk9fVkVORE9SX0lECTB4MGViYQorI2RlZmluZSBJVEVHTk9fUFJPRFVDVF9JRAkweDEwODAKKworI2RlZmluZSBNQTYyMF9WRU5ET1JfSUQJCTB4MGRmNworI2RlZmluZSBNQTYyMF9QUk9EVUNUX0lECTB4MDYyMAorCisjZGVmaW5lIFJBVE9DX1ZFTkRPUl9JRAkJMHgwNTg0CisjZGVmaW5lIFJBVE9DX1BST0RVQ1RfSUQJMHhiMDAwCisKKyNkZWZpbmUgVFJJUFBfVkVORE9SX0lECQkweDI0NzgKKyNkZWZpbmUgVFJJUFBfUFJPRFVDVF9JRAkweDIwMDgKKworI2RlZmluZSBSQURJT1NIQUNLX1ZFTkRPUl9JRAkweDE0NTMKKyNkZWZpbmUgUkFESU9TSEFDS19QUk9EVUNUX0lECTB4NDAyNgorCisjZGVmaW5lIERDVTEwX1ZFTkRPUl9JRAkJMHgwNzMxCisjZGVmaW5lIERDVTEwX1BST0RVQ1RfSUQJMHgwNTI4CisKKyNkZWZpbmUgU0lURUNPTV9WRU5ET1JfSUQJMHg2MTg5CisjZGVmaW5lIFNJVEVDT01fUFJPRFVDVF9JRAkweDIwNjgKKworLyogQWxjYXRlbCBPVDUzNS83MzUgVVNCIGNhYmxlICovCisjZGVmaW5lIEFMQ0FURUxfVkVORE9SX0lECTB4MTFmNworI2RlZmluZSBBTENBVEVMX1BST0RVQ1RfSUQJMHgwMmRmCisKKy8qIFNhbXN1bmcgSTMzMCBwaG9uZSBjcmFkbGUgKi8KKyNkZWZpbmUgU0FNU1VOR19WRU5ET1JfSUQJMHgwNGU4CisjZGVmaW5lIFNBTVNVTkdfUFJPRFVDVF9JRAkweDgwMDEKKworI2RlZmluZSBTSUVNRU5TX1ZFTkRPUl9JRAkweDExZjUKKyNkZWZpbmUgU0lFTUVOU19QUk9EVUNUX0lEX1g2NQkweDAwMDMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9zYWZlX3NlcmlhbC5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL3NhZmVfc2VyaWFsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGU4NWVkNgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9zYWZlX3NlcmlhbC5jCkBAIC0wLDAgKzEsNDUxIEBACisvKgorICogU2FmZSBFbmNhcHN1bGF0ZWQgVVNCIFNlcmlhbCBEcml2ZXIKKyAqCisgKiAgICAgIENvcHlyaWdodCAoQykgMjAwMSBMaW5lbworICogICAgICBDb3B5cmlnaHQgKEMpIDIwMDEgSGV3bGV0dC1QYWNrYXJkCisgKgorICoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqCWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKgl0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICoJKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBCeToKKyAqICAgICAgU3R1YXJ0IEx5bm5lIDxzbEBsaW5lby5jb20+LCBUb20gUnVzaHdvcnRoIDx0YnJAbGluZW8uY29tPgorICovCisKKy8qIAorICogVGhlIGVuY2Fwc3VsdGFpb24gaXMgZGVzaWduZWQgdG8gb3ZlcmNvbWUgZGlmZmljdWx0aWVzIHdpdGggc29tZSBVU0IgaGFyZHdhcmUuCisgKgorICogV2hpbGUgdGhlIFVTQiBwcm90b2NvbCBoYXMgYSBDUkMgb3ZlciB0aGUgZGF0YSB3aGlsZSBpbiB0cmFuc2l0LCBpLmUuIHdoaWxlCisgKiBiZWluZyBjYXJyaWVkIG92ZXIgdGhlIGJ1cywgdGhlcmUgaXMgbm8gZW5kIHRvIGVuZCBwcm90ZWN0aW9uLiBJZiB0aGUgaGFyZHdhcmUKKyAqIGhhcyBhbnkgcHJvYmxlbXMgZ2V0dGluZyB0aGUgZGF0YSBpbnRvIG9yIG91dCBvZiB0aGUgVVNCIHRyYW5zbWl0IGFuZCByZWNlaXZlCisgKiBGSUZPJ3MgdGhlbiBkYXRhIGNhbiBiZSBsb3N0LiAKKyAqCisgKiBUaGlzIHByb3RvY29sIGFkZHMgYSB0d28gYnl0ZSB0cmFpbGVyIHRvIGVhY2ggVVNCIHBhY2tldCB0byBzcGVjaWZ5IHRoZSBudW1iZXIKKyAqIG9mIGJ5dGVzIG9mIHZhbGlkIGRhdGEgYW5kIGEgMTAgYml0IENSQyB0aGF0IHdpbGwgYWxsb3cgdGhlIHJlY2VpdmVyIHRvIHZlcmlmeQorICogdGhhdCB0aGUgZW50aXJlIFVTQiBwYWNrZXQgd2FzIHJlY2VpdmVkIHdpdGhvdXQgZXJyb3IuCisgKgorICogQmVjYXVzZSBpbiB0aGlzIGNhc2UgdGhlIHNlbmRlciBhbmQgcmVjZWl2ZXIgYXJlIHRoZSBjbGFzcyBhbmQgZnVuY3Rpb24gZHJpdmVycworICogdGhlcmUgaXMgbm93IGVuZCB0byBlbmQgcHJvdGVjdGlvbi4KKyAqCisgKiBUaGVyZSBpcyBhbiBhZGRpdGlvbmFsIG9wdGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGZvcmNlIGFsbCB0cmFuc21pdHRlZCBwYWNrZXRzCisgKiB0byBiZSBwYWRkZWQgdG8gdGhlIG1heGltdW0gcGFja2V0IHNpemUuIFRoaXMgcHJvdmlkZXMgYSB3b3JrIGFyb3VuZCBmb3Igc29tZQorICogZGV2aWNlcyB3aGljaCBoYXZlIHByb2JsZW1zIHdpdGggc21hbGwgVVNCIHBhY2tldHMuCisgKgorICogQXNzdW1pbmcgYSBwYWNrZXRzaXplIG9mIE46CisgKgorICogICAgICAwLi5OLTIgIGRhdGEgYW5kIG9wdGlvbmFsIHBhZGRpbmcKKyAqCisgKiAgICAgIE4tMiAgICAgYml0cyA3LTIgLSBudW1iZXIgb2YgYnl0ZXMgb2YgdmFsaWQgZGF0YQorICogICAgICAgICAgICAgIGJpdHMgMS0wIHRvcCB0d28gYml0cyBvZiAxMCBiaXQgQ1JDCisgKiAgICAgIE4tMSAgICAgYm90dG9tIDggYml0cyBvZiAxMCBiaXQgQ1JDCisgKgorICoKKyAqICAgICAgfCBEYXRhIExlbmd0aCAgICAgICB8IDEwIGJpdCBDUkMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICAgICAgKyA3IC4gNiAuIDUgLiA0IC4gMyAuIDIgLiAxIC4gMCB8IDcgLiA2IC4gNSAuIDQgLiAzIC4gMiAuIDEgLiAwICsKKyAqCisgKiBUaGUgMTAgYml0IENSQyBpcyBjb21wdXRlZCBhY3Jvc3MgdGhlIHNlbnQgZGF0YSwgZm9sbG93ZWQgYnkgdGhlIHRyYWlsZXIgd2l0aAorICogdGhlIGxlbmd0aCBzZXQgYW5kIHRoZSBDUkMgc2V0IHRvIHplcm8uIFRoZSBDUkMgaXMgdGhlbiBPUidkIGludG8gdGhlIHRyYWlsZXIuCisgKgorICogV2hlbiByZWNlaXZlZCBhIDEwIGJpdCBDUkMgaXMgY29tcHV0ZWQgb3ZlciB0aGUgZW50aXJlIGZyYW1lIGluY2x1ZGluZyB0aGUgdHJhaWxlcgorICogYW5kIHNob3VsZCBiZSBlcXVhbCB0byB6ZXJvLgorICoKKyAqIFR3byBtb2R1bGUgcGFyYW1ldGVycyBhcmUgdXNlZCB0byBjb250cm9sIHRoZSBlbmNhcHN1bGF0aW9uLCBpZiBib3RoIGFyZQorICogdHVybmVkIG9mIHRoZSBtb2R1bGUgd29ya3MgYXMgYSBzaW1wbGUgc2VyaWFsIGRldmljZSB3aXRoIE5PCisgKiBlbmNhcHN1bGF0aW9uLgorICoKKyAqIFNlZSBsaW51eC9kcml2ZXJzL3VzYmQvc2VyaWFsX2ZkIGZvciBhIGRldmljZSBmdW5jdGlvbiBkcml2ZXIKKyAqIGltcGxlbWVudGF0aW9uIG9mIHRoaXMuCisgKgorICovCisKKworI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC90dHkuaD4KKyNpbmNsdWRlIDxsaW51eC90dHlfZHJpdmVyLmg+CisjaW5jbHVkZSA8bGludXgvdHR5X2ZsaXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvdXNiLmg+CisjaW5jbHVkZSAidXNiLXNlcmlhbC5oIgorCisKKyNpZm5kZWYgQ09ORklHX1VTQl9TQUZFX1BBRERFRAorI2RlZmluZSBDT05GSUdfVVNCX1NBRkVfUEFEREVEIDAKKyNlbmRpZgorCitzdGF0aWMgaW50IGRlYnVnOworc3RhdGljIGludCBzYWZlID0gMTsKK3N0YXRpYyBpbnQgcGFkZGVkID0gQ09ORklHX1VTQl9TQUZFX1BBRERFRDsKKworI2RlZmluZSBEUklWRVJfVkVSU0lPTiAidjAuMGIiCisjZGVmaW5lIERSSVZFUl9BVVRIT1IgInNsQGxpbmVvLmNvbSwgdGJyQGxpbmVvLmNvbSIKKyNkZWZpbmUgRFJJVkVSX0RFU0MgIlVTQiBTYWZlIEVuY2Fwc3VsYXRlZCBTZXJpYWwiCisKK01PRFVMRV9BVVRIT1IgKERSSVZFUl9BVVRIT1IpOworTU9EVUxFX0RFU0NSSVBUSU9OIChEUklWRVJfREVTQyk7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CisKKyNpZiBkZWZpbmVkKENPTkZJR19VU0JEX1NBRkVfU0VSSUFMX1ZFTkRPUikgJiYgIWRlZmluZWQoQ09ORklHX1VTQkRfU0FGRV9TRVJJQUxfUFJPRFVDVCkKKyNhYm9ydCAiU0FGRV9TRVJJQUxfVkVORE9SIGRlZmluZWQgd2l0aG91dCBTQUZFX1NFUklBTF9QUk9EVUNUIgorI2VuZGlmCisKKyNpZiAhIGRlZmluZWQoQ09ORklHX1VTQkRfU0FGRV9TRVJJQUxfVkVORE9SKQorc3RhdGljIF9fdTE2IHZlbmRvcjsJCS8vIG5vIGRlZmF1bHQKK3N0YXRpYyBfX3UxNiBwcm9kdWN0OwkJLy8gbm8gZGVmYXVsdAorbW9kdWxlX3BhcmFtKHZlbmRvciwgdXNob3J0LCAwKTsKK01PRFVMRV9QQVJNX0RFU0ModmVuZG9yLCAiVXNlciBzcGVjaWZpZWQgVVNCIGlkVmVuZG9yIChyZXF1aXJlZCkiKTsKK21vZHVsZV9wYXJhbShwcm9kdWN0LCB1c2hvcnQsIDApOworTU9EVUxFX1BBUk1fREVTQyhwcm9kdWN0LCAiVXNlciBzcGVjaWZpZWQgVVNCIGlkUHJvZHVjdCAocmVxdWlyZWQpIik7CisjZW5kaWYKKworbW9kdWxlX3BhcmFtKGRlYnVnLCBib29sLCBTX0lSVUdPIHwgU19JV1VTUik7CitNT0RVTEVfUEFSTV9ERVNDKGRlYnVnLCAiRGVidWcgZW5hYmxlZCBvciBub3QiKTsKKworbW9kdWxlX3BhcmFtKHNhZmUsIGJvb2wsIDApOworTU9EVUxFX1BBUk1fREVTQyhzYWZlLCAiVHVybiBTYWZlIEVuY2Fwc3VsYXRpb24gT24vT2ZmIik7CisKK21vZHVsZV9wYXJhbShwYWRkZWQsIGJvb2wsIDApOworTU9EVUxFX1BBUk1fREVTQyhwYWRkZWQsICJQYWQgdG8gZnVsbCB3TWF4UGFja2V0U2l6ZSBPbi9PZmYiKTsKKworI2RlZmluZSBDRENfREVWSUNFX0NMQVNTICAgICAgICAgICAgICAgICAgICAgICAgMHgwMgorCisjZGVmaW5lIENEQ19JTlRFUkZBQ0VfQ0xBU1MgICAgICAgICAgICAgICAgICAgICAweDAyCisjZGVmaW5lIENEQ19JTlRFUkZBQ0VfU1VCQ0xBU1MgICAgICAgICAgICAgICAgICAweDA2CisKKyNkZWZpbmUgTElORU9fSU5URVJGQUNFX0NMQVNTICAgICAgICAgICAgICAgICAgIDB4ZmYKKworI2RlZmluZSBMSU5FT19JTlRFUkZBQ0VfU1VCQ0xBU1NfU0FGRU5FVCAgICAgICAgMHgwMQorI2RlZmluZSBMSU5FT19TQUZFTkVUX0NSQyAgICAgICAgICAgICAgICAgICAgICAgMHgwMQorI2RlZmluZSBMSU5FT19TQUZFTkVUX0NSQ19QQURERUQgICAgICAgICAgICAgICAgMHgwMgorCisjZGVmaW5lIExJTkVPX0lOVEVSRkFDRV9TVUJDTEFTU19TQUZFU0VSSUFMICAgICAweDAyCisjZGVmaW5lIExJTkVPX1NBRkVTRVJJQUxfQ1JDICAgICAgICAgICAgICAgICAgICAweDAxCisjZGVmaW5lIExJTkVPX1NBRkVTRVJJQUxfQ1JDX1BBRERFRCAgICAgICAgICAgICAweDAyCisKKworI2RlZmluZSBNWV9VU0JfREVWSUNFKHZlbmQscHJvZCxkYyxpYyxpc2MpIFwKKyAgICAgICAgLm1hdGNoX2ZsYWdzID0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UgfCBVU0JfREVWSUNFX0lEX01BVENIX0RFVl9DTEFTUyB8IFwKKyAgICAgICAgICAgICAgICBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9DTEFTUyB8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX1NVQkNMQVNTLCBcCisgICAgICAgIC5pZFZlbmRvciA9ICh2ZW5kKSwgXAorICAgICAgICAuaWRQcm9kdWN0ID0gKHByb2QpLFwKKyAgICAgICAgLmJEZXZpY2VDbGFzcyA9IChkYyksXAorICAgICAgICAuYkludGVyZmFjZUNsYXNzID0gKGljKSwgXAorICAgICAgICAuYkludGVyZmFjZVN1YkNsYXNzID0gKGlzYyksCisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90YWJsZVtdID0geworCXtNWV9VU0JfREVWSUNFICgweDQ5ZiwgMHhmZmZmLCBDRENfREVWSUNFX0NMQVNTLCBMSU5FT19JTlRFUkZBQ0VfQ0xBU1MsIExJTkVPX0lOVEVSRkFDRV9TVUJDTEFTU19TQUZFU0VSSUFMKX0sCS8vIEl0c3kKKwl7TVlfVVNCX0RFVklDRSAoMHgzZjAsIDB4MjEwMSwgQ0RDX0RFVklDRV9DTEFTUywgTElORU9fSU5URVJGQUNFX0NMQVNTLCBMSU5FT19JTlRFUkZBQ0VfU1VCQ0xBU1NfU0FGRVNFUklBTCl9LAkvLyBDYWx5cHNvCisJe01ZX1VTQl9ERVZJQ0UgKDB4NGRkLCAweDgwMDEsIENEQ19ERVZJQ0VfQ0xBU1MsIExJTkVPX0lOVEVSRkFDRV9DTEFTUywgTElORU9fSU5URVJGQUNFX1NVQkNMQVNTX1NBRkVTRVJJQUwpfSwJLy8gSXJpcyAKKwl7TVlfVVNCX0RFVklDRSAoMHg0ZGQsIDB4ODAwMiwgQ0RDX0RFVklDRV9DTEFTUywgTElORU9fSU5URVJGQUNFX0NMQVNTLCBMSU5FT19JTlRFUkZBQ0VfU1VCQ0xBU1NfU0FGRVNFUklBTCl9LAkvLyBDb2xsaWUgCisJe01ZX1VTQl9ERVZJQ0UgKDB4NGRkLCAweDgwMDMsIENEQ19ERVZJQ0VfQ0xBU1MsIExJTkVPX0lOVEVSRkFDRV9DTEFTUywgTElORU9fSU5URVJGQUNFX1NVQkNMQVNTX1NBRkVTRVJJQUwpfSwJLy8gQ29sbGllIAorCXtNWV9VU0JfREVWSUNFICgweDRkZCwgMHg4MDA0LCBDRENfREVWSUNFX0NMQVNTLCBMSU5FT19JTlRFUkZBQ0VfQ0xBU1MsIExJTkVPX0lOVEVSRkFDRV9TVUJDTEFTU19TQUZFU0VSSUFMKX0sCS8vIENvbGxpZSAKKwl7TVlfVVNCX0RFVklDRSAoMHg1ZjksIDB4ZmZmZiwgQ0RDX0RFVklDRV9DTEFTUywgTElORU9fSU5URVJGQUNFX0NMQVNTLCBMSU5FT19JTlRFUkZBQ0VfU1VCQ0xBU1NfU0FGRVNFUklBTCl9LAkvLyBTaGFycCB0bXAKKyNpZiBkZWZpbmVkKENPTkZJR19VU0JfU0FGRV9TRVJJQUxfVkVORE9SKQorCXtNWV9VU0JfREVWSUNFCisJIChDT05GSUdfVVNCX1NBRkVfU0VSSUFMX1ZFTkRPUiwgQ09ORklHX1VTQl9TQUZFX1NFUklBTF9QUk9EVUNULCBDRENfREVWSUNFX0NMQVNTLAorCSAgTElORU9fSU5URVJGQUNFX0NMQVNTLCBMSU5FT19JTlRFUkZBQ0VfU1VCQ0xBU1NfU0FGRVNFUklBTCl9LAorI2VuZGlmCisJLy8gZXh0cmEgbnVsbCBlbnRyeSBmb3IgbW9kdWxlIAorCS8vIHZlbmRvci9wcm9kdWMgcGFyYW1ldGVycworCXtNWV9VU0JfREVWSUNFICgwLCAwLCBDRENfREVWSUNFX0NMQVNTLCBMSU5FT19JTlRFUkZBQ0VfQ0xBU1MsIExJTkVPX0lOVEVSRkFDRV9TVUJDTEFTU19TQUZFU0VSSUFMKX0sCisJe30JCQkvLyB0ZXJtaW5hdGluZyBlbnRyeSAKK307CisKK01PRFVMRV9ERVZJQ0VfVEFCTEUgKHVzYiwgaWRfdGFibGUpOworCitzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgc2FmZV9kcml2ZXIgPSB7CisJLm93bmVyID0JVEhJU19NT0RVTEUsCisJLm5hbWUgPQkJInNhZmVfc2VyaWFsIiwKKwkucHJvYmUgPQl1c2Jfc2VyaWFsX3Byb2JlLAorCS5kaXNjb25uZWN0ID0JdXNiX3NlcmlhbF9kaXNjb25uZWN0LAorCS5pZF90YWJsZSA9CWlkX3RhYmxlLAorfTsKKworc3RhdGljIF9fdTE2IGNyYzEwX3RhYmxlWzI1Nl0gPSB7CisJMHgwMDAsIDB4MjMzLCAweDI1NSwgMHgwNjYsIDB4Mjk5LCAweDBhYSwgMHgwY2MsIDB4MmZmLCAweDMwMSwgMHgxMzIsIDB4MTU0LCAweDM2NywgMHgxOTgsIDB4M2FiLCAweDNjZCwgMHgxZmUsCisJMHgwMzEsIDB4MjAyLCAweDI2NCwgMHgwNTcsIDB4MmE4LCAweDA5YiwgMHgwZmQsIDB4MmNlLCAweDMzMCwgMHgxMDMsIDB4MTY1LCAweDM1NiwgMHgxYTksIDB4MzlhLCAweDNmYywgMHgxY2YsCisJMHgwNjIsIDB4MjUxLCAweDIzNywgMHgwMDQsIDB4MmZiLCAweDBjOCwgMHgwYWUsIDB4MjlkLCAweDM2MywgMHgxNTAsIDB4MTM2LCAweDMwNSwgMHgxZmEsIDB4M2M5LCAweDNhZiwgMHgxOWMsCisJMHgwNTMsIDB4MjYwLCAweDIwNiwgMHgwMzUsIDB4MmNhLCAweDBmOSwgMHgwOWYsIDB4MmFjLCAweDM1MiwgMHgxNjEsIDB4MTA3LCAweDMzNCwgMHgxY2IsIDB4M2Y4LCAweDM5ZSwgMHgxYWQsCisJMHgwYzQsIDB4MmY3LCAweDI5MSwgMHgwYTIsIDB4MjVkLCAweDA2ZSwgMHgwMDgsIDB4MjNiLCAweDNjNSwgMHgxZjYsIDB4MTkwLCAweDNhMywgMHgxNWMsIDB4MzZmLCAweDMwOSwgMHgxM2EsCisJMHgwZjUsIDB4MmM2LCAweDJhMCwgMHgwOTMsIDB4MjZjLCAweDA1ZiwgMHgwMzksIDB4MjBhLCAweDNmNCwgMHgxYzcsIDB4MWExLCAweDM5MiwgMHgxNmQsIDB4MzVlLCAweDMzOCwgMHgxMGIsCisJMHgwYTYsIDB4Mjk1LCAweDJmMywgMHgwYzAsIDB4MjNmLCAweDAwYywgMHgwNmEsIDB4MjU5LCAweDNhNywgMHgxOTQsIDB4MWYyLCAweDNjMSwgMHgxM2UsIDB4MzBkLCAweDM2YiwgMHgxNTgsCisJMHgwOTcsIDB4MmE0LCAweDJjMiwgMHgwZjEsIDB4MjBlLCAweDAzZCwgMHgwNWIsIDB4MjY4LCAweDM5NiwgMHgxYTUsIDB4MWMzLCAweDNmMCwgMHgxMGYsIDB4MzNjLCAweDM1YSwgMHgxNjksCisJMHgxODgsIDB4M2JiLCAweDNkZCwgMHgxZWUsIDB4MzExLCAweDEyMiwgMHgxNDQsIDB4Mzc3LCAweDI4OSwgMHgwYmEsIDB4MGRjLCAweDJlZiwgMHgwMTAsIDB4MjIzLCAweDI0NSwgMHgwNzYsCisJMHgxYjksIDB4MzhhLCAweDNlYywgMHgxZGYsIDB4MzIwLCAweDExMywgMHgxNzUsIDB4MzQ2LCAweDJiOCwgMHgwOGIsIDB4MGVkLCAweDJkZSwgMHgwMjEsIDB4MjEyLCAweDI3NCwgMHgwNDcsCisJMHgxZWEsIDB4M2Q5LCAweDNiZiwgMHgxOGMsIDB4MzczLCAweDE0MCwgMHgxMjYsIDB4MzE1LCAweDJlYiwgMHgwZDgsIDB4MGJlLCAweDI4ZCwgMHgwNzIsIDB4MjQxLCAweDIyNywgMHgwMTQsCisJMHgxZGIsIDB4M2U4LCAweDM4ZSwgMHgxYmQsIDB4MzQyLCAweDE3MSwgMHgxMTcsIDB4MzI0LCAweDJkYSwgMHgwZTksIDB4MDhmLCAweDJiYywgMHgwNDMsIDB4MjcwLCAweDIxNiwgMHgwMjUsCisJMHgxNGMsIDB4MzdmLCAweDMxOSwgMHgxMmEsIDB4M2Q1LCAweDFlNiwgMHgxODAsIDB4M2IzLCAweDI0ZCwgMHgwN2UsIDB4MDE4LCAweDIyYiwgMHgwZDQsIDB4MmU3LCAweDI4MSwgMHgwYjIsCisJMHgxN2QsIDB4MzRlLCAweDMyOCwgMHgxMWIsIDB4M2U0LCAweDFkNywgMHgxYjEsIDB4MzgyLCAweDI3YywgMHgwNGYsIDB4MDI5LCAweDIxYSwgMHgwZTUsIDB4MmQ2LCAweDJiMCwgMHgwODMsCisJMHgxMmUsIDB4MzFkLCAweDM3YiwgMHgxNDgsIDB4M2I3LCAweDE4NCwgMHgxZTIsIDB4M2QxLCAweDIyZiwgMHgwMWMsIDB4MDdhLCAweDI0OSwgMHgwYjYsIDB4Mjg1LCAweDJlMywgMHgwZDAsCisJMHgxMWYsIDB4MzJjLCAweDM0YSwgMHgxNzksIDB4Mzg2LCAweDFiNSwgMHgxZDMsIDB4M2UwLCAweDIxZSwgMHgwMmQsIDB4MDRiLCAweDI3OCwgMHgwODcsIDB4MmI0LCAweDJkMiwgMHgwZTEsCit9OworCisjZGVmaW5lIENSQzEwX0lOSVRGQ1MgICAgIDB4MDAwCS8vIEluaXRpYWwgRkNTIHZhbHVlCisjZGVmaW5lIENSQzEwX0dPT0RGQ1MgICAgIDB4MDAwCS8vIEdvb2QgZmluYWwgRkNTIHZhbHVlCisjZGVmaW5lIENSQzEwX0ZDUyhmY3MsIGMpICggKCgoZmNzKSA8PCA4KSAmIDB4M2ZmKSBeIGNyYzEwX3RhYmxlWygoZmNzKSA+PiAyKSAmIDB4ZmZdIF4gKGMpKQorCisvKiogICAgIAorICogZmNzX2NvbXB1dGUxMCAtIG1lbWNweSBhbmQgY2FsY3VsYXRlIDEwIGJpdCBDUkMgYWNyb3NzIGJ1ZmZlcgorICogQHNwOiBwb2ludGVyIHRvIGJ1ZmZlcgorICogQGxlbjogbnVtYmVyIG9mIGJ5dGVzCisgKiBAZmNzOiBzdGFydGluZyBGQ1MKKyAqCisgKiBQZXJmb3JtIGEgbWVtY3B5IGFuZCBjYWxjdWxhdGUgZmNzIHVzaW5nIHBwcCAxMGJpdCBDUkMgYWxnb3JpdGhtLiBSZXR1cm4KKyAqIG5ldyAxMCBiaXQgRkNTLgorICovCitzdGF0aWMgX191MTYgX19pbmxpbmVfXyBmY3NfY29tcHV0ZTEwICh1bnNpZ25lZCBjaGFyICpzcCwgaW50IGxlbiwgX191MTYgZmNzKQoreworCWZvciAoOyBsZW4tLSA+IDA7IGZjcyA9IENSQzEwX0ZDUyAoZmNzLCAqc3ArKykpOworCXJldHVybiBmY3M7Cit9CisKK3N0YXRpYyB2b2lkIHNhZmVfcmVhZF9idWxrX2NhbGxiYWNrIChzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqKSB1cmItPmNvbnRleHQ7CisJdW5zaWduZWQgY2hhciAqZGF0YSA9IHVyYi0+dHJhbnNmZXJfYnVmZmVyOworCXVuc2lnbmVkIGNoYXIgbGVuZ3RoID0gdXJiLT5hY3R1YWxfbGVuZ3RoOworCWludCBpOworCWludCByZXN1bHQ7CisKKwlkYmcgKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwlpZiAodXJiLT5zdGF0dXMpIHsKKwkJZGJnICgiJXMgLSBub256ZXJvIHJlYWQgYnVsayBzdGF0dXMgcmVjZWl2ZWQ6ICVkIiwgX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyk7CisJCXJldHVybjsKKwl9CisKKwlkYmcgKCJzYWZlX3JlYWRfYnVsa19jYWxsYmFjayBsZW5ndGg6ICVkIiwgcG9ydC0+cmVhZF91cmItPmFjdHVhbF9sZW5ndGgpOworI2lmZGVmIEVDSE9fUkNWCisJeworCQlpbnQgaTsKKwkJdW5zaWduZWQgY2hhciAqY3AgPSBwb3J0LT5yZWFkX3VyYi0+dHJhbnNmZXJfYnVmZmVyOworCQlmb3IgKGkgPSAwOyBpIDwgcG9ydC0+cmVhZF91cmItPmFjdHVhbF9sZW5ndGg7IGkrKykgeworCQkJaWYgKChpICUgMzIpID09IDApIHsKKwkJCQlwcmludGsgKCJcbnJ1WyUwMnhdICIsIGkpOworCQkJfQorCQkJcHJpbnRrICgiJTAyeCAiLCAqY3ArKyk7CisJCX0KKwkJcHJpbnRrICgiXG4iKTsKKwl9CisjZW5kaWYKKwlpZiAoc2FmZSkgeworCQlfX3UxNiBmY3M7CisJCWlmICghKGZjcyA9IGZjc19jb21wdXRlMTAgKGRhdGEsIGxlbmd0aCwgQ1JDMTBfSU5JVEZDUykpKSB7CisKKwkJCWludCBhY3R1YWxfbGVuZ3RoID0gZGF0YVtsZW5ndGggLSAyXSA+PiAyOworCisJCQlpZiAoYWN0dWFsX2xlbmd0aCA8PSAobGVuZ3RoIC0gMikpIHsKKworCQkJCWluZm8gKCIlcyAtIGFjdHVhbDogJWQiLCBfX0ZVTkNUSU9OX18sIGFjdHVhbF9sZW5ndGgpOworCisJCQkJZm9yIChpID0gMDsgaSA8IGFjdHVhbF9sZW5ndGg7IGkrKykgeworCQkJCQl0dHlfaW5zZXJ0X2ZsaXBfY2hhciAocG9ydC0+dHR5LCBkYXRhW2ldLCAwKTsKKwkJCQl9CisJCQkJdHR5X2ZsaXBfYnVmZmVyX3B1c2ggKHBvcnQtPnR0eSk7CisJCQl9IGVsc2UgeworCQkJCWVyciAoIiVzIC0gaW5jb25zaXN0ZW50IGxlbmd0aHMgJWQ6JWQiLCBfX0ZVTkNUSU9OX18sCisJCQkJICAgICBhY3R1YWxfbGVuZ3RoLCBsZW5ndGgpOworCQkJfQorCQl9IGVsc2UgeworCQkJZXJyICgiJXMgLSBiYWQgQ1JDICV4IiwgX19GVU5DVElPTl9fLCBmY3MpOworCQl9CisJfSBlbHNlIHsKKwkJZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisJCQl0dHlfaW5zZXJ0X2ZsaXBfY2hhciAocG9ydC0+dHR5LCBkYXRhW2ldLCAwKTsKKwkJfQorCQl0dHlfZmxpcF9idWZmZXJfcHVzaCAocG9ydC0+dHR5KTsKKwl9CisKKwkvKiBDb250aW51ZSB0cnlpbmcgdG8gYWx3YXlzIHJlYWQgICovCisJdXNiX2ZpbGxfYnVsa191cmIgKHVyYiwgcG9ydC0+c2VyaWFsLT5kZXYsCisJCSAgICAgICB1c2JfcmN2YnVsa3BpcGUgKHBvcnQtPnNlcmlhbC0+ZGV2LCBwb3J0LT5idWxrX2luX2VuZHBvaW50QWRkcmVzcyksCisJCSAgICAgICB1cmItPnRyYW5zZmVyX2J1ZmZlciwgdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoLAorCQkgICAgICAgc2FmZV9yZWFkX2J1bGtfY2FsbGJhY2ssIHBvcnQpOworCisJaWYgKChyZXN1bHQgPSB1c2Jfc3VibWl0X3VyYiAodXJiLCBHRlBfQVRPTUlDKSkpIHsKKwkJZXJyICgiJXMgLSBmYWlsZWQgcmVzdWJtaXR0aW5nIHJlYWQgdXJiLCBlcnJvciAlZCIsIF9fRlVOQ1RJT05fXywgcmVzdWx0KTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgc2FmZV93cml0ZSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpCit7CisJdW5zaWduZWQgY2hhciAqZGF0YTsKKwlpbnQgcmVzdWx0OworCWludCBpOworCWludCBwYWNrZXRfbGVuZ3RoOworCisJZGJnICgic2FmZV93cml0ZSBwb3J0OiAlcCAlZCB1cmI6ICVwIGNvdW50OiAlZCIsIHBvcnQsIHBvcnQtPm51bWJlciwgcG9ydC0+d3JpdGVfdXJiLAorCSAgICAgY291bnQpOworCisJaWYgKCFwb3J0LT53cml0ZV91cmIpIHsKKwkJZGJnICgiJXMgLSB3cml0ZSB1cmIgTlVMTCIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybiAoMCk7CisJfQorCisJZGJnICgic2FmZV93cml0ZSB3cml0ZV91cmI6ICVkIHRyYW5zZmVyX2J1ZmZlcl9sZW5ndGgiLAorCSAgICAgcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoKTsKKworCWlmICghcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoKSB7CisJCWRiZyAoIiVzIC0gd3JpdGUgdXJiIHRyYW5zZmVyX2J1ZmZlcl9sZW5ndGggemVybyIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybiAoMCk7CisJfQorCWlmIChjb3VudCA9PSAwKSB7CisJCWRiZyAoIiVzIC0gd3JpdGUgcmVxdWVzdCBvZiAwIGJ5dGVzIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuICgwKTsKKwl9CisJaWYgKHBvcnQtPndyaXRlX3VyYi0+c3RhdHVzID09IC1FSU5QUk9HUkVTUykgeworCQlkYmcgKCIlcyAtIGFscmVhZHkgd3JpdGluZyIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybiAoMCk7CisJfQorCisJcGFja2V0X2xlbmd0aCA9IHBvcnQtPmJ1bGtfb3V0X3NpemU7CS8vIGdldCBtYXggcGFja2V0c2l6ZQorCisJaSA9IHBhY2tldF9sZW5ndGggLSAoc2FmZSA/IDIgOiAwKTsJLy8gZ2V0IGJ5dGVzIHRvIHNlbmQKKwljb3VudCA9IChjb3VudCA+IGkpID8gaSA6IGNvdW50OworCisKKwkvLyBnZXQgdGhlIGRhdGEgaW50byB0aGUgdHJhbnNmZXIgYnVmZmVyCisJZGF0YSA9IHBvcnQtPndyaXRlX3VyYi0+dHJhbnNmZXJfYnVmZmVyOworCW1lbXNldCAoZGF0YSwgJzAnLCBwYWNrZXRfbGVuZ3RoKTsKKworCW1lbWNweSAoZGF0YSwgYnVmLCBjb3VudCk7CisKKwlpZiAoc2FmZSkgeworCQlfX3UxNiBmY3M7CisKKwkJLy8gcGFkIGlmIG5lY2Vzc2FyeQorCQlpZiAoIXBhZGRlZCkgeworCQkJcGFja2V0X2xlbmd0aCA9IGNvdW50ICsgMjsKKwkJfQorCQkvLyBzZXQgY291bnQKKwkJZGF0YVtwYWNrZXRfbGVuZ3RoIC0gMl0gPSBjb3VudCA8PCAyOworCQlkYXRhW3BhY2tldF9sZW5ndGggLSAxXSA9IDA7CisKKwkJLy8gY29tcHV0ZSBmY3MgYW5kIGluc2VydCBpbnRvIHRyYWlsZXIKKwkJZmNzID0gZmNzX2NvbXB1dGUxMCAoZGF0YSwgcGFja2V0X2xlbmd0aCwgQ1JDMTBfSU5JVEZDUyk7CisJCWRhdGFbcGFja2V0X2xlbmd0aCAtIDJdIHw9IGZjcyA+PiA4OworCQlkYXRhW3BhY2tldF9sZW5ndGggLSAxXSB8PSBmY3MgJiAweGZmOworCisJCS8vIHNldCBsZW5ndGggdG8gc2VuZAorCQlwb3J0LT53cml0ZV91cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGggPSBwYWNrZXRfbGVuZ3RoOworCX0gZWxzZSB7CisJCXBvcnQtPndyaXRlX3VyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCA9IGNvdW50OworCX0KKworCXVzYl9zZXJpYWxfZGVidWdfZGF0YShkZWJ1ZywgJnBvcnQtPmRldiwgX19GVU5DVElPTl9fLCBjb3VudCwgcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXIpOworI2lmZGVmIEVDSE9fVFgKKwl7CisJCWludCBpOworCQl1bnNpZ25lZCBjaGFyICpjcCA9IHBvcnQtPndyaXRlX3VyYi0+dHJhbnNmZXJfYnVmZmVyOworCQlmb3IgKGkgPSAwOyBpIDwgcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoOyBpKyspIHsKKwkJCWlmICgoaSAlIDMyKSA9PSAwKSB7CisJCQkJcHJpbnRrICgiXG5zdVslMDJ4XSAiLCBpKTsKKwkJCX0KKwkJCXByaW50ayAoIiUwMnggIiwgKmNwKyspOworCQl9CisJCXByaW50ayAoIlxuIik7CisJfQorI2VuZGlmCisJcG9ydC0+d3JpdGVfdXJiLT5kZXYgPSBwb3J0LT5zZXJpYWwtPmRldjsKKwlpZiAoKHJlc3VsdCA9IHVzYl9zdWJtaXRfdXJiIChwb3J0LT53cml0ZV91cmIsIEdGUF9LRVJORUwpKSkgeworCQllcnIgKCIlcyAtIGZhaWxlZCBzdWJtaXR0aW5nIHdyaXRlIHVyYiwgZXJyb3IgJWQiLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisJCXJldHVybiAwOworCX0KKwlkYmcgKCIlcyB1cmI6ICVwIHN1Ym1pdHRlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+d3JpdGVfdXJiKTsKKworCXJldHVybiAoY291bnQpOworfQorCitzdGF0aWMgaW50IHNhZmVfd3JpdGVfcm9vbSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKK3sKKwlpbnQgcm9vbSA9IDA7CQkvLyBEZWZhdWx0OiBubyByb29tCisKKwlkYmcgKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwlpZiAocG9ydC0+d3JpdGVfdXJiLT5zdGF0dXMgIT0gLUVJTlBST0dSRVNTKQorCQlyb29tID0gcG9ydC0+YnVsa19vdXRfc2l6ZSAtIChzYWZlID8gMiA6IDApOworCisJaWYgKHJvb20pIHsKKwkJZGJnICgic2FmZV93cml0ZV9yb29tIHJldHVybnMgJWQiLCByb29tKTsKKwl9CisKKwlyZXR1cm4gKHJvb20pOworfQorCitzdGF0aWMgaW50IHNhZmVfc3RhcnR1cCAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkKK3sKKwlzd2l0Y2ggKHNlcmlhbC0+aW50ZXJmYWNlLT5jdXJfYWx0c2V0dGluZy0+ZGVzYy5iSW50ZXJmYWNlUHJvdG9jb2wpIHsKKwljYXNlIExJTkVPX1NBRkVTRVJJQUxfQ1JDOgorCQlicmVhazsKKwljYXNlIExJTkVPX1NBRkVTRVJJQUxfQ1JDX1BBRERFRDoKKwkJcGFkZGVkID0gMTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUgc2FmZV9kZXZpY2UgPSB7CisJLm93bmVyID0JCVRISVNfTU9EVUxFLAorCS5uYW1lID0JCQkiU2FmZSIsCisJLmlkX3RhYmxlID0JCWlkX3RhYmxlLAorCS5udW1faW50ZXJydXB0X2luID0JTlVNX0RPTlRfQ0FSRSwKKwkubnVtX2J1bGtfaW4gPQkJTlVNX0RPTlRfQ0FSRSwKKwkubnVtX2J1bGtfb3V0ID0JCU5VTV9ET05UX0NBUkUsCisJLm51bV9wb3J0cyA9CQkxLAorCS53cml0ZSA9CQlzYWZlX3dyaXRlLAorCS53cml0ZV9yb29tID0JCXNhZmVfd3JpdGVfcm9vbSwKKwkucmVhZF9idWxrX2NhbGxiYWNrID0Jc2FmZV9yZWFkX2J1bGtfY2FsbGJhY2ssCisJLmF0dGFjaCA9CQlzYWZlX3N0YXJ0dXAsCit9OworCitzdGF0aWMgaW50IF9faW5pdCBzYWZlX2luaXQgKHZvaWQpCit7CisJaW50IGksIHJldHZhbDsKKworCWluZm8gKERSSVZFUl9WRVJTSU9OICIgIiBEUklWRVJfQVVUSE9SKTsKKwlpbmZvIChEUklWRVJfREVTQyk7CisJaW5mbyAoInZlbmRvcjogJXggcHJvZHVjdDogJXggc2FmZTogJWQgcGFkZGVkOiAlZFxuIiwgdmVuZG9yLCBwcm9kdWN0LCBzYWZlLCBwYWRkZWQpOworCisJLy8gaWYgd2UgaGF2ZSB2ZW5kb3IgLyBwcm9kdWN0IHBhcmFtZXRlcnMgcGF0Y2ggdGhlbSBpbnRvIGlkIGxpc3QKKwlpZiAodmVuZG9yIHx8IHByb2R1Y3QpIHsKKwkJaW5mbyAoInZlbmRvcjogJXggcHJvZHVjdDogJXhcbiIsIHZlbmRvciwgcHJvZHVjdCk7CisKKwkJZm9yIChpID0gMDsgaSA8IChzaXplb2YgKGlkX3RhYmxlKSAvIHNpemVvZiAoc3RydWN0IHVzYl9kZXZpY2VfaWQpKTsgaSsrKSB7CisJCQlpZiAoIWlkX3RhYmxlW2ldLmlkVmVuZG9yICYmICFpZF90YWJsZVtpXS5pZFByb2R1Y3QpIHsKKwkJCQlpZF90YWJsZVtpXS5pZFZlbmRvciA9IHZlbmRvcjsKKwkJCQlpZF90YWJsZVtpXS5pZFByb2R1Y3QgPSBwcm9kdWN0OworCQkJCWJyZWFrOworCQkJfQorCQl9CisJfQorCisJcmV0dmFsID0gdXNiX3NlcmlhbF9yZWdpc3Rlcigmc2FmZV9kZXZpY2UpOworCWlmIChyZXR2YWwpCisJCWdvdG8gZmFpbGVkX3VzYl9zZXJpYWxfcmVnaXN0ZXI7CisJcmV0dmFsID0gdXNiX3JlZ2lzdGVyKCZzYWZlX2RyaXZlcik7CisJaWYgKHJldHZhbCkKKwkJZ290byBmYWlsZWRfdXNiX3JlZ2lzdGVyOworCisJcmV0dXJuIDA7CitmYWlsZWRfdXNiX3JlZ2lzdGVyOgorCXVzYl9zZXJpYWxfZGVyZWdpc3Rlcigmc2FmZV9kZXZpY2UpOworZmFpbGVkX3VzYl9zZXJpYWxfcmVnaXN0ZXI6CisJcmV0dXJuIHJldHZhbDsKK30KKworc3RhdGljIHZvaWQgX19leGl0IHNhZmVfZXhpdCAodm9pZCkKK3sKKwl1c2JfZGVyZWdpc3RlciAoJnNhZmVfZHJpdmVyKTsKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIgKCZzYWZlX2RldmljZSk7Cit9CisKK21vZHVsZV9pbml0IChzYWZlX2luaXQpOworbW9kdWxlX2V4aXQgKHNhZmVfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvdGlfZndfMzQxMC5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL3RpX2Z3XzM0MTAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MWU4ODU3Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL3RpX2Z3XzM0MTAuaApAQCAtMCwwICsxLDg4NSBAQAorLyogdmk6IHRzPTggc3c9OAorICoKKyAqIFRJIDM0MTAgVVNCIFNlcmlhbCBEcml2ZXIgRmlybXdhcmUgSGVhZGVyCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA0IFRleGFzIEluc3RydW1lbnRzCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqLworCisjaWZuZGVmIF9USV9GV18zNDEwX0hfCisjZGVmaW5lIF9USV9GV18zNDEwX0hfCisKKy8qIGZpcm13YXJlIDkvMTAvMDQgRlczNDEwX1NwZWNpYWxfU3RhcnRXZG9nT25TdGFydFBvcnQgKi8KKworc3RhdGljIHVuc2lnbmVkIGNoYXIgdGlfZndfMzQxMFtdID0geworMHhDMiwgMHgzNSwJLyogZmlybXdhcmUgaW1hZ2UgbGVuZ3RoIGV4Y2x1ZGluZyBoZWFkZXIsIGxpdHRsZSBlbmRpYW4gKi8KKzB4MDAsIAkJLyogcGxhY2Vob2xkZXIgZm9yIGNoZWNrc3VtICovCisKKzB4MDIsMHgwMCwweDFlLDB4MDIsMHgxYSwweGRiLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweDAyLDB4MzIsMHhjYiwweGZmLDB4ZmYsCisweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHgwMiwweDMzLDB4NzYsMHg3NSwweDgxLAorMHhjZSwweDkwLDB4ZmQsMHhlOCwweDg1LDB4ODMsMHhhMCwweDEyLDB4MzQsMHhlYSwweGVjLDB4NGQsMHg2MCwweDZhLDB4NzgsMHhhYiwKKzB4ODAsMHgwMywweDc2LDB4MDAsMHgxOCwweGI4LDB4OWMsMHhmYSwweDc4LDB4N2YsMHg4MCwweDAzLDB4NzYsMHgwMCwweDE4LDB4YjgsCisweDY1LDB4ZmEsMHg3OCwweDIwLDB4ODAsMHgwMywweDc2LDB4MDAsMHgxOCwweGI4LDB4MjAsMHhmYSwweDkwLDB4ZmQsMHhkZCwweGFlLAorMHg4MywweGFmLDB4ODIsMHg5MCwweGZiLDB4ZjgsMHgxMiwweDAwLDB4YTEsMHg2MCwweDA1LDB4ZTQsMHhmMCwweGEzLDB4ODAsMHhmNiwKKzB4OTAsMHhmZCwweGU4LDB4YTgsMHg4MiwweDkwLDB4ZmQsMHhlOCwweGE5LDB4ODIsMHhlOCwweGMzLDB4OTksMHg1MCwweDA1LDB4NzYsCisweDAwLDB4MDgsMHg4MCwweGY2LDB4OTAsMHgwMCwweGZmLDB4MTIsMHgwMCwweGFhLDB4OTAsMHgwMSwweDAzLDB4MTIsMHgwMCwweGFhLAorMHg5MCwweDAxLDB4MDcsMHgxMiwweDAwLDB4YWEsMHg5MCwweDAxLDB4MGIsMHgxMiwweDAwLDB4YzgsMHg5MCwweDAxLDB4MTEsMHgxMiwKKzB4MDAsMHhjOCwweDkwLDB4MDEsMHgxNywweDEyLDB4MDAsMHhjOCwweDc1LDB4ZDAsMHgwMCwweDEyLDB4MzMsMHhjOCwweDAyLDB4MDEsCisweDFkLDB4ZWYsMHg2NSwweDgyLDB4NzAsMHgwMywweGVlLDB4NjUsMHg4MywweDIyLDB4ZTQsMHg5MywweGY4LDB4NzQsMHgwMSwweDkzLAorMHhmOSwweDc0LDB4MDIsMHg5MywweGZlLDB4NzQsMHgwMywweDkzLDB4ZjUsMHg4MiwweDhlLDB4ODMsMHhlOCwweDY5LDB4NzAsMHgwMSwKKzB4MjIsMHhlNCwweDkzLDB4ZjYsMHhhMywweDA4LDB4ODAsMHhmNCwweGU0LDB4OTMsMHhmYywweDc0LDB4MDEsMHg5MywweGZkLDB4NzQsCisweDAyLDB4OTMsMHhmZSwweDc0LDB4MDMsMHg5MywweGZmLDB4NzQsMHgwNCwweDkzLDB4ZjgsMHg3NCwweDA1LDB4OTMsMHhmNSwweDgyLAorMHg4OCwweDgzLDB4MTIsMHgwMCwweGExLDB4NzAsMHgwMSwweDIyLDB4ZTQsMHg5MywweGEzLDB4YTgsMHg4MywweGE5LDB4ODIsMHg4YywKKzB4ODMsMHg4ZCwweDgyLDB4ZjAsMHhhMywweGFjLDB4ODMsMHhhZCwweDgyLDB4ODgsMHg4MywweDg5LDB4ODIsMHg4MCwweGUzLDB4MjEsCisweDIxLDB4MDQsMHg5MiwweDgwLDB4ODAsMHgwNCwweDkyLDB4YWMsMHhhZSwweDA0LDB4OTIsMHhmZCwweGU4LDB4MDQsMHg5NCwweDA0LAorMHg5NCwweGZiLDB4ZjMsMHgwNCwweDk5LDB4MDQsMHg5NCwweGZiLDB4ZjMsMHgwNCwweGY5LDB4MDQsMHhmOSwweDgwLDB4ZmUsMHhkMCwKKzB4ZjAsMHgzMCwweGYwLDB4MDksMHgyMCwweGYzLDB4MDMsMHhmNiwweDgwLDB4MTAsMHhmNywweDgwLDB4MGQsMHgzMCwweGYxLDB4MDksCisweDIwLDB4ZjMsMHgwMywweGYyLDB4ODAsMHgwNCwweGYzLDB4ODAsMHgwMSwweGYwLDB4MjAsMHhmNCwweDA0LDB4ZmMsMHhkMCwweGUwLAorMHhjYywweDIyLDB4Y2MsMHhjMCwweGUwLDB4MTIsMHgwMSwweDVhLDB4MDIsMHgwMSwweDRiLDB4YmMsMHgwMCwweDA1LDB4ZDAsMHhmMCwKKzB4YWMsMHhmMCwweDIyLDB4YzMsMHgxMywweGRjLDB4ZmMsMHgwMiwweDAxLDB4MjEsMHhiZiwweDAwLDB4MDksMHhlZCwweDI1LDB4ODIsCisweDc1LDB4ZjAsMHgwMSwweGY4LDB4ZTYsMHgyMiwweGJmLDB4MDEsMHgwZiwweGVkLDB4MjUsMHg4MiwweGY1LDB4ODIsMHhlZSwweDM1LAorMHg4MywweGY1LDB4ODMsMHg3NSwweGYwLDB4MDQsMHhlMCwweDIyLDB4ZWQsMHgyNSwweDgyLDB4NzUsMHhmMCwweDAyLDB4ZjgsMHhlMiwKKzB4MjIsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGY1LDB4ZjAsMHhjMywweGU0LDB4OTMsMHhhMywweGM1LDB4ZjAsMHg5NSwweGYwLDB4YzAsCisweGUwLDB4YzMsMHhkMCwweGYwLDB4ZTQsMHg5MywweGEzLDB4OTUsMHhmMCwweDQwLDB4MTIsMHhhMywweGEzLDB4YzMsMHhlNSwweGYwLAorMHgzMywweDUwLDB4MDIsMHgwNSwweDgzLDB4MjUsMHg4MiwweGY1LDB4ODIsMHg1MCwweDAyLDB4MDUsMHg4MywweDc0LDB4MDEsMHg5MywKKzB4YzAsMHhlMCwweGU0LDB4OTMsMHhjMCwweGUwLDB4MjIsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGY1LDB4ZjAsMHhlNCwweDkzLDB4NzAsCisweDA5LDB4NzQsMHgwMSwweDkzLDB4NzAsMHgwNCwweGEzLDB4YTMsMHg4MCwweDBjLDB4NzQsMHgwMiwweDkzLDB4NjUsMHhmMCwweDYwLAorMHgwNSwweGEzLDB4YTMsMHhhMywweDgwLDB4ZTcsMHg3NCwweDAxLDB4OTMsMHhjMCwweGUwLDB4ZTQsMHg5MywweGMwLDB4ZTAsMHgyMiwKKzB4MTIsMHgwMiwweDViLDB4MDIsMHgwMSwweGYyLDB4MTIsMHgwMiwweGFmLDB4MDIsMHgwMSwweGYyLDB4MTIsMHgwMiwweGQzLDB4MDIsCisweDAxLDB4ZjIsMHgzMCwweGUwLDB4MDcsMHgyMCwweGUzLDB4MDIsMHhlNiwweDIyLDB4ZTcsMHgyMiwweDMwLDB4ZTEsMHgwNywweDIwLAorMHhlMywweDAyLDB4ZTIsMHgyMiwweGUzLDB4MjIsMHgzMCwweGUyLDB4MDIsMHhlMCwweDIyLDB4ZTQsMHg5MywweDIyLDB4MTIsMHgwMiwKKzB4ZDMsMHgwMiwweDAyLDB4MWEsMHgxMiwweDAyLDB4YWYsMHgwMiwweDAyLDB4MWEsMHhhYiwweGYwLDB4MTIsMHgwMiwweDI0LDB4Y2IsCisweGM1LDB4ZjAsMHhjYiwweDIyLDB4MzAsMHhlMCwweDEwLDB4MjAsMHhlMywweDA2LDB4ZTYsMHhmNSwweGYwLDB4MDgsMHhlNiwweDIyLAorMHhlNywweGY1LDB4ZjAsMHgwOSwweGU3LDB4MTksMHgyMiwweDMwLDB4ZTEsMHgxMCwweDIwLDB4ZTMsMHgwNiwweGUyLDB4ZjUsMHhmMCwKKzB4MDgsMHhlMiwweDIyLDB4ZTMsMHhmNSwweGYwLDB4MDksMHhlMywweDE5LDB4MjIsMHgzMCwweGUyLDB4MDYsMHhlMCwweGY1LDB4ZjAsCisweGEzLDB4ZTAsMHgyMiwweGU0LDB4OTMsMHhmNSwweGYwLDB4NzQsMHgwMSwweDkzLDB4MjIsMHhiYiwweDAwLDB4MDMsMHg3NCwweDA5LAorMHgyMiwweGJiLDB4MDEsMHgwNywweDg5LDB4ODIsMHg4YSwweDgzLDB4NzQsMHgwNCwweDIyLDB4YmIsMHgwMiwweDA3LDB4ODksMHg4MiwKKzB4OGEsMHg4MywweDc0LDB4MTAsMHgyMiwweDc0LDB4MGEsMHgyMiwweDAyLDB4MDIsMHg3YiwweGJiLDB4MDAsMHgwNywweGU5LDB4MjUsCisweDgyLDB4ZjgsMHg3NCwweDAxLDB4MjIsMHhiYiwweDAxLDB4MGQsMHhlOSwweDI1LDB4ODIsMHhmNSwweDgyLDB4ZWEsMHgzNSwweDgzLAorMHhmNSwweDgzLDB4NzQsMHgwNCwweDIyLDB4YmIsMHgwMiwweDBkLDB4ZTksMHgyNSwweDgyLDB4ZjUsMHg4MiwweGVhLDB4MzUsMHg4MywKKzB4ZjUsMHg4MywweDc0LDB4MTAsMHgyMiwweGU5LDB4MjUsMHg4MiwweGY4LDB4NzQsMHgwMiwweDIyLDB4MDIsMHgwMiwweGFmLDB4YmYsCisweDAwLDB4MDUsMHhlZCwweGY4LDB4NzQsMHgwMSwweDIyLDB4YmYsMHgwMSwweDA3LDB4OGQsMHg4MiwweDhlLDB4ODMsMHg3NCwweDA0LAorMHgyMiwweGJmLDB4MDIsMHgwNywweDhkLDB4ODIsMHg4ZSwweDgzLDB4NzQsMHgxMCwweDIyLDB4ZWQsMHhmOCwweDc0LDB4MDIsMHgyMiwKKzB4MDIsMHgwMiwweGQzLDB4YmYsMHgwMCwweDA3LDB4ZWQsMHgyNSwweDgyLDB4ZjgsMHg3NCwweDAxLDB4MjIsMHhiZiwweDAxLDB4MGQsCisweGVkLDB4MjUsMHg4MiwweGY1LDB4ODIsMHhlZSwweDM1LDB4ODMsMHhmNSwweDgzLDB4NzQsMHgwNCwweDIyLDB4YmYsMHgwMiwweDBkLAorMHhlZCwweDI1LDB4ODIsMHhmNSwweDgyLDB4ZWUsMHgzNSwweDgzLDB4ZjUsMHg4MywweDc0LDB4MTAsMHgyMiwweGVkLDB4MjUsMHg4MiwKKzB4ZjgsMHg3NCwweDAyLDB4MjIsMHgwMiwweDAzLDB4MDcsMHhjMCwweGUwLDB4MTIsMHgwMiwweDViLDB4MDIsMHgwMywweDFmLDB4YzAsCisweGUwLDB4MTIsMHgwMiwweGFmLDB4MDIsMHgwMywweDFmLDB4YzAsMHhlMCwweDEyLDB4MDIsMHhkMywweDAyLDB4MDMsMHgxZiwweDMwLAorMHhlMCwweDBiLDB4MjAsMHhlMywweDA0LDB4ZDAsMHhlMCwweGY2LDB4MjIsMHhkMCwweGUwLDB4ZjcsMHgyMiwweDMwLDB4ZTEsMHgwYiwKKzB4MjAsMHhlMywweDA0LDB4ZDAsMHhlMCwweGYyLDB4MjIsMHhkMCwweGUwLDB4ZjMsMHgyMiwweGQwLDB4ZTAsMHhmMCwweDIyLDB4YzksCisweGNkLDB4YzksMHhjYSwweGNlLDB4Y2EsMHhjYiwweGNmLDB4Y2IsMHgxMiwweDAzLDB4NTIsMHhlZCwweGY5LDB4ZWUsMHhmYSwweGVmLAorMHhmYiwweDIyLDB4YmIsMHgwMCwweDJmLDB4YmYsMHgwMCwweDBhLDB4ZmEsMHhlZCwweGY4LDB4ZTcsMHhmNiwweDA4LDB4MDksMHhkYSwKKzB4ZmEsMHgyMiwweGJmLDB4MDEsMHgxMiwweDhkLDB4ODIsMHg4ZSwweDgzLDB4ZjgsMHgwMiwweDAzLDB4NmYsMHgwOSwweGEzLDB4ZTcsCisweGYwLDB4ZDgsMHhmYSwweDIyLDB4MDIsMHgwMywweDdhLDB4ZmEsMHhlZCwweGY4LDB4ZTcsMHhmMiwweDA4LDB4MDksMHhkYSwweGZhLAorMHgyMiwweDAyLDB4MDMsMHg4NCwweGJiLDB4MDEsMHg0ZCwweGJmLDB4MDAsMHgxNCwweDg5LDB4ODIsMHg4YSwweDgzLDB4ZjksMHhlZCwKKzB4ZjgsMHgwMiwweDAzLDB4OTYsMHgwOCwweGEzLDB4ZTAsMHhmNiwweGQ5LDB4ZmEsMHgyMiwweDAyLDB4MDMsMHhhNywweGJmLDB4MDEsCisweDIyLDB4OGQsMHg4MiwweDhlLDB4ODMsMHhmYiwweDA4LDB4YzksMHhjNSwweDgyLDB4YzksMHhjYSwweGM1LDB4ODMsMHhjYSwweGUwLAorMHhhMywweGM5LDB4YzUsMHg4MiwweGM5LDB4Y2EsMHhjNSwweDgzLDB4Y2EsMHhmMCwweGEzLDB4ZGIsMHhlYSwweGQ4LDB4ZTgsMHgyMiwKKzB4MDIsMHgwMywweGNhLDB4OGQsMHg4MiwweDhlLDB4ODMsMHhmOSwweGVkLDB4ZjgsMHhlMCwweGYyLDB4MDgsMHhhMywweGQ5LDB4ZmEsCisweDIyLDB4MDIsMHgwMywweGQ0LDB4YmIsMHgwMiwweDRkLDB4YmYsMHgwMCwweDEyLDB4ODksMHg4MiwweDhhLDB4ODMsMHhmOSwweGVkLAorMHhmOCwweDAyLDB4MDMsMHhlNiwweDA4LDB4YTMsMHhlNCwweDkzLDB4ZjYsMHhkOSwweGY5LDB4MjIsMHhiZiwweDAxLDB4MjMsMHg4ZCwKKzB4ODIsMHg4ZSwweDgzLDB4ZmIsMHgwOCwweGM5LDB4YzUsMHg4MiwweGM5LDB4Y2EsMHhjNSwweDgzLDB4Y2EsMHhlNCwweDkzLDB4YTMsCisweGM5LDB4YzUsMHg4MiwweGM5LDB4Y2EsMHhjNSwweDgzLDB4Y2EsMHhmMCwweGEzLDB4ZGIsMHhlOSwweGQ4LDB4ZTcsMHgyMiwweDAyLAorMHgwNCwweDE5LDB4ODksMHg4MiwweDhhLDB4ODMsMHhmOSwweGVkLDB4ZjgsMHhlNCwweDkzLDB4ZjIsMHgwOCwweGEzLDB4ZDksMHhmOSwKKzB4MjIsMHgwMiwweDA0LDB4MmEsMHhiZiwweDAwLDB4MGQsMHhmYSwweGVkLDB4ZjgsMHhlMywweGY2LDB4MDgsMHgwOSwweGRhLDB4ZmEsCisweDIyLDB4MDIsMHgwNCwweDM0LDB4YmYsMHgwMSwweDEyLDB4OGQsMHg4MiwweDhlLDB4ODMsMHhmOCwweDAyLDB4MDQsMHg0MSwweDA5LAorMHhhMywweGUzLDB4ZjAsMHhkOCwweGZhLDB4MjIsMHgwMiwweDA0LDB4NGMsMHhmYSwweGVkLDB4ZjgsMHhlMywweGYyLDB4MDgsMHgwOSwKKzB4ZGEsMHhmYSwweDIyLDB4MDIsMHgwNCwweDU2LDB4ZTYsMHhmYiwweDA4LDB4ZTYsMHhmYSwweDA4LDB4ZTYsMHhmOSwweDA0LDB4ZjYsCisweDE4LDB4NzAsMHgwMSwweDA2LDB4MjIsMHhlNiwweGZmLDB4MDgsMHhlNiwweGZlLDB4MDgsMHhlNiwweGZkLDB4MjIsMHhlZiwweGYwLAorMHhhMywweGVlLDB4ZjAsMHhhMywweGVkLDB4ZjAsMHgyMiwweGViLDB4ZjAsMHhhMywweGVhLDB4ZjAsMHhhMywweGU5LDB4ZjAsMHgyMiwKKzB4ZTAsMHhmZiwweGEzLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZCwweDIyLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsCisweGY5LDB4MjIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA0LDB4ZjksMHgwMCwweDYxLDB4MDUsMHg2OCwweDAwLAorMHgyNiwweDA1LDB4OGYsMHgwMCwweDMzLDB4MGEsMHgwMCwweDAwLDB4NjEsMHgwYSwweDZjLDB4MDAsMHg2NiwweDE1LDB4MWQsMHgwMCwKKzB4NjEsMHgwYywweGYwLDB4MDAsMHg2MSwweDA5LDB4YTAsMHgwMCwweDYxLDB4MDksMHhkNywweDAwLDB4NjEsMHgwZCwweGI3LDB4MDAsCisweDYxLDB4MGIsMHhlOCwweDAwLDB4NjEsMHgwYSwweDEzLDB4MDAsMHg2MSwweDBhLDB4NDgsMHgwMCwweDYxLDB4MTcsMHgxNSwweDAwLAorMHgzMywweDE3LDB4MjgsMHgwMCwweDM0LDB4MWQsMHhmNiwweDAwLDB4NDMsMHgxZSwweGExLDB4MDAsMHg0NCwweDIwLDB4MGUsMHgwMCwKKzB4NDQsMHgxZiwweGZjLDB4MDAsMHg0NywweDFlLDB4YzgsMHgwMCwweDQ3LDB4MWYsMHg2ZCwweDAwLDB4NGQsMHgxZiwweGJlLDB4MDAsCisweDRmLDB4MWUsMHhlYSwweDAwLDB4NTgsMHgzMiwweDU2LDB4MDAsMHg2MSwweDdjLDB4Y2MsMHg3ZCwweGZmLDB4MTIsMHgxYywweGE3LAorMHgyMiwweDkwLDB4ZmYsMHhmYywweGUwLDB4MjAsMHhlNywweDJkLDB4YzIsMHhhZiwweGFlLDB4NTksMHhhZiwweDU4LDB4NzUsMHg1YSwKKzB4MjAsMHhlNSwweDVhLDB4MTQsMHhjNSwweDVhLDB4NjAsMHgxOSwweGU0LDB4ZmUsMHg3ZiwweDA1LDB4ZWUsMHg0ZiwweGNlLDB4MjQsCisweGZmLDB4Y2UsMHhjZiwweDM0LDB4ZmYsMHhjZiwweDYwLDB4MDcsMHhlNCwweDkwLDB4ZmYsMHg5MiwweGYwLDB4ODAsMHhlZCwweDgwLAorMHhlMCwweDhlLDB4NTksMHg4ZiwweDU4LDB4MjIsMHgxMiwweDA1LDB4MDEsMHg3ZCwweDA3LDB4N2MsMHhiNywweDEyLDB4MzIsMHg3MiwKKzB4N2QsMHgwZiwweDdjLDB4NmUsMHgxMiwweDMyLDB4OGMsMHg3OCwweDlkLDB4N2EsMHgwNiwweGU0LDB4ZjYsMHgwOCwweGRhLDB4ZmMsCisweDdhLDB4MDYsMHgxMiwweDA1LDB4YzQsMHg3YywweDAzLDB4MTIsMHgwZSwweDRjLDB4MTIsMHgyMSwweDRhLDB4ZTQsMHhmZSwweGZmLAorMHg3YywweDBmLDB4MTIsMHgzMSwweGZiLDB4ZDIsMHhhOCwweDIyLDB4MTIsMHgzMCwweGU2LDB4ZTQsMHg5MCwweGZjLDB4MzgsMHhmMCwKKzB4OTAsMHhmZiwweGYwLDB4ZTAsMHgzMCwweGU0LDB4MDgsMHg3NCwweDAxLDB4OTAsMHhmYywweDM5LDB4ZjAsMHg4MCwweDA1LDB4ZTQsCisweDkwLDB4ZmMsMHgzOSwweGYwLDB4N2QsMHgwYSwweDdjLDB4MDAsMHgxMiwweDI1LDB4MjYsMHgxMiwweDMxLDB4NjksMHgyMiwweDEyLAorMHgzMCwweGU2LDB4OTAsMHhmYywweDM5LDB4ZTAsMHgxNCwweDcwLDB4MGUsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDQ0LDB4MTAsMHhmMCwKKzB4N2MsMHgwMCwweDEyLDB4MjUsMHhiZiwweDgwLDB4MTksMHg5MCwweGZjLDB4MzksMHhlMCwweDcwLDB4MGUsMHg5MCwweGZmLDB4ZjAsCisweGUwLDB4NTQsMHhlZiwweGYwLDB4N2MsMHgwMCwweDEyLDB4MjUsMHhiZiwweDgwLDB4MDUsMHg3YywweDE3LDB4MTIsMHgyNSwweGJmLAorMHgxMiwweDMxLDB4NjksMHgyMiwweDkwLDB4ZmYsMHhmMCwweGUwLDB4NTQsMHhhYiwweGYwLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg0NCwKKzB4MjAsMHhmMCwweDIyLDB4OGMsMHgzNywweDhkLDB4MzYsMHg3OCwweDgyLDB4ZWQsMHhmNiwweDA4LDB4ZWMsMHhmNiwweGVkLDB4ZmUsCisweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA1LDB4MTIsMHgwMSwweGVjLDB4NzgsMHg4MCwweGY2LDB4NzgsMHg4MiwweGU2LAorMHhmZCwweDA4LDB4ZTYsMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsMHgwNCwweDEyLDB4MDEsMHhlYywKKzB4NTQsMHgwZiwweGZjLDB4N2QsMHg4MCwweDEyLDB4MTcsMHg0NiwweDc4LDB4ODAsMHhlNiwweDcwLDB4MGQsMHhhZCwweDNhLDB4YWUsCisweDM5LDB4YWYsMHgzOCwweGU0LDB4MTIsMHgwMywweDBmLDB4N2MsMHgwOCwweDIyLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg1NCwweGZlLAorMHhmMCwweDkwLDB4ZmYsMHhmMCwweGUwLDB4NTQsMHhmZCwweGYwLDB4ODAsMHgxZSwweDc4LDB4ODIsMHhlNiwweGZkLDB4MDgsMHhlNiwKKzB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDgsMHgxMiwweDAyLDB4MGUsMHgyNSwweGUwLDB4NDQsCisweDAxLDB4OTAsMHhmZiwweGYzLDB4ZjAsMHgwMiwweDA2LDB4ZDAsMHg3OCwweDgyLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweGVkLAorMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA2LDB4MTIsMHgwMiwweDBlLDB4NTQsMHhmZSwweDkwLDB4ZmYsMHhmMywKKzB4ZjAsMHg4MCwweDJiLDB4NzgsMHg4MiwweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsCisweDkwLDB4MDAsMHgwOCwweDEyLDB4MDIsMHgwZSwweGZhLDB4ZWIsMHg5MCwweGZmLDB4ZjEsMHhmMCwweDEyLDB4MDgsMHhiZiwweDQwLAorMHgwZCwweGFkLDB4M2EsMHhhZSwweDM5LDB4YWYsMHgzOCwweGU0LDB4MTIsMHgwMywweDBmLDB4N2MsMHgxOCwweDIyLDB4NzgsMHg4MiwKKzB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsMHgwOCwweDEyLDB4MDIsCisweDBlLDB4OTAsMHhmZiwweGYxLDB4ZjAsMHgxMiwweDA4LDB4YmYsMHg0MCwweDBkLDB4YWQsMHgzYSwweGFlLDB4MzksMHhhZiwweDM4LAorMHhlNCwweDEyLDB4MDMsMHgwZiwweDdjLDB4MTgsMHgyMiwweDc4LDB4ODIsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4ZWQsMHhmZSwKKzB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDYsMHgxMiwweDAyLDB4MGUsMHg0NCwweDAxLDB4OTAsMHhmZiwweGYzLDB4ZjAsCisweDc4LDB4ODMsMHhlNiwweDI0LDB4MDMsMHhmNiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjYsMHg3OCwweDgwLDB4ZTYsMHgyNCwweGZlLAorMHg1MCwweDA5LDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg1NCwweGZkLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg0NCwKKzB4MDIsMHhmMCwweGU0LDB4OTAsMHhmZiwweGYxLDB4ZjAsMHg3OCwweDgxLDB4NzYsMHgwMCwweDc4LDB4ODAsMHhlNiwweDI0LDB4ZmYsCisweGZjLDB4ZTQsMHgzNCwweGZmLDB4ZmQsMHg3OCwweDgxLDB4ZTYsMHg3ZiwweDAwLDB4ZmUsMHhlYywweGQzLDB4OWUsMHhlZiwweDY0LAorMHg4MCwweGNkLDB4NjQsMHg4MCwweDlkLDB4NDAsMHgyZiwweDEyLDB4MDgsMHhhNCwweDQwLDB4MGYsMHg3OCwweDgxLDB4ZTYsMHhhZCwKKzB4M2EsMHhhZSwweDM5LDB4YWYsMHgzOCwweDEyLDB4MDMsMHgwZiwweDdjLDB4MTgsMHgyMiwweDkwLDB4ZmYsMHhmMiwweGUwLDB4ZmMsCisweDc4LDB4ODIsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZWMsMHhmMCwweDc4LDB4ODEsMHgwNiwweGEzLDB4NzgsMHg4MiwweGE2LAorMHg4MywweDA4LDB4YTYsMHg4MiwweDgwLDB4YjUsMHgxMiwweDA4LDB4YTQsMHg0MCwweDBmLDB4NzgsMHg4MSwweGU2LDB4YWQsMHgzYSwKKzB4YWUsMHgzOSwweGFmLDB4MzgsMHgxMiwweDAzLDB4MGYsMHg3YywweDE4LDB4MjIsMHg5MCwweGZmLDB4ZjIsMHhlMCwweGZjLDB4NzgsCisweDgyLDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGVjLDB4ZjAsMHg3OCwweDgwLDB4ZTYsMHhhZCwweDNhLDB4YWUsMHgzOSwweGFmLAorMHgzOCwweDEyLDB4MDMsMHgwZiwweDdjLDB4MDAsMHgyMiwweDhjLDB4MzcsMHg4ZCwweDM2LDB4NzgsMHg4MiwweGVkLDB4ZjYsMHgwOCwKKzB4ZWMsMHhmNiwweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsMHgwNSwweDEyLDB4MDEsMHhlYywweDc4LDB4ODEsCisweGY2LDB4NzgsMHg4MiwweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLAorMHgwNCwweDEyLDB4MDEsMHhlYywweDU0LDB4MGYsMHhmYywweDdkLDB4ODEsMHgxMiwweDE3LDB4NDYsMHg3OCwweDgxLDB4ZTYsMHg3MCwKKzB4MDMsMHg3YywweDA4LDB4MjIsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDU0LDB4ZmUsMHhmMCwweDkwLDB4ZmYsMHhmMCwweGUwLDB4NTQsCisweGZkLDB4ZjAsMHg4MCwweDFiLDB4NzgsMHg4MiwweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLAorMHgwMSwweDkwLDB4MDAsMHgwOCwweDEyLDB4MDIsMHgwZSwweDI1LDB4ZTAsMHg5MCwweGZmLDB4ZjMsMHhmMCwweDgwLDB4NWIsMHg3OCwKKzB4ODIsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA2LDB4MTIsCisweDAyLDB4MGUsMHg1NCwweGZlLDB4OTAsMHhmZiwweGYzLDB4ZjAsMHg4MCwweDIxLDB4NzgsMHg4MiwweGU2LDB4ZmQsMHgwOCwweGU2LAorMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsMHgwOCwweDEyLDB4MDIsMHgwZSwweGZhLDB4ZWIsMHg5MCwKKzB4ZmYsMHhmMSwweGYwLDB4MTIsMHgwOCwweGJmLDB4NDAsMHgwMywweDdjLDB4MTgsMHgyMiwweDc4LDB4ODIsMHhlNiwweGZkLDB4MDgsCisweGU2LDB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDgsMHgxMiwweDAyLDB4MGUsMHg5MCwweGZmLAorMHhmMSwweGYwLDB4MTIsMHgwOCwweGJmLDB4NDAsMHgwMywweDdjLDB4MTgsMHgyMiwweDc4LDB4ODMsMHhlNiwweDI0LDB4MGEsMHhmNiwKKzB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNiwweDc4LDB4ODAsMHg3NiwweDAwLDB4NzgsMHg4MSwweGU2LDB4MjQsMHhmZiwweGZjLDB4ZTQsCisweDM0LDB4ZmYsMHhmZCwweDc4LDB4ODAsMHhlNiwweDdmLDB4MDAsMHhmZSwweGVjLDB4ZDMsMHg5ZSwweGVmLDB4NjQsMHg4MCwweGNkLAorMHg2NCwweDgwLDB4OWQsMHg0MCwweDIxLDB4NzgsMHg4MiwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlMCwweDkwLDB4ZmYsMHhmMSwKKzB4ZjAsMHgxMiwweDA4LDB4YmYsMHg0MCwweDAzLDB4N2MsMHgxOCwweDIyLDB4NzgsMHg4MCwweDA2LDB4NzgsMHg4MywweDA2LDB4ZTYsCisweDE4LDB4NzAsMHgwMSwweDA2LDB4ODAsMHhjMywweDkwLDB4ZmYsMHhmMCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NzgsMHg4MiwweDg2LAorMHg4MywweDA4LDB4ODYsMHg4MiwweGUwLDB4OTAsMHhmZiwweGYxLDB4ZjAsMHgxMiwweDA4LDB4YmYsMHg0MCwweDAzLDB4N2MsMHgxOCwKKzB4MjIsMHg3YywweDAwLDB4MjIsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDIwLDB4ZTcsMHgxMiwweDkwLDB4ZmYsMHhmMCwweGUwLDB4MzAsCisweGU1LDB4MDksMHg5MCwweGZmLDB4ZjAsMHhlMCwweDQ0LDB4MjAsMHhmMCwweGMzLDB4MjIsMHg4MCwweGU3LDB4ZDMsMHgyMiwweDkwLAorMHhmZiwweGYwLDB4ZTAsMHgyMCwweGUzLDB4MTIsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDMwLDB4ZTUsMHgwOSwweDkwLDB4ZmYsMHhmMCwKKzB4ZTAsMHg0NCwweDIwLDB4ZjAsMHhjMywweDIyLDB4ODAsMHhlNywweGQzLDB4MjIsMHg4YywweDQyLDB4OGQsMHg0MSwweDdjLDB4MDAsCisweGVkLDB4NTQsMHhmMCwweGZkLDB4ZWMsMHg3MCwweDAzLDB4ZWQsMHg2NCwweDMwLDB4NzAsMHgwNSwweDc1LDB4M2UsMHgwMywweDgwLAorMHgwMywweDc1LDB4M2UsMHgwNCwweGFjLDB4M2UsMHgxMiwweDBmLDB4NjksMHg3NSwweDgzLDB4MDAsMHg4NSwweDgzLDB4NDAsMHhlNSwKKzB4NDEsMHg1NCwweDBmLDB4ZjUsMHgzZiwweGU1LDB4NDAsMHg3MCwweDA0LDB4ZTUsMHgzZiwweDY0LDB4MDMsMHg3MCwweDM1LDB4ZTUsCisweDNlLDB4MjQsMHhmZCwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHgwMiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLAorMHhlMCwweDMwLDB4ZTYsMHgwNSwweDEyLDB4MTAsMHg0YiwweDgwLDB4MTksMHhlNSwweDNlLDB4MjQsMHg5ZCwweGY4LDB4YzYsMHg1NCwKKzB4ZmIsMHhmNiwweDc4LDB4YTksMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4NzQsCisweDBmLDB4ZjAsMHg4MCwweDU5LDB4ZTUsMHg0MCwweDcwLDB4MDQsMHhlNSwweDNmLDB4NjQsMHgwNCwweDcwLDB4NDgsMHhlNSwweDNlLAorMHgyNCwweGZkLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweDAyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LDB4ODMsMHhlMCwKKzB4MzAsMHhlNSwweDA3LDB4YWMsMHg0MiwweGFkLDB4NDEsMHgxMiwweDFjLDB4M2MsMHhlNSwweDQyLDB4MzAsMHhlMiwweDE1LDB4NzgsCisweGFkLDB4ZTYsMHgzMCwweGUwLDB4MGYsMHg3OCwweGFkLDB4ZTYsMHgzMCwweGUxLDB4MDksMHhlNCwweGZmLDB4MDQsMHhmZSwweDdjLAorMHgwNCwweDEyLDB4MzEsMHhmYiwweDc4LDB4YTksMHhlNiwweDI0LDB4MDYsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwKKzB4ODMsMHg3NCwweDBmLDB4ZjAsMHg4MCwweDA3LDB4ZTQsMHhmYywweDdkLDB4ZWUsMHgxMiwweDFjLDB4M2MsMHhjMiwweDAzLDB4MjIsCisweDEyLDB4MzAsMHhlNiwweDEyLDB4MGYsMHg2OSwweDc4LDB4YTksMHhlNiwweDI0LDB4MDYsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LAorMHgwMCwweGY1LDB4ODMsMHhlMCwweDkwLDB4ZmMsMHgzOCwweGYwLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwKKzB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4OTAsMHhmYywweDM5LDB4ZjAsMHhjMiwweDAzLDB4N2QsMHgwMiwweDdjLDB4MDAsCisweDEyLDB4MjUsMHgyNiwweDEyLDB4MzEsMHg2OSwweDIyLDB4MTIsMHgzMCwweGU2LDB4NzgsMHg5NSwweGVjLDB4ZjYsMHhlYywweDI0LAorMHg5ZCwweGY4LDB4ZTYsMHgzMCwweGUxLDB4MDcsMHg3YywweDEzLDB4MTIsMHgyNSwweGJmLDB4ODAsMHgwZiwweDkwLDB4ZmMsMHgzOSwKKzB4ZTAsMHhmZCwweDc4LDB4OTUsMHhlNiwweGZjLDB4MTIsMHgxMywweGM4LDB4MTIsMHgyNSwweGJmLDB4MTIsMHgzMSwweDY5LDB4MjIsCisweDEyLDB4MzAsMHhlNiwweDc4LDB4OTUsMHhlYywweGY2LDB4N2QsMHgwMCwweDEyLDB4MGYsMHgwOSwweDEyLDB4MjUsMHhiZiwweDEyLAorMHgzMSwweDY5LDB4MjIsMHgxMiwweDMwLDB4ZTYsMHg3OCwweDk1LDB4ZWMsMHhmNiwweGVjLDB4MjQsMHg5ZCwweGY4LDB4ZTYsMHgzMCwKKzB4ZTIsMHgwNywweDdjLDB4MTMsMHgxMiwweDI1LDB4YmYsMHg4MCwweDFiLDB4NzgsMHg5NSwweGU2LDB4MjQsMHg5ZCwweGY4LDB4ZTYsCisweDIwLDB4ZTEsMHgwNywweDdjLDB4MTIsMHgxMiwweDI1LDB4YmYsMHg4MCwweDBhLDB4NzgsMHg5NSwweGU2LDB4ZmMsMHgxMiwweDEzLAorMHhlYywweDEyLDB4MjUsMHhiZiwweDEyLDB4MzEsMHg2OSwweDIyLDB4MTIsMHgzMCwweGU2LDB4NzgsMHg5NSwweGVjLDB4ZjYsMHhlYywKKzB4MjQsMHg5ZCwweGY4LDB4ZTYsMHgyMCwweGUyLDB4MDcsMHg3YywweDExLDB4MTIsMHgyNSwweGJmLDB4ODAsMHgwYSwweDc4LDB4OTUsCisweGU2LDB4ZmMsMHgxMiwweDE0LDB4ZWQsMHgxMiwweDI1LDB4YmYsMHgxMiwweDMxLDB4NjksMHgyMiwweDEyLDB4MzAsMHhlNiwweDc4LAorMHg5NSwweGVjLDB4ZjYsMHgxMiwweDBmLDB4NjksMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA5LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwKKzB4MDAsMHhmNSwweDgzLDB4ZTAsMHg5MCwweGZjLDB4M2YsMHhmMCwweDc4LDB4YTksMHhlNiwweDI0LDB4MGEsMHhmNSwweDgyLDB4MTgsCisweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDkwLDB4ZmMsMHg0MCwweGYwLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwMywweGY1LAorMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4ZmMsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwKKzB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHhmNSwweDYyLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsCisweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4ZjUsMHg2MywweDhjLDB4NjEsMHhlNCwweGVjLDB4MzMsMHgzMywweDU0LAorMHgwMSwweDc4LDB4OTUsMHhmNiwweDYwLDB4MDgsMHhlNSwweDYyLDB4MzAsMHhlMSwweDAzLDB4NzgsMHg5NSwweDA2LDB4NzgsMHg5NSwKKzB4ZTYsMHg5MCwweGZjLDB4NDEsMHhmMCwweDc4LDB4YTcsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCisweGY1LDB4ODMsMHhlMCwweGZkLDB4YTMsMHhlMCwweDU0LDB4MGMsMHhmYywweGVkLDB4NTQsMHhlNiwweDhjLDB4NjUsMHhmNSwweDY0LAorMHhlNSwweDYxLDB4MzAsMHhlNSwweDAzLDB4NDMsMHg2NSwweDAxLDB4ZTUsMHg2MiwweDIwLDB4ZTUsMHgwZSwweGU1LDB4NjEsMHg1NCwKKzB4N2YsMHg3MCwweDA4LDB4ZTUsMHg2MSwweDIwLDB4ZTcsMHgwMywweDQzLDB4NjUsMHgwMiwweGU1LDB4NjEsMHgzMCwweGUzLDB4MDMsCisweDQzLDB4NjUsMHgxMCwweGU1LDB4NjEsMHgzMCwweGUyLDB4MDMsMHg0MywweDY1LDB4MjAsMHhlNSwweDYxLDB4NTQsMHgwMywweDYwLAorMHgwMywweDQzLDB4NjUsMHg0MCwweGU1LDB4NjEsMHgzMCwweGUxLDB4MDMsMHg0MywweDY1LDB4ODAsMHhlNSwweDYxLDB4MzAsMHhlNCwKKzB4MDMsMHg0MywweDY0LDB4MDEsMHhlNSwweDYxLDB4MzAsMHhlNiwweDAzLDB4NDMsMHg2NCwweDA4LDB4ZTUsMHg2MiwweDIwLDB4ZTQsCisweDBlLDB4ZTUsMHg2MSwweDU0LDB4N2YsMHg3MCwweDA4LDB4ZTUsMHg2MSwweDIwLDB4ZTcsMHgwMywweDQzLDB4NjQsMHgxMCwweDUzLAorMHg2NSwweGZiLDB4NTMsMHg2NCwweDc5LDB4YWQsMHg2NCwweGU1LDB4NjUsMHg5MCwweGZjLDB4M2EsMHhjZCwweGYwLDB4YTMsMHhjZCwKKzB4ZjAsMHhlNSwweDYzLDB4MzAsMHhlMywweDBkLDB4ZTUsMHg2MywweDU0LDB4MzAsMHhjNCwweDU0LDB4MGYsMHg5MCwweGZjLDB4M2QsCisweGYwLDB4ODAsMHgwNSwweGU0LDB4OTAsMHhmYywweDNkLDB4ZjAsMHhlNSwweDYzLDB4NTQsMHgwMywweDkwLDB4ZmMsMHgzYywweGYwLAorMHhlNSwweDYzLDB4NTQsMHgwNCwweGMzLDB4MTMsMHg5MCwweGZjLDB4M2UsMHhmMCwweDkwLDB4ZmMsMHgzYywweGUwLDB4NzAsMHgwZSwKKzB4N2QsMHgzNSwweDdlLDB4ZmMsMHg3ZiwweDAxLDB4NzQsMHgwMSwweDkwLDB4MDAsMHgwOSwweDEyLDB4MDEsMHg0MiwweDc4LDB4YTksCisweGU2LDB4MjQsMHgwOCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDdjLDB4MDAsMHhmZCwweDc4LAorMHhhOSwweGU2LDB4MjQsMHgwNywweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDdmLDB4MDAsMHg0YywKKzB4ZmUsMHhlZiwweDRkLDB4OTAsMHhmYywweDM4LDB4ZjAsMHhhMywweGNlLDB4ZjAsMHhjZSwweGMyLDB4MDMsMHg3ZCwweDBhLDB4N2MsCisweDAwLDB4MTIsMHgyNSwweDI2LDB4MTIsMHgzMSwweDY5LDB4MjIsMHgxMiwweDMwLDB4ZTYsMHg3OCwweDk1LDB4ZWMsMHhmNiwweDc4LAorMHg5YSwweDc2LDB4MDEsMHgwOCwweDc2LDB4ZmMsMHgwOCwweDc2LDB4MzgsMHg3OCwweDk3LDB4NzYsMHgwYywweDc4LDB4OWEsMHgxMiwKKzB4MDQsMHg2NSwweDEyLDB4MDIsMHgxNCwweDc4LDB4OTgsMHhjYiwweGY2LDB4Y2IsMHgwOCwweGY2LDB4N2YsMHgwMCwweGVmLDB4MjQsCisweGVhLDB4NDAsMHgxZiwweGU0LDB4ZWYsMHgyNSwweGUwLDB4OTAsMHgzNSwweDJjLDB4ZmQsMHg5MywweGNkLDB4MDQsMHg5MywweDc4LAorMHg5OSwweDY2LDB4NzAsMHgwMywweGVkLDB4MTgsMHg2NiwweDcwLDB4MDYsMHg3OCwweDk3LDB4NzYsMHgwMCwweDgwLDB4MDMsMHgwZiwKKzB4ODAsMHhkYywweDc4LDB4OTYsMHhlZiwweGY2LDB4NzgsMHg5YSwweDEyLDB4MDQsMHg2NSwweDkwLDB4MDAsMHgwMiwweDEyLDB4MDIsCisweDBlLDB4NzgsMHg5OCwweGNiLDB4ZjYsMHhjYiwweDA4LDB4ZjYsMHg1NCwweDA0LDB4Y2IsMHg1NCwweDg2LDB4NGIsMHg2MCwweDA0LAorMHg3OCwweDk3LDB4NzYsMHgwYiwweDc4LDB4OTksMHhlNiwweDMwLDB4ZTMsMHgxMywweDc4LDB4OWEsMHgxMiwweDA0LDB4NjUsMHg5MCwKKzB4MDAsMHgwNSwweDEyLDB4MDEsMHhlYywweDI0LDB4ZmIsMHg1MCwweDA0LDB4NzgsMHg5NywweDc2LDB4MGQsMHg3OCwweDk5LDB4ZTYsCisweDU0LDB4YzAsMHg3ZCwweDAwLDB4NjQsMHhjMCwweDRkLDB4NzAsMHgwNCwweDc4LDB4OTcsMHg3NiwweDBiLDB4NzgsMHg5YSwweDEyLAorMHgwNCwweDY1LDB4OTAsMHgwMCwweDA0LDB4MTIsMHgwMSwweGVjLDB4MjQsMHhmYywweDUwLDB4MDQsMHg3OCwweDk3LDB4NzYsMHgwZiwKKzB4NzgsMHg5YSwweDEyLDB4MDQsMHg2NSwweDkwLDB4MDAsMHgwNiwweDEyLDB4MDEsMHhlYywweDI0LDB4ZmQsMHg1MCwweDA0LDB4NzgsCisweDk3LDB4NzYsMHgwZSwweDc4LDB4OWEsMHgxMiwweDA0LDB4NjUsMHg5MCwweDAwLDB4MDksMHgxMiwweDAxLDB4ZWMsMHgyNCwweGZkLAorMHg1MCwweDA0LDB4NzgsMHg5NywweDc2LDB4MGEsMHg3OCwweDk3LDB4ZTYsMHg3MCwweDJhLDB4NzgsMHg5NSwweGU2LDB4ZmMsMHgxMiwKKzB4MGYsMHg2OSwweDc4LDB4OWEsMHgxMiwweDA0LDB4NjUsMHg3OCwweGE3LDB4ZTYsMHhmOSwweDc4LDB4YTYsMHhlNiwweGZhLDB4N2IsCisweDAxLDB4NzQsMHgwYSwweDc4LDB4MDAsMHgxMiwweDAzLDB4M2YsMHhjMiwweDAzLDB4NzgsMHg5NSwweGU2LDB4ZmMsMHgxMiwweDExLAorMHgwNywweDc4LDB4OTcsMHhlYywweGY2LDB4NzgsMHg5NywweGU2LDB4ZmMsMHgxMiwweDI1LDB4YmYsMHgxMiwweDMxLDB4NjksMHgyMiwKKzB4MTIsMHgzMCwweGU2LDB4NzgsMHg5NSwweGVjLDB4ZjYsMHgxMiwweDBmLDB4NjksMHg3OCwweDk1LDB4ZTYsMHgyNCwweGZkLDB4NzUsCisweGYwLDB4MGEsMHhhNCwweDI0LDB4MTQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweGFjLDB4ODIsMHhhZCwweDgzLAorMHg3OCwweGE2LDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGVjLDB4ZjksMHhlZCwweGZhLDB4N2IsMHgwYSwweDc4LDB4MDEsMHgxMiwKKzB4MDMsMHhhNywweGMyLDB4MDMsMHg3OCwweDk1LDB4ZTYsMHhmYywweDEyLDB4MTEsMHgwNywweDEyLDB4MzEsMHg2OSwweDIyLDB4OGQsCisweDJiLDB4OGMsMHgyYSwweGVkLDB4NjAsMHg0MCwweDc1LDB4MjcsMHgwMSwweDc1LDB4MjksMHg0OCwweDc1LDB4MjgsMHhmZiwweGU1LAorMHgyYSwweDI0LDB4ZmQsMHhmYywweGU0LDB4MzQsMHhmZiwweGZkLDB4ZWMsMHg3YywweDAzLDB4MjUsMHhlMCwweGNkLDB4MzMsMHhjZCwKKzB4ZGMsMHhmOSwweGZjLDB4ZTUsMHgyOSwweDJjLDB4ZjUsMHgyOSwweGU1LDB4MjgsMHgzZCwweGY1LDB4MjgsMHhhZCwweDI5LDB4YWUsCisweDI4LDB4YWYsMHgyNywweDc0LDB4ODAsMHg5MCwweDAwLDB4MDYsMHgxMiwweDAzLDB4MTcsMHg3NCwweDgwLDB4OTAsMHgwMCwweDAyLAorMHgxMiwweDAzLDB4MTcsMHgxMiwweDBmLDB4YjcsMHhlNSwweDJiLDB4MTQsMHg2MCwweDNiLDB4NzUsMHgyNywweDAxLDB4NzUsMHgyOSwKKzB4MDgsMHg3NSwweDI4LDB4ZmYsMHhlNSwweDJhLDB4MjQsMHhmZCwweGZjLDB4ZTQsMHgzNCwweGZmLDB4ZmQsMHhlYywweDdjLDB4MDMsCisweDI1LDB4ZTAsMHhjZCwweDMzLDB4Y2QsMHhkYywweGY5LDB4ZmMsMHhlNSwweDI5LDB4MmMsMHhmNSwweDI5LDB4ZTUsMHgyOCwweDNkLAorMHhmNSwweDI4LDB4YWQsMHgyOSwweGFlLDB4MjgsMHhhZiwweDI3LDB4ZTQsMHg5MCwweDAwLDB4MDYsMHgxMiwweDAzLDB4MTcsMHhlNCwKKzB4OTAsMHgwMCwweDAyLDB4MTIsMHgwMywweDE3LDB4MjIsMHgxMiwweDMwLDB4ZTYsMHg3OCwweDk1LDB4ZWMsMHhmNiwweGVjLDB4MjQsCisweDlkLDB4ZjgsMHhlNiwweDMwLDB4ZTIsMHgwOSwweDc4LDB4OTUsMHhlNiwweGZjLDB4MTIsMHgxNCwweGVkLDB4ZDIsMHgwMCwweDc4LAorMHg5NSwweGU2LDB4ZmMsMHgxMiwweDBmLDB4NjksMHg3OCwweDk2LDB4NzYsMHgwMCwweDkwLDB4ZmMsMHgzOSwweGUwLDB4MzAsMHhlNywKKzB4MDQsMHg3OCwweDk2LDB4NzYsMHgwMSwweDc4LDB4OTYsMHhlNiwweGZkLDB4NzgsMHg5NSwweGU2LDB4ZmMsMHgxMiwweDBkLDB4MmYsCisweGMyLDB4MDMsMHgzMCwweDAwLDB4MDcsMHg3OCwweDk1LDB4ZTYsMHhmYywweDEyLDB4MTMsMHhlYywweDdjLDB4MDAsMHgxMiwweDI1LAorMHhiZiwweDEyLDB4MzEsMHg2OSwweDIyLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKKzB4ZjUsMHg4MywweGUwLDB4NDQsMHgwMSwweGYwLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsCisweDAwLDB4ZjUsMHg4MywweGUwLDB4MzAsMHhlMCwweDAyLDB4ODAsMHhlZCwweDc4LDB4YTksMHhlNiwweDI0LDB4MGIsMHhmNSwweDgyLAorMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LDB4ZjgsMHhmMCwweDc4LDB4YTksMHhlNiwweDI0LDB4MDIsMHhmNSwKKzB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDQ0LDB4ODAsMHhmMCwweDIyLDB4YzIsMHgwMywweDhjLDB4NTgsCisweDEyLDB4MGYsMHg2OSwweDc4LDB4YTYsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4NzksMHg1ZCwweDdhLDB4MzUsMHg3YiwweDBhLAorMHg3OCwweDAxLDB4MTIsMHgwMywweGY1LDB4MTIsMHgwZSwweDA1LDB4YWMsMHg1OCwweDdkLDB4MDIsMHgxMiwweDBkLDB4MmYsMHhjMiwKKzB4MDMsMHhhYywweDU4LDB4MTIsMHgxMSwweDA3LDB4MjIsMHg4ZCwweDUzLDB4OGUsMHg1MiwweDhmLDB4NTEsMHg4YywweDUwLDB4MTIsCisweDBmLDB4NjksMHg3NSwweDRmLDB4MDAsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAorMHhmNSwweDgzLDB4ZTAsMHgyMCwweGU0LDB4MWYsMHhlNSwweDRmLDB4MjQsMHhmNiwweDQwLDB4MTksMHgwNSwweDRmLDB4YzIsMHgwMywKKzB4N2MsMHgxOCwweDEyLDB4MzIsMHhhOSwweDkwLDB4ZmYsMHg5MywweGUwLDB4NDQsMHgwMSwweGYwLDB4YjIsMHhiMywweGFjLDB4NTAsCisweDEyLDB4MGYsMHg2OSwweDgwLDB4ZDAsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAorMHhmNSwweDgzLDB4ZTAsMHgyMCwweGU0LDB4MDUsMHhjMiwweDAzLDB4N2MsMHgwMiwweDIyLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNSwKKzB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NTQsMHgwZiwweDYwLDB4MTYsMHg3OCwweGE5LDB4ZTYsCisweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg1NCwweDBmLDB4ZjAsMHhjMiwweDAzLAorMHg3YywweDAxLDB4MjIsMHg3OCwweGE4LDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGUwLDB4YWQsMHg1MywweGFlLDB4NTIsMHhhZiwKKzB4NTEsMHgxMiwweDAzLDB4MGYsMHhjMiwweDAzLDB4N2MsMHgwMCwweDIyLDB4OGQsMHgzMSwweDhjLDB4MzAsMHgxMiwweDE0LDB4ZWQsCisweGU1LDB4MzEsMHg2MCwweDBmLDB4ZTUsMHgzMCwweGI0LDB4MDMsMHgwYSwweDdjLDB4MDEsMHgxMiwweDI0LDB4ZWUsMHg3YywweDgxLAorMHgxMiwweDI0LDB4ZWUsMHhhYywweDMwLDB4MTIsMHgwZiwweDY5LDB4ZTUsMHgzMSwweDYwLDB4MWEsMHg3OCwweGFhLDB4ODYsMHg4MywKKzB4MDgsMHg4NiwweDgyLDB4ZTAsMHg1NCwweGU3LDB4ZjAsMHhhMywweGEzLDB4YTMsMHhhMywweGUwLDB4NTQsMHhlNywweGYwLDB4YWMsCisweDMwLDB4N2QsMHgwMiwweDEyLDB4MGQsMHgyZiwweDc4LDB4YTYsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4NzksMHg2NywweDdhLAorMHgzNSwweDdiLDB4MGEsMHg3OCwweDAxLDB4MTIsMHgwMywweGY1LDB4YzIsMHgwMywweGU1LDB4MzAsMHgyNCwweDlkLDB4ZjgsMHhjNiwKKzB4NTQsMHhmZCwweGY2LDB4YWMsMHgzMCwweDEyLDB4MTEsMHgwNywweDIyLDB4OGMsMHgyNiwweDMwLDB4MDMsMHgwNSwweDEyLDB4MzIsCisweDQ4LDB4ODAsMHhmOCwweDdjLDB4MGEsMHgxMiwweDMxLDB4NWIsMHhkMiwweDAzLDB4ZTUsMHgyNiwweDI0LDB4ZmQsMHg3OCwweGEzLAorMHhmNiwweDcwLDB4MDcsMHg3OCwweGFhLDB4NzYsMHhmZiwweDA4LDB4NzYsMHhlMCwweDc4LDB4YTMsMHhlNiwweDc1LDB4ZjAsMHgxMCwKKzB4YTQsMHhhZCwweGYwLDB4ZmMsMHgyNCwweGEwLDB4NzgsMHhhOSwweGY2LDB4ZWQsMHgzNCwweGZmLDB4MTgsMHhmNiwweDc4LDB4YTMsCisweGU2LDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweDAwLDB4ZmMsMHhlNCwweDM0LDB4ZmMsMHhmZCwweDc4LDB4YTYsMHhlZCwweGY2LAorMHgwOCwweGVjLDB4ZjYsMHgxMiwweDMxLDB4ZjQsMHgyMiwweDc4LDB4YTksMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwKKzB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDMwLDB4ZTcsMHgyMiwweDc4LDB4YTksMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsCisweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LDB4N2YsMHhmMCwweDc4LDB4YTksMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLAorMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDQ0LDB4ODAsMHhmMCwweDIyLDB4NzgsMHhhYSwweDg2LDB4ODMsMHgwOCwKKzB4ODYsMHg4MiwweGUwLDB4NTQsMHg3ZiwweGYwLDB4YWQsMHg4MywweGU1LDB4ODIsMHgyNCwweDA0LDB4ZmMsMHhlNCwweDNkLDB4OGMsCisweDgyLDB4ZjUsMHg4MywweGUwLDB4NTQsMHg3ZiwweGYwLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwYiwweGY1LDB4ODIsMHgxOCwweGU2LAorMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NTQsMHhmOCwweGYwLDB4NzgsMHhhYiwweGU2LDB4MjQsMHgwMSwweGY1LDB4ODIsMHgxOCwKKzB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NDQsMHgwMywweGYwLDB4NzgsMHhhYiwweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsCisweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NDQsMHgwMywweGYwLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNSwweGY1LAorMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweDc0LDB4MGYsMHhmMCwweDIyLDB4NzgsMHhhYSwweDg2LDB4ODMsMHgwOCwKKzB4ODYsMHg4MiwweGUwLDB4NTQsMHgzZiwweGYwLDB4YWQsMHg4MywweGU1LDB4ODIsMHgyNCwweDA0LDB4ZmMsMHhlNCwweDNkLDB4OGMsCisweDgyLDB4ZjUsMHg4MywweGUwLDB4NTQsMHgzZiwweGYwLDB4NzgsMHhhMywweGU2LDB4MjQsMHhhNCwweGY4LDB4ZTYsMHhmYywweDc4LAorMHhhYiwweGU2LDB4MjQsMHgwMSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4NzgsMHhhMywKKzB4ZTYsMHgyNCwweGE0LDB4ZjgsMHhlNiwweGZjLDB4NzgsMHhhYiwweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsCisweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDBiLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAorMHhmNSwweDgzLDB4ZTAsMHg1NCwweGZiLDB4NDQsMHgwMiwweGY1LDB4MjYsMHg3OCwweGE3LDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwKKzB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHgzMCwweGU1LDB4MDMsMHg0MywweDI2LDB4MDEsMHg3OCwweGE5LDB4ZTYsCisweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHgzMCwweGUwLDB4MDMsMHgxMiwweDBmLAorMHhiNywweGU1LDB4MjYsMHhmYywweDc4LDB4YTksMHhlNiwweDI0LDB4MGIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwKKzB4ODMsMHhlYywweGYwLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsCisweDc0LDB4MGYsMHhmMCwweDc4LDB4YWEsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZTAsMHg0NCwweDgwLDB4ZjAsMHhhMywweGEzLAorMHhhMywweGEzLDB4ZTAsMHg0NCwweDgwLDB4ZjAsMHgyMiwweDhjLDB4MmEsMHgxMiwweDBmLDB4NjksMHg3OCwweGE3LDB4ZTYsMHgyNCwKKzB4MDgsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHhmYywweDc4LDB4YTksMHhlNiwweDI0LDB4MGEsCisweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4NzgsMHhhNywweGU2LDB4MjQsMHgwNywweGY1LAorMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4ZmMsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA5LDB4ZjUsMHg4MiwKKzB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDc4LDB4YTYsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZTAsCisweGZkLDB4YTMsMHhlMCwweGZjLDB4ZWQsMHhmZSwweDc4LDB4YTksMHhlNiwweDI0LDB4MDgsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LAorMHgwMCwweGY1LDB4ODMsMHhlZSwweGYwLDB4ZWMsMHhmZSwweDc4LDB4YTksMHhlNiwweDI0LDB4MDcsMHhmNSwweDgyLDB4MTgsMHhlNiwKKzB4MzQsMHgwMCwweGY1LDB4ODMsMHhlZSwweGYwLDB4OGMsMHgyOSwweDhkLDB4MjgsMHhjMywweGVjLDB4OTQsMHgwNSwweGVkLDB4OTQsCisweDBjLDB4NDAsMHgwNSwweDc1LDB4MjcsMHg3YywweDgwLDB4MzMsMHhkMywweGU1LDB4MjksMHg5NCwweDAxLDB4ZTUsMHgyOCwweDk0LAorMHgwMywweDQwLDB4MDUsMHg3NSwweDI3LDB4M2MsMHg4MCwweDIzLDB4ZDMsMHhlNSwweDI5LDB4OTQsMHg4MSwweGU1LDB4MjgsMHg5NCwKKzB4MDEsMHg0MCwweDA1LDB4NzUsMHgyNywweDE4LDB4ODAsMHgxMywweGQzLDB4ZTUsMHgyOSwweDk0LDB4NjAsMHhlNSwweDI4LDB4OTQsCisweDAwLDB4NDAsMHgwNSwweDc1LDB4MjcsMHgwYywweDgwLDB4MDMsMHg3NSwweDI3LDB4MDgsMHhhZiwweDI3LDB4ZTQsMHhlZiwweDU0LAorMHg3YywweDQ0LDB4ODMsMHhmZiwweDhmLDB4MjcsMHhlNSwweDI3LDB4ZmMsMHg3OCwweGFiLDB4ZTYsMHgyNCwweDAxLDB4ZjUsMHg4MiwKKzB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweGU1LDB4MjcsMHhmYywweDc4LDB4YWIsMHhlNiwweDI0LDB4MDUsCisweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4ZTUsMHgyNywweGZjLDB4NzgsMHhhMywweGU2LAorMHgyNCwweGE0LDB4ZjgsMHhlYywweGY2LDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKKzB4ZjUsMHg4MywweGUwLDB4ZjUsMHgyNywweDc4LDB4YTcsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCisweGY1LDB4ODMsMHhhMywweGUwLDB4MzAsMHhlMywweDE3LDB4NTMsMHgyNywweGM3LDB4NzgsMHhhNywweGU2LDB4MjQsMHgwNSwweGY1LAorMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4OTAsMHgzNSwweDU4LDB4OTMsMHg0MiwweDI3LDB4NTMsMHgyNywKKzB4ZmIsMHg3OCwweGE3LDB4ZTYsMHgyNCwweDA2LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NjAsCisweDAzLDB4NDMsMHgyNywweDA0LDB4NTMsMHgyNywweGZjLDB4NzgsMHhhNywweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LAorMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NDIsMHgyNywweDQzLDB4MjcsMHg4MCwweGU1LDB4MjcsMHhmYywweDc4LDB4YTksMHhlNiwKKzB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4NzgsMHhhOSwweGU2LDB4MjQsCisweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4ZjUsMHgyNywweDc4LDB4YTcsMHhlNiwweDI0LAorMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhhMywweGUwLDB4MzAsMHhlMSwweDA1LDB4NTMsMHgyNywKKzB4ZGYsMHg4MCwweDAzLDB4NDMsMHgyNywweDIwLDB4NzgsMHhhNywweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsCisweDAwLDB4ZjUsMHg4MywweGUwLDB4MzAsMHhlNCwweDA1LDB4NTMsMHgyNywweGVmLDB4ODAsMHgwMywweDQzLDB4MjcsMHgxMCwweDc4LAorMHhhNywweGU2LDB4MjQsMHgwOSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweGI0LDB4MDIsMHgwMywKKzB4NDMsMHgyNywweDAyLDB4ZTUsMHgyNywweGZjLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsCisweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDAzLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAorMHhmNSwweDgzLDB4ZTAsMHhmNSwweDI3LDB4NzgsMHhhNywweGU2LDB4MjQsMHgwOSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKKzB4ZjUsMHg4MywweGUwLDB4NzAsMHgwNSwweDUzLDB4MjcsMHg3ZiwweDgwLDB4MDMsMHg0MywweDI3LDB4ODAsMHg3OCwweGE3LDB4ZTYsCisweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4YTMsMHhlMCwweDMwLDB4ZTAsMHgwNSwweDQzLAorMHgyNywweDIwLDB4ODAsMHgwMywweDUzLDB4MjcsMHhkZiwweDc4LDB4YTcsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwKKzB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDMwLDB4ZTMsMHgwNSwweDQzLDB4MjcsMHg0MCwweDgwLDB4MDMsMHg1MywweDI3LDB4YmYsCisweDc4LDB4YTcsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHgzMCwweGUwLAorMHgwNSwweDQzLDB4MjcsMHgxMCwweDgwLDB4MDMsMHg1MywweDI3LDB4ZWYsMHg3OCwweGE3LDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwKKzB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4YTMsMHhlMCwweDMwLDB4ZTQsMHgwNSwweDQzLDB4MjcsMHgwOCwweDgwLDB4MDMsCisweDUzLDB4MjcsMHhmNywweDc4LDB4YTcsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLAorMHhhMywweGUwLDB4MzAsMHhlNSwweDA1LDB4NDMsMHgyNywweDA0LDB4ODAsMHgwMywweDUzLDB4MjcsMHhmYiwweDc4LDB4YTcsMHhlNiwKKzB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhhMywweGUwLDB4MzAsMHhlNiwweDA1LDB4NDMsCisweDI3LDB4MDEsMHg4MCwweDAzLDB4NTMsMHgyNywweGZlLDB4NzgsMHhhNywweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LAorMHgzNCwweDAwLDB4ZjUsMHg4MywweGEzLDB4ZTAsMHgzMCwweGU3LDB4MDUsMHg0MywweDI3LDB4MDIsMHg4MCwweDAzLDB4NTMsMHgyNywKKzB4ZmQsMHhlNSwweDI3LDB4ZmMsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDAzLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsCisweDgzLDB4ZWMsMHhmMCwweGMyLDB4MDMsMHg3YywweDAwLDB4MjIsMHg4ZCwweDI3LDB4OGMsMHgyNiwweGVkLDB4NTQsMHgwMywweDE0LAorMHg2MCwweDAzLDB4N2MsMHgxMCwweDIyLDB4ZTUsMHgyNywweDU0LDB4N2MsMHgyNCwweGZjLDB4NDAsMHgwMywweDdjLDB4MGIsMHgyMiwKKzB4ZTUsMHgyNiwweDI0LDB4OWQsMHhmOCwweGM2LDB4NDQsMHgwMiwweGY2LDB4N2MsMHgwMCwweDIyLDB4OGMsMHgzMCwweDEyLDB4MGYsCisweDY5LDB4ZTUsMHgzMCwweDI0LDB4OWQsMHhmOCwweGU2LDB4MjAsMHhlMiwweDRmLDB4YWMsMHgzMCwweDdkLDB4MDIsMHgxMiwweDBkLAorMHgyZiwweGU1LDB4MzAsMHgyNCwweGZlLDB4NDQsMHgyOCwweGZjLDB4NzgsMHhhYSwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlYywKKzB4ZjAsMHhhZiwweDgzLDB4ZTUsMHg4MiwweDI0LDB4MDQsMHhmZSwweGU0LDB4M2YsMHhmZiwweGVjLDB4OGUsMHg4MiwweDhmLDB4ODMsCisweGYwLDB4N2MsMHgwMywweDhjLDB4MmMsMHhlNSwweDJjLDB4ZmMsMHg3OCwweGFiLDB4ZTYsMHgyNCwweDAxLDB4ZjUsMHg4MiwweDE4LAorMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweGU1LDB4MmMsMHhmYywweDc4LDB4YWIsMHhlNiwweDI0LDB4MDUsMHhmNSwKKzB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4NzUsMHgyZCwweDAxLDB4NzUsMHgyZiwweDQ4LDB4NzUsCisweDJlLDB4ZmYsMHhlNSwweDMwLDB4MjQsMHhmZCwweGZjLDB4ZTQsMHgzNCwweGZmLDB4ZmQsMHhlYywweDdjLDB4MDMsMHgyNSwweGUwLAorMHhjZCwweDMzLDB4Y2QsMHhkYywweGY5LDB4ZmMsMHhlNSwweDJmLDB4MmMsMHhmNSwweDJmLDB4ZTUsMHgyZSwweDNkLDB4ZjUsMHgyZSwKKzB4NzgsMHhhYiwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LDB4ZTcsCisweGY1LDB4MmMsMHhhZCwweDJmLDB4YWUsMHgyZSwweGFmLDB4MmQsMHhlNCwweDkwLDB4MDAsMHgwMiwweDEyLDB4MDMsMHgxNywweGU0LAorMHg5MCwweDAwLDB4MDYsMHgxMiwweDAzLDB4MTcsMHgxMiwweDAxLDB4ZTYsMHgzMCwweGU1LDB4MDMsMHg0MywweDJjLDB4MTAsMHhlNSwKKzB4MmMsMHhmYywweDc4LDB4YWIsMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsCisweGYwLDB4MTIsMHgxMCwweDRiLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LAorMHg4MywweGUwLDB4YzIsMHgwMywweGZjLDB4ZTUsMHgzMCwweDI0LDB4OWQsMHhmOCwweGM2LDB4NDQsMHgwNCwweGY2LDB4OGMsMHgyYywKKzB4ZTUsMHgzMCwweDU0LDB4MGYsMHhjNCwweDU0LDB4ZjAsMHg3ZSwweDAwLDB4ZmYsMHhlZSwweGVmLDB4NDQsMHgwNCwweDdkLDB4MDAsCisweGZmLDB4ZWMsMHg0ZSwweGZjLDB4ZWQsMHg0ZiwweGZkLDB4MTIsMHgxYywweGE3LDB4N2MsMHgwMCwweDIyLDB4OGMsMHgyZiwweDEyLAorMHgwZiwweDY5LDB4MTIsMHgwZiwweGViLDB4NzgsMHhhYSwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlMCwweDU0LDB4MDgsMHhmMCwKKzB4YTMsMHhhMywweGEzLDB4YTMsMHhlMCwweDU0LDB4MDgsMHhmMCwweGFjLDB4MmYsMHg3ZCwweDAyLDB4MTIsMHgwZCwweDJmLDB4YzIsCisweDAzLDB4ZTUsMHgyZiwweDI0LDB4OWQsMHhmOCwweGM2LDB4NTQsMHhmYiwweGY2LDB4N2MsMHgwMCwweDIyLDB4MTIsMHgzMCwweGU2LAorMHg3OCwweDk2LDB4ZWMsMHhmNiwweGVjLDB4MjQsMHg5ZCwweGY4LDB4ZTYsMHgzMCwweGUxLDB4MGEsMHg3ZCwweDAwLDB4N2MsMHgxMywKKzB4MTIsMHgyNSwweDI2LDB4MTIsMHgzMSwweDY5LDB4NzgsMHg5NiwweGU2LDB4MjQsMHg5ZCwweGY4LDB4YzYsMHg0NCwweDAxLDB4ZjYsCisweDc4LDB4OTYsMHhlNiwweGZjLDB4MTIsMHgwZiwweDY5LDB4NzgsMHg5NiwweGU2LDB4MjQsMHhmZCwweDc1LDB4ZjAsMHgwYSwweGE0LAorMHgyNCwweDE0LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LDB4ODMsMHg3OCwweGE2LDB4ZTYsMHhmYSwweDA4LDB4ZTYsMHhmOSwKKzB4N2IsMHgwYSwweDc4LDB4MDEsMHgxMiwweDAzLDB4YTcsMHg3OCwweGE2LDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweDc5LDB4NjcsCisweDdhLDB4MzUsMHg3YiwweDBhLDB4NzgsMHgwMSwweDEyLDB4MDMsMHhmNSwweDEyLDB4MGYsMHhiNywweGMyLDB4MDMsMHg3OCwweDk2LAorMHhlNiwweGZjLDB4MTIsMHgxMSwweDA3LDB4NzgsMHg5NSwweGVjLDB4ZjYsMHhlYywweDYwLDB4MGEsMHg3ZCwweDAwLDB4N2MsMHgwOCwKKzB4MTIsMHgyNSwweDI2LDB4MTIsMHgzMSwweDY5LDB4NzgsMHg5NiwweGU2LDB4ZmMsMHgxMiwweDBmLDB4NjksMHg3OCwweGE5LDB4ZTYsCisweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg0NCwweDEwLDB4NTQsMHhkZiwweGZjLAorMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3OCwKKzB4OTUsMHhlYywweGY2LDB4YzIsMHgwMywweDdjLDB4YzgsMHgxMiwweDMyLDB4YTksMHg3OCwweDk2LDB4ZTYsMHhmYywweDEyLDB4MGYsCisweDY5LDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LAorMHhlZiwweGYwLDB4YzIsMHgwMywweDdjLDB4YzgsMHgxMiwweDMyLDB4YTksMHg3OCwweDk2LDB4ZTYsMHhmYywweDEyLDB4MGYsMHg2OSwKKzB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDQ0LDB4MTAsCisweGYwLDB4YzIsMHgwMywweDdjLDB4YzgsMHgxMiwweDMyLDB4YTksMHg3OCwweDk2LDB4ZTYsMHhmYywweDEyLDB4MGYsMHg2OSwweDc4LAorMHhhOSwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDQ0LDB4MjAsMHhmMCwKKzB4YzIsMHgwMywweDdjLDB4ZjAsMHgxMiwweDMyLDB4YTksMHg3OCwweDk2LDB4ZTYsMHhmYywweDEyLDB4MGYsMHg2OSwweDc4LDB4YTksCisweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDMwLDB4ZTQsMHgxNSwweGMyLAorMHgwMywweDc4LDB4OTYsMHhlNiwweDQ0LDB4MTAsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDA3LDB4MTIsMHgzMSwweGZiLDB4MTIsMHgzMSwKKzB4NjksMHgwMiwweDE3LDB4MTQsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsCisweDgzLDB4ZTAsMHg1NCwweGNmLDB4ZjAsMHhjMiwweDAzLDB4N2MsMHhjOCwweDEyLDB4MzIsMHhhOSwweDc4LDB4OTYsMHhlNiwweGZjLAorMHgxMiwweDBmLDB4NjksMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywKKzB4ZTAsMHg0NCwweDMwLDB4ZjAsMHhjMiwweDAzLDB4N2MsMHhmMCwweDEyLDB4MzIsMHhhOSwweDc4LDB4OTYsMHhlNiwweGZjLDB4MTIsCisweDBmLDB4NjksMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLAorMHgzMCwweGU0LDB4MTQsMHhjMiwweDAzLDB4NzgsMHg5NiwweGU2LDB4NDQsMHgxMCwweDdmLDB4MDAsMHhmZSwweDdjLDB4MDcsMHgxMiwKKzB4MzEsMHhmYiwweDEyLDB4MzEsMHg2OSwweDgwLDB4NWQsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsCisweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg1NCwweGVmLDB4ZjAsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LAorMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg1NCwweGRmLDB4ZjAsMHg3OCwweDk2LDB4ZTYsMHgyNCwweGZkLDB4NzUsMHhmMCwKKzB4MGEsMHhhNCwweDI0LDB4MTQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweGFjLDB4ODIsMHhhZCwweDgzLDB4NzgsCisweGE2LDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGVjLDB4ZjksMHhlZCwweGZhLDB4N2IsMHgwYSwweDc4LDB4MDEsMHgxMiwweDAzLAorMHhhNywweGMyLDB4MDMsMHg3OCwweDk2LDB4ZTYsMHhmYywweDEyLDB4MTEsMHgwNywweDdkLDB4MDAsMHg3YywweDBiLDB4MTIsMHgyNSwKKzB4MjYsMHgxMiwweDMxLDB4NjksMHgyMiwweDEyLDB4MzAsMHhlNiwweGU0LDB4OTAsMHhmYywweDM5LDB4ZjAsMHg3ZCwweDAyLDB4N2MsCisweDAwLDB4MTIsMHgyNSwweDI2LDB4MTIsMHgzMSwweDY5LDB4MjIsMHgxMiwweDMwLDB4ZTYsMHg3YywweDAwLDB4MTIsMHgyNSwweGJmLAorMHgxMiwweDMxLDB4NjksMHgyMiwweDc0LDB4M2MsMHg5MCwweGZiLDB4ZTAsMHhmMCwweDc0LDB4M2UsMHg5MCwweGZiLDB4ZTAsMHhmMCwKKzB4ZTQsMHg5MCwweGZjLDB4MjgsMHhmMCwweDIyLDB4OGQsMHgzNSwweDhjLDB4MzQsMHhlYywweGI0LDB4MDEsMHgwMiwweDgwLDB4MDMsCisweGQzLDB4NDAsMHgwMiwweDgwLDB4MjgsMHhiNCwweDAyLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDA4LDB4YTgsMHgzNSwweGM2LAorMHgyNSwweGUwLDB4ZjYsMHg4MCwweDE4LDB4YjQsMHgwNCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwYSwweGE4LDB4MzUsMHhjNiwKKzB4MjUsMHhlMCwweDI1LDB4ZTAsMHhmNiwweDgwLDB4MDYsMHhhOCwweDM1LDB4NzYsMHgwMCwweDgwLDB4MDAsMHgyMiwweDhjLDB4M2MsCisweDhkLDB4M2IsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg3NSwweDY2LDB4MDYsMHg3NSwweDY3LDB4MDAsMHg5MCwweGZjLAorMHgyOSwweDEyLDB4MDQsMHg2ZSwweDEyLDB4MDEsMHhlNiwweGI0LDB4ODAsMHgwMiwweDgwLDB4MDYsMHhkMywweDUwLDB4MDMsMHgwMiwKKzB4MTgsMHg0NywweDkwLDB4ZmMsMHgyOSwweDEyLDB4MDQsMHg4MCwweDkwLDB4MDAsMHgwMywweDEyLDB4MDEsMHhlYywweDU0LDB4ZjAsCisweGI0LDB4MzAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4NWYsMHg5MCwweGZjLDB4MjksMHgxMiwweDA0LDB4ODAsMHg5MCwweDAwLAorMHgwOCwweDEyLDB4MDIsMHgwZSwweGZhLDB4ZmQsMHhlYiwweGZlLDB4N2YsMHgwMSwweDkwLDB4ZmMsMHgyYywweDEyLDB4MDQsMHg2ZSwKKzB4ZWUsMHhjZCwweDkwLDB4MzUsMHg3MSwweGZjLDB4ZTQsMHg5MywweGZmLDB4NzQsMHgwMSwweDkzLDB4ZmUsMHhmOSwweGVmLDB4ZmEsCisweDdiLDB4MDEsMHhlYSwweGZmLDB4ZTksMHhmZSwweGVjLDB4YzMsMHg5ZSwweGVkLDB4OWYsMHg0MCwweDI1LDB4OTAsMHgzNSwweDczLAorMHhlNCwweDkzLDB4ZmQsMHg3NCwweDAxLDB4OTMsMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweGVlLDB4Y2QsMHhmYywKKzB4OTAsMHhmYywweDJlLDB4ZTAsMHhkMywweDljLDB4OTAsMHhmYywweDJkLDB4ZTAsMHg5ZCwweDUwLDB4MDUsMHg3NSwweDY2LDB4ODAsCisweDgwLDB4MzMsMHgxMiwweDE5LDB4NjUsMHg4MCwweDJlLDB4YjQsMHg2MCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwYiwweGFjLAorMHgzYywweGFkLDB4M2IsMHgxMiwweDA3LDB4NzcsMHg4YywweDY2LDB4ODAsMHgxYiwweGI0LDB4MTAsMHgwMywweGIzLDB4NDAsMHgxMCwKKzB4YzMsMHhiNCwweDIwLDB4MDMsMHhiMywweDQwLDB4MDksMHhjMywweGI0LDB4NDAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MDAsCisweDc1LDB4NjYsMHg4MSwweDgwLDB4MDAsMHg4MCwweDc1LDB4YjQsMHg4MSwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHg2YiwweDkwLAorMHhmYywweDI5LDB4MTIsMHgwNCwweDgwLDB4OTAsMHgwMCwweDAzLDB4MTIsMHgwMSwweGVjLDB4NTQsMHhmMCwweGI0LDB4MzAsMHgwMiwKKzB4ODAsMHgwMywweGQzLDB4NDAsMHgxZCwweDkwLDB4ZmMsMHgyOSwweDEyLDB4MDQsMHg4MCwweDkwLDB4MDAsMHgwOCwweDEyLDB4MDIsCisweDBlLDB4ZmEsMHhmZCwweGViLDB4ZmUsMHg3ZiwweDAxLDB4OTAsMHhmYywweDJmLDB4MTIsMHgwNCwweDZlLDB4MTIsMHgxOCwweGNmLAorMHg4MCwweDM2LDB4YjQsMHg2MCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgxMywweDc1LDB4M2EsMHg2NywweGU0LDB4ZjUsMHgzOSwKKzB4ZjUsMHgzOCwweGFjLDB4M2MsMHhhZCwweDNiLDB4MTIsMHgwNSwweGQzLDB4OGMsMHg2NiwweDgwLDB4MWIsMHhiNCwweDEwLDB4MDMsCisweGIzLDB4NDAsMHgxMCwweGMzLDB4YjQsMHgyMCwweDAzLDB4YjMsMHg0MCwweDA5LDB4YzMsMHhiNCwweDQwLDB4MDIsMHg4MCwweDAzLAorMHhkMywweDQwLDB4MDAsMHg3NSwweDY2LDB4ODEsMHg4MCwweDAwLDB4ODAsMHgwMiwweDgwLDB4MDAsMHhlNSwweDY2LDB4ZmMsMHg5MCwKKzB4ZmMsMHgyOSwweDEyLDB4MDQsMHg4MCwweGVjLDB4OTAsMHgwMCwweDAyLDB4MTIsMHgwMywweDE3LDB4YWMsMHg2NywweDIyLDB4OTAsCisweGZjLDB4MjksMHgxMiwweDA0LDB4ODAsMHg5MCwweDAwLDB4MDQsMHgxMiwweDAxLDB4ZWMsMHg2MCwweDA0LDB4NzQsMHgwMSwweDgwLAorMHgwMSwweGU0LDB4YTIsMHhlMCwweDkyLDB4MDEsMHg5MCwweGZjLDB4MjksMHgxMiwweDA0LDB4ODAsMHhlZCwweDI0LDB4MDMsMHhmZCwKKzB4NTAsMHgwMSwweDBlLDB4OTAsMHhmYywweDJjLDB4MTIsMHgwNCwweDZlLDB4OTAsMHhmYywweDI5LDB4MTIsMHgwNCwweDgwLDB4OTAsCisweDAwLDB4MDUsMHgxMiwweDAxLDB4ZWMsMHhmNSwweDY3LDB4OTAsMHgwMCwweDA0LDB4MTIsMHgwMSwweGVjLDB4NTQsMHgwZiwweGZjLAorMHg3ZCwweDY3LDB4MTIsMHgxNywweDQ2LDB4ZTUsMHg2NywweDcwLDB4MDQsMHg3NSwweDY2LDB4MDgsMHgyMiwweDc1LDB4NjYsMHgwMCwKKzB4NzgsMHg4NCwweDc2LDB4MDAsMHg3OCwweDg0LDB4ZTYsMHhjMywweDk1LDB4NjcsMHg1MCwweDM4LDB4OTAsMHhmYywweDJmLDB4MTIsCisweDA0LDB4ODAsMHgxMiwweDAxLDB4ZTYsMHhmYywweDkwLDB4ZmMsMHgyYywweDEyLDB4MDQsMHg4MCwweGVjLDB4MTIsMHgwMywweDBmLAorMHgzMCwweDAxLDB4MGUsMHg5MCwweGZjLDB4MzEsMHhlMCwweDA0LDB4ZjAsMHg5MCwweGZjLDB4MzAsMHg3MCwweDAzLDB4ZTAsMHgwNCwKKzB4ZjAsMHg3OCwweDg0LDB4MDYsMHg5MCwweGZjLDB4MmUsMHhlMCwweDA0LDB4ZjAsMHg5MCwweGZjLDB4MmQsMHg3MCwweDAzLDB4ZTAsCisweDA0LDB4ZjAsMHg4MCwweGMwLDB4MjIsMHg5MCwweGZjLDB4MmEsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZjLDB4ZWQsMHhmZSwweGVjLAorMHhmZCwweDdmLDB4MDEsMHhlZCwweDI0LDB4MGEsMHhmZCwweDUwLDB4MDEsMHgwZSwweDkwLDB4ZmMsMHgzMiwweDEyLDB4MDQsMHg2ZSwKKzB4OTAsMHhmYywweDI5LDB4MTIsMHgwNCwweDgwLDB4OTAsMHgwMCwweDA0LDB4MTIsMHgwMSwweGVjLDB4NTQsMHgwZiwweGI0LDB4MDEsCisweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgxNywweDkwLDB4ZmMsMHgzMiwweDEyLDB4MDQsMHg4MCwweDBkLDB4ZWQsMHg3MCwweDAxLAorMHgwZSwweDkwLDB4ZmMsMHgyZiwweDEyLDB4MDQsMHg2ZSwweDc4LDB4ODgsMHg3NiwweDAxLDB4ODAsMHg0ZSwweGI0LDB4MDIsMHgwMiwKKzB4ODAsMHgwMywweGQzLDB4NDAsMHgxOSwweDkwLDB4ZmMsMHgzMiwweDEyLDB4MDQsMHg4MCwweGVkLDB4MjQsMHgwMiwweGZkLDB4NTAsCisweDAxLDB4MGUsMHg5MCwweGZjLDB4MmYsMHgxMiwweDA0LDB4NmUsMHg3OCwweDg4LDB4NzYsMHgwMiwweDgwLDB4MmQsMHhiNCwweDA0LAorMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MTksMHg5MCwweGZjLDB4MzIsMHgxMiwweDA0LDB4ODAsMHhlZCwweDI0LDB4MDQsMHhmZCwKKzB4NTAsMHgwMSwweDBlLDB4OTAsMHhmYywweDJmLDB4MTIsMHgwNCwweDZlLDB4NzgsMHg4OCwweDc2LDB4MDQsMHg4MCwweDBjLDB4YjQsCisweDAwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDAwLDB4NzUsMHg2NiwweDA4LDB4MjIsMHg5MCwweGZjLDB4MjksMHgxMiwweDA0LAorMHg4MCwweDkwLDB4MDAsMHgwNSwweDEyLDB4MDEsMHhlYywweGY1LDB4NjcsMHg3OCwweDg1LDB4NzYsMHgwMCwweDc4LDB4ODUsMHhlNiwKKzB4YzMsMHg5NSwweDY3LDB4NDAsMHgwMywweDAyLDB4MWEsMHhjZCwweDc4LDB4ODYsMHg3NiwweDAwLDB4NzgsMHg4NiwweGU2LDB4YzMsCisweDc4LDB4ODgsMHg5NiwweDUwLDB4NzYsMHg5MCwweGZjLDB4MmMsMHgxMiwweDA0LDB4ODAsMHgxMiwweDAxLDB4ZTYsMHhmYywweDkwLAorMHhmYywweDMyLDB4MTIsMHgwNCwweDg5LDB4MTIsMHgwMSwweGUwLDB4ZjQsMHg1YywweGZjLDB4MTIsMHgwMSwweGUwLDB4ZjgsMHg5MCwKKzB4ZmMsMHgyZiwweDEyLDB4MDQsMHg4MCwweGU4LDB4YzAsMHhlMCwweDEyLDB4MDEsMHhlNiwweGM4LDB4ZDAsMHhlMCwweGM4LDB4NTgsCisweDRjLDB4ZmMsMHg5MCwweGZjLDB4MmMsMHgxMiwweDA0LDB4ODAsMHhlYywweDEyLDB4MDMsMHgwZiwweDc4LDB4ODcsMHhlYywweGY2LAorMHg5MCwweGZjLDB4MzEsMHhlMCwweDA0LDB4ZjAsMHg5MCwweGZjLDB4MzAsMHg3MCwweDAzLDB4ZTAsMHgwNCwweGYwLDB4MDksMHhlOSwKKzB4NzAsMHgwMSwweDBhLDB4OTAsMHhmYywweDMyLDB4MTIsMHgwNCwweDc3LDB4OTAsMHhmYywweDI5LDB4MTIsMHgwNCwweDgwLDB4OTAsCisweDAwLDB4MDQsMHgxMiwweDAxLDB4ZWMsMHgzMCwweGU0LDB4MGUsMHg5MCwweGZjLDB4MmUsMHhlMCwweDA0LDB4ZjAsMHg5MCwweGZjLAorMHgyZCwweDcwLDB4MDMsMHhlMCwweDA0LDB4ZjAsMHg3OCwweDg2LDB4MDYsMHg4MCwweDgxLDB4NzgsMHg4OCwweGU2LDB4ZmQsMHhlNCwKKzB4ZmUsMHhmZiwweGVlLDB4Y2QsMHhmYywweDkwLDB4ZmMsMHgzMSwweGUwLDB4MmMsMHhmMCwweDkwLDB4ZmMsMHgzMCwweGUwLDB4M2QsCisweGYwLDB4NzgsMHg4OCwweGU2LDB4ZmQsMHhlNCwweGZlLDB4ZmYsMHhlZSwweGNkLDB4ZmMsMHg5MCwweGZjLDB4MzQsMHhlMCwweDJjLAorMHhmMCwweDkwLDB4ZmMsMHgzMywweGUwLDB4M2QsMHhmMCwweDc4LDB4ODUsMHgwNiwweDAyLDB4MWEsMHgwZCwweDc1LDB4NjYsMHgwMCwKKzB4MjIsMHhlNSwweDNkLDB4MDUsMHgzZCwweDA0LDB4NzAsMHgwMiwweGIyLDB4YjAsMHgyMiwweGMwLDB4ZTAsMHhjMCwweGYwLDB4YzAsCisweDgyLDB4YzAsMHg4MywweGMwLDB4ZDAsMHhlOCwweGMwLDB4ZTAsMHhlOSwweGMwLDB4ZTAsMHhlYSwweGMwLDB4ZTAsMHhlYiwweGMwLAorMHhlMCwweGVjLDB4YzAsMHhlMCwweGVkLDB4YzAsMHhlMCwweGVlLDB4YzAsMHhlMCwweGVmLDB4YzAsMHhlMCwweDkwLDB4ZmYsMHg5MiwKKzB4ZTAsMHgxMiwweDAxLDB4YjcsMHgxYiwweDI5LDB4MzAsMHgxYiwweDI5LDB4MzIsMHgxYiwweDM4LDB4MzgsMHgxYiwweDRhLDB4M2EsCisweDFiLDB4NWMsMHgzZSwweDFiLDB4NzQsMHg0NCwweDFiLDB4NjgsMHg0NiwweDFiLDB4ODAsMHg1MCwweDFiLDB4YzIsMHg1MiwweDFiLAorMHhhMSwweDU0LDB4MWIsMHhlMywweDU2LDB4MDAsMHgwMCwweDFjLDB4MDQsMHg5MCwweGZmLDB4OTIsMHhlMCwweDdmLDB4MDAsMHhmZSwKKzB4N2MsMHgwMSwweDEyLDB4MzEsMHhmYiwweDAyLDB4MWMsMHgxNCwweGU0LDB4ZmYsMHgwNCwweGZlLDB4N2MsMHgwMywweDEyLDB4MzEsCisweGZiLDB4NzQsMHgyMCwweDkwLDB4ZmYsMHhmZSwweGYwLDB4MDIsMHgxYywweDE0LDB4ZTQsMHhmZiwweDA0LDB4ZmUsMHg3YywweDAyLAorMHgxMiwweDMxLDB4ZmIsMHg3NCwweDQwLDB4OTAsMHhmZiwweGZlLDB4ZjAsMHgwMiwweDFjLDB4MTQsMHhlNCwweGZmLDB4MDQsMHhmZSwKKzB4N2MsMHgwNCwweDEyLDB4MzEsMHhmYiwweDAyLDB4MWMsMHgxNCwweGU0LDB4ZmYsMHgwNCwweGZlLDB4N2MsMHgwNSwweDEyLDB4MzEsCisweGZiLDB4MDIsMHgxYywweDE0LDB4ZTQsMHhmZiwweDA0LDB4ZmUsMHg3YywweDA2LDB4MTIsMHgzMSwweGZiLDB4MDIsMHgxYywweDE0LAorMHg5MCwweGZmLDB4YTUsMHhlMCwweDdkLDB4MDAsMHg5MCwweGZiLDB4ZjgsMHhjZCwweGYwLDB4YTMsMHhjZCwweGYwLDB4OTAsMHhmYiwKKzB4ZjksMHhlMCwweGZjLDB4ZjUsMHg4MywweDkwLDB4ZmIsMHhmOCwweGUwLDB4NDQsMHgzMywweGZkLDB4MTIsMHgxYywweGE3LDB4ODAsCisweDczLDB4OTAsMHhmZiwweGI1LDB4ZTAsMHg3ZCwweDAwLDB4OTAsMHhmYiwweGZhLDB4Y2QsMHhmMCwweGEzLDB4Y2QsMHhmMCwweDkwLAorMHhmYiwweGZiLDB4ZTAsMHhmYywweGY1LDB4ODMsMHg5MCwweGZiLDB4ZmEsMHhlMCwweDQ0LDB4NDMsMHhmZCwweDEyLDB4MWMsMHhhNywKKzB4ODAsMHg1MiwweDkwLDB4ZmYsMHhhNiwweGUwLDB4N2QsMHgwMCwweDkwLDB4ZmIsMHhmYywweGNkLDB4ZjAsMHhhMywweGNkLDB4ZjAsCisweDkwLDB4ZmIsMHhmZCwweGUwLDB4ZmMsMHhmNSwweDgzLDB4OTAsMHhmYiwweGZjLDB4ZTAsMHg0NCwweDM0LDB4ZmQsMHgxMiwweDFjLAorMHhhNywweDgwLDB4MzEsMHg5MCwweGZmLDB4YjYsMHhlMCwweDdkLDB4MDAsMHg5MCwweGZiLDB4ZmUsMHhjZCwweGYwLDB4YTMsMHhjZCwKKzB4ZjAsMHg5MCwweGZiLDB4ZmYsMHhlMCwweGZjLDB4ZjUsMHg4MywweDkwLDB4ZmIsMHhmZSwweGUwLDB4NDQsMHg0NCwweGZkLDB4MTIsCisweDFjLDB4YTcsMHg4MCwweDEwLDB4OTAsMHhmZiwweDkyLDB4ZTAsMHg3ZCwweDAwLDB4ZmMsMHhlZCwweDQ0LDB4YWEsMHhmZCwweDEyLAorMHgxYywweGE3LDB4ODAsMHgwMCwweGU0LDB4OTAsMHhmZiwweDkyLDB4ZjAsMHhkMCwweGUwLDB4ZmYsMHhkMCwweGUwLDB4ZmUsMHhkMCwKKzB4ZTAsMHhmZCwweGQwLDB4ZTAsMHhmYywweGQwLDB4ZTAsMHhmYiwweGQwLDB4ZTAsMHhmYSwweGQwLDB4ZTAsMHhmOSwweGQwLDB4ZTAsCisweGY4LDB4ZDAsMHhkMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhmMCwweGQwLDB4ZTAsMHgzMiwweDA1LDB4ODEsMHgwNSwweDgxLAorMHgwNSwweDgxLDB4MDUsMHg4MSwweGE4LDB4ODEsMHgxOCwweDE4LDB4MTgsMHhlZCwweGY2LDB4MDgsMHhlYywweGY2LDB4OTAsMHhmZiwKKzB4NWEsMHhlMCwweDIwLDB4ZTcsMHgwMiwweDgwLDB4ZjcsMHg5MCwweGZmLDB4NTksMHhlMCwweDdkLDB4MDAsMHhhOCwweDgxLDB4MTgsCisweGNkLDB4ZjYsMHhjZCwweDA4LDB4ZjYsMHg3ZCwweDAzLDB4YTgsMHg4MSwweGU2LDB4MTgsMHhmYywweGU2LDB4Y2MsMHgyNSwweGUwLAorMHhjYywweDMzLDB4Y2MsMHhkZCwweGY5LDB4Y2MsMHhmNiwweGNjLDB4MDgsMHhmNiwweGE4LDB4ODEsMHgxOCwweGU2LDB4NDQsMHhmOCwKKzB4ZjYsMHhhOCwweDgxLDB4MTgsMHgxOCwweDE4LDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweGE4LDB4ODEsMHgxOCwweDg2LDB4ODMsCisweDA4LDB4ODYsMHg4MiwweGVkLDB4ZjAsMHhhMywweGVjLDB4ZjAsMHg3NCwweDAyLDB4OTAsMHhmZiwweDVhLDB4ZjAsMHgxNSwweDgxLAorMHgxNSwweDgxLDB4MTUsMHg4MSwweDE1LDB4ODEsMHgyMiwweGU1LDB4ODEsMHgyNCwweDA1LDB4ZjUsMHg4MSwweGU0LDB4YTgsMHg4MSwKKzB4MTgsMHhmNiwweGE4LDB4ODEsMHgxOCwweDE4LDB4MTgsMHgxOCwweGVkLDB4ZjYsMHgwOCwweGVjLDB4ZjYsMHg5MCwweGZiLDB4ZjUsCisweGUwLDB4MjQsMHhmOCwweDUwLDB4MDMsMHgwMiwweDFkLDB4YzgsMHhlNCwweGE4LDB4ODEsMHgxOCwweDE4LDB4ZjYsMHhhOCwweDgxLAorMHgxOCwweGU2LDB4ZmUsMHhhOCwweDgxLDB4MTgsMHgxOCwweDE4LDB4MTgsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4N2YsMHgwMCwKKzB4ZWYsMHgyNCwweGY4LDB4NDAsMHg0ZCwweGU0LDB4ZWYsMHgyNSwweGUwLDB4MjQsMHg3ZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsCisweGY1LDB4ODMsMHhlMCwweGZiLDB4YTMsMHhlMCwweDZjLDB4NzAsMHgwMywweGZhLDB4ZWIsMHg2ZCwweDcwLDB4MDksMHg3NCwweDAxLAorMHhhOCwweDgxLDB4MTgsMHgxOCwweGY2LDB4ODAsMHgyYiwweGU0LDB4ZWYsMHgyNSwweGUwLDB4MjQsMHg3ZCwweGY1LDB4ODIsMHhlNCwKKzB4MzQsMHhmYywweGY1LDB4ODMsMHg3YSwweDAwLDB4ZTAsMHg1NCwweGYwLDB4Y2MsMHhmOCwweGNjLDB4Y2QsMHhmOSwweGNkLDB4ZmIsCisweDc4LDB4MDAsMHhlOSwweDU0LDB4ZjAsMHhmOSwweGVhLDB4NjgsMHg3MCwweDAyLDB4ZWIsMHg2OSwweDcwLDB4MDEsMHgwZSwweDBmLAorMHg4MCwweGFlLDB4YTgsMHg4MSwweDE4LDB4ZWUsMHhmNiwweGE4LDB4ODEsMHgxOCwweDE4LDB4MTgsMHgxOCwweGVkLDB4ZjYsMHgwOCwKKzB4ZWMsMHhmNiwweGE4LDB4ODEsMHhlZiwweGY2LDB4YTgsMHg4MSwweDE4LDB4MTgsMHhlNiwweDcwLDB4NzksMHhhOCwweDgxLDB4MTgsCisweGU2LDB4MjQsMHhmNywweDQwLDB4NzEsMHhhOCwweDgxLDB4MTgsMHgxOCwweDE4LDB4MTgsMHhlNiwweDU0LDB4MGYsMHhhOCwweDgxLAorMHhmNiwweDY0LDB4MDQsMHg2MCwweDE3LDB4YTgsMHg4MSwweGU2LDB4NjQsMHgwMywweDYwLDB4MTAsMHhhOCwweDgxLDB4MTgsMHgxOCwKKzB4MTgsMHgxOCwweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHgxMiwweDFjLDB4M2MsMHg4MCwweDRhLDB4N2MsMHgwYSwweDEyLDB4MzEsCisweDViLDB4YTgsMHg4MSwweDE4LDB4MTgsMHgxOCwweDE4LDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweDkwLDB4ZmIsMHhmNCwweGUwLAorMHgyNSwweGUwLDB4MjQsMHg3ZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLDB4ZWQsMHhmMCwweGEzLDB4ZWMsMHhmMCwKKzB4OTAsMHhmYiwweGY0LDB4ZTAsMHhmZiwweGU0LDB4ZWYsMHgwNCwweDU0LDB4MDcsMHhmZiwweDkwLDB4ZmIsMHhmNCwweGYwLDB4OTAsCisweGZiLDB4ZjUsMHhlMCwweDA0LDB4ZjAsMHgxMiwweDMxLDB4ZjQsMHg5MCwweGZiLDB4ZjYsMHhlMCwweDcwLDB4MDgsMHhlNCwweGZlLAorMHhmZiwweDdjLDB4MGYsMHgxMiwweDMxLDB4ZmIsMHg4MCwweDI3LDB4OTAsMHhmYiwweGY3LDB4ZTAsMHgwNCwweGYwLDB4NTQsMHgzZiwKKzB4NzAsMHgxZCwweDkwLDB4ZmIsMHhmNywweGUwLDB4NDQsMHhmZSwweDdkLDB4MDAsMHhmYywweDkwLDB4ZmIsMHhmNCwweGUwLDB4MjUsCisweGUwLDB4MjQsMHg3ZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLDB4ZWQsMHhmMCwweGEzLDB4ZWMsMHhmMCwweGU1LAorMHg4MSwweDI0LDB4ZmIsMHhmNSwweDgxLDB4MjIsMHg3OCwweDhiLDB4NzYsMHgwMCwweDc4LDB4OGMsMHg3NiwweDAwLDB4NzQsMHgwMSwKKzB4OTAsMHhmYiwweGY2LDB4ZjAsMHgxMiwweDMwLDB4ZTYsMHg5MCwweGZiLDB4ZjUsMHhlMCwweDYwLDB4NTcsMHg3YywweDBhLDB4MTIsCisweDMxLDB4NWIsMHg5MCwweGZiLDB4ZjMsMHhlMCwweDI1LDB4ZTAsMHgyNCwweDdkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LAorMHg4MywweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmMsMHg5MCwweGZiLDB4ZjMsMHhlMCwweDI1LDB4ZTAsMHgyNCwweDdkLDB4ZjUsMHg4MiwKKzB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHhhMywweGYwLDB4OTAsMHhmYiwweGYzLDB4ZTAsMHhmZiwweGU0LDB4ZWYsCisweDA0LDB4NTQsMHgwNywweGZmLDB4OTAsMHhmYiwweGYzLDB4ZjAsMHg5MCwweGZiLDB4ZjUsMHhlMCwweDE0LDB4ZjAsMHg3OCwweDg5LAorMHhlZCwweGY2LDB4MDgsMHhlYywweGY2LDB4MTIsMHgzMSwweGY0LDB4NzgsMHg4OSwweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHgxMiwKKzB4MDgsMHhkYSwweDgwLDB4YTMsMHgxMiwweDMyLDB4NDgsMHg5MCwweGZmLDB4OTMsMHhlMCwweDQ0LDB4MDEsMHhmMCwweGIyLDB4YjMsCisweDc4LDB4OGIsMHgwNiwweGI2LDB4MDAsMHgxMSwweDc4LDB4OGIsMHg3NiwweDAwLDB4NzgsMHg4YywweGU2LDB4ZjQsMHgwNCwweDA0LAorMHhhMiwweGUwLDB4OTIsMHhiNCwweDc4LDB4OGMsMHhmNiwweDAyLDB4MWUsMHgwNywweGU0LDB4OTAsMHhmYiwweGY2LDB4ZjAsMHg5MCwKKzB4ZmIsMHhmNSwweGUwLDB4N2QsMHgwMCwweGZjLDB4ZWQsMHg0NCwweGNmLDB4ZmQsMHgxMiwweDFjLDB4M2MsMHgxMiwweDMxLDB4NjksCisweDIyLDB4MTIsMHgzMCwweGU2LDB4ZTUsMHg3MCwweDY0LDB4NDksMHg0NSwweDZmLDB4NjAsMHgxNSwweDkwLDB4ZmYsMHg4MywweGUwLAorMHg1NCwweDBmLDB4N2QsMHgwMCwweGQzLDB4OTUsMHg3MCwweGVkLDB4OTUsMHg2ZiwweDUwLDB4MDUsMHgxMiwweDJmLDB4MmYsMHg4MCwKKzB4MDMsMHgxMiwweDJmLDB4ZmYsMHgxMiwweDMxLDB4NjksMHgyMiwweDEyLDB4MzAsMHhlNiwweGU1LDB4NzAsMHg2NCwweDQ5LDB4NDUsCisweDZmLDB4NjAsMHgwNSwweDEyLDB4MzAsMHgzOSwweDgwLDB4MGUsMHg5MCwweGZmLDB4ODAsMHhlMCwweDQ0LDB4MDgsMHhmMCwweDkwLAorMHhmZiwweDgzLDB4ZTAsMHg1NCwweDdmLDB4ZjAsMHgxMiwweDMxLDB4NjksMHgyMiwweDEyLDB4MzAsMHhlNiwweDhjLDB4NTQsMHhlYywKKzB4NTQsMHhmMCwweGI0LDB4MTAsMHgxNSwweDc1LDB4NmEsMHgzNSwweDc1LDB4NjksMHhmYywweDc1LDB4NjgsMHgwMSwweGU1LDB4NmEsCisweDI0LDB4MDMsMHhmNSwweDZhLDB4ZTUsMHg2OSwweDM0LDB4MDAsMHhmNSwweDY5LDB4ZTQsMHhmNSwweDU3LDB4ZjUsMHg1NiwweGU1LAorMHg1NiwweGMzLDB4OTQsMHgwMSwweDUwLDB4MjcsMHhlNSwweDU0LDB4NTQsMHgwZiwweGZjLDB4YWQsMHg2YSwweGFlLDB4NjksMHhhZiwKKzB4NjgsMHgxMiwweDBlLDB4NzcsMHg4YywweDU1LDB4ZWMsMHg2MCwweDAyLDB4ODAsMHgxMiwweDA1LDB4NmEsMHhlNSwweDZhLDB4NzAsCisweDAyLDB4MDUsMHg2OSwweDA1LDB4NTcsMHhlNSwweDU3LDB4NzAsMHgwMiwweDA1LDB4NTYsMHg4MCwweGQyLDB4ZTUsMHg1NCwweDU0LAorMHgwZiwweDI0LDB4OWQsMHhmOCwweGM2LDB4NTQsMHhmZSwweGY2LDB4ZTUsMHg1NCwweDU0LDB4MGYsMHg3ZiwweDAwLDB4ZmUsMHg3YywKKzB4MTIsMHgxMiwweDMxLDB4ZmIsMHhlNSwweDU1LDB4MTQsMHg3MCwweDA5LDB4N2QsMHgwMCwweDdjLDB4MDksMHgxMiwweDI1LDB4MjYsCisweDgwLDB4MDcsMHhhZCwweDU3LDB4N2MsMHgwMCwweDEyLDB4MjUsMHgyNiwweDEyLDB4MzEsMHg2OSwweDIyLDB4MTIsMHgzMCwweGU2LAorMHg5MCwweGZmLDB4ZmMsMHhlMCwweDQ0LDB4MDIsMHhmMCwweDkwLDB4ZmYsMHgwMCwweGUwLDB4MzAsMHhlNywweDEzLDB4OTAsMHhmZiwKKzB4ODMsMHhlMCwweDQ0LDB4ODAsMHhmMCwweDQzLDB4NmQsMHg4MCwweDkwLDB4ZmYsMHhmYywweGUwLDB4NDQsMHgwMSwweGYwLDB4ODAsCisweDExLDB4OTAsMHhmZiwweDgyLDB4ZTAsMHg0NCwweDA4LDB4ZjAsMHg1MywweDZkLDB4N2YsMHg5MCwweGZmLDB4ZmMsMHhlMCwweDU0LAorMHhmZSwweGYwLDB4OTAsMHhmZiwweDgxLDB4ZTAsMHg0NCwweDgwLDB4ZjAsMHgxMiwweDI1LDB4ZDksMHg5MCwweGZmLDB4ZmUsMHhlMCwKKzB4NDQsMHgwNSwweGYwLDB4OTAsMHhmZiwweGZjLDB4ZTAsMHg1NCwweGZkLDB4ZjAsMHgxMiwweDMxLDB4NjksMHgyMiwweDEyLDB4MzAsCisweGU2LDB4N2MsMHgwMSwweDEyLDB4MzIsMHhhOSwweDc4LDB4YWQsMHhlNiwweDQ0LDB4MDIsMHhmNiwweDc0LDB4ZmUsMHhmYywweDA0LAorMHhmZCwweDEyLDB4MWMsMHhhNywweDkwLDB4ZmYsMHg1YSwweGUwLDB4MzAsMHhlNywweDAyLDB4ODAsMHhmNywweGU0LDB4ZjUsMHg0ZSwKKzB4NzUsMHg0ZCwweDEwLDB4YWMsMHg0ZSwweGFkLDB4NGQsMHhlNSwweDRlLDB4MTUsMHg0ZSwweDcwLDB4MDIsMHgxNSwweDRkLDB4ZWMsCisweDRkLDB4NjAsMHgwMiwweDgwLDB4ZWUsMHg0MywweDg3LDB4MDEsMHgxMiwweDMxLDB4NjksMHgyMiwweDEyLDB4MzAsMHhlNiwweDdjLAorMHgwMiwweDEyLDB4MzEsMHg3NSwweDc4LDB4YWQsMHhlNiwweDU0LDB4ZmQsMHhmNiwweDEyLDB4MzEsMHg2OSwweDIyLDB4MTIsMHgzMCwKKzB4ZTYsMHg3OCwweGFkLDB4ZTYsMHgzMCwweGUwLDB4MmMsMHg3OCwweGFkLDB4ZTYsMHgzMCwweGUxLDB4MjYsMHg3OCwweGFkLDB4ZTYsCisweGZjLDB4ZjUsMHg4MywweDE4LDB4ZTYsMHg0NCwweGYwLDB4ZmQsMHgxMiwweDFjLDB4M2MsMHg5MCwweGZmLDB4ZmMsMHhlMCwweDQ0LAorMHgyMCwweGYwLDB4N2MsMHgwMiwweDEyLDB4MzIsMHhhOSwweDc4LDB4YWQsMHhlNiwweDU0LDB4ZmQsMHhmNiwweDc0LDB4MWEsMHg5MCwKKzB4ZmYsMHhmZSwweGYwLDB4NzgsMHhhZCwweGU2LDB4ZmMsMHhmNSwweDgzLDB4MTgsMHhlNiwweDQ0LDB4ZjEsMHhmZCwweDEyLDB4MWMsCisweDNjLDB4MTIsMHgzMSwweDY5LDB4MjIsMHg3NSwweDZkLDB4MDAsMHg5MCwweGZmLDB4ZmYsMHhlMCwweDYwLDB4MDMsMHg0MywweDZkLAorMHgwMSwweDc1LDB4NmUsMHgwMCwweGU0LDB4ZjUsMHg2YywweGY1LDB4NmIsMHhlNCwweGY1LDB4NmYsMHg3NSwweDcwLDB4NDksMHg3NCwKKzB4ODQsMHg5MCwweGZmLDB4ODIsMHhmMCwweDc0LDB4ODQsMHg5MCwweGZmLDB4ODAsMHhmMCwweDc0LDB4ODAsMHg5MCwweGZmLDB4NTgsCisweGYwLDB4NzQsMHg4MCwweDkwLDB4ZmYsMHg1YSwweGYwLDB4YWQsMHg0NiwweGFmLDB4NDUsMHg3ZSwweDAwLDB4ZWUsMHgyNCwweGZlLAorMHg1MCwweDAzLDB4MDIsMHgyMSwweDI0LDB4ZTQsMHhlZSwweDc1LDB4ZjAsMHgwNywweGE0LDB4MjQsMHg3ZiwweGY1LDB4ODIsMHhlNCwKKzB4MzQsMHhmOCwweGY1LDB4ODMsMHhlMCwweGZmLDB4ZTQsMHhlZiwweDU0LDB4ODAsMHhmZCwweGU0LDB4ZWYsMHg1NCwweDBmLDB4MTQsCisweGZmLDB4ZWQsMHg2MCwweDM4LDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0OCwweGY1LDB4ODIsMHhlNCwweDM0LAorMHhmZiwweGY1LDB4ODMsMHg3NCwweDkwLDB4ZjAsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDRhLDB4ZjUsMHg4MiwKKzB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweDc0LDB4ODAsMHhmMCwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGUsCisweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4NzQsMHg4MCwweGYwLDB4ODAsMHgzNCwweGU0LDB4ZWYsMHg3NSwweGYwLAorMHgwOCwweGE0LDB4MjQsMHgwOCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4NzQsMHg5MCwweGYwLDB4ZTQsMHhlZiwKKzB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDBhLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4ZTQsCisweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDBlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLAorMHgwZSwweDAyLDB4MjAsMHg4ZCwweDhkLDB4NDYsMHg4ZSwweDQ0LDB4OGYsMHg0NSwweDc0LDB4N2YsMHg5MCwweGZmLDB4ZmQsMHhmMCwKKzB4NzQsMHg5MCwweDkwLDB4ZmYsMHhmYywweGYwLDB4MjIsMHg4YywweDU4LDB4ZWMsMHgyNCwweGY2LDB4NTAsMHgwNiwweGU1LDB4NTgsCisweDI0LDB4MzcsMHhmYywweDIyLDB4ZTUsMHg1OCwweDI0LDB4MzAsMHhmYywweDIyLDB4MTIsMHgyNSwweDIzLDB4ZWMsMHg3MCwweDAzLAorMHgwMiwweDIyLDB4NWUsMHg3NSwweDVjLDB4MDMsMHhhZSwweDViLDB4N2YsMHgwMCwweGU1LDB4NWMsMHgxNSwweDVjLDB4NjQsMHg4MCwKKzB4MjQsMHg3ZiwweDUwLDB4MzUsMHhlZiwweDI0LDB4MDAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZiLDB4ZjUsMHg4MywweGUwLDB4ZmUsCisweDI0LDB4ZmUsMHg1MCwweDFlLDB4ZWYsMHg3ZCwweDAwLDB4ZmMsMHhlNCwweGZiLDB4NzQsMHg3NCwweGMzLDB4OWMsMHhmYSwweGViLAorMHg5ZCwweGZiLDB4ZWUsMHg3ZCwweDAwLDB4ZmMsMHhlYSwweGMzLDB4OWMsMHhlZCwweDY0LDB4ODAsMHhjYiwweDY0LDB4ODAsMHg5YiwKKzB4NTAsMHgwMiwweDgwLDB4MDUsMHhlZiwweDJlLDB4ZmYsMHg4MCwweGMxLDB4OGUsMHg1YiwweDhmLDB4NWEsMHhlNSwweDVjLDB4NjQsCisweDgwLDB4MjQsMHg3ZiwweDUwLDB4MDMsMHgwMiwweDIyLDB4NWUsMHhlNSwweDVhLDB4MjQsMHg4ZSwweDUwLDB4MDMsMHgwMiwweDIyLAorMHg1ZSwweDg1LDB4NWEsMHg1ZCwweDc1LDB4NWIsMHgwMCwweGFlLDB4NWEsMHhhZiwweDViLDB4OTAsMHgzNSwweDljLDB4ZTQsMHg5MywKKzB4ZjUsMHg1YywweGU1LDB4NWMsMHgxNSwweDVjLDB4NjQsMHg4MCwweDI0LDB4N2YsMHg1MCwweDE4LDB4ZWUsMHgyNCwweDAwLDB4ZjUsCisweDgyLDB4ZTQsMHgzNCwweGZiLDB4ZjUsMHg4MywweGUwLDB4ZmMsMHhlZiwweDkwLDB4MzUsMHg5YywweDkzLDB4NmMsMHg3MCwweDA0LAorMHgwZSwweDBmLDB4ODAsMHhkZSwweDhlLDB4NWEsMHg4ZiwweDViLDB4ZTUsMHg1YywweDY0LDB4ODAsMHgyNCwweDdmLDB4NDAsMHg2ZSwKKzB4NzUsMHg1ZSwweDAxLDB4NzUsMHg2MCwweGU4LDB4NzUsMHg1ZiwweGZmLDB4ZTUsMHg1ZCwweDI0LDB4MDIsMHhmNSwweDVhLDB4NzUsCisweDVjLDB4MDcsMHhlNSwweDVjLDB4MzMsMHg0MCwweDU3LDB4YWQsMHg2MCwweGFlLDB4NWYsMHhhZiwweDVlLDB4ZTUsMHg1YywweGY1LAorMHg4MiwweDMzLDB4OTUsMHhlMCwweGY1LDB4ODMsMHgxMiwweDAxLDB4ZWMsMHhjNCwweDU0LDB4MGYsMHhmYywweDEyLDB4MjEsMHgzNywKKzB4ZTUsMHg1YSwweDI0LDB4MDAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZiLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHgwNSwweDVhLDB4MDUsCisweDVhLDB4YWQsMHg2MCwweGFlLDB4NWYsMHhhZiwweDVlLDB4ZTUsMHg1YywweGY1LDB4ODIsMHgzMywweDk1LDB4ZTAsMHhmNSwweDgzLAorMHgxMiwweDAxLDB4ZWMsMHg1NCwweDBmLDB4ZmMsMHgxMiwweDIxLDB4MzcsMHhlNSwweDVhLDB4MjQsMHgwMCwweGY1LDB4ODIsMHhlNCwKKzB4MzQsMHhmYiwweGY1LDB4ODMsMHhlYywweGYwLDB4MDUsMHg1YSwweDA1LDB4NWEsMHgxNSwweDVjLDB4ODAsMHhhNCwweDc0LDB4MDIsCisweDkwLDB4ZjgsMHg1MSwweGYwLDB4OTAsMHhmOCwweDZiLDB4NzksMHg3NSwweDdhLDB4MzUsMHg3YiwweDI3LDB4NzgsMHgwMSwweDEyLAorMHgwMywweGY1LDB4NzUsMHg2YSwweDM1LDB4NzUsMHg2OSwweGZjLDB4NzUsMHg2OCwweDAxLDB4ZTQsMHg5MCwweGZmLDB4ODMsMHhmMCwKKzB4NzQsMHg4MCwweDkwLDB4ZmYsMHg4MSwweGYwLDB4NzUsMHg1OSwweDAyLDB4ZTUsMHg1OSwweDc1LDB4ZjAsMHgwNywweGE0LDB4MjQsCisweDdmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmOCwweGY1LDB4ODMsMHhlMCwweDc4LDB4OGYsMHhmNiwweGZjLDB4NTQsMHgwZiwweDE0LAorMHhmYywweDc4LDB4OGYsMHhlYywweGY2LDB4ZTUsMHg1OSwweDc1LDB4ZjAsMHgwNywweGE0LDB4MjQsMHg4MSwweGY1LDB4ODIsMHhlNCwKKzB4MzQsMHhmOCwweGY1LDB4ODMsMHhlMCwweDc4LDB4OTIsMHg3NiwweGZkLDB4MDgsMHg3NiwweGU4LDB4ZmMsMHg3OCwweDhmLDB4ZTYsCisweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0OCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDc4LAorMHg4ZiwweGU2LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDRmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlYywKKzB4ZjAsMHg3OCwweDkyLDB4ZTYsMHhmZiwweDA4LDB4ZTYsMHg3ZSwweDAzLDB4Y2YsMHhjMywweDEzLDB4Y2YsMHgxMywweGRlLDB4ZjksCisweGZlLDB4NzgsMHg4ZiwweGU2LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDQ5LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LAorMHg4MywweGVlLDB4ZjAsMHg3OCwweDhmLDB4ZTYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGEsMHhmNSwweDgyLDB4ZTQsMHgzNCwKKzB4ZmYsMHhmNSwweDgzLDB4NzQsMHg4MCwweGYwLDB4NzgsMHg5MCwweGVjLDB4ZjYsMHg3ZCwweDAwLDB4NzgsMHg5MywweGU2LDB4MmMsCisweGY2LDB4MTgsMHhlNiwweDNkLDB4ZjYsMHg3OCwweDkyLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHg3YywweDAzLDB4Y2QsMHhjMywweDEzLAorMHhjZCwweDEzLDB4ZGMsMHhmOSwweGZjLDB4NzgsMHg4ZiwweGU2LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDRkLDB4ZjUsMHg4MiwKKzB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3OCwweDhmLDB4ZTYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGUsCisweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDc4LDB4OTIsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLAorMHg3OCwweDhmLDB4ZTYsMHhmZiwweDdlLDB4MDAsMHhlZSwweDI0LDB4ZmUsMHg1MCwweDAzLDB4MDIsMHgyNCwweGRkLDB4ZTQsMHhlZSwKKzB4NzUsMHhmMCwweDA3LDB4YTQsMHgyNCwweDdmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmOCwweGY1LDB4ODMsMHhlMCwweGZmLDB4ZTQsCisweGVmLDB4NTQsMHg4MCwweGZhLDB4ZTQsMHhlZiwweDU0LDB4MGYsMHgxNCwweGZmLDB4ZTQsMHhlZSwweDc1LDB4ZjAsMHgwNywweGE0LAorMHgyNCwweDgxLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmOCwweGY1LDB4ODMsMHhlMCwweDc4LDB4OTAsMHhmNiwweGU0LDB4ZWUsMHgxMywKKzB4MTMsMHg1NCwweDgwLDB4MjQsMHhmMCwweGY4LDB4ZTQsMHgzNCwweGZkLDB4ZjksMHhlOCwweGZjLDB4ZTksMHhmZCwweDhhLDB4NWEsCisweGVhLDB4NzAsMHgwMywweDAyLDB4MjQsMHg0YSwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NDgsMHhmNSwweDgyLAorMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDc4LDB4OTAsMHhlNiwweGZhLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwKKzB4YTQsMHgyNCwweDRmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlYSwweGYwLDB4ZWQsMHhmYiwweGVjLDB4N2EsCisweDAzLDB4Y2IsMHhjMywweDEzLDB4Y2IsMHgxMywweGRhLDB4ZjksMHhmYSwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LAorMHg0OSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZWEsMHhmMCwweDc4LDB4OTAsMHhlNiwweDdiLDB4MDAsMHhmYSwKKzB4ZWMsMHgyYSwweGZjLDB4ZWQsMHgzYiwweGZkLDB4ZmIsMHhlYywweDdhLDB4MDMsMHhjYiwweGMzLDB4MTMsMHhjYiwweDEzLDB4ZGEsCisweGY5LDB4ZmEsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDRkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LAorMHg4MywweGVhLDB4ZjAsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDRhLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwKKzB4ZjUsMHg4MywweDc0LDB4ODAsMHhmMCwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGUsMHhmNSwweDgyLDB4ZTQsCisweDM0LDB4ZmYsMHhmNSwweDgzLDB4NzQsMHg4MCwweGYwLDB4MDIsMHgyNCwweGQ5LDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LAorMHgyNCwweDA4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4NzgsMHg5MCwweGU2LDB4ZmEsMHhlNCwKKzB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGVhLDB4ZjAsCisweGVkLDB4ZmIsMHhlYywweDdhLDB4MDMsMHhjYiwweGMzLDB4MTMsMHhjYiwweDEzLDB4ZGEsMHhmOSwweGZhLDB4ZTQsMHhlZiwweDc1LAorMHhmMCwweDA4LDB4YTQsMHgyNCwweDA5LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlYSwweGYwLDB4NzgsMHg5MCwKKzB4ZTYsMHg3YiwweDAwLDB4ZmEsMHhlYywweDJhLDB4ZmMsMHhlZCwweDNiLDB4ZmQsMHhmYiwweGVjLDB4N2EsMHgwMywweGNiLDB4YzMsCisweDEzLDB4Y2IsMHgxMywweGRhLDB4ZjksMHhmYSwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MGQsMHhmNSwweDgyLAorMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZWEsMHhmMCwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MGEsMHhmNSwKKzB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MGUsCisweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDBlLDB4MDIsMHgyMywweDY2LDB4OGUsMHg1OSwweDc4LAorMHg5MiwweGVkLDB4ZjYsMHgwOCwweGVjLDB4ZjYsMHg3OCwweDhmLDB4ZWYsMHhmNiwweDEyLDB4MjAsMHg1NSwweDIyLDB4OGMsMHgyNiwKKzB4ZWMsMHgzMCwweGU3LDB4MTgsMHhlNSwweDI2LDB4NTQsMHgwZiwweDE0LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDQ4LDB4ZjUsCisweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGUwLDB4NTQsMHhkZiwweGYwLDB4ODAsMHgxNiwweGU1LDB4MjYsMHg1NCwweDBmLAorMHgxNCwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwOCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTAsMHg1NCwKKzB4ZGYsMHhmMCwweDIyLDB4N2MsMHgwMCwweDIyLDB4ZWMsMHg5MCwweGZjLDB4MzcsMHhmMCwweDhjLDB4MjQsMHhlZCwweDI0LDB4MDMsCisweGY1LDB4MjUsMHg3ZCwweDAwLDB4ZDMsMHg5NSwweDcyLDB4ZWQsMHg5NSwweDcxLDB4NDAsMHgwMywweDg1LDB4NzIsMHgyNSwweGU1LAorMHgyNSwweDI0LDB4YjcsMHg1MCwweDA5LDB4NzUsMHgyNSwweDAzLDB4NzQsMHgwMiwweDkwLDB4ZmMsMHgzNywweGYwLDB4YWMsMHgyNSwKKzB4MTIsMHgzMCwweDI0LDB4MjIsMHhlNCwweGY1LDB4NmMsMHhmNSwweDZiLDB4MTIsMHgyNSwweDVkLDB4MjIsMHg5MCwweGZjLDB4MzUsCisweGUwLDB4NjUsMHg3MywweDYwLDB4MGUsMHg3NCwweDA0LDB4OTAsMHhmYywweDM3LDB4ZjAsMHhlNCwweGY1LDB4NmIsMHg3NSwweDZjLAorMHgwMywweDgwLDB4NDYsMHg3ZCwweDczLDB4ZTQsMHhmZSwweGZmLDB4NzksMHgzNSwweDdhLDB4ZmMsMHg3YiwweDAxLDB4NzQsMHgwNSwKKzB4NzgsMHgwMCwweDEyLDB4MDMsMHgzZiwweGU1LDB4NmMsMHgyNCwweDAzLDB4ZjUsMHg2YywweGU1LDB4NmIsMHgzNCwweDAwLDB4ZjUsCisweDZiLDB4ZTUsMHg2YywweGQzLDB4OTUsMHg3MiwweGU1LDB4NmIsMHg5NSwweDcxLDB4NDAsMHgwNiwweDg1LDB4NzIsMHg2YywweDg1LAorMHg3MSwweDZiLDB4ZDMsMHhlNSwweDZjLDB4OTQsMHg0OCwweGU1LDB4NmIsMHg5NCwweDAwLDB4NDAsMHgwYywweDc0LDB4MDIsMHg5MCwKKzB4ZmMsMHgzNywweGYwLDB4ZTQsMHhmNSwweDZiLDB4NzUsMHg2YywweDAzLDB4YWMsMHg2YywweDEyLDB4MzAsMHgyNCwweDIyLDB4ZWMsCisweDkwLDB4ZmMsMHgzNywweGYwLDB4ZTQsMHhmNSwweDZjLDB4ZjUsMHg2YiwweDhjLDB4MzIsMHhlYywweDYwLDB4MDUsMHgxMiwweDMwLAorMHgxNSwweDgwLDB4MDUsMHg3YywweDAwLDB4MTIsMHgzMCwweDI0LDB4MjIsMHg5MCwweGZmLDB4OTMsMHhlMCwweDQ0LDB4MDEsMHhmMCwKKzB4YjIsMHhiMywweDkwLDB4ZmYsMHgwNCwweGUwLDB4ZjUsMHg0YSwweDkwLDB4ZmYsMHgwNiwweGUwLDB4ZmQsMHhhMywweGUwLDB4ZWQsCisweDdkLDB4MDAsMHhmYywweDdkLDB4MDAsMHhmYywweDkwLDB4ZmYsMHgwNiwweGUwLDB4ZmYsMHhhMywweGUwLDB4N2UsMHgwMCwweGZmLAorMHhlNCwweGZlLDB4ZWMsMHg0ZSwweGZjLDB4ZWQsMHg0ZiwweGZkLDB4YzMsMHhlYywweDk0LDB4NDgsMHhlZCwweDk0LDB4MDAsMHg1MCwKKzB4MjIsMHg5MCwweGZmLDB4MDYsMHhlMCwweGZkLDB4YTMsMHhlMCwweGVkLDB4N2QsMHgwMCwweGZjLDB4N2QsMHgwMCwweGZjLDB4OTAsCisweGZmLDB4MDYsMHhlMCwweGZmLDB4YTMsMHhlMCwweDdlLDB4MDAsMHhmZiwweGU0LDB4ZmUsMHhlYywweDRlLDB4ZmMsMHhlZCwweDRmLAorMHhmZCwweDgwLDB4MDQsMHhlNCwweGZkLDB4N2MsMHg0OCwweDhjLDB4NzIsMHg4ZCwweDcxLDB4OTAsMHhmZiwweDAyLDB4ZTAsMHhmZCwKKzB4YTMsMHhlMCwweGVkLDB4N2QsMHgwMCwweGZjLDB4N2QsMHgwMCwweGZjLDB4OTAsMHhmZiwweDAyLDB4ZTAsMHhmZiwweGEzLDB4ZTAsCisweDdlLDB4MDAsMHhmZiwweGU0LDB4ZmUsMHhlYywweDRlLDB4ZjUsMHg0YywweGVkLDB4NGYsMHhmNSwweDRiLDB4NzUsMHg2YSwweDM1LAorMHg3NSwweDY5LDB4ZmMsMHg3NSwweDY4LDB4MDEsMHg3ZCwweDM1LDB4N2UsMHhmYywweDdmLDB4MDEsMHg3OSwweDczLDB4ZTQsMHhmYSwKKzB4ZmIsMHg3NCwweDA1LDB4NzgsMHgwMCwweDEyLDB4MDMsMHgzZiwweDc1LDB4NDksMHgwMCwweGU1LDB4NDksMHgyNCwweGZlLDB4NDAsCisweDE5LDB4YWQsMHg2YSwweGFlLDB4NjksMHhhZiwweDY4LDB4ZTQsMHgxMiwweDAzLDB4MGYsMHgwNSwweDQ5LDB4MGQsMHhlZCwweDcwLAorMHgwMSwweDBlLDB4OGQsMHg2YSwweDhlLDB4NjksMHg4ZiwweDY4LDB4ODAsMHhlMSwweDc1LDB4NmEsMHgzNSwweDc1LDB4NjksMHhmYywKKzB4NzUsMHg2OCwweDAxLDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDYwLDB4YjQsMHgwMCwweDAyLDB4ODAsMHgwNiwweGQzLDB4NTAsCisweDAzLDB4MDIsMHgyYywweDZkLDB4ZTUsMHg0YSwweDU0LDB4MGYsMHhmNSwweDQ5LDB4ZTUsMHg0YSwweDU0LDB4ODAsMHhhMiwweGUwLAorMHg5MiwweDAyLDB4OTAsMHhmZiwweDAxLDB4ZTAsMHgxMiwweDAxLDB4ODEsMHgwMCwweDBiLDB4MmMsMHg2OCwweDI2LDB4ZTUsMHgyOCwKKzB4MDMsMHgyYywweDY4LDB4MjksMHgwZiwweDJjLDB4NjgsMHgyOSwweGYyLDB4MmEsMHgyNiwweDJiLDB4OGQsMHgyYiwweDkwLDB4MmIsCisweGQwLDB4MmMsMHgxMSwweDJjLDB4M2YsMHhlNSwweDZkLDB4MzAsMHhlNywweDBlLDB4ZTUsMHg0YywweDQ1LDB4NGIsMHg3MCwweDA4LAorMHhlNSwweDcyLDB4NjQsMHgwMiwweDQ1LDB4NzEsMHg2MCwweDAzLDB4MDIsMHgyYywweDZhLDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwKKzB4MWYsMHhiNCwweDAwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDI5LDB4ZTUsMHg0YSwweDYwLDB4MDMsMHgwMiwweDI4LDB4MDAsCisweGFkLDB4NmEsMHhhZSwweDY5LDB4YWYsMHg2OCwweDc0LDB4MDEsMHgxMiwweDAzLDB4MGYsMHg3OCwweGFkLDB4ZTYsMHgzMCwweGUwLAorMHgwYiwweGFkLDB4NmEsMHhhZSwweDY5LDB4YWYsMHg2OCwweDc0LDB4MDIsMHgxMiwweDAzLDB4MGYsMHg3YywweDAyLDB4MTIsMHgzMCwKKzB4MjQsMHgyMiwweGI0LDB4MDEsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MWIsMHhlNSwweDZkLDB4MjAsMHhlMSwweDA3LDB4ZTUsCisweDRhLDB4NjAsMHgwMywweDAyLDB4MjgsMHgwMCwweGU1LDB4NGEsMHgyNCwweGZlLDB4NTAsMHgwMywweDAyLDB4MjgsMHgwMCwweDdjLAorMHgwMiwweDEyLDB4MzAsMHgyNCwweDIyLDB4YjQsMHgwMiwweDAyLDB4ODAsMHgwNiwweGQzLDB4NTAsMHgwMywweDAyLDB4MjcsMHhmZSwKKzB4ZTUsMHg2ZCwweDIwLDB4ZTEsMHgwZCwweGU1LDB4NGEsMHg2MCwweDA5LDB4ZTUsMHg0YSwweDY0LDB4ODAsMHg2MCwweDAzLDB4MDIsCisweDI4LDB4MDAsMHhhYywweDRhLDB4MTIsMHgzMCwweGFiLDB4NDAsMHgwMywweDAyLDB4MjgsMHgwMCwweGU1LDB4NDksMHg3MCwweDI1LAorMHgzMCwweDAyLDB4MTEsMHg5MCwweGZmLDB4ODAsMHhlMCwweDU0LDB4MDgsMHhhZCwweDZhLDB4YWUsMHg2OSwweGFmLDB4NjgsMHgxMiwKKzB4MDMsMHgwZiwweDgwLDB4MGYsMHg5MCwweGZmLDB4ODIsMHhlMCwweDU0LDB4MDgsMHhhZCwweDZhLDB4YWUsMHg2OSwweGFmLDB4NjgsCisweDEyLDB4MDMsMHgwZiwweDgwLDB4M2QsMHgxNSwweDQ5LDB4MzAsMHgwMiwweDFkLDB4ZTUsMHg0OSwweDc1LDB4ZjAsMHgwOCwweGE0LAorMHgyNCwweDQ4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlMCwweDU0LDB4MDgsMHhhZCwweDZhLDB4YWUsMHg2OSwKKzB4YWYsMHg2OCwweDEyLDB4MDMsMHgwZiwweDgwLDB4MWIsMHhlNSwweDQ5LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDA4LDB4ZjUsCisweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGUwLDB4NTQsMHgwOCwweGFkLDB4NmEsMHhhZSwweDY5LDB4YWYsMHg2OCwweDEyLAorMHgwMywweDBmLDB4YWQsMHg2YSwweGFlLDB4NjksMHhhZiwweDY4LDB4MTIsMHgwMSwweGU2LDB4NjAsMHgwYiwweGFkLDB4NmEsMHhhZSwKKzB4NjksMHhhZiwweDY4LDB4NzQsMHgwMSwweDEyLDB4MDMsMHgwZiwweDdjLDB4MDIsMHgxMiwweDMwLDB4MjQsMHgyMiwweDgwLDB4MDAsCisweDAyLDB4MmMsMHg2YSwweGU1LDB4NmQsMHgyMCwweGU3LDB4MDYsMHhlNSwweDcyLDB4NDUsMHg3MSwweDYwLDB4MDMsMHgwMiwweDJjLAorMHg2YSwweDkwLDB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweGI0LDB4MDAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MWEsMHhlNSwKKzB4NGMsMHgxNCwweDQ1LDB4NGIsMHg3MCwweDA0LDB4ZTUsMHg0YSwweDYwLDB4MDMsMHgwMiwweDI5LDB4MGMsMHg3OCwweGFkLDB4ZTYsCisweDU0LDB4ZmUsMHhmNiwweDdjLDB4MDAsMHgxMiwweDMwLDB4MjQsMHgyMiwweGI0LDB4MDEsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLAorMHgyYSwweGU1LDB4NmQsMHgyMCwweGUxLDB4MDgsMHhlNSwweDZkLDB4MjAsMHhlMCwweDAzLDB4MDIsMHgyOSwweDBjLDB4ZTUsMHg2ZCwKKzB4MzAsMHhlMCwweDA0LDB4ZTUsMHg0YSwweDcwLDB4MGIsMHhlNSwweDZkLDB4MzAsMHhlMSwweDA5LDB4ZTUsMHg0YSwweDI0LDB4ZmUsCisweDUwLDB4MDMsMHgwMiwweDI5LDB4MGMsMHg3YywweDAwLDB4MTIsMHgzMCwweDI0LDB4MjIsMHhiNCwweDAyLDB4MDIsMHg4MCwweDA2LAorMHhkMywweDUwLDB4MDMsMHgwMiwweDI5LDB4MGEsMHhlNSwweDRjLDB4NDUsMHg0YiwweDYwLDB4MDMsMHgwMiwweDI5LDB4MGMsMHhhYywKKzB4NGEsMHgxMiwweDMwLDB4YWIsMHg0MCwweDAzLDB4MDIsMHgyOSwweDBjLDB4ZTUsMHg2ZCwweDIwLDB4ZTEsMHgwNywweGU1LDB4NmQsCisweDIwLDB4ZTAsMHgwMiwweDgwLDB4NzcsMHhlNSwweDZkLDB4MzAsMHhlMCwweDA2LDB4ZTUsMHg0OSwweDYwLDB4MDIsMHg4MCwweDZjLAorMHhlNSwweDQ5LDB4NzAsMHgwZiwweDkwLDB4ZmYsMHg4MiwweGUwLDB4NTQsMHhmNywweGYwLDB4OTAsMHhmZiwweDgwLDB4ZTAsMHg1NCwKKzB4ZjcsMHhmMCwweDIyLDB4ZTUsMHg0OSwweGI0LDB4MDEsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MDksMHg3ZCwweDAxLDB4N2MsCisweDAzLDB4MTIsMHgwZiwweDA5LDB4ODAsMHgxMSwweGI0LDB4MDIsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MDksMHg3ZCwweDAxLAorMHg3YywweDA0LDB4MTIsMHgwZiwweDA5LDB4ODAsMHgwMCwweDE1LDB4NDksMHgzMCwweDAyLDB4MTUsMHhlNSwweDQ5LDB4NzUsMHhmMCwKKzB4MDgsMHhhNCwweDI0LDB4NDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGUwLDB4NTQsMHhmNywweGYwLDB4ODAsCisweDEzLDB4ZTUsMHg0OSwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwOCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLAorMHhlMCwweDU0LDB4ZjcsMHhmMCwweDdjLDB4MDAsMHgxMiwweDMwLDB4MjQsMHgyMiwweDgwLDB4MDAsMHgwMiwweDJjLDB4NmEsMHhlNSwKKzB4NmQsMHgyMCwweGU3LDB4MDYsMHhlNSwweDcyLDB4NDUsMHg3MSwweDYwLDB4MDMsMHgwMiwweDJjLDB4NmEsMHg5MCwweGZmLDB4MDAsCisweGUwLDB4NTQsMHgxZiwweGI0LDB4MDAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MWEsMHhlNSwweDRjLDB4MTQsMHg0NSwweDRiLAorMHg3MCwweDA0LDB4ZTUsMHg0YSwweDYwLDB4MDMsMHgwMiwweDI5LDB4ZWYsMHg3OCwweGFkLDB4ZTYsMHg0NCwweDAxLDB4ZjYsMHg3YywKKzB4MDAsMHgxMiwweDMwLDB4MjQsMHgyMiwweGI0LDB4MDEsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MjksMHhlNSwweDZkLDB4MjAsCisweGUxLDB4MDgsMHhlNSwweDZkLDB4MjAsMHhlMCwweDAzLDB4MDIsMHgyOSwweGVmLDB4ZTUsMHg2ZCwweDMwLDB4ZTAsMHgwNCwweGU1LAorMHg0OSwweDcwLDB4MGIsMHhlNSwweDZkLDB4MzAsMHhlMSwweDA4LDB4ZTUsMHg0OSwweDI0LDB4ZmUsMHg1MCwweDAyLDB4ODAsMHg3ZiwKKzB4N2MsMHgwMCwweDEyLDB4MzAsMHgyNCwweDIyLDB4YjQsMHgwMiwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHg2ZiwweGU1LDB4NGMsCisweDQ1LDB4NGIsMHg2MCwweDAyLDB4ODAsMHg2OSwweGFjLDB4NGEsMHgxMiwweDMwLDB4YWIsMHg0MCwweDAyLDB4ODAsMHg2MCwweGU1LAorMHg2ZCwweDIwLDB4ZTEsMHgwNywweGU1LDB4NmQsMHgyMCwweGUwLDB4MDIsMHg4MCwweDU0LDB4ZTUsMHg0OSwweDcwLDB4MTQsMHgzMCwKKzB4MDIsMHgwOSwweDkwLDB4ZmYsMHg4MCwweGUwLDB4NDQsMHgwOCwweGYwLDB4ODAsMHgwNywweDkwLDB4ZmYsMHg4MiwweGUwLDB4NDQsCisweDA4LDB4ZjAsMHgyMiwweGU1LDB4NmQsMHgzMCwweGUxLDB4MzMsMHgxNSwweDQ5LDB4MzAsMHgwMiwweDE1LDB4ZTUsMHg0OSwweDc1LAorMHhmMCwweDA4LDB4YTQsMHgyNCwweDQ4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlMCwweDQ0LDB4MDgsMHhmMCwKKzB4ODAsMHgxMywweGU1LDB4NDksMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsCisweDgzLDB4ZTAsMHg0NCwweDA4LDB4ZjAsMHg3YywweDAwLDB4MTIsMHgzMCwweDI0LDB4MjIsMHg4MCwweDAyLDB4ODAsMHgwMCwweDAyLAorMHgyYywweDZhLDB4ZTUsMHg2ZCwweDIwLDB4ZTcsMHgxMiwweGU1LDB4NzIsMHg0NSwweDcxLDB4NzAsMHgwYywweGU1LDB4NGEsMHg3MCwKKzB4MDgsMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHg2MCwweDAzLDB4MDIsMHgyYywweDZhLDB4ZTUsMHg0YywweDkwLDB4ZmYsCisweGZmLDB4ZjAsMHg5MCwweGZmLDB4ZmYsMHhlMCwweDYwLDB4MDUsMHg0MywweDZkLDB4MDEsMHg4MCwweDAzLDB4NTMsMHg2ZCwweGZlLAorMHg3YywweDAwLDB4MTIsMHgzMCwweDI0LDB4MjIsMHhlNSwweDZkLDB4MzAsMHhlNywweDBlLDB4ZTUsMHg3MiwweDQ1LDB4NzEsMHg2MCwKKzB4MDgsMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHg2MCwweDAzLDB4MDIsMHgyYywweDZhLDB4YWQsMHg0YiwweGU1LDB4NGMsCisweGVkLDB4N2QsMHgwMCwweGZjLDB4N2QsMHgwMCwweGZjLDB4YmQsMHgwMCwweDAyLDB4ODAsMHgwMywweDAyLDB4MmIsMHg4OCwweGI0LAorMHgwMSwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgzMiwweGU1LDB4NGEsMHg3MCwweDA1LDB4ZTUsMHg0YywweGZjLDB4NjAsMHgwMywKKzB4MDIsMHgyYiwweDhhLDB4NzUsMHg2YSwweDQwLDB4NzUsMHg2OSwweGY4LDB4NzUsMHg2OCwweDAxLDB4ZDMsMHhlNSwweDcyLDB4OTQsCisweDEyLDB4ZTUsMHg3MSwweDk0LDB4MDAsMHg0MCwweDA2LDB4ZTQsMHhmZCwweDdjLDB4MTIsMHg4MCwweDA0LDB4YWMsMHg3MiwweGFkLAorMHg3MSwweDhjLDB4NzAsMHg4ZCwweDZmLDB4MTIsMHgzMCwweDM5LDB4MjIsMHhiNCwweDAyLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwKKzB4NTksMHhlNSwweDRhLDB4NjAsMHgwMywweDAyLDB4MmIsMHg4YSwweGU1LDB4NGMsMHhmYywweDcwLDB4MjcsMHg3NSwweDZhLDB4NTIsCisweDc1LDB4NjksMHhmOCwweDc1LDB4NjgsMHgwMSwweGQzLDB4ZTUsMHg3MiwweDk0LDB4MTksMHhlNSwweDcxLDB4OTQsMHgwMCwweDQwLAorMHgwNiwweGU0LDB4ZmQsMHg3YywweDE5LDB4ODAsMHgwNCwweGFjLDB4NzIsMHhhZCwweDcxLDB4OGMsMHg3MCwweDhkLDB4NmYsMHgxMiwKKzB4MzAsMHgzOSwweDgwLDB4MjUsMHg3NSwweDZhLDB4NmIsMHg3NSwweDY5LDB4ZjgsMHg3NSwweDY4LDB4MDEsMHhkMywweGU1LDB4NzIsCisweDk0LDB4MjcsMHhlNSwweDcxLDB4OTQsMHgwMCwweDQwLDB4MDYsMHhlNCwweGZkLDB4N2MsMHgyNywweDgwLDB4MDQsMHhhYywweDcyLAorMHhhZCwweDcxLDB4OGMsMHg3MCwweDhkLDB4NmYsMHgxMiwweDMwLDB4MzksMHgyMiwweGI0LDB4MDMsMHgwMiwweDgwLDB4MDYsMHhkMywKKzB4NTAsMHgwMywweDAyLDB4MmIsMHg4OCwweGU1LDB4NGMsMHhmNSwweDQ5LDB4NzAsMHgwZiwweDkwLDB4ZmYsMHgwNCwweGUwLDB4ZmQsCisweGEzLDB4ZTAsMHg0ZCwweDYwLDB4MDMsMHgwMiwweDJiLDB4OGEsMHg4MCwweDE4LDB4OTAsMHhmYiwweDAyLDB4ZTAsMHhmZCwweGEzLAorMHhlMCwweGZjLDB4OTAsMHhmZiwweDA1LDB4ZTAsMHg2YywweDcwLDB4MDcsMHg5MCwweGZmLDB4MDQsMHhlMCwweDZkLDB4NjAsMHgwMiwKKzB4ODAsMHg2OCwweGU0LDB4ZjUsMHg3MCwweGY1LDB4NmYsMHg3ZiwweDAwLDB4ZTUsMHg0OSwweDE0LDB4YzUsMHg0OSwweDYwLDB4MGYsCisweGVmLDB4MjQsMHgwMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmIsMHhmNSwweDgzLDB4ZTAsMHgyZiwweGZmLDB4ODAsMHhlYSwweDhmLAorMHg0YSwweGU1LDB4NGEsMHgyNCwweDAwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYiwweGY1LDB4ODMsMHhlMCwweDdkLDB4MDAsMHhkMywKKzB4OTUsMHg3MiwweGVkLDB4OTUsMHg3MSwweDQwLDB4MDYsMHhhYywweDcyLDB4YWQsMHg3MSwweDgwLDB4MGYsMHhlNSwweDRhLDB4MjQsCisweDAwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYiwweGY1LDB4ODMsMHhlMCwweDdkLDB4MDAsMHhmYywweDhjLDB4NzAsMHg4ZCwweDZmLAorMHhlNSwweDRhLDB4MjQsMHgwMCwweGZjLDB4ZTQsMHgzNCwweGZiLDB4ZmQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OGQsMHg2YSwKKzB4OGUsMHg2OSwweDhmLDB4NjgsMHgxMiwweDMwLDB4MzksMHgyMiwweDgwLDB4MDAsMHgwMiwweDJjLDB4NmEsMHgwMiwweDJjLDB4NmEsCisweGU1LDB4NmQsMHgzMCwweGU3LDB4MTksMHhlNSwweDcyLDB4MTQsMHg0NSwweDcxLDB4NzAsMHgxMiwweGU1LDB4NGEsMHg3MCwweDBlLAorMHhlNSwweDRjLDB4NDUsMHg0YiwweDcwLDB4MDgsMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHg2MCwweDAzLDB4MDIsMHgyYywKKzB4NmEsMHhlNSwweDZkLDB4MjAsMHhlMCwweDA4LDB4ZTUsMHg2ZCwweDIwLDB4ZTEsMHgwMywweDAyLDB4MmMsMHg2YSwweDc1LDB4NmEsCisweDZlLDB4ZTQsMHhmNSwweDY5LDB4ZjUsMHg2OCwweGU0LDB4ZjUsMHg2ZiwweDA0LDB4ZjUsMHg3MCwweDEyLDB4MzAsMHgzOSwweDIyLAorMHhlNSwweDZkLDB4MjAsMHhlNywweDEyLDB4ZTUsMHg3MiwweDQ1LDB4NzEsMHg3MCwweDBjLDB4ZTUsMHg0YSwweDcwLDB4MDgsMHg5MCwKKzB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweDYwLDB4MDMsMHgwMiwweDJjLDB4NmEsMHhlNSwweDZkLDB4MjAsMHhlMCwweDA3LDB4ZTUsCisweDZkLDB4MjAsMHhlMSwweDAyLDB4ODAsMHg3NCwweDg1LDB4NGMsMHg2ZSwweGU1LDB4NmUsMHg3MCwweDA4LDB4NDMsMHg2ZCwweDAxLAorMHg1MywweDZkLDB4ZmQsMHg4MCwweDA2LDB4NTMsMHg2ZCwweGZlLDB4NDMsMHg2ZCwweDAyLDB4N2MsMHgwMCwweDEyLDB4MzAsMHgyNCwKKzB4MjIsMHhlNSwweDZkLDB4MzAsMHhlNywweDFhLDB4ZTUsMHg3MiwweDE0LDB4NDUsMHg3MSwweDcwLDB4MTMsMHhlNSwweDRhLDB4NzAsCisweDBmLDB4ZTUsMHg0YywweDQ1LDB4NGIsMHg3MCwweDA5LDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDFmLDB4MTQsMHg2MCwweDAyLAorMHg4MCwweDM4LDB4ZTUsMHg2ZCwweDIwLDB4ZTEsMHgwMiwweDgwLDB4MzEsMHg3YywweDAxLDB4MTIsMHgzMCwweDI0LDB4MjIsMHhlNSwKKzB4NmQsMHgyMCwweGU3LDB4MTUsMHhlNSwweDcyLDB4NDUsMHg3MSwweDcwLDB4MGYsMHhlNSwweDRjLDB4NDUsMHg0YiwweDcwLDB4MDksCisweDkwLDB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweDE0LDB4NjAsMHgwMiwweDgwLDB4MGYsMHhlNSwweDZkLDB4MjAsMHhlMSwweDAyLAorMHg4MCwweDA4LDB4N2MsMHgwMCwweDEyLDB4MzAsMHgyNCwweDIyLDB4ODAsMHgwMCwweDAyLDB4MmYsMHgyYiwweGI0LDB4NDAsMHgwMiwKKzB4ODAsMHgwNiwweGQzLDB4NTAsMHgwMywweDAyLDB4MmYsMHgyMSwweDkwLDB4ZmYsMHgwMSwweGUwLDB4OTAsMHhmYywweDM1LDB4ZjAsCisweGU1LDB4NGEsMHg5MCwweGZjLDB4MzYsMHhmMCwweGU0LDB4OTAsMHhmYywweDM3LDB4ZjAsMHhlNSwweDZhLDB4MjQsMHgwMywweGY1LAorMHg2YSwweGU1LDB4NjksMHgzNCwweDAwLDB4ZjUsMHg2OSwweGFkLDB4NGIsMHhlNSwweDRjLDB4ODUsMHg2YSwweDgyLDB4ODUsMHg2OSwKKzB4ODMsMHhjZCwweGYwLDB4YTMsMHhjZCwweGYwLDB4OTAsMHhmZiwweDAxLDB4ZTAsMHgxMiwweDAxLDB4YjcsMHgyYywweGQ4LDB4MDEsCisweDJjLDB4ZmUsMHgwMiwweDJkLDB4MjgsMHgwMywweDJkLDB4NTIsMHgwNCwweDJkLDB4YTAsMHgwNSwweDJkLDB4ZGQsMHgwNiwweDJlLAorMHgwMywweDA3LDB4MmUsMHgyOSwweDA4LDB4MmUsMHg1NSwweDA5LDB4MmUsMHg3YiwweDBiLDB4MmUsMHhhMSwweDBjLDB4MmUsMHhiMCwKKzB4ODAsMHgyZSwweGIwLDB4ODEsMHgwMCwweDAwLDB4MmYsMHgwZSwweGU1LDB4NmQsMHgyMCwweGU3LDB4MDYsMHg3YywweDA1LDB4MTIsCisweDI1LDB4YmYsMHgyMiwweDdkLDB4MjQsMHg3ZSwweDM1LDB4N2YsMHgwMiwweDc5LDB4MzgsMHg3YSwweGZjLDB4N2IsMHgwMSwweDc0LAorMHgwOCwweDc4LDB4MDAsMHgxMiwweDAzLDB4M2YsMHg3ZCwweDA4LDB4N2MsMHgwMCwweDEyLDB4MjUsMHgyNiwweDIyLDB4ZTUsMHg2ZCwKKzB4MjAsMHhlNywweDA2LDB4N2MsMHgwNSwweDEyLDB4MjUsMHhiZiwweDIyLDB4ZTUsMHg0YSwweGI0LDB4MDMsMHgwMCwweDQwLDB4MTAsCisweGI0LDB4MDUsMHgwMCwweDUwLDB4MGIsMHhlNSwweDRhLDB4N2YsMHgwMCwweGZlLDB4N2MsMHgxMCwweDEyLDB4MzEsMHhmYiwweDIyLAorMHg3ZCwweDAwLDB4N2MsMHgwNywweDEyLDB4MjUsMHgyNiwweDIyLDB4ZTUsMHg2ZCwweDIwLDB4ZTcsMHgwNiwweDdjLDB4MDUsMHgxMiwKKzB4MjUsMHhiZiwweDIyLDB4ZTUsMHg0YSwweGI0LDB4MDMsMHgwMCwweDQwLDB4MTAsMHhiNCwweDA1LDB4MDAsMHg1MCwweDBiLDB4ZTUsCisweDRhLDB4N2YsMHgwMCwweGZlLDB4N2MsMHgxMSwweDEyLDB4MzEsMHhmYiwweDIyLDB4N2QsMHgwMCwweDdjLDB4MDcsMHgxMiwweDI1LAorMHgyNiwweDIyLDB4ZTUsMHg2ZCwweDIwLDB4ZTcsMHgwNiwweDdjLDB4MDUsMHgxMiwweDI1LDB4YmYsMHgyMiwweGU1LDB4NGEsMHhiNCwKKzB4MDUsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MGEsMHhlNCwweGZmLDB4MDQsMHhmZSwweDdjLDB4MGEsMHgxMiwweDMxLDB4ZmIsCisweDIyLDB4YjQsMHgwMSwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwYSwweGU0LDB4ZmYsMHgwNCwweGZlLDB4N2MsMHgwOCwweDEyLAorMHgzMSwweGZiLDB4MjIsMHhiNCwweDAzLDB4MDAsMHg0MCwweDEwLDB4YjQsMHgwNSwweDAwLDB4NTAsMHgwYiwweGU1LDB4NGEsMHg3ZiwKKzB4MDAsMHhmZSwweDdjLDB4MTMsMHgxMiwweDMxLDB4ZmIsMHgyMiwweDdkLDB4MDAsMHg3YywweDA3LDB4MTIsMHgyNSwweDI2LDB4MjIsCisweGU1LDB4NmQsMHgyMCwweGU3LDB4MzQsMHhkMywweGU1LDB4NzIsMHg5NCwweDQ4LDB4ZTUsMHg3MSwweDk0LDB4MDAsMHg1MCwweDA2LAorMHhlNSwweDcyLDB4NDUsMHg3MSwweDcwLDB4MDYsMHg3YywweDAyLDB4MTIsMHgyNSwweGJmLDB4MjIsMHhlNSwweDRhLDB4YjQsMHgwMSwKKzB4MDMsMHhiMywweDQwLDB4MGIsMHhjMywweGI0LDB4MDMsMHgwMCwweDQwLDB4MDksMHhiNCwweDA2LDB4MDAsMHg1MCwweDA0LDB4MTIsCisweDMwLDB4ZDEsMHgyMiwweDdjLDB4MDcsMHgxMiwweDI1LDB4YmYsMHgyMiwweDEyLDB4MjUsMHg1ZCwweDIyLDB4ZTUsMHg2ZCwweDIwLAorMHhlNywweDFkLDB4ZTUsMHg0YSwweGI0LDB4MDMsMHgwMCwweDQwLDB4MTAsMHhiNCwweDA1LDB4MDAsMHg1MCwweDBiLDB4ZTUsMHg0YSwKKzB4N2YsMHgwMCwweGZlLDB4N2MsMHgxNiwweDEyLDB4MzEsMHhmYiwweDIyLDB4N2MsMHgwNywweDEyLDB4MjUsMHhiZiwweDIyLDB4MTIsCisweDI1LDB4NWQsMHgyMiwweGU1LDB4NmQsMHgyMCwweGU3LDB4MWQsMHhlNSwweDRhLDB4YjQsMHgwMywweDAwLDB4NDAsMHgxMCwweGI0LAorMHgwNSwweDAwLDB4NTAsMHgwYiwweGU1LDB4NGEsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDE5LDB4MTIsMHgzMSwweGZiLDB4MjIsMHg3YywKKzB4MDcsMHgxMiwweDI1LDB4YmYsMHgyMiwweDEyLDB4MjUsMHg1ZCwweDIyLDB4ZTUsMHg2ZCwweDIwLDB4ZTcsMHgyMywweDc0LDB4ODEsCisweDkwLDB4ZmYsMHg5MywweGYwLDB4ZTUsMHg0YSwweGI0LDB4MDMsMHgwMCwweDQwLDB4MTAsMHhiNCwweDA1LDB4MDAsMHg1MCwweDBiLAorMHhlNSwweDRhLDB4N2YsMHgwMCwweGZlLDB4N2MsMHgxNywweDEyLDB4MzEsMHhmYiwweDIyLDB4N2MsMHgwNywweDEyLDB4MjUsMHhiZiwKKzB4MjIsMHgxMiwweDI1LDB4NWQsMHgyMiwweGU1LDB4NmQsMHgyMCwweGU3LDB4MWQsMHhlNSwweDRhLDB4YjQsMHgwMywweDAwLDB4NDAsCisweDEwLDB4YjQsMHgwNSwweDAwLDB4NTAsMHgwYiwweGU1LDB4NGEsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDE4LDB4MTIsMHgzMSwweGZiLAorMHgyMiwweDdjLDB4MDcsMHgxMiwweDI1LDB4YmYsMHgyMiwweDEyLDB4MjUsMHg1ZCwweDIyLDB4ZTUsMHg2ZCwweDIwLDB4ZTcsMHgxZCwKKzB4ZTUsMHg0YSwweGI0LDB4MDMsMHgwMCwweDQwLDB4MTAsMHhiNCwweDA1LDB4MDAsMHg1MCwweDBiLDB4ZTUsMHg0YSwweDdmLDB4MDAsCisweGZlLDB4N2MsMHgxNSwweDEyLDB4MzEsMHhmYiwweDIyLDB4N2MsMHgwNywweDEyLDB4MjUsMHhiZiwweDIyLDB4MTIsMHgyNSwweDVkLAorMHgyMiwweGU1LDB4NmQsMHgyMCwweGU3LDB4MDYsMHg3YywweDA3LDB4MTIsMHgyNSwweGJmLDB4MjIsMHgxMiwweDI1LDB4NWQsMHgyMiwKKzB4ZTUsMHg2ZCwweDMwLDB4ZTcsMHgyMCwweDkwLDB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweDcwLDB4MTAsMHg5MCwweGZmLDB4MDEsCisweGUwLDB4YjQsMHg4MCwweDA1LDB4MTIsMHgyNSwweDU0LDB4ODAsMHgwMywweDEyLDB4MjUsMHg1ZCwweDIyLDB4N2QsMHgwMCwweDdjLAorMHgwNSwweDEyLDB4MjUsMHgyNiwweDIyLDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDFmLDB4NjAsMHgwNiwweDdjLDB4MDUsMHgxMiwKKzB4MjUsMHhiZiwweDIyLDB4ZDMsMHhlNSwweDcyLDB4OTQsMHg0OCwweGU1LDB4NzEsMHg5NCwweDAwLDB4NTAsMHgwYiwweGMzLDB4ZTUsCisweDcyLDB4OTQsMHgwNywweGU1LDB4NzEsMHg5NCwweDAwLDB4NTAsMHgwNiwweDdjLDB4MDMsMHgxMiwweDI1LDB4YmYsMHgyMiwweGU1LAorMHg0YSwweGI0LDB4MDUsMHgwNCwweDEyLDB4MzAsMHhkMSwweDIyLDB4N2MsMHgwNywweDEyLDB4MjUsMHhiZiwweDIyLDB4ZTUsMHg2ZCwKKzB4MzAsMHhlNywweDA4LDB4N2QsMHgwMCwweDdjLDB4MDUsMHgxMiwweDI1LDB4MjYsMHgyMiwweDdjLDB4MDUsMHgxMiwweDI1LDB4YmYsCisweDIyLDB4YjQsMHgyMCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwMCwweDgwLDB4MDAsMHgxMiwweDJmLDB4ZmYsMHgyMiwweDc1LAorMHg0MywweDAwLDB4OTAsMHhmZiwweDgzLDB4ZTAsMHg1NCwweDBmLDB4ZDMsMHg5NSwweDQzLDB4NDAsMHgyNCwweGU1LDB4NDMsMHgyNCwKKzB4ZjAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZlLDB4ZjUsMHg4MywweGUwLDB4YWQsMHg2YSwweGFlLDB4NjksMHhhZiwweDY4LDB4MTIsCisweDAzLDB4MGYsMHgwNSwweDQzLDB4MGQsMHhlZCwweDcwLDB4MDEsMHgwZSwweDhkLDB4NmEsMHg4ZSwweDY5LDB4OGYsMHg2OCwweDgwLAorMHhkMSwweGU1LDB4NDMsMHg3ZCwweDAwLDB4ZmMsMHhjMywweGU1LDB4NzAsMHg5YywweGY1LDB4NzAsMHhlNSwweDZmLDB4OWQsMHhmNSwKKzB4NmYsMHhlNSwweDcwLDB4NDUsMHg2ZiwweDYwLDB4MDYsMHhlNCwweDkwLDB4ZmYsMHg4MywweGYwLDB4MjIsMHg5MCwweGZmLDB4ODIsCisweGUwLDB4NDQsMHgwOCwweGYwLDB4ZTQsMHhmNSwweDZmLDB4NzUsMHg3MCwweDQ5LDB4OTAsMHhmYywweDM1LDB4ZTAsMHhiNCwweDA1LAorMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4NDAsMHg5MCwweGZjLDB4MzYsMHhlMCwweGY1LDB4NDMsMHhiNCwweDA1LDB4MDIsMHg4MCwKKzB4MDMsMHhkMywweDQwLDB4MGEsMHhlNCwweGZmLDB4MDQsMHhmZSwweDdjLDB4MGIsMHgxMiwweDMxLDB4ZmIsMHgyMiwweGI0LDB4MDEsCisweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwYSwweGU0LDB4ZmYsMHgwNCwweGZlLDB4N2MsMHgwOSwweDEyLDB4MzEsMHhmYiwweDIyLAorMHhiNCwweDAzLDB4MDAsMHg0MCwweDEwLDB4YjQsMHgwNSwweDAwLDB4NTAsMHgwYiwweGU1LDB4NDMsMHg3ZiwweDAwLDB4ZmUsMHg3YywKKzB4MTQsMHgxMiwweDMxLDB4ZmIsMHgyMiwweDIyLDB4YjQsMHg4MCwweDAwLDB4NDAsMHgyMywweGI0LDB4ODIsMHgwMCwweDUwLDB4MWUsCisweDdjLDB4MzUsMHg3ZCwweGZjLDB4MTIsMHgxNywweDdlLDB4N2QsMHgwMCwweDhjLDB4NmMsMHg4ZCwweDZiLDB4OTAsMHhmYywweDM3LAorMHhlMCwweDYwLDB4MDUsMHgxMiwweDJmLDB4ZmYsMHg4MCwweDA1LDB4N2MsMHgwMCwweDEyLDB4MzAsMHgyNCwweDIyLDB4MjIsMHg5MCwKKzB4ZmYsMHg4MywweGUwLDB4NTQsMHg3ZiwweGYwLDB4OTAsMHhmZiwweDgyLDB4ZTAsMHg0NCwweDA4LDB4ZjAsMHg5MCwweGZmLDB4ODAsCisweGUwLDB4NDQsMHgwOCwweGYwLDB4MjIsMHg5MCwweGZmLDB4ODIsMHhlMCwweDQ0LDB4MDgsMHhmMCwweDkwLDB4ZmYsMHg4MCwweGUwLAorMHg0NCwweDA4LDB4ZjAsMHgyMiwweDhjLDB4MjMsMHg3ZCwweDAwLDB4OGMsMHg3MCwweDhkLDB4NmYsMHg3NSwweDZhLDB4MzUsMHg3NSwKKzB4NjksMHhmYywweDc1LDB4NjgsMHgwMSwweDEyLDB4MzAsMHgzOSwweDIyLDB4OTAsMHhmZiwweDgzLDB4ZTAsMHg1NCwweDdmLDB4ZjAsCisweGU1LDB4NzAsMHg2NCwweDQ5LDB4NDUsMHg2ZiwweDcwLDB4MDEsMHgyMiwweGMzLDB4ZTUsMHg3MCwweDk0LDB4MDgsMHhlNSwweDZmLAorMHg5NCwweDAwLDB4NDAsMHgxNSwweDc1LDB4MjEsMHgwOCwweGU1LDB4MjEsMHg3ZCwweDAwLDB4ZmMsMHhjMywweGU1LDB4NzAsMHg5YywKKzB4ZjUsMHg3MCwweGU1LDB4NmYsMHg5ZCwweGY1LDB4NmYsMHg4MCwweDA5LDB4ODUsMHg3MCwweDIxLDB4ZTQsMHhmNSwweDZmLDB4NzUsCisweDcwLDB4NDksMHg3NSwweDIyLDB4MDAsMHhlNSwweDIyLDB4YzMsMHg5NSwweDIxLDB4NTAsMHgyNiwweGFkLDB4NmEsMHhhZSwweDY5LAorMHhhZiwweDY4LDB4MTIsMHgwMSwweGU2LDB4ZmMsMHhlNSwweDIyLDB4MjQsMHhmOCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmUsMHhmNSwKKzB4ODMsMHhlYywweGYwLDB4MDUsMHgyMiwweDBkLDB4ZWQsMHg3MCwweDAxLDB4MGUsMHg4ZCwweDZhLDB4OGUsMHg2OSwweDhmLDB4NjgsCisweDgwLDB4ZDMsMHhlNSwweDIxLDB4NTQsMHg3ZiwweDkwLDB4ZmYsMHg4MSwweGYwLDB4MjIsMHg4YywweDQ4LDB4N2YsMHgwMCwweGVmLAorMHgyNCwweGZkLDB4NDAsMHgxOSwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDcsMHhhNCwweDI0LDB4N2YsMHhmNSwweDgyLDB4ZTQsMHgzNCwKKzB4ZjgsMHhmNSwweDgzLDB4ZTAsMHg2NSwweDQ4LDB4NzAsMHgwMiwweGQzLDB4MjIsMHgwZiwweDgwLDB4ZTIsMHg4ZiwweDQ3LDB4YzMsCisweDIyLDB4ODUsMHg3MiwweDcwLDB4ODUsMHg3MSwweDZmLDB4OTAsMHhmZiwweDgyLDB4ZTAsMHg1NCwweGY3LDB4ZjAsMHg5MCwweGZmLAorMHg4MywweGUwLDB4NTQsMHg3ZiwweGYwLDB4MjIsMHhjMCwweDAwLDB4YzAsMHgwMSwweGMwLDB4MDIsMHhjMCwweDA2LDB4YzAsMHgwNywKKzB4ZTUsMHg3OCwweDI0LDB4MDgsMHhmOCwweDg2LDB4MDYsMHg1MywweDA2LDB4N2YsMHg3YywweGZmLDB4MTIsMHgzMSwweDViLDB4N2MsCisweDAwLDB4N2QsMHgwMCwweGU1LDB4N2IsMHg2MCwweDQ2LDB4ZmYsMHg5MCwweGZkLDB4OTUsMHhlMCwweDU0LDB4N2YsMHg2ZSwweDcwLAorMHgwZiwweGMwLDB4ODMsMHhjMCwweDgyLDB4YTMsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZjLDB4YTMsMHgxNSwweDdiLDB4ODAsMHgwNywKKzB4YTMsMHhhMywweGEzLDB4ZGYsMHhlNiwweDgwLDB4MjYsMHhkZiwweDA2LDB4ZDAsMHg4MiwweGQwLDB4ODMsMHg4MCwweDFlLDB4ZTAsCisweGY4LDB4YTMsMHhlMCwweGY5LDB4YTMsMHhlMCwweGZhLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhlOCwweGYwLDB4YTMsMHhlOSwweGYwLAorMHhhMywweGVhLDB4ZjAsMHhhMywweGMwLDB4ODMsMHhjMCwweDgyLDB4YTMsMHhhMywweGEzLDB4ODAsMHhkYSwweDEyLDB4MzEsMHhmNCwKKzB4ZDAsMHgwNywweGQwLDB4MDYsMHhkMCwweDAyLDB4ZDAsMHgwMSwweGQwLDB4MDAsMHgyMiwweDg1LDB4YTgsMHg3YSwweDc1LDB4YTgsCisweDg4LDB4ZWMsMHg3MCwweDAyLDB4N2MsMHgzZiwweDhjLDB4NzksMHgyMiwweGU1LDB4NzgsMHgyNCwweDA4LDB4ZjgsMHg3NiwweDAwLAorMHgxMiwweDMyLDB4NDgsMHg4MCwweGZiLDB4YzAsMHgwMCwweGMwLDB4MDEsMHhjMCwweDAyLDB4YzAsMHgwNiwweGMwLDB4MDcsMHhhZSwKKzB4MDQsMHg3YywweGZmLDB4MTIsMHgzMSwweDViLDB4ZTUsMHg3YiwweDYwLDB4NDIsMHhmZiwweDkwLDB4ZmQsMHg5NSwweGUwLDB4NTQsCisweDdmLDB4NmUsMHg3MCwweDBiLDB4YzAsMHg4MywweGMwLDB4ODIsMHhhMywweGEzLDB4YTMsMHgxNSwweDdiLDB4ODAsMHgwNywweGEzLAorMHhhMywweGEzLDB4ZGYsMHhlYSwweDgwLDB4MjYsMHhkZiwweDA2LDB4ZDAsMHg4MiwweGQwLDB4ODMsMHg4MCwweGQ4LDB4ZTAsMHhmOCwKKzB4YTMsMHhlMCwweGY5LDB4YTMsMHhlMCwweGZhLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhlOCwweGYwLDB4YTMsMHhlOSwweGYwLDB4YTMsCisweGVhLDB4ZjAsMHhhMywweGMwLDB4ODMsMHhjMCwweDgyLDB4YTMsMHhhMywweGEzLDB4ODAsMHhkYSwweDc4LDB4MDgsMHgwOCwweDc5LAorMHgxOCwweDA5LDB4N2MsMHgwMSwweGU2LDB4NTQsMHg3ZiwweDZlLDB4NzAsMHgwNiwweDc2LDB4MDAsMHg3NywweDAwLDB4ODAsMHgwNiwKKzB4MDgsMHgwOSwweDBjLDB4YmMsMHgwOCwweGVlLDB4MTIsMHgzMSwweGY0LDB4ZDAsMHgwNywweGQwLDB4MDYsMHhkMCwweDAyLDB4ZDAsCisweDAxLDB4ZDAsMHgwMCwweDIyLDB4NzUsMHg3OSwweDAwLDB4ODUsMHg3YSwweGE4LDB4MjIsMHhjMCwweGYwLDB4YzAsMHg4MiwweGMwLAorMHg4MywweGMzLDB4ZTUsMHg3YiwweDI0LDB4ZTgsMHg1MCwweDA1LDB4MTIsMHgzMiwweDQ4LDB4ODAsMHhmNCwweGVjLDB4NjAsMHgzMSwKKzB4OTAsMHgzNSwweDIzLDB4ZTQsMHg5MywweGMzLDB4OWMsMHg0MCwweDI4LDB4YzAsMHgwNCwweDdjLDB4ZmYsMHgxMiwweDMxLDB4NWIsCisweGQwLDB4MDQsMHg0MywweDA0LDB4ODAsMHhlNSwweDdiLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDk1LDB4ZjUsMHg4MiwweGU0LAorMHgzNCwweGZkLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHhlZiwweGEzLDB4ZjAsMHhlZSwweGEzLDB4ZjAsMHgwNSwweDdiLDB4MTIsMHgzMSwKKzB4ZjQsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZjAsMHgyMiwweGMwLDB4MDQsMHg3YywweDIwLDB4ZDIsMHg4YywweGQyLDB4OGQsCisweGQ1LDB4MDQsMHhmZCwweGQwLDB4MDQsMHgyMiwweDc1LDB4YTgsMHgwMCwweDc1LDB4ODgsMHgwMCwweDc1LDB4YjgsMHgwMCwweDc1LAorMHhmMCwweDAwLDB4NzUsMHhkMCwweDAwLDB4ZTQsMHhmOCwweDkwLDB4MDAsMHgwMCwweGY2LDB4MDgsMHhiOCwweDAwLDB4ZmIsMHgwMiwKKzB4MDAsMHgwMCwweGMzLDB4ZWQsMHg5NCwweDAyLDB4NTAsMHgwNCwweDdkLDB4MDMsMHg3YywweGU4LDB4ZWMsMHhmNCwweGZjLDB4ZWQsCisweGY0LDB4ZmQsMHgwYywweGJjLDB4MDAsMHgwMSwweDBkLDB4OGMsMHg3ZiwweDhkLDB4N2UsMHgyMiwweGMzLDB4ZWMsMHg5NCwweGJjLAorMHhlZCwweDk0LDB4MDIsMHg1MCwweDA0LDB4N2QsMHgwNywweDdjLDB4ZDAsMHhlYywweGY0LDB4ZmMsMHhlZCwweGY0LDB4ZmQsMHgwYywKKzB4YmMsMHgwMCwweDAxLDB4MGQsMHg4YywweDdkLDB4OGQsMHg3YywweDIyLDB4ZWMsMHg3MCwweDAxLDB4MjIsMHhjMCwweDAwLDB4ZTUsCisweDc4LDB4MjQsMHgxOCwweGY4LDB4YTYsMHgwNCwweGU1LDB4NzgsMHgyNCwweDA4LDB4ZjgsMHhjNiwweDU0LDB4N2YsMHhmNiwweGU2LAorMHgzMCwweGU3LDB4MDMsMHhkMCwweDAwLDB4MjIsMHgxMiwweDMyLDB4NDgsMHg4MCwweGY0LDB4YzIsMHg4YywweDg1LDB4N2MsMHg4YywKKzB4ODUsMHg3ZCwweDhhLDB4ZDIsMHg4YywweGMwLDB4ZTAsMHhjMCwweGQwLDB4YzAsMHhmMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsCisweDAwLDB4YzAsMHgwMSwweGMwLDB4MDIsMHhjMCwweDAzLDB4YzAsMHgwNCwweGMwLDB4MDUsMHhjMCwweDA2LDB4YzAsMHgwNywweDEyLAorMHgxYSwweGQxLDB4ZTUsMHg3OCwweDI0LDB4MDgsMHhmOCwweGU2LDB4NjAsMHgyNCwweGU1LDB4NzgsMHgyNCwweDEwLDB4ZjgsMHhhNiwKKzB4ODEsMHhlNSwweDc4LDB4NzUsMHhmMCwweDIxLDB4YTQsMHgyNCwweDhkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LDB4ODMsCisweDc4LDB4YWUsMHhlNSwweDgxLDB4MDQsMHhjMywweDk4LDB4ZjksMHhlNiwweGYwLDB4MDgsMHhhMywweGQ5LDB4ZmEsMHg3NCwweDA4LAorMHgyNSwweDc4LDB4ZjgsMHgwNSwweDc4LDB4MDgsMHhlNiwweDU0LDB4ODAsMHg3MCwweDBjLDB4ZTUsMHg3OCwweGI0LDB4MDcsMHhmMywKKzB4NzgsMHgwOCwweDc1LDB4NzgsMHgwMCwweDgwLDB4ZWYsMHhlNSwweDc4LDB4MjQsMHgxMCwweGY4LDB4ODYsMHg4MSwweGU1LDB4NzgsCisweDc1LDB4ZjAsMHgyMSwweGE0LDB4MjQsMHg4ZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLDB4NzgsMHhhZSwweGU1LAorMHg4MSwweDA0LDB4YzMsMHg5OCwweGY5LDB4ZTAsMHhmNiwweDA4LDB4YTMsMHhkOSwweGZhLDB4ZDAsMHgwNywweGQwLDB4MDYsMHhkMCwKKzB4MDUsMHhkMCwweDA0LDB4ZDAsMHgwMywweGQwLDB4MDIsMHhkMCwweDAxLDB4ZDAsMHgwMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsCisweGYwLDB4ZDAsMHhkMCwweGQwLDB4ZTAsMHgzMiwweGMwLDB4ZTAsMHhjMCwweGQwLDB4YzAsMHgwMCwweGMwLDB4MDEsMHhjMCwweDAyLAorMHhjMiwweDhlLDB4ODUsMHg3ZSwweDhkLDB4ODUsMHg3ZiwweDhiLDB4ZDIsMHg4ZSwweDc4LDB4MTksMHg3OSwweDA5LDB4N2EsMHgwNywKKzB4ZTcsMHg3MCwweDA0LDB4YTYsMHgwMCwweDgwLDB4MGIsMHhlNiwweDYwLDB4MDgsMHgxNiwweGU2LDB4NzAsMHgwNCwweGU3LDB4NDQsCisweDgwLDB4ZjcsMHgwOCwweDA5LDB4ZGEsMHhlYSwweGU1LDB4NzksMHg2MCwweDEzLDB4MTQsMHhmNSwweDc5LDB4NzAsMHgwZSwweGU1LAorMHg3OCwweDI0LDB4MDgsMHhmOCwweDc2LDB4MDAsMHgxMiwweDMxLDB4ZjQsMHhkMiwweDhjLDB4ZDIsMHg4ZCwweGQwLDB4MDIsMHhkMCwKKzB4MDEsMHhkMCwweDAwLDB4ZDAsMHhkMCwweGQwLDB4ZTAsMHgzMiwweDc1LDB4ODEsMHhhZCwweDc0LDB4MmEsMHg5MCwweGZmLDB4OTMsCisweGYwLDB4NzUsMHg3ZiwweDMwLDB4NzUsMHg3ZSwweGY4LDB4NzUsMHg3ZCwweDYwLDB4NzUsMHg3YywweGYwLDB4MTIsMHgwNSwweDM2LAorMHgxMiwweDM0LDB4N2MsMHgxMiwweDE3LDB4MzQsMHg5MCwweGZmLDB4OTMsMHhlMCwweDQ0LDB4MDEsMHhmMCwweGIyLDB4YjMsMHgxMiwKKzB4MzQsMHhhNiwweDEyLDB4MzIsMHg1NiwweDgwLDB4ZGEsMHgyMiwweGMwLDB4MDAsMHg3YywweDAxLDB4ZWMsMHgyNCwweDA4LDB4ZjgsCisweGU2LDB4NjAsMHgwOSwweDBjLDB4YmMsMHgwOCwweGY1LDB4MTIsMHgzMiwweDQ4LDB4ODAsMHhlZSwweGQwLDB4MDAsMHgyMiwweGMwLAorMHhmMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHgwMCwweGMwLDB4MDYsMHhjMCwweDA3LDB4ZWQsMHgyNCwweDEwLDB4ZjgsMHg3NiwKKzB4YmMsMHhlZCwweDc1LDB4ZjAsMHgyMSwweGE0LDB4MjQsMHg4ZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLDB4YzAsCisweDgyLDB4YzAsMHg4MywweGEzLDB4YTMsMHhlNCwweDc4LDB4MGQsMHhmMCwweGEzLDB4ZDgsMHhmYywweGVjLDB4NTQsMHg3ZiwweDc1LAorMHhmMCwweDAyLDB4YTQsMHgyNCwweGVmLDB4ZjUsMHg4MiwweGU1LDB4ZjAsMHgzNCwweDM0LDB4ZjUsMHg4MywweGU0LDB4OTMsMHhmZSwKKzB4NzQsMHgwMSwweDkzLDB4ZjUsMHg4MiwweDhlLDB4ODMsMHhlNCwweDkzLDB4ZmUsMHg3NCwweDAxLDB4OTMsMHhmZiwweGQwLDB4ODMsCisweGQwLDB4ODIsMHhlZiwweGYwLDB4YTMsMHhlZSwweGYwLDB4ZWQsMHgyNCwweDA4LDB4ZjgsMHhlYywweDQ0LDB4ODAsMHhmNiwweGQwLAorMHgwNywweGQwLDB4MDYsMHhkMCwweDAwLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGYwLDB4MjIsMHg3NSwweDc4LDB4MDAsMHg3NSwKKzB4N2IsMHgwMCwweDdhLDB4MDgsMHg3OSwweDE4LDB4NzgsMHgwOCwweDc2LDB4MDAsMHg3NywweDAwLDB4MDgsMHgwOSwweGRhLDB4ZjgsCisweGU0LDB4NzgsMHgwOCwweDc0LDB4ODAsMHg0NCwweDdmLDB4ZjYsMHg3NCwweDAxLDB4NDQsMHgxMCwweGY1LDB4ODksMHg3NSwweGI4LAorMHgwOCwweGQyLDB4YWIsMHhkMiwweGE5LDB4MjIsMHg3NSwweDgxLDB4YWQsMHhkMiwweDhlLDB4ZDIsMHg4YywweGQyLDB4YWYsMHhlNSwKKzB4N2IsMHg2MCwweDMyLDB4ZmYsMHg5MCwweGZkLDB4OTUsMHhlMCwweDU0LDB4ODAsMHg2MCwweDI0LDB4NzgsMHgwOCwweDc5LDB4MDgsCisweGUwLDB4NTQsMHg3ZiwweGZhLDB4N2IsMHgwMCwweGU2LDB4NTQsMHg3ZiwweGI1LDB4MDIsMHgwMiwweDdiLDB4ZmYsMHgwOCwweGQ5LAorMHhmNSwweGViLDB4NzAsMHgwYywweGVhLDB4ZjAsMHgxMiwweDMzLDB4ZjgsMHhhZCwweDA0LDB4YWMsMHgwMiwweDEyLDB4MzQsMHgwZiwKKzB4YTMsMHhhMywweGEzLDB4ZGYsMHhkMiwweDEyLDB4MzIsMHg0OCwweDgwLDB4YzUsMHg3YywweDAxLDB4N2QsMHgwMCwweDIyLDB4MDQsCisweGY1LDB4MDQsMHhlOSwweDA0LDB4ZWQsMHgwNCwweGUxLDB4MDQsMHhkZCwweDA0LDB4ZDksMHgwNCwweGU1LDB4MDQsMHhmMSwweDA0LAorMHg5ZCwweDA0LDB4YTEsMHgwNCwweGNkLDB4MDQsMHhkMSwweDA0LDB4OTksMHgwNCwweDk5LDB4MDQsMHg5OSwweDA0LDB4ZDUsMHgwNCwKKzB4YjUsMHgwNCwweGFkLDB4MDQsMHhiMSwweDA0LDB4YTksMHgwNCwweGMxLDB4MDQsMHhiZCwweDA0LDB4YjksMHgwNCwweGM1LDB4MDQsCisweGM5LDB4MDQsMHhhNSwweDE5LDB4MDEsMHgwMywweDAwLDB4MjIsMHgwMCwweDQ4LDB4MDIsMHgwMCwweDQ4LDB4MGUsMHgzMCwweDE0LAorMHgyMCwweGM4LDB4MWEsMHhkMCwweDE4LDB4MGEsMHgwYywweDA1LDB4MDYsMHgwMiwweDAzLDB4MDEsMHgwMiwweDAwLDB4MDEsMHhjZSwKKzB4MDEsMHg4MSwweDAxLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg4MCwweDAwLDB4NjAsMHgwMCwweDMwLDB4MDAsMHgxOCwweDAwLDB4MTAsCisweDAwLDB4MDgsMHgwMCwweDA0LDB4MDAsMHgwMiwweDAwLDB4MDEsMHgwMCwweDA4LDB4MTgsMHgzOCwweDI4LDB4MGMsMHgwNSwweDEwLAorMHgwYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAzLDB4MDEsMHgxMCwweDBhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwKKzB4MDAsMHhmYiwweGUwLDB4ZmIsMHhmMiwweDA5LDB4MDIsMHgyNywweDAwLDB4MDEsMHgwMiwweDAwLDB4YTAsMHgzMiwweDA5LDB4MDQsCisweDAwLDB4MDAsMHgwMywweGZmLDB4MDAsMHgwMCwweDAwLDB4MDcsMHgwNSwweDgxLDB4MDIsMHg0MCwweDAwLDB4MDAsMHgwNywweDA1LAorMHgwMSwweDAyLDB4NDAsMHgwMCwweDAwLDB4MDcsMHgwNSwweDgzLDB4MDMsMHgwMiwweDAwLDB4MDEsMHgyMiwweDAzLDB4NTQsMHgwMCwKKzB4NTUsMHgwMCwweDUzLDB4MDAsMHg0MiwweDAwLDB4MzMsMHgwMCwweDM0LDB4MDAsMHgzMSwweDAwLDB4MzAsMHgwMCwweDIwLDB4MDAsCisweDIwLDB4MDAsMHgyMCwweDAwLDB4MjAsMHgwMCwweDIwLDB4MDAsMHgyMCwweDAwLDB4MjAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLAorMHgwMCwweDAwLAorfTsKKworI2VuZGlmIC8qIGlmbmRlZiBfVElfRldfMzQxMF9IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL3RpX2Z3XzUwNTIuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC90aV9md181MDUyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmNjZjQwYQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC90aV9md181MDUyLmgKQEAgLTAsMCArMSw4ODUgQEAKKy8qIHZpOiB0cz04IHN3PTgKKyAqCisgKiBUSSA1MDUyIFVTQiBTZXJpYWwgRHJpdmVyIEZpcm13YXJlIEhlYWRlcgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNCBUZXhhcyBJbnN0cnVtZW50cworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKi8KKworI2lmbmRlZiBfVElfRldfNTA1Ml9IXworI2RlZmluZSBfVElfRldfNTA1Ml9IXworCisvKiBmaXJtd2FyZSA5LzE4LzA0ICovCisKK3N0YXRpYyB1bnNpZ25lZCBjaGFyIHRpX2Z3XzUwNTJbXSA9IHsKKzB4QzEsIDB4MzUsCS8qIGZpcm13YXJlIGltYWdlIGxlbmd0aCBleGNsdWRpbmcgaGVhZGVyLCBsaXR0bGUgZW5kaWFuICovCisweDAwLCAJCS8qIHBsYWNlaG9sZGVyIGZvciBjaGVja3N1bSAqLworCisweDAyLDB4MDAsMHgxZSwweDAyLDB4MWIsMHgzMiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHgwMiwweDMyLDB4NmEsMHhmZiwweGZmLAorMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4MDIsMHgzMywweDE1LDB4NzUsMHg4MSwKKzB4YzgsMHg5MCwweGZlLDB4ZjAsMHg4NSwweDgzLDB4YTAsMHgxMiwweDM0LDB4N2QsMHhlYywweDRkLDB4NjAsMHg2YSwweDc4LDB4YTUsCisweDgwLDB4MDMsMHg3NiwweDAwLDB4MTgsMHhiOCwweDk2LDB4ZmEsMHg3OCwweDc5LDB4ODAsMHgwMywweDc2LDB4MDAsMHgxOCwweGI4LAorMHg1ZiwweGZhLDB4NzgsMHgyMCwweDgwLDB4MDMsMHg3NiwweDAwLDB4MTgsMHhiOCwweDIwLDB4ZmEsMHg5MCwweGZlLDB4ZTUsMHhhZSwKKzB4ODMsMHhhZiwweDgyLDB4OTAsMHhmZCwweDAwLDB4MTIsMHgwMCwweGExLDB4NjAsMHgwNSwweGU0LDB4ZjAsMHhhMywweDgwLDB4ZjYsCisweDkwLDB4ZmUsMHhmMCwweGE4LDB4ODIsMHg5MCwweGZlLDB4ZjAsMHhhOSwweDgyLDB4ZTgsMHhjMywweDk5LDB4NTAsMHgwNSwweDc2LAorMHgwMCwweDA4LDB4ODAsMHhmNiwweDkwLDB4MDAsMHhmZiwweDEyLDB4MDAsMHhhYSwweDkwLDB4MDEsMHgwMywweDEyLDB4MDAsMHhhYSwKKzB4OTAsMHgwMSwweDA3LDB4MTIsMHgwMCwweGFhLDB4OTAsMHgwMSwweDBiLDB4MTIsMHgwMCwweGM4LDB4OTAsMHgwMSwweDExLDB4MTIsCisweDAwLDB4YzgsMHg5MCwweDAxLDB4MTcsMHgxMiwweDAwLDB4YzgsMHg3NSwweGQwLDB4MDAsMHgxMiwweDMzLDB4NjcsMHgwMiwweDAxLAorMHgxZCwweGVmLDB4NjUsMHg4MiwweDcwLDB4MDMsMHhlZSwweDY1LDB4ODMsMHgyMiwweGU0LDB4OTMsMHhmOCwweDc0LDB4MDEsMHg5MywKKzB4ZjksMHg3NCwweDAyLDB4OTMsMHhmZSwweDc0LDB4MDMsMHg5MywweGY1LDB4ODIsMHg4ZSwweDgzLDB4ZTgsMHg2OSwweDcwLDB4MDEsCisweDIyLDB4ZTQsMHg5MywweGY2LDB4YTMsMHgwOCwweDgwLDB4ZjQsMHhlNCwweDkzLDB4ZmMsMHg3NCwweDAxLDB4OTMsMHhmZCwweDc0LAorMHgwMiwweDkzLDB4ZmUsMHg3NCwweDAzLDB4OTMsMHhmZiwweDc0LDB4MDQsMHg5MywweGY4LDB4NzQsMHgwNSwweDkzLDB4ZjUsMHg4MiwKKzB4ODgsMHg4MywweDEyLDB4MDAsMHhhMSwweDcwLDB4MDEsMHgyMiwweGU0LDB4OTMsMHhhMywweGE4LDB4ODMsMHhhOSwweDgyLDB4OGMsCisweDgzLDB4OGQsMHg4MiwweGYwLDB4YTMsMHhhYywweDgzLDB4YWQsMHg4MiwweDg4LDB4ODMsMHg4OSwweDgyLDB4ODAsMHhlMywweDIxLAorMHgyMSwweDA0LDB4OTIsMHg3YSwweDdhLDB4MDQsMHg5MiwweGE2LDB4YTgsMHgwNCwweDkyLDB4ZmUsMHhmMCwweDA0LDB4OTQsMHgwNCwKKzB4OTQsMHhmYiwweGZiLDB4MDQsMHg5OSwweDA0LDB4OTQsMHhmYiwweGZiLDB4MDQsMHhmOSwweDA0LDB4ZjksMHg4MCwweGZlLDB4ZDAsCisweGYwLDB4MzAsMHhmMCwweDA5LDB4MjAsMHhmMywweDAzLDB4ZjYsMHg4MCwweDEwLDB4ZjcsMHg4MCwweDBkLDB4MzAsMHhmMSwweDA5LAorMHgyMCwweGYzLDB4MDMsMHhmMiwweDgwLDB4MDQsMHhmMywweDgwLDB4MDEsMHhmMCwweDIwLDB4ZjQsMHgwNCwweGZjLDB4ZDAsMHhlMCwKKzB4Y2MsMHgyMiwweGNjLDB4YzAsMHhlMCwweDEyLDB4MDEsMHg1YSwweDAyLDB4MDEsMHg0YiwweGJjLDB4MDAsMHgwNSwweGQwLDB4ZjAsCisweGFjLDB4ZjAsMHgyMiwweGMzLDB4MTMsMHhkYywweGZjLDB4MDIsMHgwMSwweDIxLDB4YmYsMHgwMCwweDA5LDB4ZWQsMHgyNSwweDgyLAorMHg3NSwweGYwLDB4MDEsMHhmOCwweGU2LDB4MjIsMHhiZiwweDAxLDB4MGYsMHhlZCwweDI1LDB4ODIsMHhmNSwweDgyLDB4ZWUsMHgzNSwKKzB4ODMsMHhmNSwweDgzLDB4NzUsMHhmMCwweDA0LDB4ZTAsMHgyMiwweGVkLDB4MjUsMHg4MiwweDc1LDB4ZjAsMHgwMiwweGY4LDB4ZTIsCisweDIyLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhmNSwweGYwLDB4YzMsMHhlNCwweDkzLDB4YTMsMHhjNSwweGYwLDB4OTUsMHhmMCwweGMwLAorMHhlMCwweGMzLDB4ZDAsMHhmMCwweGU0LDB4OTMsMHhhMywweDk1LDB4ZjAsMHg0MCwweDEyLDB4YTMsMHhhMywweGMzLDB4ZTUsMHhmMCwKKzB4MzMsMHg1MCwweDAyLDB4MDUsMHg4MywweDI1LDB4ODIsMHhmNSwweDgyLDB4NTAsMHgwMiwweDA1LDB4ODMsMHg3NCwweDAxLDB4OTMsCisweGMwLDB4ZTAsMHhlNCwweDkzLDB4YzAsMHhlMCwweDIyLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhmNSwweGYwLDB4ZTQsMHg5MywweDcwLAorMHgwOSwweDc0LDB4MDEsMHg5MywweDcwLDB4MDQsMHhhMywweGEzLDB4ODAsMHgwYywweDc0LDB4MDIsMHg5MywweDY1LDB4ZjAsMHg2MCwKKzB4MDUsMHhhMywweGEzLDB4YTMsMHg4MCwweGU3LDB4NzQsMHgwMSwweDkzLDB4YzAsMHhlMCwweGU0LDB4OTMsMHhjMCwweGUwLDB4MjIsCisweDEyLDB4MDIsMHg1YiwweDAyLDB4MDEsMHhmMiwweDEyLDB4MDIsMHhhZiwweDAyLDB4MDEsMHhmMiwweDEyLDB4MDIsMHhkMywweDAyLAorMHgwMSwweGYyLDB4MzAsMHhlMCwweDA3LDB4MjAsMHhlMywweDAyLDB4ZTYsMHgyMiwweGU3LDB4MjIsMHgzMCwweGUxLDB4MDcsMHgyMCwKKzB4ZTMsMHgwMiwweGUyLDB4MjIsMHhlMywweDIyLDB4MzAsMHhlMiwweDAyLDB4ZTAsMHgyMiwweGU0LDB4OTMsMHgyMiwweDEyLDB4MDIsCisweGQzLDB4MDIsMHgwMiwweDFhLDB4MTIsMHgwMiwweGFmLDB4MDIsMHgwMiwweDFhLDB4YWIsMHhmMCwweDEyLDB4MDIsMHgyNCwweGNiLAorMHhjNSwweGYwLDB4Y2IsMHgyMiwweDMwLDB4ZTAsMHgxMCwweDIwLDB4ZTMsMHgwNiwweGU2LDB4ZjUsMHhmMCwweDA4LDB4ZTYsMHgyMiwKKzB4ZTcsMHhmNSwweGYwLDB4MDksMHhlNywweDE5LDB4MjIsMHgzMCwweGUxLDB4MTAsMHgyMCwweGUzLDB4MDYsMHhlMiwweGY1LDB4ZjAsCisweDA4LDB4ZTIsMHgyMiwweGUzLDB4ZjUsMHhmMCwweDA5LDB4ZTMsMHgxOSwweDIyLDB4MzAsMHhlMiwweDA2LDB4ZTAsMHhmNSwweGYwLAorMHhhMywweGUwLDB4MjIsMHhlNCwweDkzLDB4ZjUsMHhmMCwweDc0LDB4MDEsMHg5MywweDIyLDB4YmIsMHgwMCwweDAzLDB4NzQsMHgwOSwKKzB4MjIsMHhiYiwweDAxLDB4MDcsMHg4OSwweDgyLDB4OGEsMHg4MywweDc0LDB4MDQsMHgyMiwweGJiLDB4MDIsMHgwNywweDg5LDB4ODIsCisweDhhLDB4ODMsMHg3NCwweDEwLDB4MjIsMHg3NCwweDBhLDB4MjIsMHgwMiwweDAyLDB4N2IsMHhiYiwweDAwLDB4MDcsMHhlOSwweDI1LAorMHg4MiwweGY4LDB4NzQsMHgwMSwweDIyLDB4YmIsMHgwMSwweDBkLDB4ZTksMHgyNSwweDgyLDB4ZjUsMHg4MiwweGVhLDB4MzUsMHg4MywKKzB4ZjUsMHg4MywweDc0LDB4MDQsMHgyMiwweGJiLDB4MDIsMHgwZCwweGU5LDB4MjUsMHg4MiwweGY1LDB4ODIsMHhlYSwweDM1LDB4ODMsCisweGY1LDB4ODMsMHg3NCwweDEwLDB4MjIsMHhlOSwweDI1LDB4ODIsMHhmOCwweDc0LDB4MDIsMHgyMiwweDAyLDB4MDIsMHhhZiwweGJmLAorMHgwMCwweDA1LDB4ZWQsMHhmOCwweDc0LDB4MDEsMHgyMiwweGJmLDB4MDEsMHgwNywweDhkLDB4ODIsMHg4ZSwweDgzLDB4NzQsMHgwNCwKKzB4MjIsMHhiZiwweDAyLDB4MDcsMHg4ZCwweDgyLDB4OGUsMHg4MywweDc0LDB4MTAsMHgyMiwweGVkLDB4ZjgsMHg3NCwweDAyLDB4MjIsCisweDAyLDB4MDIsMHhkMywweGJmLDB4MDAsMHgwNywweGVkLDB4MjUsMHg4MiwweGY4LDB4NzQsMHgwMSwweDIyLDB4YmYsMHgwMSwweDBkLAorMHhlZCwweDI1LDB4ODIsMHhmNSwweDgyLDB4ZWUsMHgzNSwweDgzLDB4ZjUsMHg4MywweDc0LDB4MDQsMHgyMiwweGJmLDB4MDIsMHgwZCwKKzB4ZWQsMHgyNSwweDgyLDB4ZjUsMHg4MiwweGVlLDB4MzUsMHg4MywweGY1LDB4ODMsMHg3NCwweDEwLDB4MjIsMHhlZCwweDI1LDB4ODIsCisweGY4LDB4NzQsMHgwMiwweDIyLDB4MDIsMHgwMywweDA3LDB4YzAsMHhlMCwweDEyLDB4MDIsMHg1YiwweDAyLDB4MDMsMHgxZiwweGMwLAorMHhlMCwweDEyLDB4MDIsMHhhZiwweDAyLDB4MDMsMHgxZiwweGMwLDB4ZTAsMHgxMiwweDAyLDB4ZDMsMHgwMiwweDAzLDB4MWYsMHgzMCwKKzB4ZTAsMHgwYiwweDIwLDB4ZTMsMHgwNCwweGQwLDB4ZTAsMHhmNiwweDIyLDB4ZDAsMHhlMCwweGY3LDB4MjIsMHgzMCwweGUxLDB4MGIsCisweDIwLDB4ZTMsMHgwNCwweGQwLDB4ZTAsMHhmMiwweDIyLDB4ZDAsMHhlMCwweGYzLDB4MjIsMHhkMCwweGUwLDB4ZjAsMHgyMiwweGM5LAorMHhjZCwweGM5LDB4Y2EsMHhjZSwweGNhLDB4Y2IsMHhjZiwweGNiLDB4MTIsMHgwMywweDUyLDB4ZWQsMHhmOSwweGVlLDB4ZmEsMHhlZiwKKzB4ZmIsMHgyMiwweGJiLDB4MDAsMHgyZiwweGJmLDB4MDAsMHgwYSwweGZhLDB4ZWQsMHhmOCwweGU3LDB4ZjYsMHgwOCwweDA5LDB4ZGEsCisweGZhLDB4MjIsMHhiZiwweDAxLDB4MTIsMHg4ZCwweDgyLDB4OGUsMHg4MywweGY4LDB4MDIsMHgwMywweDZmLDB4MDksMHhhMywweGU3LAorMHhmMCwweGQ4LDB4ZmEsMHgyMiwweDAyLDB4MDMsMHg3YSwweGZhLDB4ZWQsMHhmOCwweGU3LDB4ZjIsMHgwOCwweDA5LDB4ZGEsMHhmYSwKKzB4MjIsMHgwMiwweDAzLDB4ODQsMHhiYiwweDAxLDB4NGQsMHhiZiwweDAwLDB4MTQsMHg4OSwweDgyLDB4OGEsMHg4MywweGY5LDB4ZWQsCisweGY4LDB4MDIsMHgwMywweDk2LDB4MDgsMHhhMywweGUwLDB4ZjYsMHhkOSwweGZhLDB4MjIsMHgwMiwweDAzLDB4YTcsMHhiZiwweDAxLAorMHgyMiwweDhkLDB4ODIsMHg4ZSwweDgzLDB4ZmIsMHgwOCwweGM5LDB4YzUsMHg4MiwweGM5LDB4Y2EsMHhjNSwweDgzLDB4Y2EsMHhlMCwKKzB4YTMsMHhjOSwweGM1LDB4ODIsMHhjOSwweGNhLDB4YzUsMHg4MywweGNhLDB4ZjAsMHhhMywweGRiLDB4ZWEsMHhkOCwweGU4LDB4MjIsCisweDAyLDB4MDMsMHhjYSwweDhkLDB4ODIsMHg4ZSwweDgzLDB4ZjksMHhlZCwweGY4LDB4ZTAsMHhmMiwweDA4LDB4YTMsMHhkOSwweGZhLAorMHgyMiwweDAyLDB4MDMsMHhkNCwweGJiLDB4MDIsMHg0ZCwweGJmLDB4MDAsMHgxMiwweDg5LDB4ODIsMHg4YSwweDgzLDB4ZjksMHhlZCwKKzB4ZjgsMHgwMiwweDAzLDB4ZTYsMHgwOCwweGEzLDB4ZTQsMHg5MywweGY2LDB4ZDksMHhmOSwweDIyLDB4YmYsMHgwMSwweDIzLDB4OGQsCisweDgyLDB4OGUsMHg4MywweGZiLDB4MDgsMHhjOSwweGM1LDB4ODIsMHhjOSwweGNhLDB4YzUsMHg4MywweGNhLDB4ZTQsMHg5MywweGEzLAorMHhjOSwweGM1LDB4ODIsMHhjOSwweGNhLDB4YzUsMHg4MywweGNhLDB4ZjAsMHhhMywweGRiLDB4ZTksMHhkOCwweGU3LDB4MjIsMHgwMiwKKzB4MDQsMHgxOSwweDg5LDB4ODIsMHg4YSwweDgzLDB4ZjksMHhlZCwweGY4LDB4ZTQsMHg5MywweGYyLDB4MDgsMHhhMywweGQ5LDB4ZjksCisweDIyLDB4MDIsMHgwNCwweDJhLDB4YmYsMHgwMCwweDBkLDB4ZmEsMHhlZCwweGY4LDB4ZTMsMHhmNiwweDA4LDB4MDksMHhkYSwweGZhLAorMHgyMiwweDAyLDB4MDQsMHgzNCwweGJmLDB4MDEsMHgxMiwweDhkLDB4ODIsMHg4ZSwweDgzLDB4ZjgsMHgwMiwweDA0LDB4NDEsMHgwOSwKKzB4YTMsMHhlMywweGYwLDB4ZDgsMHhmYSwweDIyLDB4MDIsMHgwNCwweDRjLDB4ZmEsMHhlZCwweGY4LDB4ZTMsMHhmMiwweDA4LDB4MDksCisweGRhLDB4ZmEsMHgyMiwweDAyLDB4MDQsMHg1NiwweGU2LDB4ZmIsMHgwOCwweGU2LDB4ZmEsMHgwOCwweGU2LDB4ZjksMHgwNCwweGY2LAorMHgxOCwweDcwLDB4MDEsMHgwNiwweDIyLDB4ZTYsMHhmZiwweDA4LDB4ZTYsMHhmZSwweDA4LDB4ZTYsMHhmZCwweDIyLDB4ZWYsMHhmMCwKKzB4YTMsMHhlZSwweGYwLDB4YTMsMHhlZCwweGYwLDB4MjIsMHhlYiwweGYwLDB4YTMsMHhlYSwweGYwLDB4YTMsMHhlOSwweGYwLDB4MjIsCisweGUwLDB4ZmYsMHhhMywweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmQsMHgyMiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLAorMHhmOSwweDIyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNCwweGY5LDB4MDAsMHg1YiwweDA1LDB4NzMsMHgwMCwKKzB4MjYsMHgwNSwweDlhLDB4MDAsMHgzMywweDBhLDB4MGIsMHgwMCwweDViLDB4MGEsMHg3NywweDAwLDB4NjAsMHgxNSwweDUyLDB4MDAsCisweDViLDB4MGMsMHhmYiwweDAwLDB4NWIsMHgwOSwweGFiLDB4MDAsMHg1YiwweDA5LDB4ZTIsMHgwMCwweDViLDB4MGQsMHhjMiwweDAwLAorMHg1YiwweDBiLDB4ZjMsMHgwMCwweDViLDB4MGEsMHgxZSwweDAwLDB4NWIsMHgwYSwweDUzLDB4MDAsMHg1YiwweDE3LDB4NGEsMHgwMCwKKzB4MzMsMHgxNywweDYwLDB4MDAsMHgzNCwweDFlLDB4NGQsMHgwMCwweDQzLDB4MWUsMHhmMCwweDAwLDB4NDQsMHgyMCwweDVkLDB4MDAsCisweDQ0LDB4MjAsMHg0YiwweDAwLDB4NDcsMHgxZiwweDE3LDB4MDAsMHg0NywweDFmLDB4YmMsMHgwMCwweDRkLDB4MjAsMHgwZCwweDAwLAorMHg0ZiwweDFmLDB4MzksMHgwMCwweDU4LDB4MzEsMHhmNSwweDAwLDB4NWIsMHg3YywweGNjLDB4N2QsMHhmZiwweDEyLDB4MWMsMHhmZSwKKzB4MjIsMHg3NCwweDkwLDB4OTAsMHhmZiwweDkxLDB4ZjAsMHg5MCwweGZmLDB4ZmMsMHhlMCwweDIwLDB4ZTcsMHgyZCwweGMyLDB4YWYsCisweGFlLDB4NTksMHhhZiwweDU4LDB4NzUsMHg1YSwweDIwLDB4ZTUsMHg1YSwweDE0LDB4YzUsMHg1YSwweDYwLDB4MTksMHhlNCwweGZlLAorMHg3ZiwweDA1LDB4ZWUsMHg0ZiwweGNlLDB4MjQsMHhmZiwweGNlLDB4Y2YsMHgzNCwweGZmLDB4Y2YsMHg2MCwweDA3LDB4ZTQsMHg5MCwKKzB4ZmYsMHg5MiwweGYwLDB4ODAsMHhlZCwweDgwLDB4ZTAsMHg4ZSwweDU5LDB4OGYsMHg1OCwweDIyLDB4MTIsMHgwNSwweDAxLDB4N2QsCisweDA3LDB4N2MsMHhiNywweDEyLDB4MzIsMHgxMSwweDdkLDB4MGYsMHg3YywweDZlLDB4MTIsMHgzMiwweDJiLDB4NzgsMHg5NywweDdhLAorMHgwNiwweGU0LDB4ZjYsMHgwOCwweGRhLDB4ZmMsMHg3YSwweDA2LDB4MTIsMHgwNSwweGNmLDB4N2MsMHgwMywweDEyLDB4MGUsMHg1NywKKzB4N2MsMHgwNCwweDEyLDB4MGUsMHg1NywweDEyLDB4MjEsMHg4YiwweGU0LDB4ZmUsMHhmZiwweDdjLDB4MGYsMHgxMiwweDMxLDB4OWEsCisweGQyLDB4YTgsMHgyMiwweDEyLDB4MzAsMHg4NSwweGU0LDB4OTAsMHhmZCwweDQwLDB4ZjAsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDMwLAorMHhlNCwweDA4LDB4NzQsMHgwMSwweDkwLDB4ZmQsMHg0MSwweGYwLDB4ODAsMHgwNSwweGU0LDB4OTAsMHhmZCwweDQxLDB4ZjAsMHg3ZCwKKzB4MGEsMHg3YywweDAwLDB4MTIsMHgyNCwweGIxLDB4MTIsMHgzMSwweDA4LDB4MjIsMHgxMiwweDMwLDB4ODUsMHg5MCwweGZkLDB4NDEsCisweGUwLDB4MTQsMHg3MCwweDBlLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg0NCwweDEwLDB4ZjAsMHg3YywweDAwLDB4MTIsMHgyNSwweDRhLAorMHg4MCwweDE5LDB4OTAsMHhmZCwweDQxLDB4ZTAsMHg3MCwweDBlLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg1NCwweGVmLDB4ZjAsMHg3YywKKzB4MDAsMHgxMiwweDI1LDB4NGEsMHg4MCwweDA1LDB4N2MsMHgxNywweDEyLDB4MjUsMHg0YSwweDEyLDB4MzEsMHgwOCwweDIyLDB4OTAsCisweGZmLDB4ZjAsMHhlMCwweDU0LDB4YWIsMHhmMCwweDkwLDB4ZmYsMHhmMCwweGUwLDB4NDQsMHgyMCwweGYwLDB4MjIsMHg4YywweDM3LAorMHg4ZCwweDM2LDB4NzgsMHg3YywweGVkLDB4ZjYsMHgwOCwweGVjLDB4ZjYsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwKKzB4MDAsMHgwNSwweDEyLDB4MDEsMHhlYywweDc4LDB4N2EsMHhmNiwweDc4LDB4N2MsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4ZWQsCisweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDQsMHgxMiwweDAxLDB4ZWMsMHg1NCwweDBmLDB4ZmMsMHg3ZCwweDdhLAorMHgxMiwweDE3LDB4OWQsMHg3OCwweDdhLDB4ZTYsMHg3MCwweDBkLDB4YWQsMHgzYSwweGFlLDB4MzksMHhhZiwweDM4LDB4ZTQsMHgxMiwKKzB4MDMsMHgwZiwweDdjLDB4MDgsMHgyMiwweDkwLDB4ZmYsMHhmMCwweGUwLDB4NTQsMHhmZSwweGYwLDB4OTAsMHhmZiwweGYwLDB4ZTAsCisweDU0LDB4ZmQsMHhmMCwweDgwLDB4MWUsMHg3OCwweDdjLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLAorMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA4LDB4MTIsMHgwMiwweDBlLDB4MjUsMHhlMCwweDQ0LDB4MDEsMHg5MCwweGZmLDB4ZjMsMHhmMCwKKzB4MDIsMHgwNiwweGRiLDB4NzgsMHg3YywweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsCisweDkwLDB4MDAsMHgwNiwweDEyLDB4MDIsMHgwZSwweDU0LDB4ZmUsMHg5MCwweGZmLDB4ZjMsMHhmMCwweDgwLDB4MmIsMHg3OCwweDdjLAorMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA4LDB4MTIsMHgwMiwKKzB4MGUsMHhmYSwweGViLDB4OTAsMHhmZiwweGYxLDB4ZjAsMHgxMiwweDA4LDB4Y2EsMHg0MCwweDBkLDB4YWQsMHgzYSwweGFlLDB4MzksCisweGFmLDB4MzgsMHhlNCwweDEyLDB4MDMsMHgwZiwweDdjLDB4MTgsMHgyMiwweDc4LDB4N2MsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLAorMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDgsMHgxMiwweDAyLDB4MGUsMHg5MCwweGZmLDB4ZjEsMHhmMCwKKzB4MTIsMHgwOCwweGNhLDB4NDAsMHgwZCwweGFkLDB4M2EsMHhhZSwweDM5LDB4YWYsMHgzOCwweGU0LDB4MTIsMHgwMywweDBmLDB4N2MsCisweDE4LDB4MjIsMHg3OCwweDdjLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLAorMHgwMCwweDA2LDB4MTIsMHgwMiwweDBlLDB4NDQsMHgwMSwweDkwLDB4ZmYsMHhmMywweGYwLDB4NzgsMHg3ZCwweGU2LDB4MjQsMHgwMywKKzB4ZjYsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY2LDB4NzgsMHg3YSwweGU2LDB4MjQsMHhmZSwweDUwLDB4MDksMHg5MCwweGZmLDB4ZjAsCisweGUwLDB4NTQsMHhmZCwweGYwLDB4ODAsMHgwNywweDkwLDB4ZmYsMHhmMCwweGUwLDB4NDQsMHgwMiwweGYwLDB4ZTQsMHg5MCwweGZmLAorMHhmMSwweGYwLDB4NzgsMHg3YiwweDc2LDB4MDAsMHg3OCwweDdhLDB4ZTYsMHgyNCwweGZmLDB4ZmMsMHhlNCwweDM0LDB4ZmYsMHhmZCwKKzB4NzgsMHg3YiwweGU2LDB4N2YsMHgwMCwweGZlLDB4ZWMsMHhkMywweDllLDB4ZWYsMHg2NCwweDgwLDB4Y2QsMHg2NCwweDgwLDB4OWQsCisweDQwLDB4MmYsMHgxMiwweDA4LDB4YWYsMHg0MCwweDBmLDB4NzgsMHg3YiwweGU2LDB4YWQsMHgzYSwweGFlLDB4MzksMHhhZiwweDM4LAorMHgxMiwweDAzLDB4MGYsMHg3YywweDE4LDB4MjIsMHg5MCwweGZmLDB4ZjIsMHhlMCwweGZjLDB4NzgsMHg3YywweDg2LDB4ODMsMHgwOCwKKzB4ODYsMHg4MiwweGVjLDB4ZjAsMHg3OCwweDdiLDB4MDYsMHhhMywweDc4LDB4N2MsMHhhNiwweDgzLDB4MDgsMHhhNiwweDgyLDB4ODAsCisweGI1LDB4MTIsMHgwOCwweGFmLDB4NDAsMHgwZiwweDc4LDB4N2IsMHhlNiwweGFkLDB4M2EsMHhhZSwweDM5LDB4YWYsMHgzOCwweDEyLAorMHgwMywweDBmLDB4N2MsMHgxOCwweDIyLDB4OTAsMHhmZiwweGYyLDB4ZTAsMHhmYywweDc4LDB4N2MsMHg4NiwweDgzLDB4MDgsMHg4NiwKKzB4ODIsMHhlYywweGYwLDB4NzgsMHg3YSwweGU2LDB4YWQsMHgzYSwweGFlLDB4MzksMHhhZiwweDM4LDB4MTIsMHgwMywweDBmLDB4N2MsCisweDAwLDB4MjIsMHg4YywweDM3LDB4OGQsMHgzNiwweDc4LDB4N2MsMHhlZCwweGY2LDB4MDgsMHhlYywweGY2LDB4ZWQsMHhmZSwweGVjLAorMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDUsMHgxMiwweDAxLDB4ZWMsMHg3OCwweDdiLDB4ZjYsMHg3OCwweDdjLDB4ZTYsMHhmZCwKKzB4MDgsMHhlNiwweGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA0LDB4MTIsMHgwMSwweGVjLDB4NTQsCisweDBmLDB4ZmMsMHg3ZCwweDdiLDB4MTIsMHgxNywweDlkLDB4NzgsMHg3YiwweGU2LDB4NzAsMHgwMywweDdjLDB4MDgsMHgyMiwweDkwLAorMHhmZiwweGYwLDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDU0LDB4ZmQsMHhmMCwweDgwLDB4MWIsMHg3OCwKKzB4N2MsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA4LDB4MTIsCisweDAyLDB4MGUsMHgyNSwweGUwLDB4OTAsMHhmZiwweGYzLDB4ZjAsMHg4MCwweDViLDB4NzgsMHg3YywweGU2LDB4ZmQsMHgwOCwweGU2LAorMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsMHgwNiwweDEyLDB4MDIsMHgwZSwweDU0LDB4ZmUsMHg5MCwKKzB4ZmYsMHhmMywweGYwLDB4ODAsMHgyMSwweDc4LDB4N2MsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsCisweDdmLDB4MDEsMHg5MCwweDAwLDB4MDgsMHgxMiwweDAyLDB4MGUsMHhmYSwweGViLDB4OTAsMHhmZiwweGYxLDB4ZjAsMHgxMiwweDA4LAorMHhjYSwweDQwLDB4MDMsMHg3YywweDE4LDB4MjIsMHg3OCwweDdjLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweGVkLDB4ZmUsMHhlYywKKzB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA4LDB4MTIsMHgwMiwweDBlLDB4OTAsMHhmZiwweGYxLDB4ZjAsMHgxMiwweDA4LDB4Y2EsCisweDQwLDB4MDMsMHg3YywweDE4LDB4MjIsMHg3OCwweDdkLDB4ZTYsMHgyNCwweDBhLDB4ZjYsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY2LAorMHg3OCwweDdhLDB4NzYsMHgwMCwweDc4LDB4N2IsMHhlNiwweDI0LDB4ZmYsMHhmYywweGU0LDB4MzQsMHhmZiwweGZkLDB4NzgsMHg3YSwKKzB4ZTYsMHg3ZiwweDAwLDB4ZmUsMHhlYywweGQzLDB4OWUsMHhlZiwweDY0LDB4ODAsMHhjZCwweDY0LDB4ODAsMHg5ZCwweDQwLDB4MjEsCisweDc4LDB4N2MsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZTAsMHg5MCwweGZmLDB4ZjEsMHhmMCwweDEyLDB4MDgsMHhjYSwweDQwLAorMHgwMywweDdjLDB4MTgsMHgyMiwweDc4LDB4N2EsMHgwNiwweDc4LDB4N2QsMHgwNiwweGU2LDB4MTgsMHg3MCwweDAxLDB4MDYsMHg4MCwKKzB4YzMsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDc4LDB4N2MsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZTAsCisweDkwLDB4ZmYsMHhmMSwweGYwLDB4MTIsMHgwOCwweGNhLDB4NDAsMHgwMywweDdjLDB4MTgsMHgyMiwweDdjLDB4MDAsMHgyMiwweDkwLAorMHhmZiwweGYwLDB4ZTAsMHgyMCwweGU3LDB4MTIsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDMwLDB4ZTUsMHgwOSwweDkwLDB4ZmYsMHhmMCwKKzB4ZTAsMHg0NCwweDIwLDB4ZjAsMHhjMywweDIyLDB4ODAsMHhlNywweGQzLDB4MjIsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDIwLDB4ZTMsCisweDEyLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHgzMCwweGU1LDB4MDksMHg5MCwweGZmLDB4ZjAsMHhlMCwweDQ0LDB4MjAsMHhmMCwweGMzLAorMHgyMiwweDgwLDB4ZTcsMHhkMywweDIyLDB4OGMsMHg0MiwweDhkLDB4NDEsMHg3YywweDAwLDB4ZWQsMHg1NCwweGYwLDB4ZmQsMHhlYywKKzB4NzAsMHgwMywweGVkLDB4NjQsMHgzMCwweDcwLDB4MDUsMHg3NSwweDNlLDB4MDMsMHg4MCwweDAzLDB4NzUsMHgzZSwweDA0LDB4YWMsCisweDNlLDB4MTIsMHgwZiwweDdjLDB4NzUsMHg4MywweDAwLDB4ODUsMHg4MywweDQwLDB4ZTUsMHg0MSwweDU0LDB4MGYsMHhmNSwweDNmLAorMHhlNSwweDQwLDB4NzAsMHgwNCwweGU1LDB4M2YsMHg2NCwweDAzLDB4NzAsMHgzNSwweGU1LDB4M2UsMHgyNCwweGZkLDB4NzUsMHhmMCwKKzB4MGEsMHhhNCwweDI0LDB4MGEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZkLDB4ZjUsMHg4MywweGUwLDB4MzAsMHhlNiwweDA1LDB4MTIsCisweDEwLDB4NjcsMHg4MCwweDE5LDB4ZTUsMHgzZSwweDI0LDB4OTcsMHhmOCwweGM2LDB4NTQsMHhmYiwweGY2LDB4NzgsMHhhMywweGU2LAorMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweDc0LDB4MGYsMHhmMCwweDgwLDB4NTksMHhlNSwKKzB4NDAsMHg3MCwweDA0LDB4ZTUsMHgzZiwweDY0LDB4MDQsMHg3MCwweDQ4LDB4ZTUsMHgzZSwweDI0LDB4ZmQsMHg3NSwweGYwLDB4MGEsCisweGE0LDB4MjQsMHgwYSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmQsMHhmNSwweDgzLDB4ZTAsMHgzMCwweGU1LDB4MDcsMHhhYywweDQyLAorMHhhZCwweDQxLDB4MTIsMHgxYywweDkzLDB4ZTUsMHg0MiwweDMwLDB4ZTIsMHgxNSwweDc4LDB4YTcsMHhlNiwweDMwLDB4ZTAsMHgwZiwKKzB4NzgsMHhhNywweGU2LDB4MzAsMHhlMSwweDA5LDB4ZTQsMHhmZiwweDA0LDB4ZmUsMHg3YywweDA0LDB4MTIsMHgzMSwweDlhLDB4NzgsCisweGEzLDB4ZTYsMHgyNCwweDA2LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweDc0LDB4MGYsMHhmMCwweDgwLAorMHgwNywweGU0LDB4ZmMsMHg3ZCwweGVlLDB4MTIsMHgxYywweDkzLDB4YzIsMHgwMywweDIyLDB4MTIsMHgzMCwweDg1LDB4MTIsMHgwZiwKKzB4N2MsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA2LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4OTAsCisweGZkLDB4NDAsMHhmMCwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLAorMHhlMCwweDkwLDB4ZmQsMHg0MSwweGYwLDB4YzIsMHgwMywweDdkLDB4MDIsMHg3YywweDAwLDB4MTIsMHgyNCwweGIxLDB4MTIsMHgzMSwKKzB4MDgsMHgyMiwweDEyLDB4MzAsMHg4NSwweDc4LDB4OGYsMHhlYywweGY2LDB4ZWMsMHgyNCwweDk3LDB4ZjgsMHhlNiwweDMwLDB4ZTEsCisweDA3LDB4N2MsMHgxMywweDEyLDB4MjUsMHg0YSwweDgwLDB4MGYsMHg5MCwweGZkLDB4NDEsMHhlMCwweGZkLDB4NzgsMHg4ZiwweGU2LAorMHhmYywweDEyLDB4MTMsMHhmZCwweDEyLDB4MjUsMHg0YSwweDEyLDB4MzEsMHgwOCwweDIyLDB4MTIsMHgzMCwweDg1LDB4NzgsMHg4ZiwKKzB4ZWMsMHhmNiwweDdkLDB4MDAsMHgxMiwweDBmLDB4MGIsMHgxMiwweDI1LDB4NGEsMHgxMiwweDMxLDB4MDgsMHgyMiwweDEyLDB4MzAsCisweDg1LDB4NzgsMHg4ZiwweGVjLDB4ZjYsMHhlYywweDI0LDB4OTcsMHhmOCwweGU2LDB4MzAsMHhlMiwweDA3LDB4N2MsMHgxMywweDEyLAorMHgyNSwweDRhLDB4ODAsMHgxYiwweDc4LDB4OGYsMHhlNiwweDI0LDB4OTcsMHhmOCwweGU2LDB4MjAsMHhlMSwweDA3LDB4N2MsMHgxMiwKKzB4MTIsMHgyNSwweDRhLDB4ODAsMHgwYSwweDc4LDB4OGYsMHhlNiwweGZjLDB4MTIsMHgxNCwweDIxLDB4MTIsMHgyNSwweDRhLDB4MTIsCisweDMxLDB4MDgsMHgyMiwweDEyLDB4MzAsMHg4NSwweDc4LDB4OGYsMHhlYywweGY2LDB4ZWMsMHgyNCwweDk3LDB4ZjgsMHhlNiwweDIwLAorMHhlMiwweDA3LDB4N2MsMHgxMSwweDEyLDB4MjUsMHg0YSwweDgwLDB4MGEsMHg3OCwweDhmLDB4ZTYsMHhmYywweDEyLDB4MTUsMHgyMiwKKzB4MTIsMHgyNSwweDRhLDB4MTIsMHgzMSwweDA4LDB4MjIsMHgxMiwweDMwLDB4ODUsMHg3OCwweDhmLDB4ZWMsMHhmNiwweDEyLDB4MGYsCisweDdjLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwOSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDkwLAorMHhmZCwweDQ3LDB4ZjAsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDBhLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywKKzB4ZTAsMHg5MCwweGZkLDB4NDgsMHhmMCwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDMsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCisweGY1LDB4ODMsMHhlMCwweGZjLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LAorMHg4MywweGUwLDB4ZjUsMHg1YywweDc4LDB4YTMsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwKKzB4ODMsMHhlMCwweGY1LDB4NWQsMHg4YywweDViLDB4ZTQsMHhlYywweDMzLDB4MzMsMHg1NCwweDAxLDB4NzgsMHg4ZiwweGY2LDB4NjAsCisweDA4LDB4ZTUsMHg1YywweDMwLDB4ZTEsMHgwMywweDc4LDB4OGYsMHgwNiwweDc4LDB4OGYsMHhlNiwweDkwLDB4ZmQsMHg0OSwweGYwLAorMHg3OCwweGExLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4ZmQsMHhhMywKKzB4ZTAsMHg1NCwweDBjLDB4ZmMsMHhlZCwweDU0LDB4ZTYsMHg4YywweDVmLDB4ZjUsMHg1ZSwweGU1LDB4NWIsMHgzMCwweGU1LDB4MDMsCisweDQzLDB4NWYsMHgwMSwweGU1LDB4NWMsMHgyMCwweGU1LDB4MGUsMHhlNSwweDViLDB4NTQsMHg3ZiwweDcwLDB4MDgsMHhlNSwweDViLAorMHgyMCwweGU3LDB4MDMsMHg0MywweDVmLDB4MDIsMHhlNSwweDViLDB4MzAsMHhlMywweDAzLDB4NDMsMHg1ZiwweDEwLDB4ZTUsMHg1YiwKKzB4MzAsMHhlMiwweDAzLDB4NDMsMHg1ZiwweDIwLDB4ZTUsMHg1YiwweDU0LDB4MDMsMHg2MCwweDAzLDB4NDMsMHg1ZiwweDQwLDB4ZTUsCisweDViLDB4MzAsMHhlMSwweDAzLDB4NDMsMHg1ZiwweDgwLDB4ZTUsMHg1YiwweDMwLDB4ZTQsMHgwMywweDQzLDB4NWUsMHgwMSwweGU1LAorMHg1YiwweDMwLDB4ZTYsMHgwMywweDQzLDB4NWUsMHgwOCwweGU1LDB4NWMsMHgyMCwweGU0LDB4MGUsMHhlNSwweDViLDB4NTQsMHg3ZiwKKzB4NzAsMHgwOCwweGU1LDB4NWIsMHgyMCwweGU3LDB4MDMsMHg0MywweDVlLDB4MTAsMHg1MywweDVmLDB4ZmIsMHg1MywweDVlLDB4ZjksCisweGFkLDB4NWUsMHhlNSwweDVmLDB4OTAsMHhmZCwweDQyLDB4Y2QsMHhmMCwweGEzLDB4Y2QsMHhmMCwweGU1LDB4NWQsMHgzMCwweGUzLAorMHgwZCwweGU1LDB4NWQsMHg1NCwweDMwLDB4YzQsMHg1NCwweDBmLDB4OTAsMHhmZCwweDQ1LDB4ZjAsMHg4MCwweDA1LDB4ZTQsMHg5MCwKKzB4ZmQsMHg0NSwweGYwLDB4ZTUsMHg1ZCwweDU0LDB4MDMsMHg5MCwweGZkLDB4NDQsMHhmMCwweGU1LDB4NWQsMHg1NCwweDA0LDB4YzMsCisweDEzLDB4OTAsMHhmZCwweDQ2LDB4ZjAsMHg5MCwweGZkLDB4NDQsMHhlMCwweDcwLDB4MGUsMHg3ZCwweDNkLDB4N2UsMHhmZCwweDdmLAorMHgwMSwweDc0LDB4MDEsMHg5MCwweDAwLDB4MDksMHgxMiwweDAxLDB4NDIsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA4LDB4ZjUsMHg4MiwKKzB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg3YywweDAwLDB4ZmQsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA3LDB4ZjUsCisweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg3ZiwweDAwLDB4NGMsMHhmZSwweGVmLDB4NGQsMHg5MCwweGZkLAorMHg0MCwweGYwLDB4YTMsMHhjZSwweGYwLDB4Y2UsMHhjMiwweDAzLDB4N2QsMHgwYSwweDdjLDB4MDAsMHgxMiwweDI0LDB4YjEsMHgxMiwKKzB4MzEsMHgwOCwweDIyLDB4MTIsMHgzMCwweDg1LDB4NzgsMHg4ZiwweGVjLDB4ZjYsMHg3OCwweDk0LDB4NzYsMHgwMSwweDA4LDB4NzYsCisweGZkLDB4MDgsMHg3NiwweDQwLDB4NzgsMHg5MSwweDc2LDB4MGMsMHg3OCwweDk0LDB4MTIsMHgwNCwweDY1LDB4MTIsMHgwMiwweDE0LAorMHg3OCwweDkyLDB4Y2IsMHhmNiwweGNiLDB4MDgsMHhmNiwweDdmLDB4MDAsMHhlZiwweDI0LDB4ZWIsMHg0MCwweDFmLDB4ZTQsMHhlZiwKKzB4MjUsMHhlMCwweDkwLDB4MzQsMHhiZiwweGZkLDB4OTMsMHhjZCwweDA0LDB4OTMsMHg3OCwweDkzLDB4NjYsMHg3MCwweDAzLDB4ZWQsCisweDE4LDB4NjYsMHg3MCwweDA2LDB4NzgsMHg5MSwweDc2LDB4MDAsMHg4MCwweDAzLDB4MGYsMHg4MCwweGRjLDB4NzgsMHg5MCwweGVmLAorMHhmNiwweDc4LDB4OTQsMHgxMiwweDA0LDB4NjUsMHg5MCwweDAwLDB4MDIsMHgxMiwweDAyLDB4MGUsMHg3OCwweDkyLDB4Y2IsMHhmNiwKKzB4Y2IsMHgwOCwweGY2LDB4NTQsMHgwNCwweGNiLDB4NTQsMHgwNiwweDRiLDB4NjAsMHgwNCwweDc4LDB4OTEsMHg3NiwweDBiLDB4NzgsCisweDkzLDB4ZTYsMHgzMCwweGUzLDB4MTMsMHg3OCwweDk0LDB4MTIsMHgwNCwweDY1LDB4OTAsMHgwMCwweDA1LDB4MTIsMHgwMSwweGVjLAorMHgyNCwweGZiLDB4NTAsMHgwNCwweDc4LDB4OTEsMHg3NiwweDBkLDB4NzgsMHg5MywweGU2LDB4NTQsMHhjMCwweDdkLDB4MDAsMHg2NCwKKzB4YzAsMHg0ZCwweDcwLDB4MDQsMHg3OCwweDkxLDB4NzYsMHgwYiwweDc4LDB4OTQsMHgxMiwweDA0LDB4NjUsMHg5MCwweDAwLDB4MDQsCisweDEyLDB4MDEsMHhlYywweDI0LDB4ZmMsMHg1MCwweDA0LDB4NzgsMHg5MSwweDc2LDB4MGYsMHg3OCwweDk0LDB4MTIsMHgwNCwweDY1LAorMHg5MCwweDAwLDB4MDYsMHgxMiwweDAxLDB4ZWMsMHgyNCwweGZkLDB4NTAsMHgwNCwweDc4LDB4OTEsMHg3NiwweDBlLDB4NzgsMHg5NCwKKzB4MTIsMHgwNCwweDY1LDB4OTAsMHgwMCwweDA5LDB4MTIsMHgwMSwweGVjLDB4MjQsMHhmZCwweDUwLDB4MDQsMHg3OCwweDkxLDB4NzYsCisweDBhLDB4NzgsMHg5MSwweGU2LDB4NzAsMHgyYSwweDc4LDB4OGYsMHhlNiwweGZjLDB4MTIsMHgwZiwweDdjLDB4NzgsMHg5NCwweDEyLAorMHgwNCwweDY1LDB4NzgsMHhhMSwweGU2LDB4ZjksMHg3OCwweGEwLDB4ZTYsMHhmYSwweDdiLDB4MDEsMHg3NCwweDBhLDB4NzgsMHgwMCwKKzB4MTIsMHgwMywweDNmLDB4YzIsMHgwMywweDc4LDB4OGYsMHhlNiwweGZjLDB4MTIsMHgxMSwweDIzLDB4NzgsMHg5MSwweGVjLDB4ZjYsCisweDc4LDB4OTEsMHhlNiwweGZjLDB4MTIsMHgyNSwweDRhLDB4MTIsMHgzMSwweDA4LDB4MjIsMHgxMiwweDMwLDB4ODUsMHg3OCwweDhmLAorMHhlYywweGY2LDB4MTIsMHgwZiwweDdjLDB4NzgsMHg4ZiwweGU2LDB4MjQsMHhmZCwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHgxYywKKzB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZCwweGY1LDB4ODMsMHhhYywweDgyLDB4YWQsMHg4MywweDc4LDB4YTAsMHg4NiwweDgzLDB4MDgsCisweDg2LDB4ODIsMHhlYywweGY5LDB4ZWQsMHhmYSwweDdiLDB4MGEsMHg3OCwweDAxLDB4MTIsMHgwMywweGE3LDB4YzIsMHgwMywweDc4LAorMHg4ZiwweGU2LDB4ZmMsMHgxMiwweDExLDB4MjMsMHgxMiwweDMxLDB4MDgsMHgyMiwweDhkLDB4MmIsMHg4YywweDJhLDB4ZWQsMHg2MCwKKzB4NDAsMHg3NSwweDI3LDB4MDEsMHg3NSwweDI5LDB4NDgsMHg3NSwweDI4LDB4ZmYsMHhlNSwweDJhLDB4MjQsMHhmZCwweGZjLDB4ZTQsCisweDM0LDB4ZmYsMHhmZCwweGVjLDB4N2MsMHgwMywweDI1LDB4ZTAsMHhjZCwweDMzLDB4Y2QsMHhkYywweGY5LDB4ZmMsMHhlNSwweDI5LAorMHgyYywweGY1LDB4MjksMHhlNSwweDI4LDB4M2QsMHhmNSwweDI4LDB4YWQsMHgyOSwweGFlLDB4MjgsMHhhZiwweDI3LDB4NzQsMHg4MCwKKzB4OTAsMHgwMCwweDA2LDB4MTIsMHgwMywweDE3LDB4NzQsMHg4MCwweDkwLDB4MDAsMHgwMiwweDEyLDB4MDMsMHgxNywweDEyLDB4MGYsCisweGQzLDB4ZTUsMHgyYiwweDE0LDB4NjAsMHgzYiwweDc1LDB4MjcsMHgwMSwweDc1LDB4MjksMHgwOCwweDc1LDB4MjgsMHhmZiwweGU1LAorMHgyYSwweDI0LDB4ZmQsMHhmYywweGU0LDB4MzQsMHhmZiwweGZkLDB4ZWMsMHg3YywweDAzLDB4MjUsMHhlMCwweGNkLDB4MzMsMHhjZCwKKzB4ZGMsMHhmOSwweGZjLDB4ZTUsMHgyOSwweDJjLDB4ZjUsMHgyOSwweGU1LDB4MjgsMHgzZCwweGY1LDB4MjgsMHhhZCwweDI5LDB4YWUsCisweDI4LDB4YWYsMHgyNywweGU0LDB4OTAsMHgwMCwweDA2LDB4MTIsMHgwMywweDE3LDB4ZTQsMHg5MCwweDAwLDB4MDIsMHgxMiwweDAzLAorMHgxNywweDIyLDB4MTIsMHgzMCwweDg1LDB4NzgsMHg4ZiwweGVjLDB4ZjYsMHhlYywweDI0LDB4OTcsMHhmOCwweGU2LDB4MzAsMHhlMiwKKzB4MDksMHg3OCwweDhmLDB4ZTYsMHhmYywweDEyLDB4MTUsMHgyMiwweGQyLDB4MDAsMHg3OCwweDhmLDB4ZTYsMHhmYywweDEyLDB4MGYsCisweDdjLDB4NzgsMHg5MCwweDc2LDB4MDAsMHg5MCwweGZkLDB4NDEsMHhlMCwweDMwLDB4ZTcsMHgwNCwweDc4LDB4OTAsMHg3NiwweDAxLAorMHg3OCwweDkwLDB4ZTYsMHhmZCwweDc4LDB4OGYsMHhlNiwweGZjLDB4MTIsMHgwZCwweDNhLDB4YzIsMHgwMywweDMwLDB4MDAsMHgwNywKKzB4NzgsMHg4ZiwweGU2LDB4ZmMsMHgxMiwweDE0LDB4MjEsMHg3YywweDAwLDB4MTIsMHgyNSwweDRhLDB4MTIsMHgzMSwweDA4LDB4MjIsCisweDc4LDB4YTMsMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg0NCwweDAxLAorMHhmMCwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHgzMCwKKzB4ZTAsMHgwMiwweDgwLDB4ZWQsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDBiLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsCisweDgzLDB4ZTAsMHg1NCwweGY4LDB4ZjAsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAorMHhmNSwweDgzLDB4ZTAsMHg0NCwweDgwLDB4ZjAsMHgyMiwweGMyLDB4MDMsMHg4YywweDU4LDB4MTIsMHgwZiwweDdjLDB4NzgsMHhhMCwKKzB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweDc5LDB4ZWUsMHg3YSwweDM0LDB4N2IsMHgwYSwweDc4LDB4MDEsMHgxMiwweDAzLDB4ZjUsCisweDEyLDB4MGUsMHgxMCwweGFjLDB4NTgsMHg3ZCwweDAyLDB4MTIsMHgwZCwweDNhLDB4YzIsMHgwMywweGFjLDB4NTgsMHgxMiwweDExLAorMHgyMywweDIyLDB4OGQsMHg1MywweDhlLDB4NTIsMHg4ZiwweDUxLDB4OGMsMHg1MCwweDEyLDB4MGYsMHg3YywweDc1LDB4NGYsMHgwMCwKKzB4NzgsMHhhMywweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDIwLDB4ZTQsCisweDE2LDB4ZTUsMHg0ZiwweDI0LDB4ZjYsMHg0MCwweDEwLDB4MDUsMHg0ZiwweGMyLDB4MDMsMHg3YywweDE4LDB4MTIsMHgzMiwweDQ4LAorMHhhYywweDUwLDB4MTIsMHgwZiwweDdjLDB4ODAsMHhkOSwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwKKzB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDIwLDB4ZTQsMHgwNSwweGMyLDB4MDMsMHg3YywweDAyLDB4MjIsMHg3OCwweGEzLDB4ZTYsCisweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg1NCwweDBmLDB4NjAsMHgxNiwweDc4LAorMHhhMywweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LDB4MGYsMHhmMCwKKzB4YzIsMHgwMywweDdjLDB4MDEsMHgyMiwweDc4LDB4YTIsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZTAsMHhhZCwweDUzLDB4YWUsCisweDUyLDB4YWYsMHg1MSwweDEyLDB4MDMsMHgwZiwweGMyLDB4MDMsMHg3YywweDAwLDB4MjIsMHg4ZCwweDMxLDB4OGMsMHgzMCwweDEyLAorMHgxNSwweDIyLDB4ZTUsMHgzMSwweDYwLDB4MjAsMHhlNSwweDMwLDB4YjQsMHgwMywweDBjLDB4N2MsMHgwMSwweDEyLDB4MjQsMHg3YywKKzB4N2MsMHg4MSwweDEyLDB4MjQsMHg3YywweDgwLDB4MGYsMHhlNSwweDMwLDB4YjQsMHgwNCwweDBhLDB4N2MsMHgwMiwweDEyLDB4MjQsCisweDdjLDB4N2MsMHg4MiwweDEyLDB4MjQsMHg3YywweGFjLDB4MzAsMHgxMiwweDBmLDB4N2MsMHhlNSwweDMxLDB4NjAsMHgxYSwweDc4LAorMHhhNCwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlMCwweDU0LDB4ZTcsMHhmMCwweGEzLDB4YTMsMHhhMywweGEzLDB4ZTAsMHg1NCwKKzB4ZTcsMHhmMCwweGFjLDB4MzAsMHg3ZCwweDAyLDB4MTIsMHgwZCwweDNhLDB4NzgsMHhhMCwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsCisweDc5LDB4ZjgsMHg3YSwweDM0LDB4N2IsMHgwYSwweDc4LDB4MDEsMHgxMiwweDAzLDB4ZjUsMHhjMiwweDAzLDB4ZTUsMHgzMCwweDI0LAorMHg5NywweGY4LDB4YzYsMHg1NCwweGZkLDB4ZjYsMHhhYywweDMwLDB4MTIsMHgxMSwweDIzLDB4MjIsMHg4YywweDI2LDB4MzAsMHgwMywKKzB4MDUsMHgxMiwweDMxLDB4ZTcsMHg4MCwweGY4LDB4N2MsMHgwYSwweDEyLDB4MzAsMHhmYSwweGQyLDB4MDMsMHhlNSwweDI2LDB4MjQsCisweGZkLDB4NzgsMHg5ZCwweGY2LDB4NzAsMHgwOSwweDc4LDB4YTQsMHg3NiwweGZmLDB4MDgsMHg3NiwweGUwLDB4ODAsMHgwNywweDc4LAorMHhhNCwweDc2LDB4ZmYsMHgwOCwweDc2LDB4ZTIsMHg3OCwweDlkLDB4ZTYsMHg3NSwweGYwLDB4MTAsMHhhNCwweGFkLDB4ZjAsMHhmYywKKzB4MjQsMHhhMCwweDc4LDB4YTMsMHhmNiwweGVkLDB4MzQsMHhmZiwweDE4LDB4ZjYsMHg3OCwweDlkLDB4ZTYsMHg3NSwweGYwLDB4MGEsCisweGE0LDB4MjQsMHgwOCwweGZjLDB4ZTQsMHgzNCwweGZkLDB4ZmQsMHg3OCwweGEwLDB4ZWQsMHhmNiwweDA4LDB4ZWMsMHhmNiwweDEyLAorMHgzMSwweDkzLDB4MjIsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywKKzB4ZTAsMHgzMCwweGU3LDB4MjIsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsCisweDgzLDB4ZTAsMHg1NCwweDdmLDB4ZjAsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAorMHhmNSwweDgzLDB4ZTAsMHg0NCwweDgwLDB4ZjAsMHgyMiwweDc4LDB4YTQsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZTAsMHg1NCwKKzB4N2YsMHhmMCwweGFkLDB4ODMsMHhlNSwweDgyLDB4MjQsMHgwNCwweGZjLDB4ZTQsMHgzZCwweDhjLDB4ODIsMHhmNSwweDgzLDB4ZTAsCisweDU0LDB4N2YsMHhmMCwweDc4LDB4YTMsMHhlNiwweDI0LDB4MGIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLAorMHhlMCwweDU0LDB4ZjgsMHhmMCwweDc4LDB4YTUsMHhlNiwweDI0LDB4MDEsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwKKzB4ODMsMHhlMCwweDQ0LDB4MDMsMHhmMCwweDc4LDB4YTUsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCisweGY1LDB4ODMsMHhlMCwweDQ0LDB4MDMsMHhmMCwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LAorMHgwMCwweGY1LDB4ODMsMHg3NCwweDBmLDB4ZjAsMHgyMiwweDc4LDB4YTQsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZTAsMHg1NCwKKzB4M2YsMHhmMCwweGFkLDB4ODMsMHhlNSwweDgyLDB4MjQsMHgwNCwweGZjLDB4ZTQsMHgzZCwweDhjLDB4ODIsMHhmNSwweDgzLDB4ZTAsCisweDU0LDB4M2YsMHhmMCwweDc4LDB4OWQsMHhlNiwweDI0LDB4OWUsMHhmOCwweGU2LDB4ZmMsMHg3OCwweGE1LDB4ZTYsMHgyNCwweDAxLAorMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDc4LDB4OWQsMHhlNiwweDI0LDB4OWUsMHhmOCwKKzB4ZTYsMHhmYywweDc4LDB4YTUsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsCisweGYwLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwYiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LAorMHhmYiwweDQ0LDB4MDIsMHhmNSwweDI2LDB4NzgsMHhhMSwweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKKzB4ZjUsMHg4MywweGUwLDB4MzAsMHhlNSwweDAzLDB4NDMsMHgyNiwweDAxLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsCisweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4MzAsMHhlMCwweDAzLDB4MTIsMHgwZiwweGQzLDB4ZTUsMHgyNiwweGZjLAorMHg3OCwweGEzLDB4ZTYsMHgyNCwweDBiLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3OCwKKzB4YTMsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4NzQsMHgwZiwweGYwLDB4NzgsCisweGE0LDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGUwLDB4NDQsMHg4MCwweGYwLDB4YTMsMHhhMywweGEzLDB4YTMsMHhlMCwweDQ0LAorMHg4MCwweGYwLDB4MjIsMHg4YywweDJhLDB4MTIsMHgwZiwweDdjLDB4NzgsMHhhMSwweGU2LDB4MjQsMHgwOCwweGY1LDB4ODIsMHgxOCwKKzB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4ZmMsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDBhLDB4ZjUsMHg4MiwweDE4LDB4ZTYsCisweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDc4LDB4YTEsMHhlNiwweDI0LDB4MDcsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LAorMHgwMCwweGY1LDB4ODMsMHhlMCwweGZjLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwOSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKKzB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3OCwweGEwLDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmMsCisweGVkLDB4ZmUsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA4LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVlLAorMHhmMCwweGVjLDB4ZmUsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA3LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywKKzB4ZWUsMHhmMCwweDhjLDB4MjksMHg4ZCwweDI4LDB4YzMsMHhlYywweDk0LDB4MDIsMHhlZCwweDk0LDB4MDYsMHg0MCwweDA1LDB4NzUsCisweDI3LDB4N2MsMHg4MCwweDMzLDB4ZDMsMHhlNSwweDI5LDB4OTQsMHg4MSwweGU1LDB4MjgsMHg5NCwweDAxLDB4NDAsMHgwNSwweDc1LAorMHgyNywweDNjLDB4ODAsMHgyMywweGQzLDB4ZTUsMHgyOSwweDk0LDB4YzAsMHhlNSwweDI4LDB4OTQsMHgwMCwweDQwLDB4MDUsMHg3NSwKKzB4MjcsMHgxOCwweDgwLDB4MTMsMHhkMywweGU1LDB4MjksMHg5NCwweDMwLDB4ZTUsMHgyOCwweDk0LDB4MDAsMHg0MCwweDA1LDB4NzUsCisweDI3LDB4MGMsMHg4MCwweDAzLDB4NzUsMHgyNywweDA4LDB4YWYsMHgyNywweGU0LDB4ZWYsMHg1NCwweDdjLDB4NDQsMHg4MywweGZmLAorMHg4ZiwweDI3LDB4ZTUsMHgyNywweGZjLDB4NzgsMHhhNSwweGU2LDB4MjQsMHgwMSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKKzB4ZjUsMHg4MywweGVjLDB4ZjAsMHhlNSwweDI3LDB4ZmMsMHg3OCwweGE1LDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsCisweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweGU1LDB4MjcsMHhmYywweDc4LDB4OWQsMHhlNiwweDI0LDB4OWUsMHhmOCwweGVjLAorMHhmNiwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHhmNSwKKzB4MjcsMHg3OCwweGExLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGEzLDB4ZTAsCisweDMwLDB4ZTMsMHgxNywweDUzLDB4MjcsMHhjNywweDc4LDB4YTEsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LAorMHgwMCwweGY1LDB4ODMsMHhlMCwweDkwLDB4MzQsMHhlOSwweDkzLDB4NDIsMHgyNywweDc4LDB4YTEsMHhlNiwweDI0LDB4MDIsMHhmNSwKKzB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDMwLDB4ZTcsMHgwNSwweDQzLDB4MjcsMHg0MCwweDgwLDB4MDMsCisweDUzLDB4MjcsMHhiZiwweDUzLDB4MjcsMHhmYiwweDc4LDB4YTEsMHhlNiwweDI0LDB4MDYsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LAorMHgwMCwweGY1LDB4ODMsMHhlMCwweDYwLDB4MDMsMHg0MywweDI3LDB4MDQsMHg1MywweDI3LDB4ZmMsMHg3OCwweGExLDB4ZTYsMHgyNCwKKzB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg0MiwweDI3LDB4NDMsMHgyNywweDgwLDB4ZTUsCisweDI3LDB4ZmMsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLAorMHhmMCwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHhmNSwKKzB4MjcsMHg3OCwweGExLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGEzLDB4ZTAsCisweDMwLDB4ZTEsMHgwNSwweDUzLDB4MjcsMHhkZiwweDgwLDB4MDMsMHg0MywweDI3LDB4MjAsMHg3OCwweGExLDB4ZTYsMHgyNCwweDAyLAorMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHgzMCwweGU0LDB4MDUsMHg1MywweDI3LDB4ZWYsMHg4MCwKKzB4MDMsMHg0MywweDI3LDB4MTAsMHg3OCwweGExLDB4ZTYsMHgyNCwweDA5LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsCisweDgzLDB4ZTAsMHhiNCwweDAyLDB4MDMsMHg0MywweDI3LDB4MDIsMHhlNSwweDI3LDB4ZmMsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA0LAorMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDMsMHhmNSwKKzB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweGY1LDB4MjcsMHg3OCwweGExLDB4ZTYsMHgyNCwweDA5LDB4ZjUsCisweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg3MCwweDA1LDB4NTMsMHgyNywweDdmLDB4ODAsMHgwMywweDQzLAorMHgyNywweDgwLDB4NzgsMHhhMSwweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhhMywKKzB4ZTAsMHgzMCwweGUwLDB4MDUsMHg0MywweDI3LDB4MjAsMHg4MCwweDAzLDB4NTMsMHgyNywweGRmLDB4NzgsMHhhMSwweGU2LDB4MjQsCisweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4MzAsMHhlMywweDA1LDB4NDMsMHgyNywweDQwLAorMHg4MCwweDAzLDB4NTMsMHgyNywweGJmLDB4NzgsMHhhMSwweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKKzB4ZjUsMHg4MywweGUwLDB4MzAsMHhlMCwweDA1LDB4NDMsMHgyNywweDEwLDB4ODAsMHgwMywweDUzLDB4MjcsMHhlZiwweDc4LDB4YTEsCisweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhhMywweGUwLDB4MzAsMHhlNCwweDA1LAorMHg0MywweDI3LDB4MDgsMHg4MCwweDAzLDB4NTMsMHgyNywweGY3LDB4NzgsMHhhMSwweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwKKzB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGEzLDB4ZTAsMHgzMCwweGU1LDB4MDUsMHg0MywweDI3LDB4MDQsMHg4MCwweDAzLDB4NTMsCisweDI3LDB4ZmIsMHg3OCwweGExLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGEzLAorMHhlMCwweDMwLDB4ZTYsMHgwNSwweDQzLDB4MjcsMHgwMSwweDgwLDB4MDMsMHg1MywweDI3LDB4ZmUsMHg3OCwweGExLDB4ZTYsMHgyNCwKKzB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4YTMsMHhlMCwweDMwLDB4ZTcsMHgwNSwweDQzLDB4MjcsCisweDAyLDB4ODAsMHgwMywweDUzLDB4MjcsMHhmZCwweGU1LDB4MjcsMHhmYywweDc4LDB4YTMsMHhlNiwweDI0LDB4MDMsMHhmNSwweDgyLAorMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4YzIsMHgwMywweDdjLDB4MDAsMHgyMiwweDhkLDB4MjcsMHg4YywKKzB4MjYsMHhlZCwweDU0LDB4MDMsMHgxNCwweDYwLDB4MDMsMHg3YywweDEwLDB4MjIsMHhlNSwweDI3LDB4NTQsMHg3YywweDI0LDB4ZmMsCisweDQwLDB4MDMsMHg3YywweDBiLDB4MjIsMHhlNSwweDI2LDB4MjQsMHg5NywweGY4LDB4YzYsMHg0NCwweDAyLDB4ZjYsMHg3YywweDAwLAorMHgyMiwweDhjLDB4MzAsMHgxMiwweDBmLDB4N2MsMHhlNSwweDMwLDB4MjQsMHg5NywweGY4LDB4ZTYsMHgyMCwweGUyLDB4NGYsMHhhYywKKzB4MzAsMHg3ZCwweDAyLDB4MTIsMHgwZCwweDNhLDB4ZTUsMHgzMCwweDI0LDB4ZmUsMHg0NCwweDI4LDB4ZmMsMHg3OCwweGE0LDB4ODYsCisweDgzLDB4MDgsMHg4NiwweDgyLDB4ZWMsMHhmMCwweGFmLDB4ODMsMHhlNSwweDgyLDB4MjQsMHgwNCwweGZlLDB4ZTQsMHgzZiwweGZmLAorMHhlYywweDhlLDB4ODIsMHg4ZiwweDgzLDB4ZjAsMHg3YywweDAzLDB4OGMsMHgyYywweGU1LDB4MmMsMHhmYywweDc4LDB4YTUsMHhlNiwKKzB4MjQsMHgwMSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4ZTUsMHgyYywweGZjLDB4NzgsCisweGE1LDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3NSwweDJkLAorMHgwMSwweDc1LDB4MmYsMHg0OCwweDc1LDB4MmUsMHhmZiwweGU1LDB4MzAsMHgyNCwweGZkLDB4ZmMsMHhlNCwweDM0LDB4ZmYsMHhmZCwKKzB4ZWMsMHg3YywweDAzLDB4MjUsMHhlMCwweGNkLDB4MzMsMHhjZCwweGRjLDB4ZjksMHhmYywweGU1LDB4MmYsMHgyYywweGY1LDB4MmYsCisweGU1LDB4MmUsMHgzZCwweGY1LDB4MmUsMHg3OCwweGE1LDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAorMHhmNSwweDgzLDB4ZTAsMHg1NCwweGU3LDB4ZjUsMHgyYywweGFkLDB4MmYsMHhhZSwweDJlLDB4YWYsMHgyZCwweGU0LDB4OTAsMHgwMCwKKzB4MDIsMHgxMiwweDAzLDB4MTcsMHhlNCwweDkwLDB4MDAsMHgwNiwweDEyLDB4MDMsMHgxNywweDEyLDB4MDEsMHhlNiwweDMwLDB4ZTUsCisweDAzLDB4NDMsMHgyYywweDEwLDB4ZTUsMHgyYywweGZjLDB4NzgsMHhhNSwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LAorMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHgxMiwweDEwLDB4NjcsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA2LDB4ZjUsMHg4MiwKKzB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHhjMiwweDAzLDB4ZmMsMHhlNSwweDMwLDB4MjQsMHg5NywweGY4LDB4YzYsCisweDQ0LDB4MDQsMHhmNiwweDhjLDB4MmMsMHhlNSwweDMwLDB4NTQsMHgwZiwweGM0LDB4NTQsMHhmMCwweDdlLDB4MDAsMHhmZiwweGVlLAorMHhlZiwweDQ0LDB4MDQsMHg3ZCwweDAwLDB4ZmYsMHhlYywweDRlLDB4ZmMsMHhlZCwweDRmLDB4ZmQsMHgxMiwweDFjLDB4ZmUsMHg3YywKKzB4MDAsMHgyMiwweDhjLDB4MmYsMHgxMiwweDBmLDB4N2MsMHgxMiwweDEwLDB4MDcsMHg3OCwweGE0LDB4ODYsMHg4MywweDA4LDB4ODYsCisweDgyLDB4ZTAsMHg1NCwweDA4LDB4ZjAsMHhhMywweGEzLDB4YTMsMHhhMywweGUwLDB4NTQsMHgwOCwweGYwLDB4YWMsMHgyZiwweDdkLAorMHgwMiwweDEyLDB4MGQsMHgzYSwweGMyLDB4MDMsMHhlNSwweDJmLDB4MjQsMHg5NywweGY4LDB4YzYsMHg1NCwweGZiLDB4ZjYsMHg3YywKKzB4MDAsMHgyMiwweDEyLDB4MzAsMHg4NSwweDc4LDB4OTAsMHhlYywweGY2LDB4ZWMsMHgyNCwweDk3LDB4ZjgsMHhlNiwweDMwLDB4ZTEsCisweDBhLDB4N2QsMHgwMCwweDdjLDB4MTMsMHgxMiwweDI0LDB4YjEsMHgxMiwweDMxLDB4MDgsMHg3OCwweDkwLDB4ZTYsMHgyNCwweDk3LAorMHhmOCwweGM2LDB4NDQsMHgwMSwweGY2LDB4NzgsMHg5MCwweGU2LDB4ZmMsMHgxMiwweDBmLDB4N2MsMHg3OCwweDkwLDB4ZTYsMHgyNCwKKzB4ZmQsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4MWMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZkLDB4ZjUsMHg4MywweDc4LDB4YTAsCisweGU2LDB4ZmEsMHgwOCwweGU2LDB4ZjksMHg3YiwweDBhLDB4NzgsMHgwMSwweDEyLDB4MDMsMHhhNywweDc4LDB4YTAsMHg4NiwweDgzLAorMHgwOCwweDg2LDB4ODIsMHg3OSwweGY4LDB4N2EsMHgzNCwweDdiLDB4MGEsMHg3OCwweDAxLDB4MTIsMHgwMywweGY1LDB4MTIsMHgwZiwKKzB4ZDMsMHhjMiwweDAzLDB4NzgsMHg5MCwweGU2LDB4ZmMsMHgxMiwweDExLDB4MjMsMHg3OCwweDhmLDB4ZWMsMHhmNiwweGVjLDB4NjAsCisweDBhLDB4N2QsMHgwMCwweDdjLDB4MDgsMHgxMiwweDI0LDB4YjEsMHgxMiwweDMxLDB4MDgsMHg3OCwweDkwLDB4ZTYsMHhmYywweDEyLAorMHgwZiwweDdjLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwKKzB4NDQsMHgxMCwweDU0LDB4ZGYsMHhmYywweDc4LDB4YTMsMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCisweGY1LDB4ODMsMHhlYywweGYwLDB4NzgsMHg4ZiwweGVjLDB4ZjYsMHhjMiwweDAzLDB4N2MsMHhjOCwweDEyLDB4MzIsMHg0OCwweDc4LAorMHg5MCwweGU2LDB4ZmMsMHgxMiwweDBmLDB4N2MsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwKKzB4MDAsMHhmNSwweDgzLDB4ZTAsMHg1NCwweGVmLDB4ZjAsMHhjMiwweDAzLDB4N2MsMHhjOCwweDEyLDB4MzIsMHg0OCwweDc4LDB4OTAsCisweGU2LDB4ZmMsMHgxMiwweDBmLDB4N2MsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAorMHhmNSwweDgzLDB4ZTAsMHg0NCwweDEwLDB4ZjAsMHhjMiwweDAzLDB4N2MsMHhjOCwweDEyLDB4MzIsMHg0OCwweDc4LDB4OTAsMHhlNiwKKzB4ZmMsMHgxMiwweDBmLDB4N2MsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsCisweDgzLDB4ZTAsMHg0NCwweDIwLDB4ZjAsMHhjMiwweDAzLDB4N2MsMHhmMCwweDEyLDB4MzIsMHg0OCwweDc4LDB4OTAsMHhlNiwweGZjLAorMHgxMiwweDBmLDB4N2MsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywKKzB4ZTAsMHgzMCwweGU0LDB4MTUsMHhjMiwweDAzLDB4NzgsMHg5MCwweGU2LDB4NDQsMHgxMCwweDdmLDB4MDAsMHhmZSwweDdjLDB4MDcsCisweDEyLDB4MzEsMHg5YSwweDEyLDB4MzEsMHgwOCwweDAyLDB4MTcsMHg0OSwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLAorMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LDB4Y2YsMHhmMCwweGMyLDB4MDMsMHg3YywweGM4LDB4MTIsMHgzMiwKKzB4NDgsMHg3OCwweDkwLDB4ZTYsMHhmYywweDEyLDB4MGYsMHg3YywweDc4LDB4YTMsMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsCisweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDQ0LDB4MzAsMHhmMCwweGMyLDB4MDMsMHg3YywweGYwLDB4MTIsMHgzMiwweDQ4LAorMHg3OCwweDkwLDB4ZTYsMHhmYywweDEyLDB4MGYsMHg3YywweDc4LDB4YTMsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwKKzB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDMwLDB4ZTQsMHgxNCwweGMyLDB4MDMsMHg3OCwweDkwLDB4ZTYsMHg0NCwweDEwLDB4N2YsCisweDAwLDB4ZmUsMHg3YywweDA3LDB4MTIsMHgzMSwweDlhLDB4MTIsMHgzMSwweDA4LDB4ODAsMHg1ZCwweDc4LDB4YTMsMHhlNiwweDI0LAorMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LDB4ZWYsMHhmMCwweDc4LDB4YTMsMHhlNiwKKzB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LDB4ZGYsMHhmMCwweDc4LDB4OTAsCisweGU2LDB4MjQsMHhmZCwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHgxYywweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmQsMHhmNSwweDgzLAorMHhhYywweDgyLDB4YWQsMHg4MywweDc4LDB4YTAsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZWMsMHhmOSwweGVkLDB4ZmEsMHg3YiwKKzB4MGEsMHg3OCwweDAxLDB4MTIsMHgwMywweGE3LDB4YzIsMHgwMywweDc4LDB4OTAsMHhlNiwweGZjLDB4MTIsMHgxMSwweDIzLDB4N2QsCisweDAwLDB4N2MsMHgwYiwweDEyLDB4MjQsMHhiMSwweDEyLDB4MzEsMHgwOCwweDIyLDB4MTIsMHgzMCwweDg1LDB4OTAsMHhmZiwweDkxLAorMHhlMCwweDkwLDB4ZmQsMHg0MSwweGYwLDB4N2QsMHgwMiwweDdjLDB4MDAsMHgxMiwweDI0LDB4YjEsMHgxMiwweDMxLDB4MDgsMHgyMiwKKzB4MTIsMHgzMCwweDg1LDB4OTAsMHhmZCwweDQwLDB4ZTAsMHhmNCwweGZjLDB4OTAsMHhmZiwweDkxLDB4ZTAsMHg1YywweGY1LDB4MzMsCisweDkwLDB4ZmQsMHg0MSwweGUwLDB4ZmMsMHg5MCwweGZkLDB4NDAsMHhlMCwweDVjLDB4NDIsMHgzMywweGU1LDB4MzMsMHg5MCwweGZmLAorMHg5MSwweGYwLDB4N2MsMHgwMCwweDEyLDB4MjUsMHg0YSwweDEyLDB4MzEsMHgwOCwweDIyLDB4NzQsMHgzYywweDkwLDB4ZmIsMHhlOCwKKzB4ZjAsMHg3NCwweDNlLDB4OTAsMHhmYiwweGU4LDB4ZjAsMHhlNCwweDkwLDB4ZmQsMHgzMCwweGYwLDB4MjIsMHg4ZCwweDM1LDB4OGMsCisweDM0LDB4ZWMsMHhiNCwweDAxLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDAyLDB4ODAsMHgyOCwweGI0LDB4MDIsMHgwMiwweDgwLAorMHgwMywweGQzLDB4NDAsMHgwOCwweGE4LDB4MzUsMHhjNiwweDI1LDB4ZTAsMHhmNiwweDgwLDB4MTgsMHhiNCwweDA0LDB4MDIsMHg4MCwKKzB4MDMsMHhkMywweDQwLDB4MGEsMHhhOCwweDM1LDB4YzYsMHgyNSwweGUwLDB4MjUsMHhlMCwweGY2LDB4ODAsMHgwNiwweGE4LDB4MzUsCisweDc2LDB4MDAsMHg4MCwweDAwLDB4MjIsMHg4YywweDNjLDB4OGQsMHgzYiwweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDc1LAorMHg2MCwweDA2LDB4NzUsMHg2MSwweDAwLDB4OTAsMHhmZCwweDMxLDB4MTIsMHgwNCwweDZlLDB4MTIsMHgwMSwweGU2LDB4YjQsMHg4MCwKKzB4MDIsMHg4MCwweDA2LDB4ZDMsMHg1MCwweDAzLDB4MDIsMHgxOCwweDllLDB4OTAsMHhmZCwweDMxLDB4MTIsMHgwNCwweDgwLDB4OTAsCisweDAwLDB4MDMsMHgxMiwweDAxLDB4ZWMsMHg1NCwweGYwLDB4YjQsMHgzMCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHg1ZiwweDkwLAorMHhmZCwweDMxLDB4MTIsMHgwNCwweDgwLDB4OTAsMHgwMCwweDA4LDB4MTIsMHgwMiwweDBlLDB4ZmEsMHhmZCwweGViLDB4ZmUsMHg3ZiwKKzB4MDEsMHg5MCwweGZkLDB4MzQsMHgxMiwweDA0LDB4NmUsMHhlZSwweGNkLDB4OTAsMHgzNSwweDAyLDB4ZmMsMHhlNCwweDkzLDB4ZmYsCisweDc0LDB4MDEsMHg5MywweGZlLDB4ZjksMHhlZiwweGZhLDB4N2IsMHgwMSwweGVhLDB4ZmYsMHhlOSwweGZlLDB4ZWMsMHhjMywweDllLAorMHhlZCwweDlmLDB4NDAsMHgyNSwweDkwLDB4MzUsMHgwNCwweGU0LDB4OTMsMHhmZCwweDc0LDB4MDEsMHg5MywweGZjLDB4ZWQsMHhmZSwKKzB4ZWMsMHhmZCwweDdmLDB4MDEsMHhlZSwweGNkLDB4ZmMsMHg5MCwweGZkLDB4MzYsMHhlMCwweGQzLDB4OWMsMHg5MCwweGZkLDB4MzUsCisweGUwLDB4OWQsMHg1MCwweDA1LDB4NzUsMHg2MCwweDgwLDB4ODAsMHgzMywweDEyLDB4MTksMHhiYywweDgwLDB4MmUsMHhiNCwweDYwLAorMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MGIsMHhhYywweDNjLDB4YWQsMHgzYiwweDEyLDB4MDcsMHg4MiwweDhjLDB4NjAsMHg4MCwKKzB4MWIsMHhiNCwweDEwLDB4MDMsMHhiMywweDQwLDB4MTAsMHhjMywweGI0LDB4MjAsMHgwMywweGIzLDB4NDAsMHgwOSwweGMzLDB4YjQsCisweDQwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDAwLDB4NzUsMHg2MCwweDgxLDB4ODAsMHgwMCwweDgwLDB4NzUsMHhiNCwweDgxLAorMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4NmIsMHg5MCwweGZkLDB4MzEsMHgxMiwweDA0LDB4ODAsMHg5MCwweDAwLDB4MDMsMHgxMiwKKzB4MDEsMHhlYywweDU0LDB4ZjAsMHhiNCwweDMwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDFkLDB4OTAsMHhmZCwweDMxLDB4MTIsCisweDA0LDB4ODAsMHg5MCwweDAwLDB4MDgsMHgxMiwweDAyLDB4MGUsMHhmYSwweGZkLDB4ZWIsMHhmZSwweDdmLDB4MDEsMHg5MCwweGZkLAorMHgzNywweDEyLDB4MDQsMHg2ZSwweDEyLDB4MTksMHgyNiwweDgwLDB4MzYsMHhiNCwweDYwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwKKzB4MTMsMHg3NSwweDNhLDB4NjEsMHhlNCwweGY1LDB4MzksMHhmNSwweDM4LDB4YWMsMHgzYywweGFkLDB4M2IsMHgxMiwweDA1LDB4ZGUsCisweDhjLDB4NjAsMHg4MCwweDFiLDB4YjQsMHgxMCwweDAzLDB4YjMsMHg0MCwweDEwLDB4YzMsMHhiNCwweDIwLDB4MDMsMHhiMywweDQwLAorMHgwOSwweGMzLDB4YjQsMHg0MCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwMCwweDc1LDB4NjAsMHg4MSwweDgwLDB4MDAsMHg4MCwKKzB4MDIsMHg4MCwweDAwLDB4ZTUsMHg2MCwweGZjLDB4OTAsMHhmZCwweDMxLDB4MTIsMHgwNCwweDgwLDB4ZWMsMHg5MCwweDAwLDB4MDIsCisweDEyLDB4MDMsMHgxNywweGFjLDB4NjEsMHgyMiwweDkwLDB4ZmQsMHgzMSwweDEyLDB4MDQsMHg4MCwweDkwLDB4MDAsMHgwNCwweDEyLAorMHgwMSwweGVjLDB4NjAsMHgwNCwweDc0LDB4MDEsMHg4MCwweDAxLDB4ZTQsMHhhMiwweGUwLDB4OTIsMHgwMSwweDkwLDB4ZmQsMHgzMSwKKzB4MTIsMHgwNCwweDgwLDB4ZWQsMHgyNCwweDAzLDB4ZmQsMHg1MCwweDAxLDB4MGUsMHg5MCwweGZkLDB4MzQsMHgxMiwweDA0LDB4NmUsCisweDkwLDB4ZmQsMHgzMSwweDEyLDB4MDQsMHg4MCwweDkwLDB4MDAsMHgwNSwweDEyLDB4MDEsMHhlYywweGY1LDB4NjEsMHg5MCwweDAwLAorMHgwNCwweDEyLDB4MDEsMHhlYywweDU0LDB4MGYsMHhmYywweDdkLDB4NjEsMHgxMiwweDE3LDB4OWQsMHhlNSwweDYxLDB4NzAsMHgwNCwKKzB4NzUsMHg2MCwweDA4LDB4MjIsMHg3NSwweDYwLDB4MDAsMHg3OCwweDdlLDB4NzYsMHgwMCwweDc4LDB4N2UsMHhlNiwweGMzLDB4OTUsCisweDYxLDB4NTAsMHgzOCwweDkwLDB4ZmQsMHgzNywweDEyLDB4MDQsMHg4MCwweDEyLDB4MDEsMHhlNiwweGZjLDB4OTAsMHhmZCwweDM0LAorMHgxMiwweDA0LDB4ODAsMHhlYywweDEyLDB4MDMsMHgwZiwweDMwLDB4MDEsMHgwZSwweDkwLDB4ZmQsMHgzOSwweGUwLDB4MDQsMHhmMCwKKzB4OTAsMHhmZCwweDM4LDB4NzAsMHgwMywweGUwLDB4MDQsMHhmMCwweDc4LDB4N2UsMHgwNiwweDkwLDB4ZmQsMHgzNiwweGUwLDB4MDQsCisweGYwLDB4OTAsMHhmZCwweDM1LDB4NzAsMHgwMywweGUwLDB4MDQsMHhmMCwweDgwLDB4YzAsMHgyMiwweDkwLDB4ZmQsMHgzMiwweGUwLAorMHhmZCwweGEzLDB4ZTAsMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweGVkLDB4MjQsMHgwYSwweGZkLDB4NTAsMHgwMSwKKzB4MGUsMHg5MCwweGZkLDB4M2EsMHgxMiwweDA0LDB4NmUsMHg5MCwweGZkLDB4MzEsMHgxMiwweDA0LDB4ODAsMHg5MCwweDAwLDB4MDQsCisweDEyLDB4MDEsMHhlYywweDU0LDB4MGYsMHhiNCwweDAxLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDE3LDB4OTAsMHhmZCwweDNhLAorMHgxMiwweDA0LDB4ODAsMHgwZCwweGVkLDB4NzAsMHgwMSwweDBlLDB4OTAsMHhmZCwweDM3LDB4MTIsMHgwNCwweDZlLDB4NzgsMHg4MiwKKzB4NzYsMHgwMSwweDgwLDB4NGUsMHhiNCwweDAyLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDE5LDB4OTAsMHhmZCwweDNhLDB4MTIsCisweDA0LDB4ODAsMHhlZCwweDI0LDB4MDIsMHhmZCwweDUwLDB4MDEsMHgwZSwweDkwLDB4ZmQsMHgzNywweDEyLDB4MDQsMHg2ZSwweDc4LAorMHg4MiwweDc2LDB4MDIsMHg4MCwweDJkLDB4YjQsMHgwNCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgxOSwweDkwLDB4ZmQsMHgzYSwKKzB4MTIsMHgwNCwweDgwLDB4ZWQsMHgyNCwweDA0LDB4ZmQsMHg1MCwweDAxLDB4MGUsMHg5MCwweGZkLDB4MzcsMHgxMiwweDA0LDB4NmUsCisweDc4LDB4ODIsMHg3NiwweDA0LDB4ODAsMHgwYywweGI0LDB4MDAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MDAsMHg3NSwweDYwLAorMHgwOCwweDIyLDB4OTAsMHhmZCwweDMxLDB4MTIsMHgwNCwweDgwLDB4OTAsMHgwMCwweDA1LDB4MTIsMHgwMSwweGVjLDB4ZjUsMHg2MSwKKzB4NzgsMHg3ZiwweDc2LDB4MDAsMHg3OCwweDdmLDB4ZTYsMHhjMywweDk1LDB4NjEsMHg0MCwweDAzLDB4MDIsMHgxYiwweDI0LDB4NzgsCisweDgwLDB4NzYsMHgwMCwweDc4LDB4ODAsMHhlNiwweGMzLDB4NzgsMHg4MiwweDk2LDB4NTAsMHg3NiwweDkwLDB4ZmQsMHgzNCwweDEyLAorMHgwNCwweDgwLDB4MTIsMHgwMSwweGU2LDB4ZmMsMHg5MCwweGZkLDB4M2EsMHgxMiwweDA0LDB4ODksMHgxMiwweDAxLDB4ZTAsMHhmNCwKKzB4NWMsMHhmYywweDEyLDB4MDEsMHhlMCwweGY4LDB4OTAsMHhmZCwweDM3LDB4MTIsMHgwNCwweDgwLDB4ZTgsMHhjMCwweGUwLDB4MTIsCisweDAxLDB4ZTYsMHhjOCwweGQwLDB4ZTAsMHhjOCwweDU4LDB4NGMsMHhmYywweDkwLDB4ZmQsMHgzNCwweDEyLDB4MDQsMHg4MCwweGVjLAorMHgxMiwweDAzLDB4MGYsMHg3OCwweDgxLDB4ZWMsMHhmNiwweDkwLDB4ZmQsMHgzOSwweGUwLDB4MDQsMHhmMCwweDkwLDB4ZmQsMHgzOCwKKzB4NzAsMHgwMywweGUwLDB4MDQsMHhmMCwweDA5LDB4ZTksMHg3MCwweDAxLDB4MGEsMHg5MCwweGZkLDB4M2EsMHgxMiwweDA0LDB4NzcsCisweDkwLDB4ZmQsMHgzMSwweDEyLDB4MDQsMHg4MCwweDkwLDB4MDAsMHgwNCwweDEyLDB4MDEsMHhlYywweDMwLDB4ZTQsMHgwZSwweDkwLAorMHhmZCwweDM2LDB4ZTAsMHgwNCwweGYwLDB4OTAsMHhmZCwweDM1LDB4NzAsMHgwMywweGUwLDB4MDQsMHhmMCwweDc4LDB4ODAsMHgwNiwKKzB4ODAsMHg4MSwweDc4LDB4ODIsMHhlNiwweGZkLDB4ZTQsMHhmZSwweGZmLDB4ZWUsMHhjZCwweGZjLDB4OTAsMHhmZCwweDM5LDB4ZTAsCisweDJjLDB4ZjAsMHg5MCwweGZkLDB4MzgsMHhlMCwweDNkLDB4ZjAsMHg3OCwweDgyLDB4ZTYsMHhmZCwweGU0LDB4ZmUsMHhmZiwweGVlLAorMHhjZCwweGZjLDB4OTAsMHhmZCwweDNjLDB4ZTAsMHgyYywweGYwLDB4OTAsMHhmZCwweDNiLDB4ZTAsMHgzZCwweGYwLDB4NzgsMHg3ZiwKKzB4MDYsMHgwMiwweDFhLDB4NjQsMHg3NSwweDYwLDB4MDAsMHgyMiwweGU1LDB4M2QsMHgwNSwweDNkLDB4MDQsMHg3MCwweDAyLDB4YjIsCisweGIwLDB4MjIsMHhjMCwweGUwLDB4YzAsMHhmMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHhkMCwweGU4LDB4YzAsMHhlMCwweGU5LAorMHhjMCwweGUwLDB4ZWEsMHhjMCwweGUwLDB4ZWIsMHhjMCwweGUwLDB4ZWMsMHhjMCwweGUwLDB4ZWQsMHhjMCwweGUwLDB4ZWUsMHhjMCwKKzB4ZTAsMHhlZiwweGMwLDB4ZTAsMHg5MCwweGZmLDB4OTIsMHhlMCwweDEyLDB4MDEsMHhiNywweDFiLDB4ODAsMHgzMCwweDFiLDB4ODAsCisweDMyLDB4MWIsMHg4ZiwweDM4LDB4MWIsMHhhMSwweDNhLDB4MWIsMHhiMywweDNlLDB4MWIsMHhjYiwweDQ0LDB4MWIsMHhiZiwweDQ2LAorMHgxYiwweGQ3LDB4NTAsMHgxYywweDE5LDB4NTIsMHgxYiwweGY4LDB4NTQsMHgxYywweDNhLDB4NTYsMHgwMCwweDAwLDB4MWMsMHg1YiwKKzB4OTAsMHhmZiwweDkyLDB4ZTAsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDAxLDB4MTIsMHgzMSwweDlhLDB4MDIsMHgxYywweDZiLDB4ZTQsCisweGZmLDB4MDQsMHhmZSwweDdjLDB4MDMsMHgxMiwweDMxLDB4OWEsMHg3NCwweDIwLDB4OTAsMHhmZiwweGZlLDB4ZjAsMHgwMiwweDFjLAorMHg2YiwweGU0LDB4ZmYsMHgwNCwweGZlLDB4N2MsMHgwMiwweDEyLDB4MzEsMHg5YSwweDc0LDB4NDAsMHg5MCwweGZmLDB4ZmUsMHhmMCwKKzB4MDIsMHgxYywweDZiLDB4ZTQsMHhmZiwweDA0LDB4ZmUsMHg3YywweDA0LDB4MTIsMHgzMSwweDlhLDB4MDIsMHgxYywweDZiLDB4ZTQsCisweGZmLDB4MDQsMHhmZSwweDdjLDB4MDUsMHgxMiwweDMxLDB4OWEsMHgwMiwweDFjLDB4NmIsMHhlNCwweGZmLDB4MDQsMHhmZSwweDdjLAorMHgwNiwweDEyLDB4MzEsMHg5YSwweDAyLDB4MWMsMHg2YiwweDkwLDB4ZmYsMHhhNSwweGUwLDB4N2QsMHgwMCwweDkwLDB4ZmQsMHgwMCwKKzB4Y2QsMHhmMCwweGEzLDB4Y2QsMHhmMCwweDkwLDB4ZmQsMHgwMSwweGUwLDB4ZmMsMHhmNSwweDgzLDB4OTAsMHhmZCwweDAwLDB4ZTAsCisweDQ0LDB4MzMsMHhmZCwweDEyLDB4MWMsMHhmZSwweDgwLDB4NzMsMHg5MCwweGZmLDB4YjUsMHhlMCwweDdkLDB4MDAsMHg5MCwweGZkLAorMHgwMiwweGNkLDB4ZjAsMHhhMywweGNkLDB4ZjAsMHg5MCwweGZkLDB4MDMsMHhlMCwweGZjLDB4ZjUsMHg4MywweDkwLDB4ZmQsMHgwMiwKKzB4ZTAsMHg0NCwweDQzLDB4ZmQsMHgxMiwweDFjLDB4ZmUsMHg4MCwweDUyLDB4OTAsMHhmZiwweGE2LDB4ZTAsMHg3ZCwweDAwLDB4OTAsCisweGZkLDB4MDQsMHhjZCwweGYwLDB4YTMsMHhjZCwweGYwLDB4OTAsMHhmZCwweDA1LDB4ZTAsMHhmYywweGY1LDB4ODMsMHg5MCwweGZkLAorMHgwNCwweGUwLDB4NDQsMHgzNCwweGZkLDB4MTIsMHgxYywweGZlLDB4ODAsMHgzMSwweDkwLDB4ZmYsMHhiNiwweGUwLDB4N2QsMHgwMCwKKzB4OTAsMHhmZCwweDA2LDB4Y2QsMHhmMCwweGEzLDB4Y2QsMHhmMCwweDkwLDB4ZmQsMHgwNywweGUwLDB4ZmMsMHhmNSwweDgzLDB4OTAsCisweGZkLDB4MDYsMHhlMCwweDQ0LDB4NDQsMHhmZCwweDEyLDB4MWMsMHhmZSwweDgwLDB4MTAsMHg5MCwweGZmLDB4OTIsMHhlMCwweDdkLAorMHgwMCwweGZjLDB4ZWQsMHg0NCwweGFhLDB4ZmQsMHgxMiwweDFjLDB4ZmUsMHg4MCwweDAwLDB4ZTQsMHg5MCwweGZmLDB4OTIsMHhmMCwKKzB4ZDAsMHhlMCwweGZmLDB4ZDAsMHhlMCwweGZlLDB4ZDAsMHhlMCwweGZkLDB4ZDAsMHhlMCwweGZjLDB4ZDAsMHhlMCwweGZiLDB4ZDAsCisweGUwLDB4ZmEsMHhkMCwweGUwLDB4ZjksMHhkMCwweGUwLDB4ZjgsMHhkMCwweGQwLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGYwLAorMHhkMCwweGUwLDB4MzIsMHgwNSwweDgxLDB4MDUsMHg4MSwweDA1LDB4ODEsMHgwNSwweDgxLDB4YTgsMHg4MSwweDE4LDB4MTgsMHgxOCwKKzB4ZWQsMHhmNiwweDA4LDB4ZWMsMHhmNiwweDkwLDB4ZmYsMHg2YSwweGUwLDB4MjAsMHhlNywweDAyLDB4ODAsMHhmNywweDkwLDB4ZmYsCisweDY5LDB4ZTAsMHg3ZCwweDAwLDB4YTgsMHg4MSwweDE4LDB4Y2QsMHhmNiwweGNkLDB4MDgsMHhmNiwweDdkLDB4MDMsMHhhOCwweDgxLAorMHhlNiwweDE4LDB4ZmMsMHhlNiwweGNjLDB4MjUsMHhlMCwweGNjLDB4MzMsMHhjYywweGRkLDB4ZjksMHhjYywweGY2LDB4Y2MsMHgwOCwKKzB4ZjYsMHhhOCwweDgxLDB4MTgsMHhlNiwweDQ0LDB4ZjgsMHhmNiwweGE4LDB4ODEsMHgxOCwweDE4LDB4MTgsMHhlNiwweGZkLDB4MDgsCisweGU2LDB4ZmMsMHhhOCwweDgxLDB4MTgsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZWQsMHhmMCwweGEzLDB4ZWMsMHhmMCwweDc0LAorMHgwMiwweDkwLDB4ZmYsMHg2YSwweGYwLDB4MTUsMHg4MSwweDE1LDB4ODEsMHgxNSwweDgxLDB4MTUsMHg4MSwweDIyLDB4ZTUsMHg4MSwKKzB4MjQsMHgwNSwweGY1LDB4ODEsMHhlNCwweGE4LDB4ODEsMHgxOCwweGY2LDB4YTgsMHg4MSwweDE4LDB4MTgsMHgxOCwweDE4LDB4ZWQsCisweGY2LDB4MDgsMHhlYywweGY2LDB4OTAsMHhmYiwweGZkLDB4ZTAsMHgyNCwweGY4LDB4NTAsMHgwMywweDAyLDB4MWUsMHgxZiwweGU0LAorMHhhOCwweDgxLDB4MTgsMHgxOCwweGY2LDB4YTgsMHg4MSwweDE4LDB4ZTYsMHhmZSwweGE4LDB4ODEsMHgxOCwweDE4LDB4MTgsMHgxOCwKKzB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweDdmLDB4MDAsMHhlZiwweDI0LDB4ZjgsMHg0MCwweDRkLDB4ZTQsMHhlZiwweDI1LDB4ZTAsCisweDI0LDB4ODUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZkLDB4ZjUsMHg4MywweGUwLDB4ZmIsMHhhMywweGUwLDB4NmMsMHg3MCwweDAzLAorMHhmYSwweGViLDB4NmQsMHg3MCwweDA5LDB4NzQsMHgwMSwweGE4LDB4ODEsMHgxOCwweDE4LDB4ZjYsMHg4MCwweDJiLDB4ZTQsMHhlZiwKKzB4MjUsMHhlMCwweDI0LDB4ODUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZkLDB4ZjUsMHg4MywweDdhLDB4MDAsMHhlMCwweDU0LDB4ZjAsCisweGNjLDB4ZjgsMHhjYywweGNkLDB4ZjksMHhjZCwweGZiLDB4NzgsMHgwMCwweGU5LDB4NTQsMHhmMCwweGY5LDB4ZWEsMHg2OCwweDcwLAorMHgwMiwweGViLDB4NjksMHg3MCwweDAxLDB4MGUsMHgwZiwweDgwLDB4YWUsMHhhOCwweDgxLDB4MTgsMHhlZSwweGY2LDB4YTgsMHg4MSwKKzB4MTgsMHgxOCwweDE4LDB4MTgsMHhlZCwweGY2LDB4MDgsMHhlYywweGY2LDB4YTgsMHg4MSwweGVmLDB4ZjYsMHhhOCwweDgxLDB4MTgsCisweDE4LDB4ZTYsMHg3MCwweDc5LDB4YTgsMHg4MSwweDE4LDB4ZTYsMHgyNCwweGY3LDB4NDAsMHg3MSwweGE4LDB4ODEsMHgxOCwweDE4LAorMHgxOCwweDE4LDB4ZTYsMHg1NCwweDBmLDB4YTgsMHg4MSwweGY2LDB4NjQsMHgwNCwweDYwLDB4MTcsMHhhOCwweDgxLDB4ZTYsMHg2NCwKKzB4MDMsMHg2MCwweDEwLDB4YTgsMHg4MSwweDE4LDB4MTgsMHgxOCwweDE4LDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweDEyLDB4MWMsCisweDkzLDB4ODAsMHg0YSwweDdjLDB4MGEsMHgxMiwweDMwLDB4ZmEsMHhhOCwweDgxLDB4MTgsMHgxOCwweDE4LDB4MTgsMHhlNiwweGZkLAorMHgwOCwweGU2LDB4ZmMsMHg5MCwweGZiLDB4ZmMsMHhlMCwweDI1LDB4ZTAsMHgyNCwweDg1LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZCwKKzB4ZjUsMHg4MywweGVkLDB4ZjAsMHhhMywweGVjLDB4ZjAsMHg5MCwweGZiLDB4ZmMsMHhlMCwweGZmLDB4ZTQsMHhlZiwweDA0LDB4NTQsCisweDA3LDB4ZmYsMHg5MCwweGZiLDB4ZmMsMHhmMCwweDkwLDB4ZmIsMHhmZCwweGUwLDB4MDQsMHhmMCwweDEyLDB4MzEsMHg5MywweDkwLAorMHhmYiwweGZlLDB4ZTAsMHg3MCwweDA4LDB4ZTQsMHhmZSwweGZmLDB4N2MsMHgwZiwweDEyLDB4MzEsMHg5YSwweDgwLDB4MjcsMHg5MCwKKzB4ZmIsMHhmZiwweGUwLDB4MDQsMHhmMCwweDU0LDB4M2YsMHg3MCwweDFkLDB4OTAsMHhmYiwweGZmLDB4ZTAsMHg0NCwweGZlLDB4N2QsCisweDAwLDB4ZmMsMHg5MCwweGZiLDB4ZmMsMHhlMCwweDI1LDB4ZTAsMHgyNCwweDg1LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZCwweGY1LAorMHg4MywweGVkLDB4ZjAsMHhhMywweGVjLDB4ZjAsMHhlNSwweDgxLDB4MjQsMHhmYiwweGY1LDB4ODEsMHgyMiwweDc4LDB4ODUsMHg3NiwKKzB4MDAsMHg3OCwweDg2LDB4NzYsMHgwMCwweDc0LDB4MDEsMHg5MCwweGZiLDB4ZmUsMHhmMCwweDEyLDB4MzAsMHg4NSwweDkwLDB4ZmIsCisweGZkLDB4ZTAsMHg2MCwweDU5LDB4N2MsMHgwYSwweDEyLDB4MzAsMHhmYSwweDkwLDB4ZmIsMHhmYiwweGUwLDB4MjUsMHhlMCwweDI0LAorMHg4NSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmQsMHhmNSwweDgzLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmYywweDkwLDB4ZmIsMHhmYiwKKzB4ZTAsMHgyNSwweGUwLDB4MjQsMHg4NSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmQsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGEzLDB4ZjAsCisweDkwLDB4ZmIsMHhmYiwweGUwLDB4ZmYsMHhlNCwweGVmLDB4MDQsMHg1NCwweDA3LDB4ZmYsMHg5MCwweGZiLDB4ZmIsMHhmMCwweDkwLAorMHhmYiwweGZkLDB4ZTAsMHgxNCwweGYwLDB4NzgsMHg4MywweGVkLDB4ZjYsMHgwOCwweGVjLDB4ZjYsMHgxMiwweDMxLDB4OTMsMHhiMiwKKzB4YjMsMHg3OCwweDgzLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweDEyLDB4MDgsMHhlNSwweDgwLDB4YTEsMHgxMiwweDMxLDB4ZTcsCisweDc4LDB4ODUsMHgwNiwweGI2LDB4MDAsMHgxMSwweDc4LDB4ODUsMHg3NiwweDAwLDB4NzgsMHg4NiwweGU2LDB4ZjQsMHgwNCwweDA0LAorMHhhMiwweGUwLDB4OTIsMHhiNCwweDc4LDB4ODYsMHhmNiwweDgwLDB4ODUsMHhlNCwweDkwLDB4ZmIsMHhmZSwweGYwLDB4OTAsMHhmYiwKKzB4ZmQsMHhlMCwweDdkLDB4MDAsMHhmYywweGVkLDB4NDQsMHhjZiwweGZkLDB4MTIsMHgxYywweDkzLDB4MTIsMHgzMSwweDA4LDB4MjIsCisweDEyLDB4MzAsMHg4NSwweGU1LDB4NmEsMHg2NCwweDQ5LDB4NDUsMHg2OSwweDYwLDB4MTUsMHg5MCwweGZmLDB4ODMsMHhlMCwweDU0LAorMHgwZiwweDdkLDB4MDAsMHhkMywweDk1LDB4NmEsMHhlZCwweDk1LDB4NjksMHg1MCwweDA1LDB4MTIsMHgyZSwweGNlLDB4ODAsMHgwMywKKzB4MTIsMHgyZiwweDllLDB4MTIsMHgzMSwweDA4LDB4MjIsMHgxMiwweDMwLDB4ODUsMHhlNSwweDZhLDB4NjQsMHg0OSwweDQ1LDB4NjksCisweDYwLDB4MDUsMHgxMiwweDJmLDB4ZDgsMHg4MCwweDBlLDB4OTAsMHhmZiwweDgwLDB4ZTAsMHg0NCwweDA4LDB4ZjAsMHg5MCwweGZmLAorMHg4MywweGUwLDB4NTQsMHg3ZiwweGYwLDB4MTIsMHgzMSwweDA4LDB4MjIsMHgxMiwweDMwLDB4ODUsMHg4YywweDU0LDB4ZWMsMHg1NCwKKzB4ZjAsMHhiNCwweDEwLDB4MTUsMHg3NSwweDY0LDB4M2QsMHg3NSwweDYzLDB4ZmQsMHg3NSwweDYyLDB4MDEsMHhlNSwweDY0LDB4MjQsCisweDAzLDB4ZjUsMHg2NCwweGU1LDB4NjMsMHgzNCwweDAwLDB4ZjUsMHg2MywweGU0LDB4ZjUsMHg1NywweGY1LDB4NTYsMHhlNSwweDU2LAorMHhjMywweDk0LDB4MDEsMHg1MCwweDI3LDB4ZTUsMHg1NCwweDU0LDB4MGYsMHhmYywweGFkLDB4NjQsMHhhZSwweDYzLDB4YWYsMHg2MiwKKzB4MTIsMHgwZSwweDgyLDB4OGMsMHg1NSwweGVjLDB4NjAsMHgwMiwweDgwLDB4MTIsMHgwNSwweDY0LDB4ZTUsMHg2NCwweDcwLDB4MDIsCisweDA1LDB4NjMsMHgwNSwweDU3LDB4ZTUsMHg1NywweDcwLDB4MDIsMHgwNSwweDU2LDB4ODAsMHhkMiwweGU1LDB4NTQsMHg1NCwweDBmLAorMHgyNCwweDk3LDB4ZjgsMHhjNiwweDU0LDB4ZmUsMHhmNiwweGU1LDB4NTQsMHg1NCwweDBmLDB4N2YsMHgwMCwweGZlLDB4N2MsMHgxMiwKKzB4MTIsMHgzMSwweDlhLDB4ZTUsMHg1NSwweDE0LDB4NzAsMHgwOSwweDdkLDB4MDAsMHg3YywweDA5LDB4MTIsMHgyNCwweGIxLDB4ODAsCisweDA3LDB4YWQsMHg1NywweDdjLDB4MDAsMHgxMiwweDI0LDB4YjEsMHgxMiwweDMxLDB4MDgsMHgyMiwweDEyLDB4MzAsMHg4NSwweDkwLAorMHhmZiwweGZjLDB4ZTAsMHg0NCwweDAyLDB4ZjAsMHg5MCwweGZmLDB4MDAsMHhlMCwweDMwLDB4ZTcsMHgxMywweDkwLDB4ZmYsMHg4MywKKzB4ZTAsMHg0NCwweDgwLDB4ZjAsMHg0MywweDY3LDB4ODAsMHg5MCwweGZmLDB4ZmMsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDgwLDB4MTEsCisweDkwLDB4ZmYsMHg4MiwweGUwLDB4NDQsMHgwOCwweGYwLDB4NTMsMHg2NywweDdmLDB4OTAsMHhmZiwweGZjLDB4ZTAsMHg1NCwweGZlLAorMHhmMCwweDkwLDB4ZmYsMHg4MSwweGUwLDB4NDQsMHg4MCwweGYwLDB4MTIsMHgyNSwweDY0LDB4OTAsMHhmZiwweGZlLDB4ZTAsMHg0NCwKKzB4MDUsMHhmMCwweDkwLDB4ZmYsMHhmYywweGUwLDB4NTQsMHhmZCwweGYwLDB4MTIsMHgzMSwweDA4LDB4MjIsMHgxMiwweDMwLDB4ODUsCisweDdjLDB4MDEsMHgxMiwweDMyLDB4NDgsMHg3OCwweGE3LDB4ZTYsMHg0NCwweDAyLDB4ZjYsMHg3NCwweGZlLDB4ZmMsMHgwNCwweGZkLAorMHgxMiwweDFjLDB4ZmUsMHg5MCwweGZmLDB4NmEsMHhlMCwweDMwLDB4ZTcsMHgwMiwweDgwLDB4ZjcsMHhlNCwweGY1LDB4NGUsMHg3NSwKKzB4NGQsMHgxMCwweGFjLDB4NGUsMHhhZCwweDRkLDB4ZTUsMHg0ZSwweDE1LDB4NGUsMHg3MCwweDAyLDB4MTUsMHg0ZCwweGVjLDB4NGQsCisweDYwLDB4MDIsMHg4MCwweGVlLDB4NDMsMHg4NywweDAxLDB4MTIsMHgzMSwweDA4LDB4MjIsMHgxMiwweDMwLDB4ODUsMHg3YywweDAyLAorMHgxMiwweDMxLDB4MTQsMHg3OCwweGE3LDB4ZTYsMHg1NCwweGZkLDB4ZjYsMHgxMiwweDMxLDB4MDgsMHgyMiwweDEyLDB4MzAsMHg4NSwKKzB4NzgsMHhhNywweGU2LDB4MzAsMHhlMCwweDJjLDB4NzgsMHhhNywweGU2LDB4MzAsMHhlMSwweDI2LDB4NzgsMHhhNywweGU2LDB4ZmMsCisweGY1LDB4ODMsMHgxOCwweGU2LDB4NDQsMHhmMCwweGZkLDB4MTIsMHgxYywweDkzLDB4OTAsMHhmZiwweGZjLDB4ZTAsMHg0NCwweDIwLAorMHhmMCwweDdjLDB4MDIsMHgxMiwweDMyLDB4NDgsMHg3OCwweGE3LDB4ZTYsMHg1NCwweGZkLDB4ZjYsMHg3NCwweDFhLDB4OTAsMHhmZiwKKzB4ZmUsMHhmMCwweDc4LDB4YTcsMHhlNiwweGZjLDB4ZjUsMHg4MywweDE4LDB4ZTYsMHg0NCwweGYxLDB4ZmQsMHgxMiwweDFjLDB4OTMsCisweDEyLDB4MzEsMHgwOCwweDIyLDB4NzUsMHg2NywweDAwLDB4NzUsMHg2OCwweDAwLDB4ZTQsMHhmNSwweDY2LDB4ZjUsMHg2NSwweGU0LAorMHhmNSwweDY5LDB4NzUsMHg2YSwweDQ5LDB4NzQsMHg4NCwweDkwLDB4ZmYsMHg4MiwweGYwLDB4NzQsMHg4NCwweDkwLDB4ZmYsMHg4MCwKKzB4ZjAsMHg3NCwweDgwLDB4OTAsMHhmZiwweDY4LDB4ZjAsMHg3NCwweDgwLDB4OTAsMHhmZiwweDZhLDB4ZjAsMHhhZCwweDQ2LDB4YWYsCisweDQ1LDB4N2UsMHgwMCwweGVlLDB4MjQsMHhmYywweDUwLDB4MDMsMHgwMiwweDIxLDB4NmEsMHhlNCwweGVlLDB4NzUsMHhmMCwweDA3LAorMHhhNCwweDI0LDB4M2YsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweGUwLDB4ZmYsMHhlNCwweGVmLDB4NTQsMHg4MCwKKzB4ZmQsMHhlNCwweGVmLDB4NTQsMHgwZiwweDE0LDB4ZmYsMHhlZCwweDYwLDB4MzgsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsCisweDI0LDB4NDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweDc0LDB4OTAsMHhmMCwweGU0LDB4ZWYsMHg3NSwweGYwLAorMHgwOCwweGE0LDB4MjQsMHg0YSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4NzQsMHg4MCwweGYwLDB4ZTQsMHhlZiwKKzB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDRlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHg3NCwweDgwLDB4ZjAsCisweDgwLDB4MzQsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDA4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LAorMHg4MywweDc0LDB4OTAsMHhmMCwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MGEsMHhmNSwweDgyLDB4ZTQsMHgzNCwKKzB4ZmYsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MGUsMHhmNSwweDgyLDB4ZTQsCisweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDBlLDB4MDIsMHgyMCwweGQzLDB4OGQsMHg0NiwweDhlLDB4NDQsMHg4ZiwweDQ1LAorMHg3NCwweDdmLDB4OTAsMHhmZiwweGZkLDB4ZjAsMHg3NCwweDkwLDB4OTAsMHhmZiwweGZjLDB4ZjAsMHg5MCwweGZjLDB4MTksMHhlMCwKKzB4MzAsMHhlNiwweDA3LDB4OTAsMHhmZiwweGZjLDB4ZTAsMHg0NCwweDA0LDB4ZjAsMHgyMiwweDkwLDB4ZmMsMHgwZCwweGUwLDB4MTQsCisweDcwLDB4MDQsMHg5MCwweGZjLDB4MGMsMHhlMCwweDcwLDB4MzksMHg5MCwweGZjLDB4MDAsMHg3OSwweDA2LDB4N2EsMHgzNSwweDdiLAorMHgxMiwweDc4LDB4MDEsMHgxMiwweDAzLDB4ZjUsMHg3ZiwweDAwLDB4ZWYsMHgzMywweDQwLDB4MTUsMHhlZiwweDkwLDB4MzUsMHg0ZCwKKzB4OTMsMHhmYywweGVmLDB4MjQsMHg4MCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDBmLDB4ODAsCisweGU3LDB4OGYsMHg1OSwweDkwLDB4ZmMsMHgyYiwweDc5LDB4MTgsMHg3YSwweDM1LDB4N2IsMHgzNSwweDc4LDB4MDEsMHgxMiwweDAzLAorMHhmNSwweGU0LDB4OTAsMHhmZiwweGZmLDB4ZjAsMHg3NCwweDUxLDB4OTAsMHhmZiwweGZhLDB4ZjAsMHg3NCwweDA0LDB4OTAsMHhmZiwKKzB4ZmIsMHhmMCwweDc0LDB4NTMsMHg5MCwweGZmLDB4ZjgsMHhmMCwweDc0LDB4NTEsMHg5MCwweGZmLDB4ZjksMHhmMCwweDc0LDB4NTUsCisweDkwLDB4ZmYsMHhmNywweGYwLDB4NzQsMHg5MywweDkwLDB4ZmYsMHhmNiwweGYwLDB4NzQsMHgzMiwweDkwLDB4ZmYsMHhmNSwweGYwLAorMHg3NSwweDY0LDB4M2QsMHg3NSwweDYzLDB4ZmQsMHg3NSwweDYyLDB4MDEsMHhlNCwweDkwLDB4ZmYsMHg4MywweGYwLDB4NzQsMHg4MCwKKzB4OTAsMHhmZiwweDgxLDB4ZjAsMHg3NSwweDU4LDB4MDQsMHhlNSwweDU4LDB4NzUsMHhmMCwweDA3LDB4YTQsMHgyNCwweDNmLDB4ZjUsCisweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweGUwLDB4NzgsMHg4OSwweGY2LDB4ZmMsMHg1NCwweDBmLDB4MTQsMHhmYywweDc4LAorMHg4OSwweGVjLDB4ZjYsMHhlNSwweDU4LDB4NzUsMHhmMCwweDA3LDB4YTQsMHgyNCwweDQxLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywKKzB4ZjUsMHg4MywweGUwLDB4NzgsMHg4YywweDc2LDB4ZjgsMHgwOCwweDc2LDB4MDAsMHhmYywweDc4LDB4ODksMHhlNiwweDc1LDB4ZjAsCisweDA4LDB4YTQsMHgyNCwweDQ4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4NzgsMHg4OSwweGU2LAorMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3OCwKKzB4OGMsMHhlNiwweGZmLDB4MDgsMHhlNiwweDdlLDB4MDMsMHhjZiwweGMzLDB4MTMsMHhjZiwweDEzLDB4ZGUsMHhmOSwweGZlLDB4NzgsCisweDg5LDB4ZTYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NDksMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGVlLAorMHhmMCwweDc4LDB4ODksMHhlNiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0YSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwKKzB4ODMsMHg3NCwweDgwLDB4ZjAsMHg3OCwweDhhLDB4ZWMsMHhmNiwweDdkLDB4MDAsMHg3OCwweDhkLDB4ZTYsMHgyYywweGY2LDB4MTgsCisweGU2LDB4M2QsMHhmNiwweDc4LDB4OGMsMHhlNiwweGZkLDB4MDgsMHhlNiwweDdjLDB4MDMsMHhjZCwweGMzLDB4MTMsMHhjZCwweDEzLAorMHhkYywweGY5LDB4ZmMsMHg3OCwweDg5LDB4ZTYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGQsMHhmNSwweDgyLDB4ZTQsMHgzNCwKKzB4ZmYsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDc4LDB4ODksMHhlNiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0ZSwweGY1LDB4ODIsCisweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4NzgsMHg4YywweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHg3OCwweDg5LAorMHhlNiwweGZmLDB4N2UsMHgwMCwweGVlLDB4MjQsMHhmYywweDUwLDB4MDMsMHgwMiwweDI0LDB4NmIsMHhlNCwweGVlLDB4NzUsMHhmMCwKKzB4MDcsMHhhNCwweDI0LDB4M2YsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweGUwLDB4ZmYsMHhlNCwweGVmLDB4NTQsCisweDgwLDB4ZmEsMHhlNCwweGVmLDB4NTQsMHgwZiwweDE0LDB4ZmYsMHhlNCwweGVlLDB4NzUsMHhmMCwweDA3LDB4YTQsMHgyNCwweDQxLAorMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweGUwLDB4NzgsMHg4YSwweGY2LDB4ZWUsMHg3NSwweGYwLDB4ODAsMHhhNCwKKzB4MjQsMHgwOCwweGY4LDB4ZTUsMHhmMCwweDM0LDB4ZjgsMHhmOSwweGU4LDB4ZmMsMHhlOSwweGZkLDB4OGEsMHg1OSwweGVhLDB4NzAsCisweDAzLDB4MDIsMHgyMywweGQ4LDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0OCwweGY1LDB4ODIsMHhlNCwweDM0LAorMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4NzgsMHg4YSwweGU2LDB4ZmEsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwKKzB4NGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGVhLDB4ZjAsMHhlZCwweGZiLDB4ZWMsMHg3YSwweDAzLDB4Y2IsCisweGMzLDB4MTMsMHhjYiwweDEzLDB4ZGEsMHhmOSwweGZhLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0OSwweGY1LAorMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlYSwweGYwLDB4NzgsMHg4YSwweGU2LDB4N2IsMHgwMCwweGZhLDB4ZWMsMHgyYSwKKzB4ZmMsMHhlZCwweDNiLDB4ZmQsMHhmYiwweGVjLDB4N2EsMHgwMywweGNiLDB4YzMsMHgxMywweGNiLDB4MTMsMHhkYSwweGY5LDB4ZmEsCisweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGVhLAorMHhmMCwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywKKzB4NzQsMHg4MCwweGYwLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0ZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsCisweGY1LDB4ODMsMHg3NCwweDgwLDB4ZjAsMHgwMiwweDI0LDB4NjcsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDA4LAorMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg3OCwweDhhLDB4ZTYsMHhmYSwweGU0LDB4ZWYsMHg3NSwKKzB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZWEsMHhmMCwweGVkLDB4ZmIsCisweGVjLDB4N2EsMHgwMywweGNiLDB4YzMsMHgxMywweGNiLDB4MTMsMHhkYSwweGY5LDB4ZmEsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LAorMHhhNCwweDI0LDB4MDksMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGVhLDB4ZjAsMHg3OCwweDhhLDB4ZTYsMHg3YiwKKzB4MDAsMHhmYSwweGVjLDB4MmEsMHhmYywweGVkLDB4M2IsMHhmZCwweGZiLDB4ZWMsMHg3YSwweDAzLDB4Y2IsMHhjMywweDEzLDB4Y2IsCisweDEzLDB4ZGEsMHhmOSwweGZhLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwZCwweGY1LDB4ODIsMHhlNCwweDM0LAorMHhmZiwweGY1LDB4ODMsMHhlYSwweGYwLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwYSwweGY1LDB4ODIsMHhlNCwKKzB4MzQsMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsCisweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4MGUsMHgwMiwweDIyLDB4ZjQsMHg4ZSwweDU4LDB4NzgsMHg4YywweGVkLAorMHhmNiwweDA4LDB4ZWMsMHhmNiwweDc4LDB4ODksMHhlZiwweGY2LDB4MTIsMHgyMCwweGE0LDB4MjIsMHg4YywweDI2LDB4ZWMsMHgzMCwKKzB4ZTcsMHgxOCwweGU1LDB4MjYsMHg1NCwweDBmLDB4MTQsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NDgsMHhmNSwweDgyLDB4ZTQsCisweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTAsMHg1NCwweGRmLDB4ZjAsMHg4MCwweDE2LDB4ZTUsMHgyNiwweDU0LDB4MGYsMHgxNCwweDc1LAorMHhmMCwweDA4LDB4YTQsMHgyNCwweDA4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlMCwweDU0LDB4ZGYsMHhmMCwKKzB4MjIsMHhlYywweDkwLDB4ZmQsMHgzZiwweGYwLDB4OGMsMHgyNCwweGVkLDB4MjQsMHgwMywweGY1LDB4MjUsMHg3ZCwweDAwLDB4ZDMsCisweDk1LDB4NmMsMHhlZCwweDk1LDB4NmIsMHg0MCwweDAzLDB4ODUsMHg2YywweDI1LDB4ZTUsMHgyNSwweDI0LDB4YjcsMHg1MCwweDA5LAorMHg3NSwweDI1LDB4MDMsMHg3NCwweDAyLDB4OTAsMHhmZCwweDNmLDB4ZjAsMHhhYywweDI1LDB4MTIsMHgyZiwweGMzLDB4MjIsMHhlNCwKKzB4ZjUsMHg2NiwweGY1LDB4NjUsMHgxMiwweDI0LDB4ZTgsMHgyMiwweDkwLDB4ZmQsMHgzZCwweGUwLDB4NjUsMHg2ZCwweDYwLDB4MGUsCisweDc0LDB4MDQsMHg5MCwweGZkLDB4M2YsMHhmMCwweGU0LDB4ZjUsMHg2NSwweDc1LDB4NjYsMHgwMywweDgwLDB4NDYsMHg3ZCwweDZkLAorMHhlNCwweGZlLDB4ZmYsMHg3OSwweDNkLDB4N2EsMHhmZCwweDdiLDB4MDEsMHg3NCwweDA1LDB4NzgsMHgwMCwweDEyLDB4MDMsMHgzZiwKKzB4ZTUsMHg2NiwweDI0LDB4MDMsMHhmNSwweDY2LDB4ZTUsMHg2NSwweDM0LDB4MDAsMHhmNSwweDY1LDB4ZTUsMHg2NiwweGQzLDB4OTUsCisweDZjLDB4ZTUsMHg2NSwweDk1LDB4NmIsMHg0MCwweDA2LDB4ODUsMHg2YywweDY2LDB4ODUsMHg2YiwweDY1LDB4ZDMsMHhlNSwweDY2LAorMHg5NCwweDQ4LDB4ZTUsMHg2NSwweDk0LDB4MDAsMHg0MCwweDBjLDB4NzQsMHgwMiwweDkwLDB4ZmQsMHgzZiwweGYwLDB4ZTQsMHhmNSwKKzB4NjUsMHg3NSwweDY2LDB4MDMsMHhhYywweDY2LDB4MTIsMHgyZiwweGMzLDB4MjIsMHhlYywweDkwLDB4ZmQsMHgzZiwweGYwLDB4ZTQsCisweGY1LDB4NjYsMHhmNSwweDY1LDB4OGMsMHgzMiwweGVjLDB4NjAsMHgwNSwweDEyLDB4MmYsMHhiNCwweDgwLDB4MDUsMHg3YywweDAwLAorMHgxMiwweDJmLDB4YzMsMHgyMiwweDkwLDB4ZmYsMHgwNCwweGUwLDB4ZjUsMHg0YSwweDkwLDB4ZmYsMHgwNiwweGUwLDB4ZmQsMHhhMywKKzB4ZTAsMHhlZCwweDdkLDB4MDAsMHhmYywweDdkLDB4MDAsMHhmYywweDkwLDB4ZmYsMHgwNiwweGUwLDB4ZmYsMHhhMywweGUwLDB4N2UsCisweDAwLDB4ZmYsMHhlNCwweGZlLDB4ZWMsMHg0ZSwweGZjLDB4ZWQsMHg0ZiwweGZkLDB4YzMsMHhlYywweDk0LDB4NDgsMHhlZCwweDk0LAorMHgwMCwweDUwLDB4MjIsMHg5MCwweGZmLDB4MDYsMHhlMCwweGZkLDB4YTMsMHhlMCwweGVkLDB4N2QsMHgwMCwweGZjLDB4N2QsMHgwMCwKKzB4ZmMsMHg5MCwweGZmLDB4MDYsMHhlMCwweGZmLDB4YTMsMHhlMCwweDdlLDB4MDAsMHhmZiwweGU0LDB4ZmUsMHhlYywweDRlLDB4ZmMsCisweGVkLDB4NGYsMHhmZCwweDgwLDB4MDQsMHhlNCwweGZkLDB4N2MsMHg0OCwweDhjLDB4NmMsMHg4ZCwweDZiLDB4OTAsMHhmZiwweDAyLAorMHhlMCwweGZkLDB4YTMsMHhlMCwweGVkLDB4N2QsMHgwMCwweGZjLDB4N2QsMHgwMCwweGZjLDB4OTAsMHhmZiwweDAyLDB4ZTAsMHhmZiwKKzB4YTMsMHhlMCwweDdlLDB4MDAsMHhmZiwweGU0LDB4ZmUsMHhlYywweDRlLDB4ZjUsMHg0YywweGVkLDB4NGYsMHhmNSwweDRiLDB4NzUsCisweDY0LDB4M2QsMHg3NSwweDYzLDB4ZmQsMHg3NSwweDYyLDB4MDEsMHg3ZCwweDNkLDB4N2UsMHhmZCwweDdmLDB4MDEsMHg3OSwweDZkLAorMHhlNCwweGZhLDB4ZmIsMHg3NCwweDA1LDB4NzgsMHgwMCwweDEyLDB4MDMsMHgzZiwweDc1LDB4NDksMHgwMCwweGU1LDB4NDksMHgyNCwKKzB4ZmUsMHg0MCwweDE5LDB4YWQsMHg2NCwweGFlLDB4NjMsMHhhZiwweDYyLDB4ZTQsMHgxMiwweDAzLDB4MGYsMHgwNSwweDQ5LDB4MGQsCisweGVkLDB4NzAsMHgwMSwweDBlLDB4OGQsMHg2NCwweDhlLDB4NjMsMHg4ZiwweDYyLDB4ODAsMHhlMSwweDc1LDB4NjQsMHgzZCwweDc1LAorMHg2MywweGZkLDB4NzUsMHg2MiwweDAxLDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDYwLDB4YjQsMHgwMCwweDAyLDB4ODAsMHgwNiwKKzB4ZDMsMHg1MCwweDAzLDB4MDIsMHgyYywweDEyLDB4ZTUsMHg0YSwweDU0LDB4MGYsMHhmNSwweDQ5LDB4ZTUsMHg0YSwweDU0LDB4ODAsCisweGEyLDB4ZTAsMHg5MiwweDAyLDB4OTAsMHhmZiwweDAxLDB4ZTAsMHgxMiwweDAxLDB4ODEsMHgwMCwweDBiLDB4MmMsMHgwZCwweDI2LAorMHg2NywweDI3LDB4ODUsMHgyYywweDBkLDB4MjgsMHg5MSwweDJjLDB4MGQsMHgyOSwweDc0LDB4MjksMHhhOCwweDJiLDB4MGYsMHgyYiwKKzB4MTIsMHgyYiwweDUyLDB4MmIsMHhiNiwweDJiLDB4ZTQsMHhlNSwweDY3LDB4MzAsMHhlNywweDBlLDB4ZTUsMHg0YywweDQ1LDB4NGIsCisweDcwLDB4MDgsMHhlNSwweDZjLDB4NjQsMHgwMiwweDQ1LDB4NmIsMHg2MCwweDAzLDB4MDIsMHgyYywweDBmLDB4OTAsMHhmZiwweDAwLAorMHhlMCwweDU0LDB4MWYsMHhiNCwweDAwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDI5LDB4ZTUsMHg0YSwweDYwLDB4MDMsMHgwMiwKKzB4MjcsMHg4MiwweGFkLDB4NjQsMHhhZSwweDYzLDB4YWYsMHg2MiwweDc0LDB4MDEsMHgxMiwweDAzLDB4MGYsMHg3OCwweGE3LDB4ZTYsCisweDMwLDB4ZTAsMHgwYiwweGFkLDB4NjQsMHhhZSwweDYzLDB4YWYsMHg2MiwweDc0LDB4MDIsMHgxMiwweDAzLDB4MGYsMHg3YywweDAyLAorMHgxMiwweDJmLDB4YzMsMHgyMiwweGI0LDB4MDEsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MWIsMHhlNSwweDY3LDB4MjAsMHhlMSwKKzB4MDcsMHhlNSwweDRhLDB4NjAsMHgwMywweDAyLDB4MjcsMHg4MiwweGU1LDB4NGEsMHgyNCwweGZlLDB4NTAsMHgwMywweDAyLDB4MjcsCisweDgyLDB4N2MsMHgwMiwweDEyLDB4MmYsMHhjMywweDIyLDB4YjQsMHgwMiwweDAyLDB4ODAsMHgwNiwweGQzLDB4NTAsMHgwMywweDAyLAorMHgyNywweDgwLDB4ZTUsMHg2NywweDIwLDB4ZTEsMHgwZCwweGU1LDB4NGEsMHg2MCwweDA5LDB4ZTUsMHg0YSwweDY0LDB4ODAsMHg2MCwKKzB4MDMsMHgwMiwweDI3LDB4ODIsMHhhYywweDRhLDB4MTIsMHgzMCwweDRhLDB4NDAsMHgwMywweDAyLDB4MjcsMHg4MiwweGU1LDB4NDksCisweDcwLDB4MjUsMHgzMCwweDAyLDB4MTEsMHg5MCwweGZmLDB4ODAsMHhlMCwweDU0LDB4MDgsMHhhZCwweDY0LDB4YWUsMHg2MywweGFmLAorMHg2MiwweDEyLDB4MDMsMHgwZiwweDgwLDB4MGYsMHg5MCwweGZmLDB4ODIsMHhlMCwweDU0LDB4MDgsMHhhZCwweDY0LDB4YWUsMHg2MywKKzB4YWYsMHg2MiwweDEyLDB4MDMsMHgwZiwweDgwLDB4M2QsMHgxNSwweDQ5LDB4MzAsMHgwMiwweDFkLDB4ZTUsMHg0OSwweDc1LDB4ZjAsCisweDA4LDB4YTQsMHgyNCwweDQ4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlMCwweDU0LDB4MDgsMHhhZCwweDY0LAorMHhhZSwweDYzLDB4YWYsMHg2MiwweDEyLDB4MDMsMHgwZiwweDgwLDB4MWIsMHhlNSwweDQ5LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwKKzB4MDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGUwLDB4NTQsMHgwOCwweGFkLDB4NjQsMHhhZSwweDYzLDB4YWYsCisweDYyLDB4MTIsMHgwMywweDBmLDB4YWQsMHg2NCwweGFlLDB4NjMsMHhhZiwweDYyLDB4MTIsMHgwMSwweGU2LDB4NjAsMHgwYiwweGFkLAorMHg2NCwweGFlLDB4NjMsMHhhZiwweDYyLDB4NzQsMHgwMSwweDEyLDB4MDMsMHgwZiwweDdjLDB4MDIsMHgxMiwweDJmLDB4YzMsMHgyMiwKKzB4ODAsMHgwMCwweDAyLDB4MmMsMHgwZiwweGU1LDB4NjcsMHgyMCwweGU3LDB4MDYsMHhlNSwweDZjLDB4NDUsMHg2YiwweDYwLDB4MDMsCisweDAyLDB4MmMsMHgwZiwweDkwLDB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweGI0LDB4MDAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLAorMHgxYSwweGU1LDB4NGMsMHgxNCwweDQ1LDB4NGIsMHg3MCwweDA0LDB4ZTUsMHg0YSwweDYwLDB4MDMsMHgwMiwweDI4LDB4OGUsMHg3OCwKKzB4YTcsMHhlNiwweDU0LDB4ZmUsMHhmNiwweDdjLDB4MDAsMHgxMiwweDJmLDB4YzMsMHgyMiwweGI0LDB4MDEsMHgwMiwweDgwLDB4MDMsCisweGQzLDB4NDAsMHgyYSwweGU1LDB4NjcsMHgyMCwweGUxLDB4MDgsMHhlNSwweDY3LDB4MjAsMHhlMCwweDAzLDB4MDIsMHgyOCwweDhlLAorMHhlNSwweDY3LDB4MzAsMHhlMCwweDA0LDB4ZTUsMHg0YSwweDcwLDB4MGIsMHhlNSwweDY3LDB4MzAsMHhlMSwweDA5LDB4ZTUsMHg0YSwKKzB4MjQsMHhmZSwweDUwLDB4MDMsMHgwMiwweDI4LDB4OGUsMHg3YywweDAwLDB4MTIsMHgyZiwweGMzLDB4MjIsMHhiNCwweDAyLDB4MDIsCisweDgwLDB4MDYsMHhkMywweDUwLDB4MDMsMHgwMiwweDI4LDB4OGMsMHhlNSwweDRjLDB4NDUsMHg0YiwweDYwLDB4MDMsMHgwMiwweDI4LAorMHg4ZSwweGFjLDB4NGEsMHgxMiwweDMwLDB4NGEsMHg0MCwweDAzLDB4MDIsMHgyOCwweDhlLDB4ZTUsMHg2NywweDIwLDB4ZTEsMHgwNywKKzB4ZTUsMHg2NywweDIwLDB4ZTAsMHgwMiwweDgwLDB4NzcsMHhlNSwweDY3LDB4MzAsMHhlMCwweDA2LDB4ZTUsMHg0OSwweDYwLDB4MDIsCisweDgwLDB4NmMsMHhlNSwweDQ5LDB4NzAsMHgwZiwweDkwLDB4ZmYsMHg4MiwweGUwLDB4NTQsMHhmNywweGYwLDB4OTAsMHhmZiwweDgwLAorMHhlMCwweDU0LDB4ZjcsMHhmMCwweDIyLDB4ZTUsMHg0OSwweGI0LDB4MDEsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MDksMHg3ZCwKKzB4MDEsMHg3YywweDAzLDB4MTIsMHgwZiwweDBiLDB4ODAsMHgxMSwweGI0LDB4MDIsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MDksCisweDdkLDB4MDEsMHg3YywweDA0LDB4MTIsMHgwZiwweDBiLDB4ODAsMHgwMCwweDE1LDB4NDksMHgzMCwweDAyLDB4MTUsMHhlNSwweDQ5LAorMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGUwLDB4NTQsMHhmNywKKzB4ZjAsMHg4MCwweDEzLDB4ZTUsMHg0OSwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwOCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsCisweGY1LDB4ODMsMHhlMCwweDU0LDB4ZjcsMHhmMCwweDdjLDB4MDAsMHgxMiwweDJmLDB4YzMsMHgyMiwweDgwLDB4MDAsMHgwMiwweDJjLAorMHgwZiwweGU1LDB4NjcsMHgyMCwweGU3LDB4MDYsMHhlNSwweDZjLDB4NDUsMHg2YiwweDYwLDB4MDMsMHgwMiwweDJjLDB4MGYsMHg5MCwKKzB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweGI0LDB4MDAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MWEsMHhlNSwweDRjLDB4MTQsCisweDQ1LDB4NGIsMHg3MCwweDA0LDB4ZTUsMHg0YSwweDYwLDB4MDMsMHgwMiwweDI5LDB4NzEsMHg3OCwweGE3LDB4ZTYsMHg0NCwweDAxLAorMHhmNiwweDdjLDB4MDAsMHgxMiwweDJmLDB4YzMsMHgyMiwweGI0LDB4MDEsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MjksMHhlNSwKKzB4NjcsMHgyMCwweGUxLDB4MDgsMHhlNSwweDY3LDB4MjAsMHhlMCwweDAzLDB4MDIsMHgyOSwweDcxLDB4ZTUsMHg2NywweDMwLDB4ZTAsCisweDA0LDB4ZTUsMHg0OSwweDcwLDB4MGIsMHhlNSwweDY3LDB4MzAsMHhlMSwweDA4LDB4ZTUsMHg0OSwweDI0LDB4ZmUsMHg1MCwweDAyLAorMHg4MCwweDdmLDB4N2MsMHgwMCwweDEyLDB4MmYsMHhjMywweDIyLDB4YjQsMHgwMiwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHg2ZiwKKzB4ZTUsMHg0YywweDQ1LDB4NGIsMHg2MCwweDAyLDB4ODAsMHg2OSwweGFjLDB4NGEsMHgxMiwweDMwLDB4NGEsMHg0MCwweDAyLDB4ODAsCisweDYwLDB4ZTUsMHg2NywweDIwLDB4ZTEsMHgwNywweGU1LDB4NjcsMHgyMCwweGUwLDB4MDIsMHg4MCwweDU0LDB4ZTUsMHg0OSwweDcwLAorMHgxNCwweDMwLDB4MDIsMHgwOSwweDkwLDB4ZmYsMHg4MCwweGUwLDB4NDQsMHgwOCwweGYwLDB4ODAsMHgwNywweDkwLDB4ZmYsMHg4MiwKKzB4ZTAsMHg0NCwweDA4LDB4ZjAsMHgyMiwweGU1LDB4NjcsMHgzMCwweGUxLDB4MzMsMHgxNSwweDQ5LDB4MzAsMHgwMiwweDE1LDB4ZTUsCisweDQ5LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDQ4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlMCwweDQ0LAorMHgwOCwweGYwLDB4ODAsMHgxMywweGU1LDB4NDksMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwKKzB4ZmYsMHhmNSwweDgzLDB4ZTAsMHg0NCwweDA4LDB4ZjAsMHg3YywweDAwLDB4MTIsMHgyZiwweGMzLDB4MjIsMHg4MCwweDAyLDB4ODAsCisweDAwLDB4MDIsMHgyYywweDBmLDB4ZTUsMHg2NywweDIwLDB4ZTcsMHgxMiwweGU1LDB4NmMsMHg0NSwweDZiLDB4NzAsMHgwYywweGU1LAorMHg0YSwweDcwLDB4MDgsMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHg2MCwweDAzLDB4MDIsMHgyYywweDBmLDB4ZTUsMHg0YywKKzB4OTAsMHhmZiwweGZmLDB4ZjAsMHg5MCwweGZmLDB4ZmYsMHhlMCwweDYwLDB4MDUsMHg0MywweDY3LDB4MDEsMHg4MCwweDAzLDB4NTMsCisweDY3LDB4ZmUsMHg3YywweDAwLDB4MTIsMHgyZiwweGMzLDB4MjIsMHhlNSwweDY3LDB4MzAsMHhlNywweDBlLDB4ZTUsMHg2YywweDQ1LAorMHg2YiwweDYwLDB4MDgsMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHg2MCwweDAzLDB4MDIsMHgyYywweDBmLDB4YWQsMHg0YiwKKzB4ZTUsMHg0YywweGVkLDB4N2QsMHgwMCwweGZjLDB4N2QsMHgwMCwweGZjLDB4YmQsMHgwMCwweDAyLDB4ODAsMHgwMywweDAyLDB4MmIsCisweDBhLDB4YjQsMHgwMSwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgzMiwweGU1LDB4NGEsMHg3MCwweDA1LDB4ZTUsMHg0YywweGZjLAorMHg2MCwweDAzLDB4MDIsMHgyYiwweDBjLDB4NzUsMHg2NCwweDAwLDB4NzUsMHg2MywweGZjLDB4NzUsMHg2MiwweDAxLDB4ZDMsMHhlNSwKKzB4NmMsMHg5NCwweDEyLDB4ZTUsMHg2YiwweDk0LDB4MDAsMHg0MCwweDA2LDB4ZTQsMHhmZCwweDdjLDB4MTIsMHg4MCwweDA0LDB4YWMsCisweDZjLDB4YWQsMHg2YiwweDhjLDB4NmEsMHg4ZCwweDY5LDB4MTIsMHgyZiwweGQ4LDB4MjIsMHhiNCwweDAyLDB4MDIsMHg4MCwweDAzLAorMHhkMywweDQwLDB4NTksMHhlNSwweDRhLDB4NjAsMHgwMywweDAyLDB4MmIsMHgwYywweGU1LDB4NGMsMHhmYywweDcwLDB4MjcsMHg3NSwKKzB4NjQsMHgxMiwweDc1LDB4NjMsMHhmYywweDc1LDB4NjIsMHgwMSwweGQzLDB4ZTUsMHg2YywweDk0LDB4MTksMHhlNSwweDZiLDB4OTQsCisweDAwLDB4NDAsMHgwNiwweGU0LDB4ZmQsMHg3YywweDE5LDB4ODAsMHgwNCwweGFjLDB4NmMsMHhhZCwweDZiLDB4OGMsMHg2YSwweDhkLAorMHg2OSwweDEyLDB4MmYsMHhkOCwweDgwLDB4MjUsMHg3NSwweDY0LDB4MmIsMHg3NSwweDYzLDB4ZmMsMHg3NSwweDYyLDB4MDEsMHhkMywKKzB4ZTUsMHg2YywweDk0LDB4MzUsMHhlNSwweDZiLDB4OTQsMHgwMCwweDQwLDB4MDYsMHhlNCwweGZkLDB4N2MsMHgzNSwweDgwLDB4MDQsCisweGFjLDB4NmMsMHhhZCwweDZiLDB4OGMsMHg2YSwweDhkLDB4NjksMHgxMiwweDJmLDB4ZDgsMHgyMiwweGI0LDB4MDMsMHgwMiwweDgwLAorMHgwNiwweGQzLDB4NTAsMHgwMywweDAyLDB4MmIsMHgwYSwweGU1LDB4NGMsMHhmNSwweDQ5LDB4NzAsMHgwZiwweDkwLDB4ZmYsMHgwNCwKKzB4ZTAsMHhmZCwweGEzLDB4ZTAsMHg0ZCwweDYwLDB4MDMsMHgwMiwweDJiLDB4MGMsMHg4MCwweDE4LDB4OTAsMHhmYywweDgyLDB4ZTAsCisweGZkLDB4YTMsMHhlMCwweGZjLDB4OTAsMHhmZiwweDA1LDB4ZTAsMHg2YywweDcwLDB4MDcsMHg5MCwweGZmLDB4MDQsMHhlMCwweDZkLAorMHg2MCwweDAyLDB4ODAsMHg2OCwweGU0LDB4ZjUsMHg2YSwweGY1LDB4NjksMHg3ZiwweDAwLDB4ZTUsMHg0OSwweDE0LDB4YzUsMHg0OSwKKzB4NjAsMHgwZiwweGVmLDB4MjQsMHg4MCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLDB4ZTAsMHgyZiwweGZmLDB4ODAsCisweGVhLDB4OGYsMHg0YSwweGU1LDB4NGEsMHgyNCwweDgwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LDB4ODMsMHhlMCwweDdkLAorMHgwMCwweGQzLDB4OTUsMHg2YywweGVkLDB4OTUsMHg2YiwweDQwLDB4MDYsMHhhYywweDZjLDB4YWQsMHg2YiwweDgwLDB4MGYsMHhlNSwKKzB4NGEsMHgyNCwweDgwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LDB4ODMsMHhlMCwweDdkLDB4MDAsMHhmYywweDhjLDB4NmEsCisweDhkLDB4NjksMHhlNSwweDRhLDB4MjQsMHg4MCwweGZjLDB4ZTQsMHgzNCwweGZjLDB4ZmQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLAorMHg4ZCwweDY0LDB4OGUsMHg2MywweDhmLDB4NjIsMHgxMiwweDJmLDB4ZDgsMHgyMiwweDgwLDB4MDAsMHgwMiwweDJjLDB4MGYsMHgwMiwKKzB4MmMsMHgwZiwweGU1LDB4NjcsMHgzMCwweGU3LDB4MTksMHhlNSwweDZjLDB4MTQsMHg0NSwweDZiLDB4NzAsMHgxMiwweGU1LDB4NGEsCisweDcwLDB4MGUsMHhlNSwweDRjLDB4NDUsMHg0YiwweDcwLDB4MDgsMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHg2MCwweDAzLAorMHgwMiwweDJjLDB4MGYsMHhlNSwweDY3LDB4MjAsMHhlMCwweDA4LDB4ZTUsMHg2NywweDIwLDB4ZTEsMHgwMywweDAyLDB4MmMsMHgwZiwKKzB4NzUsMHg2NCwweDY4LDB4ZTQsMHhmNSwweDYzLDB4ZjUsMHg2MiwweGU0LDB4ZjUsMHg2OSwweDA0LDB4ZjUsMHg2YSwweDEyLDB4MmYsCisweGQ4LDB4MjIsMHhlNSwweDY3LDB4MjAsMHhlNywweDI3LDB4ZTUsMHg2YywweDQ1LDB4NmIsMHg3MCwweDIxLDB4ZTUsMHg0YSwweDcwLAorMHgxZCwweGU1LDB4NGMsMHg2NCwweDAyLDB4NDUsMHg0YiwweDYwLDB4MGQsMHhlNSwweDRjLDB4MTQsMHg0NSwweDRiLDB4NjAsMHgwNiwKKzB4ZTUsMHg0YywweDQ1LDB4NGIsMHg3MCwweDA4LDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDFmLDB4NjAsMHgwMywweDAyLDB4MmMsCisweDBmLDB4ZTUsMHg2NywweDIwLDB4ZTAsMHgwOCwweGU1LDB4NjcsMHgyMCwweGUxLDB4MDMsMHgwMiwweDJjLDB4MGYsMHg4NSwweDRjLAorMHg2OCwweGU1LDB4NjgsMHg3MCwweDA4LDB4NDMsMHg2NywweDAxLDB4NTMsMHg2NywweGZkLDB4ODAsMHgxMywweGU1LDB4NjgsMHg2NCwKKzB4MDIsMHg2MCwweDA3LDB4ZTUsMHg2OCwweDE0LDB4NjAsMHgwMiwweDgwLDB4NjUsMHg1MywweDY3LDB4ZmUsMHg0MywweDY3LDB4MDIsCisweDdjLDB4MDAsMHgxMiwweDJmLDB4YzMsMHgyMiwweGU1LDB4NjcsMHgzMCwweGU3LDB4MWEsMHhlNSwweDZjLDB4MTQsMHg0NSwweDZiLAorMHg3MCwweDEzLDB4ZTUsMHg0YSwweDcwLDB4MGYsMHhlNSwweDRjLDB4NDUsMHg0YiwweDcwLDB4MDksMHg5MCwweGZmLDB4MDAsMHhlMCwKKzB4NTQsMHgxZiwweDE0LDB4NjAsMHgwMiwweDgwLDB4MzgsMHhlNSwweDY3LDB4MjAsMHhlMSwweDAyLDB4ODAsMHgzMSwweDdjLDB4MDEsCisweDEyLDB4MmYsMHhjMywweDIyLDB4ZTUsMHg2NywweDIwLDB4ZTcsMHgxNSwweGU1LDB4NmMsMHg0NSwweDZiLDB4NzAsMHgwZiwweGU1LAorMHg0YywweDQ1LDB4NGIsMHg3MCwweDA5LDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDFmLDB4MTQsMHg2MCwweDAyLDB4ODAsMHgwZiwKKzB4ZTUsMHg2NywweDIwLDB4ZTEsMHgwMiwweDgwLDB4MDgsMHg3YywweDAwLDB4MTIsMHgyZiwweGMzLDB4MjIsMHg4MCwweDAwLDB4MDIsCisweDJlLDB4Y2EsMHhiNCwweDQwLDB4MDIsMHg4MCwweDA2LDB4ZDMsMHg1MCwweDAzLDB4MDIsMHgyZSwweGMwLDB4OTAsMHhmZiwweDAxLAorMHhlMCwweDkwLDB4ZmQsMHgzZCwweGYwLDB4ZTUsMHg0YSwweDkwLDB4ZmQsMHgzZSwweGYwLDB4ZTQsMHg5MCwweGZkLDB4M2YsMHhmMCwKKzB4ZTUsMHg2NCwweDI0LDB4MDMsMHhmNSwweDY0LDB4ZTUsMHg2MywweDM0LDB4MDAsMHhmNSwweDYzLDB4YWQsMHg0YiwweGU1LDB4NGMsCisweDg1LDB4NjQsMHg4MiwweDg1LDB4NjMsMHg4MywweGNkLDB4ZjAsMHhhMywweGNkLDB4ZjAsMHg5MCwweGZmLDB4MDEsMHhlMCwweDEyLAorMHgwMSwweGI3LDB4MmMsMHg3ZCwweDAxLDB4MmMsMHhhMywweDAyLDB4MmMsMHhjZCwweDAzLDB4MmMsMHhmNywweDA0LDB4MmQsMHg0NSwKKzB4MDUsMHgyZCwweDgyLDB4MDYsMHgyZCwweGE4LDB4MDcsMHgyZCwweGNlLDB4MDgsMHgyZCwweGY0LDB4MDksMHgyZSwweDFhLDB4MGIsCisweDJlLDB4NDAsMHgwYywweDJlLDB4NGYsMHg4MCwweDJlLDB4NGYsMHg4MSwweDAwLDB4MDAsMHgyZSwweGFkLDB4ZTUsMHg2NywweDIwLAorMHhlNywweDA2LDB4N2MsMHgwNSwweDEyLDB4MjUsMHg0YSwweDIyLDB4N2QsMHhiNywweDdlLDB4MzQsMHg3ZiwweDAyLDB4NzksMHg0MCwKKzB4N2EsMHhmZCwweDdiLDB4MDEsMHg3NCwweDA4LDB4NzgsMHgwMCwweDEyLDB4MDMsMHgzZiwweDdkLDB4MDgsMHg3YywweDAwLDB4MTIsCisweDI0LDB4YjEsMHgyMiwweGU1LDB4NjcsMHgyMCwweGU3LDB4MDYsMHg3YywweDA1LDB4MTIsMHgyNSwweDRhLDB4MjIsMHhlNSwweDRhLAorMHhiNCwweDAzLDB4MDAsMHg0MCwweDEwLDB4YjQsMHgwNSwweDAwLDB4NTAsMHgwYiwweGU1LDB4NGEsMHg3ZiwweDAwLDB4ZmUsMHg3YywKKzB4MTAsMHgxMiwweDMxLDB4OWEsMHgyMiwweDdkLDB4MDAsMHg3YywweDA3LDB4MTIsMHgyNCwweGIxLDB4MjIsMHhlNSwweDY3LDB4MjAsCisweGU3LDB4MDYsMHg3YywweDA1LDB4MTIsMHgyNSwweDRhLDB4MjIsMHhlNSwweDRhLDB4YjQsMHgwMywweDAwLDB4NDAsMHgxMCwweGI0LAorMHgwNSwweDAwLDB4NTAsMHgwYiwweGU1LDB4NGEsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDExLDB4MTIsMHgzMSwweDlhLDB4MjIsMHg3ZCwKKzB4MDAsMHg3YywweDA3LDB4MTIsMHgyNCwweGIxLDB4MjIsMHhlNSwweDY3LDB4MjAsMHhlNywweDA2LDB4N2MsMHgwNSwweDEyLDB4MjUsCisweDRhLDB4MjIsMHhlNSwweDRhLDB4YjQsMHgwNSwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwYSwweGU0LDB4ZmYsMHgwNCwweGZlLAorMHg3YywweDBhLDB4MTIsMHgzMSwweDlhLDB4MjIsMHhiNCwweDAxLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDBhLDB4ZTQsMHhmZiwKKzB4MDQsMHhmZSwweDdjLDB4MDgsMHgxMiwweDMxLDB4OWEsMHgyMiwweGI0LDB4MDMsMHgwMCwweDQwLDB4MTAsMHhiNCwweDA1LDB4MDAsCisweDUwLDB4MGIsMHhlNSwweDRhLDB4N2YsMHgwMCwweGZlLDB4N2MsMHgxMywweDEyLDB4MzEsMHg5YSwweDIyLDB4N2QsMHgwMCwweDdjLAorMHgwNywweDEyLDB4MjQsMHhiMSwweDIyLDB4ZTUsMHg2NywweDIwLDB4ZTcsMHgzNCwweGQzLDB4ZTUsMHg2YywweDk0LDB4NDgsMHhlNSwKKzB4NmIsMHg5NCwweDAwLDB4NTAsMHgwNiwweGU1LDB4NmMsMHg0NSwweDZiLDB4NzAsMHgwNiwweDdjLDB4MDIsMHgxMiwweDI1LDB4NGEsCisweDIyLDB4ZTUsMHg0YSwweGI0LDB4MDEsMHgwMywweGIzLDB4NDAsMHgwYiwweGMzLDB4YjQsMHgwMywweDAwLDB4NDAsMHgwOSwweGI0LAorMHgwNiwweDAwLDB4NTAsMHgwNCwweDEyLDB4MzAsMHg3MCwweDIyLDB4N2MsMHgwNywweDEyLDB4MjUsMHg0YSwweDIyLDB4MTIsMHgyNCwKKzB4ZTgsMHgyMiwweGU1LDB4NjcsMHgyMCwweGU3LDB4MWQsMHhlNSwweDRhLDB4YjQsMHgwMywweDAwLDB4NDAsMHgxMCwweGI0LDB4MDUsCisweDAwLDB4NTAsMHgwYiwweGU1LDB4NGEsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDE2LDB4MTIsMHgzMSwweDlhLDB4MjIsMHg3YywweDA3LAorMHgxMiwweDI1LDB4NGEsMHgyMiwweDEyLDB4MjQsMHhlOCwweDIyLDB4ZTUsMHg2NywweDIwLDB4ZTcsMHgxZCwweGU1LDB4NGEsMHhiNCwKKzB4MDMsMHgwMCwweDQwLDB4MTAsMHhiNCwweDA1LDB4MDAsMHg1MCwweDBiLDB4ZTUsMHg0YSwweDdmLDB4MDAsMHhmZSwweDdjLDB4MTksCisweDEyLDB4MzEsMHg5YSwweDIyLDB4N2MsMHgwNywweDEyLDB4MjUsMHg0YSwweDIyLDB4MTIsMHgyNCwweGU4LDB4MjIsMHhlNSwweDY3LAorMHgyMCwweGU3LDB4MWQsMHhlNSwweDRhLDB4YjQsMHgwMywweDAwLDB4NDAsMHgxMCwweGI0LDB4MDUsMHgwMCwweDUwLDB4MGIsMHhlNSwKKzB4NGEsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDE3LDB4MTIsMHgzMSwweDlhLDB4MjIsMHg3YywweDA3LDB4MTIsMHgyNSwweDRhLDB4MjIsCisweDEyLDB4MjQsMHhlOCwweDIyLDB4ZTUsMHg2NywweDIwLDB4ZTcsMHgxZCwweGU1LDB4NGEsMHhiNCwweDAzLDB4MDAsMHg0MCwweDEwLAorMHhiNCwweDA1LDB4MDAsMHg1MCwweDBiLDB4ZTUsMHg0YSwweDdmLDB4MDAsMHhmZSwweDdjLDB4MTgsMHgxMiwweDMxLDB4OWEsMHgyMiwKKzB4N2MsMHgwNywweDEyLDB4MjUsMHg0YSwweDIyLDB4MTIsMHgyNCwweGU4LDB4MjIsMHhlNSwweDY3LDB4MjAsMHhlNywweDFkLDB4ZTUsCisweDRhLDB4YjQsMHgwMywweDAwLDB4NDAsMHgxMCwweGI0LDB4MDUsMHgwMCwweDUwLDB4MGIsMHhlNSwweDRhLDB4N2YsMHgwMCwweGZlLAorMHg3YywweDE1LDB4MTIsMHgzMSwweDlhLDB4MjIsMHg3YywweDA3LDB4MTIsMHgyNSwweDRhLDB4MjIsMHgxMiwweDI0LDB4ZTgsMHgyMiwKKzB4ZTUsMHg2NywweDIwLDB4ZTcsMHgwNiwweDdjLDB4MDcsMHgxMiwweDI1LDB4NGEsMHgyMiwweDEyLDB4MjQsMHhlOCwweDIyLDB4ZTUsCisweDY3LDB4MzAsMHhlNywweDIwLDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDFmLDB4NzAsMHgxMCwweDkwLDB4ZmYsMHgwMSwweGUwLAorMHhiNCwweDgwLDB4MDUsMHgxMiwweDI0LDB4ZGYsMHg4MCwweDAzLDB4MTIsMHgyNCwweGU4LDB4MjIsMHg3ZCwweDAwLDB4N2MsMHgwNSwKKzB4MTIsMHgyNCwweGIxLDB4MjIsMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHg2MCwweDA2LDB4N2MsMHgwNSwweDEyLDB4MjUsCisweDRhLDB4MjIsMHhkMywweGU1LDB4NmMsMHg5NCwweDQ4LDB4ZTUsMHg2YiwweDk0LDB4MDAsMHg1MCwweDBiLDB4YzMsMHhlNSwweDZjLAorMHg5NCwweDA3LDB4ZTUsMHg2YiwweDk0LDB4MDAsMHg1MCwweDA2LDB4N2MsMHgwMywweDEyLDB4MjUsMHg0YSwweDIyLDB4ZTUsMHg0YSwKKzB4YjQsMHgwNSwweDA0LDB4MTIsMHgzMCwweDcwLDB4MjIsMHg3YywweDA3LDB4MTIsMHgyNSwweDRhLDB4MjIsMHhlNSwweDY3LDB4MzAsCisweGU3LDB4MDgsMHg3ZCwweDAwLDB4N2MsMHgwNSwweDEyLDB4MjQsMHhiMSwweDIyLDB4N2MsMHgwNSwweDEyLDB4MjUsMHg0YSwweDIyLAorMHhiNCwweDIwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDAwLDB4ODAsMHgwMCwweDEyLDB4MmYsMHg5ZSwweDIyLDB4NzUsMHg0MywKKzB4MDAsMHg5MCwweGZmLDB4ODMsMHhlMCwweDU0LDB4MGYsMHhkMywweDk1LDB4NDMsMHg0MCwweDI0LDB4ZTUsMHg0MywweDI0LDB4ZjAsCisweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmUsMHhmNSwweDgzLDB4ZTAsMHhhZCwweDY0LDB4YWUsMHg2MywweGFmLDB4NjIsMHgxMiwweDAzLAorMHgwZiwweDA1LDB4NDMsMHgwZCwweGVkLDB4NzAsMHgwMSwweDBlLDB4OGQsMHg2NCwweDhlLDB4NjMsMHg4ZiwweDYyLDB4ODAsMHhkMSwKKzB4ZTUsMHg0MywweDdkLDB4MDAsMHhmYywweGMzLDB4ZTUsMHg2YSwweDljLDB4ZjUsMHg2YSwweGU1LDB4NjksMHg5ZCwweGY1LDB4NjksCisweGU1LDB4NmEsMHg0NSwweDY5LDB4NjAsMHgwNiwweGU0LDB4OTAsMHhmZiwweDgzLDB4ZjAsMHgyMiwweDkwLDB4ZmYsMHg4MiwweGUwLAorMHg0NCwweDA4LDB4ZjAsMHhlNCwweGY1LDB4NjksMHg3NSwweDZhLDB4NDksMHg5MCwweGZkLDB4M2QsMHhlMCwweGI0LDB4MDUsMHgwMiwKKzB4ODAsMHgwMywweGQzLDB4NDAsMHg0MCwweDkwLDB4ZmQsMHgzZSwweGUwLDB4ZjUsMHg0MywweGI0LDB4MDUsMHgwMiwweDgwLDB4MDMsCisweGQzLDB4NDAsMHgwYSwweGU0LDB4ZmYsMHgwNCwweGZlLDB4N2MsMHgwYiwweDEyLDB4MzEsMHg5YSwweDIyLDB4YjQsMHgwMSwweDAyLAorMHg4MCwweDAzLDB4ZDMsMHg0MCwweDBhLDB4ZTQsMHhmZiwweDA0LDB4ZmUsMHg3YywweDA5LDB4MTIsMHgzMSwweDlhLDB4MjIsMHhiNCwKKzB4MDMsMHgwMCwweDQwLDB4MTAsMHhiNCwweDA1LDB4MDAsMHg1MCwweDBiLDB4ZTUsMHg0MywweDdmLDB4MDAsMHhmZSwweDdjLDB4MTQsCisweDEyLDB4MzEsMHg5YSwweDIyLDB4MjIsMHhiNCwweDgwLDB4MDAsMHg0MCwweDIzLDB4YjQsMHg4MiwweDAwLDB4NTAsMHgxZSwweDdjLAorMHgzZCwweDdkLDB4ZmQsMHgxMiwweDE3LDB4ZDUsMHg3ZCwweDAwLDB4OGMsMHg2NiwweDhkLDB4NjUsMHg5MCwweGZkLDB4M2YsMHhlMCwKKzB4NjAsMHgwNSwweDEyLDB4MmYsMHg5ZSwweDgwLDB4MDUsMHg3YywweDAwLDB4MTIsMHgyZiwweGMzLDB4MjIsMHgyMiwweDkwLDB4ZmYsCisweDgzLDB4ZTAsMHg1NCwweDdmLDB4ZjAsMHg5MCwweGZmLDB4ODIsMHhlMCwweDQ0LDB4MDgsMHhmMCwweDkwLDB4ZmYsMHg4MCwweGUwLAorMHg0NCwweDA4LDB4ZjAsMHgyMiwweDkwLDB4ZmYsMHg4MiwweGUwLDB4NDQsMHgwOCwweGYwLDB4OTAsMHhmZiwweDgwLDB4ZTAsMHg0NCwKKzB4MDgsMHhmMCwweDIyLDB4OGMsMHgyMywweDdkLDB4MDAsMHg4YywweDZhLDB4OGQsMHg2OSwweDc1LDB4NjQsMHgzZCwweDc1LDB4NjMsCisweGZkLDB4NzUsMHg2MiwweDAxLDB4MTIsMHgyZiwweGQ4LDB4MjIsMHg5MCwweGZmLDB4ODMsMHhlMCwweDU0LDB4N2YsMHhmMCwweGU1LAorMHg2YSwweDY0LDB4NDksMHg0NSwweDY5LDB4NzAsMHgwMSwweDIyLDB4YzMsMHhlNSwweDZhLDB4OTQsMHgwOCwweGU1LDB4NjksMHg5NCwKKzB4MDAsMHg0MCwweDE1LDB4NzUsMHgyMSwweDA4LDB4ZTUsMHgyMSwweDdkLDB4MDAsMHhmYywweGMzLDB4ZTUsMHg2YSwweDljLDB4ZjUsCisweDZhLDB4ZTUsMHg2OSwweDlkLDB4ZjUsMHg2OSwweDgwLDB4MDksMHg4NSwweDZhLDB4MjEsMHhlNCwweGY1LDB4NjksMHg3NSwweDZhLAorMHg0OSwweDc1LDB4MjIsMHgwMCwweGU1LDB4MjIsMHhjMywweDk1LDB4MjEsMHg1MCwweDI2LDB4YWQsMHg2NCwweGFlLDB4NjMsMHhhZiwKKzB4NjIsMHgxMiwweDAxLDB4ZTYsMHhmYywweGU1LDB4MjIsMHgyNCwweGY4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZSwweGY1LDB4ODMsCisweGVjLDB4ZjAsMHgwNSwweDIyLDB4MGQsMHhlZCwweDcwLDB4MDEsMHgwZSwweDhkLDB4NjQsMHg4ZSwweDYzLDB4OGYsMHg2MiwweDgwLAorMHhkMywweGU1LDB4MjEsMHg1NCwweDdmLDB4OTAsMHhmZiwweDgxLDB4ZjAsMHgyMiwweDhjLDB4NDgsMHg3ZiwweDAwLDB4ZWYsMHgyNCwKKzB4ZmIsMHg0MCwweDE5LDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwNywweGE0LDB4MjQsMHgzZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsCisweGY1LDB4ODMsMHhlMCwweDY1LDB4NDgsMHg3MCwweDAyLDB4ZDMsMHgyMiwweDBmLDB4ODAsMHhlMiwweDhmLDB4NDcsMHhjMywweDIyLAorMHg4NSwweDZjLDB4NmEsMHg4NSwweDZiLDB4NjksMHg5MCwweGZmLDB4ODIsMHhlMCwweDU0LDB4ZjcsMHhmMCwweDkwLDB4ZmYsMHg4MywKKzB4ZTAsMHg1NCwweDdmLDB4ZjAsMHgyMiwweGMwLDB4MDAsMHhjMCwweDAxLDB4YzAsMHgwMiwweGMwLDB4MDYsMHhjMCwweDA3LDB4ZTUsCisweDcyLDB4MjQsMHgwOCwweGY4LDB4ODYsMHgwNiwweDUzLDB4MDYsMHg3ZiwweDdjLDB4ZmYsMHgxMiwweDMwLDB4ZmEsMHg3YywweDAwLAorMHg3ZCwweDAwLDB4ZTUsMHg3NSwweDYwLDB4NDYsMHhmZiwweDkwLDB4ZmUsMHg5ZCwweGUwLDB4NTQsMHg3ZiwweDZlLDB4NzAsMHgwZiwKKzB4YzAsMHg4MywweGMwLDB4ODIsMHhhMywweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmMsMHhhMywweDE1LDB4NzUsMHg4MCwweDA3LDB4YTMsCisweGEzLDB4YTMsMHhkZiwweGU2LDB4ODAsMHgyNiwweGRmLDB4MDYsMHhkMCwweDgyLDB4ZDAsMHg4MywweDgwLDB4MWUsMHhlMCwweGY4LAorMHhhMywweGUwLDB4ZjksMHhhMywweGUwLDB4ZmEsMHhkMCwweDgyLDB4ZDAsMHg4MywweGU4LDB4ZjAsMHhhMywweGU5LDB4ZjAsMHhhMywKKzB4ZWEsMHhmMCwweGEzLDB4YzAsMHg4MywweGMwLDB4ODIsMHhhMywweGEzLDB4YTMsMHg4MCwweGRhLDB4MTIsMHgzMSwweDkzLDB4ZDAsCisweDA3LDB4ZDAsMHgwNiwweGQwLDB4MDIsMHhkMCwweDAxLDB4ZDAsMHgwMCwweDIyLDB4ODUsMHhhOCwweDc0LDB4NzUsMHhhOCwweDg4LAorMHhlYywweDcwLDB4MDIsMHg3YywweDNmLDB4OGMsMHg3MywweDIyLDB4ZTUsMHg3MiwweDI0LDB4MDgsMHhmOCwweDc2LDB4MDAsMHgxMiwKKzB4MzEsMHhlNywweDgwLDB4ZmIsMHhjMCwweDAwLDB4YzAsMHgwMSwweGMwLDB4MDIsMHhjMCwweDA2LDB4YzAsMHgwNywweGFlLDB4MDQsCisweDdjLDB4ZmYsMHgxMiwweDMwLDB4ZmEsMHhlNSwweDc1LDB4NjAsMHg0MiwweGZmLDB4OTAsMHhmZSwweDlkLDB4ZTAsMHg1NCwweDdmLAorMHg2ZSwweDcwLDB4MGIsMHhjMCwweDgzLDB4YzAsMHg4MiwweGEzLDB4YTMsMHhhMywweDE1LDB4NzUsMHg4MCwweDA3LDB4YTMsMHhhMywKKzB4YTMsMHhkZiwweGVhLDB4ODAsMHgyNiwweGRmLDB4MDYsMHhkMCwweDgyLDB4ZDAsMHg4MywweDgwLDB4ZDgsMHhlMCwweGY4LDB4YTMsCisweGUwLDB4ZjksMHhhMywweGUwLDB4ZmEsMHhkMCwweDgyLDB4ZDAsMHg4MywweGU4LDB4ZjAsMHhhMywweGU5LDB4ZjAsMHhhMywweGVhLAorMHhmMCwweGEzLDB4YzAsMHg4MywweGMwLDB4ODIsMHhhMywweGEzLDB4YTMsMHg4MCwweGRhLDB4NzgsMHgwOCwweDA4LDB4NzksMHgxOCwKKzB4MDksMHg3YywweDAxLDB4ZTYsMHg1NCwweDdmLDB4NmUsMHg3MCwweDA2LDB4NzYsMHgwMCwweDc3LDB4MDAsMHg4MCwweDA2LDB4MDgsCisweDA5LDB4MGMsMHhiYywweDA4LDB4ZWUsMHgxMiwweDMxLDB4OTMsMHhkMCwweDA3LDB4ZDAsMHgwNiwweGQwLDB4MDIsMHhkMCwweDAxLAorMHhkMCwweDAwLDB4MjIsMHg3NSwweDczLDB4MDAsMHg4NSwweDc0LDB4YTgsMHgyMiwweGMwLDB4ZjAsMHhjMCwweDgyLDB4YzAsMHg4MywKKzB4YzMsMHhlNSwweDc1LDB4MjQsMHhlOCwweDUwLDB4MDUsMHgxMiwweDMxLDB4ZTcsMHg4MCwweGY0LDB4ZWMsMHg2MCwweDMxLDB4OTAsCisweDM0LDB4YjYsMHhlNCwweDkzLDB4YzMsMHg5YywweDQwLDB4MjgsMHhjMCwweDA0LDB4N2MsMHhmZiwweDEyLDB4MzAsMHhmYSwweGQwLAorMHgwNCwweDQzLDB4MDQsMHg4MCwweGU1LDB4NzUsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4OWQsMHhmNSwweDgyLDB4ZTQsMHgzNCwKKzB4ZmUsMHhmNSwweDgzLDB4ZWMsMHhmMCwweGVmLDB4YTMsMHhmMCwweGVlLDB4YTMsMHhmMCwweDA1LDB4NzUsMHgxMiwweDMxLDB4OTMsCisweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhmMCwweDIyLDB4YzAsMHgwNCwweDdjLDB4MjAsMHhkMiwweDhjLDB4ZDIsMHg4ZCwweGQ1LAorMHgwNCwweGZkLDB4ZDAsMHgwNCwweDIyLDB4NzUsMHhhOCwweDAwLDB4NzUsMHg4OCwweDAwLDB4NzUsMHhiOCwweDAwLDB4NzUsMHhmMCwKKzB4MDAsMHg3NSwweGQwLDB4MDAsMHhlNCwweGY4LDB4OTAsMHgwMCwweDAwLDB4ZjYsMHgwOCwweGI4LDB4MDAsMHhmYiwweDAyLDB4MDAsCisweDAwLDB4YzMsMHhlZCwweDk0LDB4MDIsMHg1MCwweDA0LDB4N2QsMHgwMywweDdjLDB4ZTgsMHhlYywweGY0LDB4ZmMsMHhlZCwweGY0LAorMHhmZCwweDBjLDB4YmMsMHgwMCwweDAxLDB4MGQsMHg4YywweDc5LDB4OGQsMHg3OCwweDIyLDB4YzMsMHhlYywweDk0LDB4YmMsMHhlZCwKKzB4OTQsMHgwMiwweDUwLDB4MDQsMHg3ZCwweDA3LDB4N2MsMHhkMCwweGVjLDB4ZjQsMHhmYywweGVkLDB4ZjQsMHhmZCwweDBjLDB4YmMsCisweDAwLDB4MDEsMHgwZCwweDhjLDB4NzcsMHg4ZCwweDc2LDB4MjIsMHhlYywweDcwLDB4MDEsMHgyMiwweGMwLDB4MDAsMHhlNSwweDcyLAorMHgyNCwweDE4LDB4ZjgsMHhhNiwweDA0LDB4ZTUsMHg3MiwweDI0LDB4MDgsMHhmOCwweGM2LDB4NTQsMHg3ZiwweGY2LDB4ZTYsMHgzMCwKKzB4ZTcsMHgwMywweGQwLDB4MDAsMHgyMiwweDEyLDB4MzEsMHhlNywweDgwLDB4ZjQsMHhjMiwweDhjLDB4ODUsMHg3NiwweDhjLDB4ODUsCisweDc3LDB4OGEsMHhkMiwweDhjLDB4YzAsMHhlMCwweGMwLDB4ZDAsMHhjMCwweGYwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHhjMCwweDAwLAorMHhjMCwweDAxLDB4YzAsMHgwMiwweGMwLDB4MDMsMHhjMCwweDA0LDB4YzAsMHgwNSwweGMwLDB4MDYsMHhjMCwweDA3LDB4MTIsMHgxYiwKKzB4MjgsMHhlNSwweDcyLDB4MjQsMHgwOCwweGY4LDB4ZTYsMHg2MCwweDI0LDB4ZTUsMHg3MiwweDI0LDB4MTAsMHhmOCwweGE2LDB4ODEsCisweGU1LDB4NzIsMHg3NSwweGYwLDB4MjEsMHhhNCwweDI0LDB4OTUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZkLDB4ZjUsMHg4MywweDc4LAorMHhhOCwweGU1LDB4ODEsMHgwNCwweGMzLDB4OTgsMHhmOSwweGU2LDB4ZjAsMHgwOCwweGEzLDB4ZDksMHhmYSwweDc0LDB4MDgsMHgyNSwKKzB4NzIsMHhmOCwweDA1LDB4NzIsMHgwOCwweGU2LDB4NTQsMHg4MCwweDcwLDB4MGMsMHhlNSwweDcyLDB4YjQsMHgwNywweGYzLDB4NzgsCisweDA4LDB4NzUsMHg3MiwweDAwLDB4ODAsMHhlZiwweGU1LDB4NzIsMHgyNCwweDEwLDB4ZjgsMHg4NiwweDgxLDB4ZTUsMHg3MiwweDc1LAorMHhmMCwweDIxLDB4YTQsMHgyNCwweDk1LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZCwweGY1LDB4ODMsMHg3OCwweGE4LDB4ZTUsMHg4MSwKKzB4MDQsMHhjMywweDk4LDB4ZjksMHhlMCwweGY2LDB4MDgsMHhhMywweGQ5LDB4ZmEsMHhkMCwweDA3LDB4ZDAsMHgwNiwweGQwLDB4MDUsCisweGQwLDB4MDQsMHhkMCwweDAzLDB4ZDAsMHgwMiwweGQwLDB4MDEsMHhkMCwweDAwLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGYwLAorMHhkMCwweGQwLDB4ZDAsMHhlMCwweDMyLDB4YzAsMHhlMCwweGMwLDB4ZDAsMHhjMCwweDAwLDB4YzAsMHgwMSwweGMwLDB4MDIsMHhjMiwKKzB4OGUsMHg4NSwweDc4LDB4OGQsMHg4NSwweDc5LDB4OGIsMHhkMiwweDhlLDB4NzgsMHgxOSwweDc5LDB4MDksMHg3YSwweDA3LDB4ZTcsCisweDcwLDB4MDQsMHhhNiwweDAwLDB4ODAsMHgwYiwweGU2LDB4NjAsMHgwOCwweDE2LDB4ZTYsMHg3MCwweDA0LDB4ZTcsMHg0NCwweDgwLAorMHhmNywweDA4LDB4MDksMHhkYSwweGVhLDB4ZTUsMHg3MywweDYwLDB4MTMsMHgxNCwweGY1LDB4NzMsMHg3MCwweDBlLDB4ZTUsMHg3MiwKKzB4MjQsMHgwOCwweGY4LDB4NzYsMHgwMCwweDEyLDB4MzEsMHg5MywweGQyLDB4OGMsMHhkMiwweDhkLDB4ZDAsMHgwMiwweGQwLDB4MDEsCisweGQwLDB4MDAsMHhkMCwweGQwLDB4ZDAsMHhlMCwweDMyLDB4NzUsMHg4MSwweGE3LDB4NzUsMHg5MCwweDAwLDB4NzUsMHg3OSwweDMwLAorMHg3NSwweDc4LDB4ZjgsMHg3NSwweDc3LDB4NjAsMHg3NSwweDc2LDB4ZjAsMHgxMiwweDA1LDB4M2MsMHgxMiwweDM0LDB4MGYsMHgxMiwKKzB4MTcsMHg4YiwweDEyLDB4MzQsMHgzOSwweDEyLDB4MzEsMHhmNSwweDgwLDB4ZTMsMHgyMiwweGMwLDB4MDAsMHg3YywweDAxLDB4ZWMsCisweDI0LDB4MDgsMHhmOCwweGU2LDB4NjAsMHgwOSwweDBjLDB4YmMsMHgwOCwweGY1LDB4MTIsMHgzMSwweGU3LDB4ODAsMHhlZSwweGQwLAorMHgwMCwweDIyLDB4YzAsMHhmMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHgwMCwweGMwLDB4MDYsMHhjMCwweDA3LDB4ZWQsMHgyNCwKKzB4MTAsMHhmOCwweDc2LDB4YjYsMHhlZCwweDc1LDB4ZjAsMHgyMSwweGE0LDB4MjQsMHg5NSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmQsCisweGY1LDB4ODMsMHhjMCwweDgyLDB4YzAsMHg4MywweGEzLDB4YTMsMHhlNCwweDc4LDB4MGQsMHhmMCwweGEzLDB4ZDgsMHhmYywweGVjLAorMHg1NCwweDdmLDB4NzUsMHhmMCwweDAyLDB4YTQsMHgyNCwweDgyLDB4ZjUsMHg4MiwweGU1LDB4ZjAsMHgzNCwweDM0LDB4ZjUsMHg4MywKKzB4ZTQsMHg5MywweGZlLDB4NzQsMHgwMSwweDkzLDB4ZjUsMHg4MiwweDhlLDB4ODMsMHhlNCwweDkzLDB4ZmUsMHg3NCwweDAxLDB4OTMsCisweGZmLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhlZiwweGYwLDB4YTMsMHhlZSwweGYwLDB4ZWQsMHgyNCwweDA4LDB4ZjgsMHhlYywweDQ0LAorMHg4MCwweGY2LDB4ZDAsMHgwNywweGQwLDB4MDYsMHhkMCwweDAwLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGYwLDB4MjIsMHg3NSwKKzB4NzIsMHgwMCwweDc1LDB4NzUsMHgwMCwweDdhLDB4MDgsMHg3OSwweDE4LDB4NzgsMHgwOCwweDc2LDB4MDAsMHg3NywweDAwLDB4MDgsCisweDA5LDB4ZGEsMHhmOCwweGU0LDB4NzgsMHgwOCwweDc0LDB4ODAsMHg0NCwweDdmLDB4ZjYsMHg3NCwweDAxLDB4NDQsMHgxMCwweGY1LAorMHg4OSwweDc1LDB4YjgsMHgwOCwweGQyLDB4YWIsMHhkMiwweGE5LDB4MjIsMHg3NSwweDgxLDB4YTcsMHhkMiwweDhlLDB4ZDIsMHg4YywKKzB4ZDIsMHhhZiwweGU1LDB4NzUsMHg2MCwweDMyLDB4ZmYsMHg5MCwweGZlLDB4OWQsMHhlMCwweDU0LDB4ODAsMHg2MCwweDI0LDB4NzgsCisweDA4LDB4NzksMHgwOCwweGUwLDB4NTQsMHg3ZiwweGZhLDB4N2IsMHgwMCwweGU2LDB4NTQsMHg3ZiwweGI1LDB4MDIsMHgwMiwweDdiLAorMHhmZiwweDA4LDB4ZDksMHhmNSwweGViLDB4NzAsMHgwYywweGVhLDB4ZjAsMHgxMiwweDMzLDB4OGIsMHhhZCwweDA0LDB4YWMsMHgwMiwKKzB4MTIsMHgzMywweGEyLDB4YTMsMHhhMywweGEzLDB4ZGYsMHhkMiwweDEyLDB4MzEsMHhlNywweDgwLDB4YzUsMHg3YywweDAxLDB4N2QsCisweDAwLDB4MjIsMHgwNCwweGY1LDB4MDQsMHhlOSwweDA0LDB4ZWQsMHgwNCwweGUxLDB4MDQsMHhkZCwweDA0LDB4ZDksMHgwNCwweGU1LAorMHgwNCwweGYxLDB4MDQsMHg5ZCwweDA0LDB4YTEsMHgwNCwweGNkLDB4MDQsMHhkMSwweDA0LDB4OTksMHgwNCwweDk5LDB4MDQsMHg5OSwKKzB4MDQsMHhkNSwweDA0LDB4YjUsMHgwNCwweGFkLDB4MDQsMHhiMSwweDA0LDB4YTksMHgwNCwweGMxLDB4MDQsMHhiZCwweDA0LDB4YjksCisweDA0LDB4YzUsMHgwNCwweGM5LDB4MDQsMHhhNSwweDE5LDB4MDEsMHgwMywweDAwLDB4MjIsMHgwMCwweDQ4LDB4MDIsMHgwMCwweDI0LAorMHgwZiwweDE4LDB4MGEsMHgxMCwweDY0LDB4MGQsMHg2OCwweDBjLDB4MDUsMHgwNiwweDAyLDB4MDMsMHgwMSwweDAxLDB4ODEsMHgwMSwKKzB4MDAsMHgwMCwweGU3LDB4MDAsMHhjMCwweDAwLDB4ODAsMHgwMCwweDYwLDB4MDAsMHg0MCwweDAwLDB4MzAsMHgwMCwweDE4LDB4MDAsCisweDBjLDB4MDAsMHgwOCwweDAwLDB4MDQsMHgwMCwweDAyLDB4MDAsMHgwMSwweDAwLDB4MDgsMHgxOCwweDM4LDB4MjgsMHgwNiwweDAyLAorMHgxMCwweDBhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHg4MSwweDEwLDB4MGEsMHgwMiwweDAwLDB4MDAsMHgwMCwKKzB4MDAsMHgwMCwweGZiLDB4ZTgsMHhmYiwweGZhLDB4MTIsMHgwMSwweDEwLDB4MDEsMHhmZiwweDAwLDB4MDAsMHgwOCwweDUxLDB4MDQsCisweDVmLDB4NTAsMHgxNiwweDAxLDB4MDEsMHgwMiwweDAwLDB4MDIsMHgwOSwweDAyLDB4MzUsMHgwMCwweDAxLDB4MDIsMHgwMCwweGUwLAorMHgwMCwweDA5LDB4MDQsMHgwMCwweDAwLDB4MDUsMHhmZiwweDAwLDB4MDAsMHgwMCwweDA3LDB4MDUsMHg4MSwweDAyLDB4NDAsMHgwMCwKKzB4MDAsMHgwNywweDA1LDB4MDEsMHgwMiwweDQwLDB4MDAsMHgwMCwweDA3LDB4MDUsMHg4MiwweDAyLDB4NDAsMHgwMCwweDAwLDB4MDcsCisweDA1LDB4MDIsMHgwMiwweDQwLDB4MDAsMHgwMCwweDA3LDB4MDUsMHg4NSwweDAzLDB4MDIsMHgwMCwweDAxLDB4MDQsMHgwMywweDA5LAorMHgwNCwweDI0LDB4MDMsMHg1NCwweDAwLDB4NjUsMHgwMCwweDc4LDB4MDAsMHg2MSwweDAwLDB4NzMsMHgwMCwweDIwLDB4MDAsMHg0OSwKKzB4MDAsMHg2ZSwweDAwLDB4NzMsMHgwMCwweDc0LDB4MDAsMHg3MiwweDAwLDB4NzUsMHgwMCwweDZkLDB4MDAsMHg2NSwweDAwLDB4NmUsCisweDAwLDB4NzQsMHgwMCwweDczLDB4MDAsMHgyYSwweDAzLDB4NTQsMHgwMCwweDU1LDB4MDAsMHg1MywweDAwLDB4NDIsMHgwMCwweDM1LAorMHgwMCwweDMwLDB4MDAsMHgzNSwweDAwLDB4MzIsMHgwMCwweDIwLDB4MDAsMHg1MywweDAwLDB4NjUsMHgwMCwweDcyLDB4MDAsMHg2OSwKKzB4MDAsMHg2MSwweDAwLDB4NmMsMHgwMCwweDIwLDB4MDAsMHg1MCwweDAwLDB4NmYsMHgwMCwweDcyLDB4MDAsMHg3NCwweDAwLDB4MjIsCisweDAzLDB4NTQsMHgwMCwweDU1LDB4MDAsMHg1MywweDAwLDB4NDIsMHgwMCwweDM1LDB4MDAsMHgzMCwweDAwLDB4MzUsMHgwMCwweDMyLAorMHgwMCwweDIwLDB4MDAsMHgyMCwweDAwLDB4MjAsMHgwMCwweDIwLDB4MDAsMHgyMCwweDAwLDB4MjAsMHgwMCwweDIwLDB4MDAsMHgyMCwKKzB4MDAsCit9OworCisjZW5kaWYgLyogaWZuZGVmIF9USV9GV181MDUyX0hfICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvdGlfdXNiXzM0MTBfNTA1Mi5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL3RpX3VzYl8zNDEwXzUwNTIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ODA1NDg3Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL3RpX3VzYl8zNDEwXzUwNTIuYwpAQCAtMCwwICsxLDE4NDIgQEAKKy8qIHZpOiB0cz04IHN3PTgKKyAqCisgKiBUSSAzNDEwLzUwNTIgVVNCIFNlcmlhbCBEcml2ZXIKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQgVGV4YXMgSW5zdHJ1bWVudHMKKyAqCisgKiBUaGlzIGRyaXZlciBpcyBiYXNlZCBvbiB0aGUgTGludXggaW9fdGkgZHJpdmVyLCB3aGljaCBpcworICogICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMiBJbnNpZGUgT3V0IE5ldHdvcmtzCisgKiAgIENvcHlyaWdodCAoQykgMjAwMS0yMDAyIEdyZWcgS3JvYWgtSGFydG1hbgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogRm9yIHF1ZXN0aW9ucyBvciBwcm9ibGVtcyB3aXRoIHRoaXMgZHJpdmVyLCBjb250YWN0IFRleGFzIEluc3RydW1lbnRzCisgKiB0ZWNobmljYWwgc3VwcG9ydCwgb3IgQWwgQm9yY2hlcnMgPGFsYm9yY2hlcnNAc3RlaW5lcnBvaW50LmNvbT4sIG9yCisgKiBQZXRlciBCZXJnZXIgPHBiZXJnZXJAYnJpbXNvbi5jb20+LgorICogCisgKiBUaGlzIGRyaXZlciBuZWVkcyB0aGlzIGhvdHBsdWcgc2NyaXB0IGluIC9ldGMvaG90cGx1Zy91c2IvdGlfdXNiXzM0MTBfNTA1MgorICogb3IgaW4gL2V0Yy9ob3RwbHVnLmQvdXNiL3RpX3VzYl8zNDEwXzUwNTIuaG90cGx1ZyB0byBzZXQgdGhlIGRldmljZQorICogY29uZmlndXJhdGlvbi4KKyAqCisgKiAjIS9iaW4vYmFzaAorICoKKyAqIEJPT1RfQ09ORklHPTEKKyAqIEFDVElWRV9DT05GSUc9MgorICoKKyAqIGlmIFtbICIkQUNUSU9OIiAhPSAiYWRkIiBdXQorICogdGhlbgorICogCWV4aXQKKyAqIGZpCisgKgorICogQ09ORklHX1BBVEg9L3N5cyR7REVWUEFUSCUvPyp9L2JDb25maWd1cmF0aW9uVmFsdWUKKyAqCisgKiBpZiBbWyAwYGNhdCAkQ09ORklHX1BBVEhgIC1uZSAkQk9PVF9DT05GSUcgXV0KKyAqIHRoZW4KKyAqIAlleGl0CisgKiBmaQorICoKKyAqIFBST0RVQ1Q9JHtQUk9EVUNUJS8/Kn0JCSMgZGVsZXRlIHZlcnNpb24KKyAqIFZFTkRPUl9JRD1gcHJpbnRmICIlZCIgMHgke1BST0RVQ1QlLz8qfWAKKyAqIFBST0RVQ1RfSUQ9YHByaW50ZiAiJWQiIDB4JHtQUk9EVUNUIyo/L31gCisgKgorICogUEFSQU1fUEFUSD0vc3lzL21vZHVsZS90aV91c2JfMzQxMF81MDUyL3BhcmFtZXRlcnMKKyAqCisgKiBmdW5jdGlvbiBzY2FuKCkgeworICogCXM9JDEKKyAqIAlzaGlmdAorICogCWZvciBpCisgKiAJZG8KKyAqIAkJaWYgW1sgJHMgLWVxICRpIF1dCisgKiAJCXRoZW4KKyAqIAkJCXJldHVybiAwCisgKiAJCWZpCisgKiAJZG9uZQorICogCXJldHVybiAxCisgKiB9CisgKgorICogSUZTPSRJRlMsCisgKgorICogaWYgKHNjYW4gJFZFTkRPUl9JRCAxMTA1IGBjYXQgJFBBUkFNX1BBVEgvdmVuZG9yXzM0MTBgICYmCisgKiBzY2FuICRQUk9EVUNUX0lEIDEzMzI4IGBjYXQgJFBBUkFNX1BBVEgvcHJvZHVjdF8zNDEwYCkgfHwKKyAqIChzY2FuICRWRU5ET1JfSUQgMTEwNSBgY2F0ICRQQVJBTV9QQVRIL3ZlbmRvcl81MDUyYCAmJgorICogc2NhbiAkUFJPRFVDVF9JRCAyMDU2MiAyMDgxOCAyMDU3MCAyMDU3NSBgY2F0ICRQQVJBTV9QQVRIL3Byb2R1Y3RfNTA1MmApCisgKiB0aGVuCisgKiAJZWNobyAkQUNUSVZFX0NPTkZJRyA+ICRDT05GSUdfUEFUSAorICogZmkKKyAqLworCisjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eS5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eV9kcml2ZXIuaD4KKyNpbmNsdWRlIDxsaW51eC90dHlfZmxpcC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvaW9jdGwuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpYWwuaD4KKyNpbmNsdWRlIDxsaW51eC9jaXJjX2J1Zi5oPgorI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CisjaW5jbHVkZSA8YXNtL3NlbWFwaG9yZS5oPgorI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgorCisjaW5jbHVkZSAidXNiLXNlcmlhbC5oIgorI2luY2x1ZGUgInRpX3VzYl8zNDEwXzUwNTIuaCIKKyNpbmNsdWRlICJ0aV9md18zNDEwLmgiCQkvKiBmaXJtd2FyZSBpbWFnZSBmb3IgMzQxMCAqLworI2luY2x1ZGUgInRpX2Z3XzUwNTIuaCIJCS8qIGZpcm13YXJlIGltYWdlIGZvciA1MDUyICovCisKKworLyogRGVmaW5lcyAqLworCisjZGVmaW5lIFRJX0RSSVZFUl9WRVJTSU9OCSJ2MC45IgorI2RlZmluZSBUSV9EUklWRVJfQVVUSE9SCSJBbCBCb3JjaGVycyA8YWxib3JjaGVyc0BzdGVpbmVycG9pbnQuY29tPiIKKyNkZWZpbmUgVElfRFJJVkVSX0RFU0MJCSJUSSBVU0IgMzQxMC81MDUyIFNlcmlhbCBEcml2ZXIiCisKKyNkZWZpbmUgVElfRklSTVdBUkVfQlVGX1NJWkUJMTYyODQKKworI2RlZmluZSBUSV9XUklURV9CVUZfU0laRQkxMDI0CisKKyNkZWZpbmUgVElfVFJBTlNGRVJfVElNRU9VVAkyCisKKyNkZWZpbmUgVElfREVGQVVMVF9MT1dfTEFURU5DWQkwCisjZGVmaW5lIFRJX0RFRkFVTFRfQ0xPU0lOR19XQUlUCTQwMDAJCS8qIGluIC4wMSBzZWNzICovCisKKy8qIHN1cHBvcnRlZCBzZXRzZXJpYWwgZmxhZ3MgKi8KKyNkZWZpbmUgVElfU0VUX1NFUklBTF9GTEFHUwkoQVNZTkNfTE9XX0xBVEVOQ1kpCisKKy8qIHJlYWQgdXJiIHN0YXRlcyAqLworI2RlZmluZSBUSV9SRUFEX1VSQl9SVU5OSU5HCTAKKyNkZWZpbmUgVElfUkVBRF9VUkJfU1RPUFBJTkcJMQorI2RlZmluZSBUSV9SRUFEX1VSQl9TVE9QUEVECTIKKworI2RlZmluZSBUSV9FWFRSQV9WSURfUElEX0NPVU5UCTUKKworCisvKiBTdHJ1Y3R1cmVzICovCisKK3N0cnVjdCB0aV9wb3J0IHsKKwlpbnQJCQl0cF9pc19vcGVuOworCV9fdTgJCQl0cF9tc3I7CisJX191OAkJCXRwX2xzcjsKKwlfX3U4CQkJdHBfc2hhZG93X21jcjsKKwlfX3U4CQkJdHBfdWFydF9tb2RlOwkvKiAyMzIgb3IgNDg1IG1vZGVzICovCisJdW5zaWduZWQgaW50CQl0cF91YXJ0X2Jhc2VfYWRkcjsKKwlpbnQJCQl0cF9mbGFnczsKKwlpbnQJCQl0cF9jbG9zaW5nX3dhaXQ7LyogaW4gLjAxIHNlY3MgKi8KKwlzdHJ1Y3QgYXN5bmNfaWNvdW50CXRwX2ljb3VudDsKKwl3YWl0X3F1ZXVlX2hlYWRfdAl0cF9tc3Jfd2FpdDsJLyogd2FpdCBmb3IgbXNyIGNoYW5nZSAqLworCXdhaXRfcXVldWVfaGVhZF90CXRwX3dyaXRlX3dhaXQ7CisJc3RydWN0IHRpX2RldmljZQkqdHBfdGRldjsKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0CSp0cF9wb3J0OworCXNwaW5sb2NrX3QJCXRwX2xvY2s7CisJaW50CQkJdHBfcmVhZF91cmJfc3RhdGU7CisJaW50CQkJdHBfd3JpdGVfdXJiX2luX3VzZTsKKwlzdHJ1Y3QgY2lyY19idWYJCSp0cF93cml0ZV9idWY7Cit9OworCitzdHJ1Y3QgdGlfZGV2aWNlIHsKKwlzdHJ1Y3Qgc2VtYXBob3JlCXRkX29wZW5fY2xvc2Vfc2VtOworCWludAkJCXRkX29wZW5fcG9ydF9jb3VudDsKKwlzdHJ1Y3QgdXNiX3NlcmlhbAkqdGRfc2VyaWFsOworCWludAkJCXRkX2lzXzM0MTA7CisJaW50CQkJdGRfdXJiX2Vycm9yOworfTsKKworCisvKiBGdW5jdGlvbiBEZWNsYXJhdGlvbnMgKi8KKworc3RhdGljIGludCB0aV9zdGFydHVwKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpOworc3RhdGljIHZvaWQgdGlfc2h1dGRvd24oc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCk7CitzdGF0aWMgaW50IHRpX29wZW4oc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbGUpOworc3RhdGljIHZvaWQgdGlfY2xvc2Uoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbGUpOworc3RhdGljIGludCB0aV93cml0ZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhLAorCWludCBjb3VudCk7CitzdGF0aWMgaW50IHRpX3dyaXRlX3Jvb20oc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCk7CitzdGF0aWMgaW50IHRpX2NoYXJzX2luX2J1ZmZlcihzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KTsKK3N0YXRpYyB2b2lkIHRpX3Rocm90dGxlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworc3RhdGljIHZvaWQgdGlfdW50aHJvdHRsZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KTsKK3N0YXRpYyBpbnQgdGlfaW9jdGwoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKTsKK3N0YXRpYyB2b2lkIHRpX3NldF90ZXJtaW9zKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCisJc3RydWN0IHRlcm1pb3MgKm9sZF90ZXJtaW9zKTsKK3N0YXRpYyBpbnQgdGlfdGlvY21nZXQoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbGUpOworc3RhdGljIGludCB0aV90aW9jbXNldChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlsZSwKKwl1bnNpZ25lZCBpbnQgc2V0LCB1bnNpZ25lZCBpbnQgY2xlYXIpOworc3RhdGljIHZvaWQgdGlfYnJlYWsoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgaW50IGJyZWFrX3N0YXRlKTsKK3N0YXRpYyB2b2lkIHRpX2ludGVycnVwdF9jYWxsYmFjayhzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKK3N0YXRpYyB2b2lkIHRpX2J1bGtfaW5fY2FsbGJhY2soc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CitzdGF0aWMgdm9pZCB0aV9idWxrX291dF9jYWxsYmFjayhzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKKworc3RhdGljIHZvaWQgdGlfcmVjdihzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB0dHlfc3RydWN0ICp0dHksCisJdW5zaWduZWQgY2hhciAqZGF0YSwgaW50IGxlbmd0aCk7CitzdGF0aWMgdm9pZCB0aV9zZW5kKHN0cnVjdCB0aV9wb3J0ICp0cG9ydCk7CitzdGF0aWMgaW50IHRpX3NldF9tY3Ioc3RydWN0IHRpX3BvcnQgKnRwb3J0LCB1bnNpZ25lZCBpbnQgbWNyKTsKK3N0YXRpYyBpbnQgdGlfZ2V0X2xzcihzdHJ1Y3QgdGlfcG9ydCAqdHBvcnQpOworc3RhdGljIGludCB0aV9nZXRfc2VyaWFsX2luZm8oc3RydWN0IHRpX3BvcnQgKnRwb3J0LAorCXN0cnVjdCBzZXJpYWxfc3RydWN0IF9fdXNlciAqcmV0X2FyZyk7CitzdGF0aWMgaW50IHRpX3NldF9zZXJpYWxfaW5mbyhzdHJ1Y3QgdGlfcG9ydCAqdHBvcnQsCisJc3RydWN0IHNlcmlhbF9zdHJ1Y3QgX191c2VyICpuZXdfYXJnKTsKK3N0YXRpYyB2b2lkIHRpX2hhbmRsZV9uZXdfbXNyKHN0cnVjdCB0aV9wb3J0ICp0cG9ydCwgX191OCBtc3IpOworCitzdGF0aWMgdm9pZCB0aV9kcmFpbihzdHJ1Y3QgdGlfcG9ydCAqdHBvcnQsIHVuc2lnbmVkIGxvbmcgdGltZW91dCwgaW50IGZsdXNoKTsKKworc3RhdGljIHZvaWQgdGlfc3RvcF9yZWFkKHN0cnVjdCB0aV9wb3J0ICp0cG9ydCwgc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSk7CitzdGF0aWMgaW50IHRpX3Jlc3RhcnRfcmVhZChzdHJ1Y3QgdGlfcG9ydCAqdHBvcnQsIHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpOworCitzdGF0aWMgaW50IHRpX2NvbW1hbmRfb3V0X3N5bmMoc3RydWN0IHRpX2RldmljZSAqdGRldiwgX191OCBjb21tYW5kLAorCV9fdTE2IG1vZHVsZWlkLCBfX3UxNiB2YWx1ZSwgX191OCAqZGF0YSwgaW50IHNpemUpOworc3RhdGljIGludCB0aV9jb21tYW5kX2luX3N5bmMoc3RydWN0IHRpX2RldmljZSAqdGRldiwgX191OCBjb21tYW5kLAorCV9fdTE2IG1vZHVsZWlkLCBfX3UxNiB2YWx1ZSwgX191OCAqZGF0YSwgaW50IHNpemUpOworCitzdGF0aWMgaW50IHRpX3dyaXRlX2J5dGUoc3RydWN0IHRpX2RldmljZSAqdGRldiwgdW5zaWduZWQgbG9uZyBhZGRyLAorCV9fdTggbWFzaywgX191OCBieXRlKTsKKworc3RhdGljIGludCB0aV9kb3dubG9hZF9maXJtd2FyZShzdHJ1Y3QgdGlfZGV2aWNlICp0ZGV2LAorCXVuc2lnbmVkIGNoYXIgKmZpcm13YXJlLCB1bnNpZ25lZCBpbnQgZmlybXdhcmVfc2l6ZSk7CisKKy8qIGNpcmN1bGFyIGJ1ZmZlciAqLworc3RhdGljIHN0cnVjdCBjaXJjX2J1ZiAqdGlfYnVmX2FsbG9jKHZvaWQpOworc3RhdGljIHZvaWQgdGlfYnVmX2ZyZWUoc3RydWN0IGNpcmNfYnVmICpjYik7CitzdGF0aWMgdm9pZCB0aV9idWZfY2xlYXIoc3RydWN0IGNpcmNfYnVmICpjYik7CitzdGF0aWMgaW50IHRpX2J1Zl9kYXRhX2F2YWlsKHN0cnVjdCBjaXJjX2J1ZiAqY2IpOworc3RhdGljIGludCB0aV9idWZfc3BhY2VfYXZhaWwoc3RydWN0IGNpcmNfYnVmICpjYik7CitzdGF0aWMgaW50IHRpX2J1Zl9wdXQoc3RydWN0IGNpcmNfYnVmICpjYiwgY29uc3QgY2hhciAqYnVmLCBpbnQgY291bnQpOworc3RhdGljIGludCB0aV9idWZfZ2V0KHN0cnVjdCBjaXJjX2J1ZiAqY2IsIGNoYXIgKmJ1ZiwgaW50IGNvdW50KTsKKworCisvKiBEYXRhICovCisKKy8qIG1vZHVsZSBwYXJhbWV0ZXJzICovCitzdGF0aWMgaW50IGRlYnVnOworc3RhdGljIGludCBsb3dfbGF0ZW5jeSA9IFRJX0RFRkFVTFRfTE9XX0xBVEVOQ1k7CitzdGF0aWMgaW50IGNsb3Npbmdfd2FpdCA9IFRJX0RFRkFVTFRfQ0xPU0lOR19XQUlUOworc3RhdGljIHVzaG9ydCB2ZW5kb3JfMzQxMFtUSV9FWFRSQV9WSURfUElEX0NPVU5UXTsKK3N0YXRpYyBpbnQgdmVuZG9yXzM0MTBfY291bnQ7CitzdGF0aWMgdXNob3J0IHByb2R1Y3RfMzQxMFtUSV9FWFRSQV9WSURfUElEX0NPVU5UXTsKK3N0YXRpYyBpbnQgcHJvZHVjdF8zNDEwX2NvdW50Oworc3RhdGljIHVzaG9ydCB2ZW5kb3JfNTA1MltUSV9FWFRSQV9WSURfUElEX0NPVU5UXTsKK3N0YXRpYyBpbnQgdmVuZG9yXzUwNTJfY291bnQ7CitzdGF0aWMgdXNob3J0IHByb2R1Y3RfNTA1MltUSV9FWFRSQV9WSURfUElEX0NPVU5UXTsKK3N0YXRpYyBpbnQgcHJvZHVjdF81MDUyX2NvdW50OworCisvKiBzdXBwb3J0ZWQgZGV2aWNlcyAqLworLyogdGhlIGFycmF5IGRpbWVuc2lvbiBpcyB0aGUgbnVtYmVyIG9mIGRlZmF1bHQgZW50cmllcyBwbHVzICovCisvKiBUSV9FWFRSQV9WSURfUElEX0NPVU5UIHVzZXIgZGVmaW5lZCBlbnRyaWVzIHBsdXMgMSB0ZXJtaW5hdGluZyAqLworLyogbnVsbCBlbnRyeSAqLworc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIHRpX2lkX3RhYmxlXzM0MTBbMStUSV9FWFRSQV9WSURfUElEX0NPVU5UKzFdID0geworCXsgVVNCX0RFVklDRShUSV9WRU5ET1JfSUQsIFRJXzM0MTBfUFJPRFVDVF9JRCkgfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCB0aV9pZF90YWJsZV81MDUyWzQrVElfRVhUUkFfVklEX1BJRF9DT1VOVCsxXSA9IHsKKwl7IFVTQl9ERVZJQ0UoVElfVkVORE9SX0lELCBUSV81MDUyX0JPT1RfUFJPRFVDVF9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoVElfVkVORE9SX0lELCBUSV81MTUyX0JPT1RfUFJPRFVDVF9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoVElfVkVORE9SX0lELCBUSV81MDUyX0VFUFJPTV9QUk9EVUNUX0lEKSB9LAorCXsgVVNCX0RFVklDRShUSV9WRU5ET1JfSUQsIFRJXzUwNTJfRklSTVdBUkVfUFJPRFVDVF9JRCkgfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCB0aV9pZF90YWJsZV9jb21iaW5lZFtdID0geworCXsgVVNCX0RFVklDRShUSV9WRU5ET1JfSUQsIFRJXzM0MTBfUFJPRFVDVF9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoVElfVkVORE9SX0lELCBUSV81MDUyX0JPT1RfUFJPRFVDVF9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoVElfVkVORE9SX0lELCBUSV81MTUyX0JPT1RfUFJPRFVDVF9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoVElfVkVORE9SX0lELCBUSV81MDUyX0VFUFJPTV9QUk9EVUNUX0lEKSB9LAorCXsgVVNCX0RFVklDRShUSV9WRU5ET1JfSUQsIFRJXzUwNTJfRklSTVdBUkVfUFJPRFVDVF9JRCkgfSwKKwl7IH0KK307CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciB0aV91c2JfZHJpdmVyID0geworCS5vd25lcgkJCT0gVEhJU19NT0RVTEUsCisJLm5hbWUJCQk9ICJ0aV91c2JfMzQxMF81MDUyIiwKKwkucHJvYmUJCQk9IHVzYl9zZXJpYWxfcHJvYmUsCisJLmRpc2Nvbm5lY3QJCT0gdXNiX3NlcmlhbF9kaXNjb25uZWN0LAorCS5pZF90YWJsZQkJPSB0aV9pZF90YWJsZV9jb21iaW5lZCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kZXZpY2VfdHlwZSB0aV8xcG9ydF9kZXZpY2UgPSB7CisJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKKwkubmFtZQkJCT0gIlRJIFVTQiAzNDEwIDEgcG9ydCBhZGFwdGVyIiwKKwkuaWRfdGFibGUJCT0gdGlfaWRfdGFibGVfMzQxMCwKKwkubnVtX2ludGVycnVwdF9pbgk9IDEsCisJLm51bV9idWxrX2luCQk9IDEsCisJLm51bV9idWxrX291dAkJPSAxLAorCS5udW1fcG9ydHMJCT0gMSwKKwkuYXR0YWNoCQkJPSB0aV9zdGFydHVwLAorCS5zaHV0ZG93bgkJPSB0aV9zaHV0ZG93biwKKwkub3BlbgkJCT0gdGlfb3BlbiwKKwkuY2xvc2UJCQk9IHRpX2Nsb3NlLAorCS53cml0ZQkJCT0gdGlfd3JpdGUsCisJLndyaXRlX3Jvb20JCT0gdGlfd3JpdGVfcm9vbSwKKwkuY2hhcnNfaW5fYnVmZmVyCT0gdGlfY2hhcnNfaW5fYnVmZmVyLAorCS50aHJvdHRsZQkJPSB0aV90aHJvdHRsZSwKKwkudW50aHJvdHRsZQkJPSB0aV91bnRocm90dGxlLAorCS5pb2N0bAkJCT0gdGlfaW9jdGwsCisJLnNldF90ZXJtaW9zCQk9IHRpX3NldF90ZXJtaW9zLAorCS50aW9jbWdldAkJPSB0aV90aW9jbWdldCwKKwkudGlvY21zZXQJCT0gdGlfdGlvY21zZXQsCisJLmJyZWFrX2N0bAkJPSB0aV9icmVhaywKKwkucmVhZF9pbnRfY2FsbGJhY2sJPSB0aV9pbnRlcnJ1cHRfY2FsbGJhY2ssCisJLnJlYWRfYnVsa19jYWxsYmFjawk9IHRpX2J1bGtfaW5fY2FsbGJhY2ssCisJLndyaXRlX2J1bGtfY2FsbGJhY2sJPSB0aV9idWxrX291dF9jYWxsYmFjaywKK307CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kZXZpY2VfdHlwZSB0aV8ycG9ydF9kZXZpY2UgPSB7CisJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKKwkubmFtZQkJCT0gIlRJIFVTQiA1MDUyIDIgcG9ydCBhZGFwdGVyIiwKKwkuaWRfdGFibGUJCT0gdGlfaWRfdGFibGVfNTA1MiwKKwkubnVtX2ludGVycnVwdF9pbgk9IDEsCisJLm51bV9idWxrX2luCQk9IDIsCisJLm51bV9idWxrX291dAkJPSAyLAorCS5udW1fcG9ydHMJCT0gMiwKKwkuYXR0YWNoCQkJPSB0aV9zdGFydHVwLAorCS5zaHV0ZG93bgkJPSB0aV9zaHV0ZG93biwKKwkub3BlbgkJCT0gdGlfb3BlbiwKKwkuY2xvc2UJCQk9IHRpX2Nsb3NlLAorCS53cml0ZQkJCT0gdGlfd3JpdGUsCisJLndyaXRlX3Jvb20JCT0gdGlfd3JpdGVfcm9vbSwKKwkuY2hhcnNfaW5fYnVmZmVyCT0gdGlfY2hhcnNfaW5fYnVmZmVyLAorCS50aHJvdHRsZQkJPSB0aV90aHJvdHRsZSwKKwkudW50aHJvdHRsZQkJPSB0aV91bnRocm90dGxlLAorCS5pb2N0bAkJCT0gdGlfaW9jdGwsCisJLnNldF90ZXJtaW9zCQk9IHRpX3NldF90ZXJtaW9zLAorCS50aW9jbWdldAkJPSB0aV90aW9jbWdldCwKKwkudGlvY21zZXQJCT0gdGlfdGlvY21zZXQsCisJLmJyZWFrX2N0bAkJPSB0aV9icmVhaywKKwkucmVhZF9pbnRfY2FsbGJhY2sJPSB0aV9pbnRlcnJ1cHRfY2FsbGJhY2ssCisJLnJlYWRfYnVsa19jYWxsYmFjawk9IHRpX2J1bGtfaW5fY2FsbGJhY2ssCisJLndyaXRlX2J1bGtfY2FsbGJhY2sJPSB0aV9idWxrX291dF9jYWxsYmFjaywKK307CisKKworLyogTW9kdWxlICovCisKK01PRFVMRV9BVVRIT1IoVElfRFJJVkVSX0FVVEhPUik7CitNT0RVTEVfREVTQ1JJUFRJT04oVElfRFJJVkVSX0RFU0MpOworTU9EVUxFX1ZFUlNJT04oVElfRFJJVkVSX1ZFUlNJT04pOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworCittb2R1bGVfcGFyYW0oZGVidWcsIGJvb2wsIFNfSVJVR08gfCBTX0lXVVNSKTsKK01PRFVMRV9QQVJNX0RFU0MoZGVidWcsICJFbmFibGUgZGVidWdnaW5nLCAwPW5vLCAxPXllcyIpOworCittb2R1bGVfcGFyYW0obG93X2xhdGVuY3ksIGJvb2wsIFNfSVJVR08gfCBTX0lXVVNSKTsKK01PRFVMRV9QQVJNX0RFU0MobG93X2xhdGVuY3ksICJUVFkgbG93X2xhdGVuY3kgZmxhZywgMD1vZmYsIDE9b24sIGRlZmF1bHQgaXMgb2ZmIik7CisKK21vZHVsZV9wYXJhbShjbG9zaW5nX3dhaXQsIGludCwgU19JUlVHTyB8IFNfSVdVU1IpOworTU9EVUxFX1BBUk1fREVTQyhjbG9zaW5nX3dhaXQsICJNYXhpbXVtIHdhaXQgZm9yIGRhdGEgdG8gZHJhaW4gaW4gY2xvc2UsIGluIC4wMSBzZWNzLCBkZWZhdWx0IGlzIDQwMDAiKTsKKworbW9kdWxlX3BhcmFtX2FycmF5KHZlbmRvcl8zNDEwLCB1c2hvcnQsICZ2ZW5kb3JfMzQxMF9jb3VudCwgU19JUlVHTyk7CitNT0RVTEVfUEFSTV9ERVNDKHZlbmRvcl8zNDEwLCAiVmVuZG9yIGlkcyBmb3IgMzQxMCBiYXNlZCBkZXZpY2VzLCAxLTUgc2hvcnQgaW50ZWdlcnMiKTsKK21vZHVsZV9wYXJhbV9hcnJheShwcm9kdWN0XzM0MTAsIHVzaG9ydCwgJnByb2R1Y3RfMzQxMF9jb3VudCwgU19JUlVHTyk7CitNT0RVTEVfUEFSTV9ERVNDKHByb2R1Y3RfMzQxMCwgIlByb2R1Y3QgaWRzIGZvciAzNDEwIGJhc2VkIGRldmljZXMsIDEtNSBzaG9ydCBpbnRlZ2VycyIpOworbW9kdWxlX3BhcmFtX2FycmF5KHZlbmRvcl81MDUyLCB1c2hvcnQsICZ2ZW5kb3JfNTA1Ml9jb3VudCwgU19JUlVHTyk7CitNT0RVTEVfUEFSTV9ERVNDKHZlbmRvcl81MDUyLCAiVmVuZG9yIGlkcyBmb3IgNTA1MiBiYXNlZCBkZXZpY2VzLCAxLTUgc2hvcnQgaW50ZWdlcnMiKTsKK21vZHVsZV9wYXJhbV9hcnJheShwcm9kdWN0XzUwNTIsIHVzaG9ydCwgJnByb2R1Y3RfNTA1Ml9jb3VudCwgU19JUlVHTyk7CitNT0RVTEVfUEFSTV9ERVNDKHByb2R1Y3RfNTA1MiwgIlByb2R1Y3QgaWRzIGZvciA1MDUyIGJhc2VkIGRldmljZXMsIDEtNSBzaG9ydCBpbnRlZ2VycyIpOworCitNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgdGlfaWRfdGFibGVfY29tYmluZWQpOworCisKKy8qIEZ1bmN0aW9ucyAqLworCitzdGF0aWMgaW50IF9faW5pdCB0aV9pbml0KHZvaWQpCit7CisJaW50IGksajsKKwlpbnQgcmV0OworCisKKwkvKiBpbnNlcnQgZXh0cmEgdmVuZG9yIGFuZCBwcm9kdWN0IGlkcyAqLworCWogPSBzaXplb2YodGlfaWRfdGFibGVfMzQxMCkvc2l6ZW9mKHN0cnVjdCB1c2JfZGV2aWNlX2lkKQorCQktIFRJX0VYVFJBX1ZJRF9QSURfQ09VTlQgLSAxOworCWZvciAoaT0wOyBpPG1pbih2ZW5kb3JfMzQxMF9jb3VudCxwcm9kdWN0XzM0MTBfY291bnQpOyBpKyssaisrKSB7CisJCXRpX2lkX3RhYmxlXzM0MTBbal0uaWRWZW5kb3IgPSB2ZW5kb3JfMzQxMFtpXTsKKwkJdGlfaWRfdGFibGVfMzQxMFtqXS5pZFByb2R1Y3QgPSBwcm9kdWN0XzM0MTBbaV07CisJCXRpX2lkX3RhYmxlXzM0MTBbal0ubWF0Y2hfZmxhZ3MgPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRTsKKwl9CisJaiA9IHNpemVvZih0aV9pZF90YWJsZV81MDUyKS9zaXplb2Yoc3RydWN0IHVzYl9kZXZpY2VfaWQpCisJCS0gVElfRVhUUkFfVklEX1BJRF9DT1VOVCAtIDE7CisJZm9yIChpPTA7IGk8bWluKHZlbmRvcl81MDUyX2NvdW50LHByb2R1Y3RfNTA1Ml9jb3VudCk7IGkrKyxqKyspIHsKKwkJdGlfaWRfdGFibGVfNTA1MltqXS5pZFZlbmRvciA9IHZlbmRvcl81MDUyW2ldOworCQl0aV9pZF90YWJsZV81MDUyW2pdLmlkUHJvZHVjdCA9IHByb2R1Y3RfNTA1MltpXTsKKwkJdGlfaWRfdGFibGVfNTA1MltqXS5tYXRjaF9mbGFncyA9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFOworCX0KKworCXJldCA9IHVzYl9zZXJpYWxfcmVnaXN0ZXIoJnRpXzFwb3J0X2RldmljZSk7CisJaWYgKHJldCkKKwkJZ290byBmYWlsZWRfMXBvcnQ7CisJcmV0ID0gdXNiX3NlcmlhbF9yZWdpc3RlcigmdGlfMnBvcnRfZGV2aWNlKTsKKwlpZiAocmV0KQorCQlnb3RvIGZhaWxlZF8ycG9ydDsKKworCXJldCA9IHVzYl9yZWdpc3RlcigmdGlfdXNiX2RyaXZlcik7CisJaWYgKHJldCkKKwkJZ290byBmYWlsZWRfdXNiOworCisJaW5mbyhUSV9EUklWRVJfREVTQyAiICIgVElfRFJJVkVSX1ZFUlNJT04pOworCisJcmV0dXJuIDA7CisKK2ZhaWxlZF91c2I6CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyKCZ0aV8ycG9ydF9kZXZpY2UpOworZmFpbGVkXzJwb3J0OgorCXVzYl9zZXJpYWxfZGVyZWdpc3RlcigmdGlfMXBvcnRfZGV2aWNlKTsKK2ZhaWxlZF8xcG9ydDoKKwlyZXR1cm4gcmV0OworfQorCisKK3N0YXRpYyB2b2lkIF9fZXhpdCB0aV9leGl0KHZvaWQpCit7CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyKCZ0aV8xcG9ydF9kZXZpY2UpOworCXVzYl9zZXJpYWxfZGVyZWdpc3RlcigmdGlfMnBvcnRfZGV2aWNlKTsKKwl1c2JfZGVyZWdpc3RlcigmdGlfdXNiX2RyaXZlcik7Cit9CisKKworbW9kdWxlX2luaXQodGlfaW5pdCk7Cittb2R1bGVfZXhpdCh0aV9leGl0KTsKKworCitzdGF0aWMgaW50IHRpX3N0YXJ0dXAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkKK3sKKwlzdHJ1Y3QgdGlfZGV2aWNlICp0ZGV2OworCXN0cnVjdCB0aV9wb3J0ICp0cG9ydDsKKwlzdHJ1Y3QgdXNiX2RldmljZSAqZGV2ID0gc2VyaWFsLT5kZXY7CisJaW50IHN0YXR1czsKKwlpbnQgaTsKKworCisJZGJnKCIlcyAtIHByb2R1Y3QgMHglNFgsIG51bSBjb25maWd1cmF0aW9ucyAlZCwgY29uZmlndXJhdGlvbiB2YWx1ZSAlZCIsCisJICAgIF9fRlVOQ1RJT05fXywgbGUxNl90b19jcHUoZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCksCisJICAgIGRldi0+ZGVzY3JpcHRvci5iTnVtQ29uZmlndXJhdGlvbnMsCisJICAgIGRldi0+YWN0Y29uZmlnLT5kZXNjLmJDb25maWd1cmF0aW9uVmFsdWUpOworCisJLyogY3JlYXRlIGRldmljZSBzdHJ1Y3R1cmUgKi8KKwl0ZGV2ID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHRpX2RldmljZSksIEdGUF9LRVJORUwpOworCWlmICh0ZGV2ID09IE5VTEwpIHsKKwkJZGV2X2VycigmZGV2LT5kZXYsICIlcyAtIG91dCBvZiBtZW1vcnlcbiIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKwltZW1zZXQodGRldiwgMCwgc2l6ZW9mKHN0cnVjdCB0aV9kZXZpY2UpKTsKKwlzZW1hX2luaXQoJnRkZXYtPnRkX29wZW5fY2xvc2Vfc2VtLCAxKTsKKwl0ZGV2LT50ZF9zZXJpYWwgPSBzZXJpYWw7CisJdXNiX3NldF9zZXJpYWxfZGF0YShzZXJpYWwsIHRkZXYpOworCisJLyogZGV0ZXJtaW5lIGRldmljZSB0eXBlICovCisJaWYgKHVzYl9tYXRjaF9pZChzZXJpYWwtPmludGVyZmFjZSwgdGlfaWRfdGFibGVfMzQxMCkpCisJCXRkZXYtPnRkX2lzXzM0MTAgPSAxOworCWRiZygiJXMgLSBkZXZpY2UgdHlwZSBpcyAlcyIsIF9fRlVOQ1RJT05fXywgdGRldi0+dGRfaXNfMzQxMCA/ICIzNDEwIiA6ICI1MDUyIik7CisKKwkvKiBpZiB3ZSBoYXZlIG9ubHkgMSBjb25maWd1cmF0aW9uLCBkb3dubG9hZCBmaXJtd2FyZSAqLworCWlmIChkZXYtPmRlc2NyaXB0b3IuYk51bUNvbmZpZ3VyYXRpb25zID09IDEpIHsKKworCQlpZiAodGRldi0+dGRfaXNfMzQxMCkKKwkJCXN0YXR1cyA9IHRpX2Rvd25sb2FkX2Zpcm13YXJlKHRkZXYsIHRpX2Z3XzM0MTAsCisJCQkJc2l6ZW9mKHRpX2Z3XzM0MTApKTsKKwkJZWxzZQorCQkJc3RhdHVzID0gdGlfZG93bmxvYWRfZmlybXdhcmUodGRldiwgdGlfZndfNTA1MiwKKwkJCQlzaXplb2YodGlfZndfNTA1MikpOworCQlpZiAoc3RhdHVzKQorCQkJZ290byBmcmVlX3RkZXY7CisKKwkJLyogMzQxMCBtdXN0IGJlIHJlc2V0LCA1MDUyIHJlc2V0cyBpdHNlbGYgKi8KKwkJaWYgKHRkZXYtPnRkX2lzXzM0MTApIHsKKwkJCW1zbGVlcF9pbnRlcnJ1cHRpYmxlKDEwMCk7CisJCQl1c2JfcmVzZXRfZGV2aWNlKGRldik7CisJCX0KKworCQlzdGF0dXMgPSAtRU5PREVWOworCQlnb3RvIGZyZWVfdGRldjsKKwl9IAorCisJLyogdGhlIHNlY29uZCBjb25maWd1cmF0aW9uIG11c3QgYmUgc2V0IChpbiBzeXNmcyBieSBob3RwbHVnIHNjcmlwdCkgKi8KKwlpZiAoZGV2LT5hY3Rjb25maWctPmRlc2MuYkNvbmZpZ3VyYXRpb25WYWx1ZSA9PSBUSV9CT09UX0NPTkZJRykgeworCQlzdGF0dXMgPSAtRU5PREVWOworCQlnb3RvIGZyZWVfdGRldjsKKwl9CisKKwkvKiBzZXQgdXAgcG9ydCBzdHJ1Y3R1cmVzICovCisJZm9yIChpID0gMDsgaSA8IHNlcmlhbC0+bnVtX3BvcnRzOyArK2kpIHsKKwkJdHBvcnQgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgdGlfcG9ydCksIEdGUF9LRVJORUwpOworCQlpZiAodHBvcnQgPT0gTlVMTCkgeworCQkJZGV2X2VycigmZGV2LT5kZXYsICIlcyAtIG91dCBvZiBtZW1vcnlcbiIsIF9fRlVOQ1RJT05fXyk7CisJCQlzdGF0dXMgPSAtRU5PTUVNOworCQkJZ290byBmcmVlX3Rwb3J0czsKKwkJfQorCQltZW1zZXQodHBvcnQsIDAsIHNpemVvZihzdHJ1Y3QgdGlfcG9ydCkpOworCQlzcGluX2xvY2tfaW5pdCgmdHBvcnQtPnRwX2xvY2spOworCQl0cG9ydC0+dHBfdWFydF9iYXNlX2FkZHIgPSAoaSA9PSAwID8gVElfVUFSVDFfQkFTRV9BRERSIDogVElfVUFSVDJfQkFTRV9BRERSKTsKKwkJdHBvcnQtPnRwX2ZsYWdzID0gbG93X2xhdGVuY3kgPyBBU1lOQ19MT1dfTEFURU5DWSA6IDA7CisJCXRwb3J0LT50cF9jbG9zaW5nX3dhaXQgPSBjbG9zaW5nX3dhaXQ7CisJCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnRwb3J0LT50cF9tc3Jfd2FpdCk7CisJCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnRwb3J0LT50cF93cml0ZV93YWl0KTsKKwkJdHBvcnQtPnRwX3dyaXRlX2J1ZiA9IHRpX2J1Zl9hbGxvYygpOworCQlpZiAodHBvcnQtPnRwX3dyaXRlX2J1ZiA9PSBOVUxMKSB7CisJCQlkZXZfZXJyKCZkZXYtPmRldiwgIiVzIC0gb3V0IG9mIG1lbW9yeVxuIiwgX19GVU5DVElPTl9fKTsKKwkJCWtmcmVlKHRwb3J0KTsKKwkJCXN0YXR1cyA9IC1FTk9NRU07CisJCQlnb3RvIGZyZWVfdHBvcnRzOworCQl9CisJCXRwb3J0LT50cF9wb3J0ID0gc2VyaWFsLT5wb3J0W2ldOworCQl0cG9ydC0+dHBfdGRldiA9IHRkZXY7CisJCXVzYl9zZXRfc2VyaWFsX3BvcnRfZGF0YShzZXJpYWwtPnBvcnRbaV0sIHRwb3J0KTsKKwkJdHBvcnQtPnRwX3VhcnRfbW9kZSA9IDA7CS8qIGRlZmF1bHQgaXMgUlMyMzIgKi8KKwl9CisJCisJcmV0dXJuIDA7CisKK2ZyZWVfdHBvcnRzOgorCWZvciAoLS1pOyBpPj0wOyAtLWkpIHsKKwkJdHBvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEoc2VyaWFsLT5wb3J0W2ldKTsKKwkJdGlfYnVmX2ZyZWUodHBvcnQtPnRwX3dyaXRlX2J1Zik7CisJCWtmcmVlKHRwb3J0KTsKKwkJdXNiX3NldF9zZXJpYWxfcG9ydF9kYXRhKHNlcmlhbC0+cG9ydFtpXSwgTlVMTCk7CisJfQorZnJlZV90ZGV2OgorCWtmcmVlKHRkZXYpOworCXVzYl9zZXRfc2VyaWFsX2RhdGEoc2VyaWFsLCBOVUxMKTsKKwlyZXR1cm4gc3RhdHVzOworfQorCisKK3N0YXRpYyB2b2lkIHRpX3NodXRkb3duKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7CisJaW50IGk7CisJc3RydWN0IHRpX2RldmljZSAqdGRldiA9IHVzYl9nZXRfc2VyaWFsX2RhdGEoc2VyaWFsKTsKKwlzdHJ1Y3QgdGlfcG9ydCAqdHBvcnQ7CisKKwlkYmcoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCWZvciAoaT0wOyBpIDwgc2VyaWFsLT5udW1fcG9ydHM7ICsraSkgeworCQl0cG9ydCA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShzZXJpYWwtPnBvcnRbaV0pOworCQlpZiAodHBvcnQpIHsKKwkJCXRpX2J1Zl9mcmVlKHRwb3J0LT50cF93cml0ZV9idWYpOworCQkJa2ZyZWUodHBvcnQpOworCQkJdXNiX3NldF9zZXJpYWxfcG9ydF9kYXRhKHNlcmlhbC0+cG9ydFtpXSwgTlVMTCk7CisJCX0KKwl9CisKKwlpZiAodGRldikKKwkJa2ZyZWUodGRldik7CisJdXNiX3NldF9zZXJpYWxfZGF0YShzZXJpYWwsIE5VTEwpOworfQorCisKK3N0YXRpYyBpbnQgdGlfb3BlbihzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlzdHJ1Y3QgdGlfcG9ydCAqdHBvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJc3RydWN0IHRpX2RldmljZSAqdGRldjsKKwlzdHJ1Y3QgdXNiX2RldmljZSAqZGV2OworCXN0cnVjdCB1cmIgKnVyYjsKKwlpbnQgcG9ydF9udW1iZXI7CisJaW50IHN0YXR1czsKKwlfX3UxNiBvcGVuX3NldHRpbmdzID0gKF9fdTgpKFRJX1BJUEVfTU9ERV9DT05USU5PVVMgfCAKKwkJCSAgICAgVElfUElQRV9USU1FT1VUX0VOQUJMRSB8IAorCQkJICAgICAoVElfVFJBTlNGRVJfVElNRU9VVCA8PCAyKSk7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCWlmICh0cG9ydCA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWRldiA9IHBvcnQtPnNlcmlhbC0+ZGV2OworCXRkZXYgPSB0cG9ydC0+dHBfdGRldjsKKworCS8qIG9ubHkgb25lIG9wZW4gb24gYW55IHBvcnQgb24gYSBkZXZpY2UgYXQgYSB0aW1lICovCisJaWYgKGRvd25faW50ZXJydXB0aWJsZSgmdGRldi0+dGRfb3Blbl9jbG9zZV9zZW0pKQorCQlyZXR1cm4gLUVSRVNUQVJUU1lTOworCisJaWYgKHBvcnQtPnR0eSkKKwkJcG9ydC0+dHR5LT5sb3dfbGF0ZW5jeSA9IAorCQkJKHRwb3J0LT50cF9mbGFncyAmIEFTWU5DX0xPV19MQVRFTkNZKSA/IDEgOiAwOworCisJcG9ydF9udW1iZXIgPSBwb3J0LT5udW1iZXIgLSBwb3J0LT5zZXJpYWwtPm1pbm9yOworCisJbWVtc2V0KCYodHBvcnQtPnRwX2ljb3VudCksIDB4MDAsIHNpemVvZih0cG9ydC0+dHBfaWNvdW50KSk7CisKKwl0cG9ydC0+dHBfbXNyID0gMDsKKwl0cG9ydC0+dHBfc2hhZG93X21jciB8PSAoVElfTUNSX1JUUyB8IFRJX01DUl9EVFIpOworCisJLyogc3RhcnQgaW50ZXJydXB0IHVyYiB0aGUgZmlyc3QgdGltZSBhIHBvcnQgaXMgb3BlbmVkIG9uIHRoaXMgZGV2aWNlICovCisJaWYgKHRkZXYtPnRkX29wZW5fcG9ydF9jb3VudCA9PSAwKSB7CisJCWRiZygiJXMgLSBzdGFydCBpbnRlcnJ1cHQgaW4gdXJiIiwgX19GVU5DVElPTl9fKTsKKwkJdXJiID0gdGRldi0+dGRfc2VyaWFsLT5wb3J0WzBdLT5pbnRlcnJ1cHRfaW5fdXJiOworCQlpZiAoIXVyYikgeworCQkJZGV2X2VycigmcG9ydC0+ZGV2LCAiJXMgLSBubyBpbnRlcnJ1cHQgdXJiXG4iLCBfX0ZVTkNUSU9OX18pOworCQkJc3RhdHVzID0gLUVJTlZBTDsKKwkJCWdvdG8gdXBfc2VtOworCQl9CisJCXVyYi0+Y29tcGxldGUgPSB0aV9pbnRlcnJ1cHRfY2FsbGJhY2s7CisJCXVyYi0+Y29udGV4dCA9IHRkZXY7CisJCXVyYi0+ZGV2ID0gZGV2OworCQlzdGF0dXMgPSB1c2Jfc3VibWl0X3VyYih1cmIsIEdGUF9LRVJORUwpOworCQlpZiAoc3RhdHVzKSB7CisJCQlkZXZfZXJyKCZwb3J0LT5kZXYsICIlcyAtIHN1Ym1pdCBpbnRlcnJ1cHQgdXJiIGZhaWxlZCwgJWRcbiIsIF9fRlVOQ1RJT05fXywgc3RhdHVzKTsKKwkJCWdvdG8gdXBfc2VtOworCQl9CisJfQorCisJdGlfc2V0X3Rlcm1pb3MocG9ydCwgTlVMTCk7CisKKwlkYmcoIiVzIC0gc2VuZGluZyBUSV9PUEVOX1BPUlQiLCBfX0ZVTkNUSU9OX18pOworCXN0YXR1cyA9IHRpX2NvbW1hbmRfb3V0X3N5bmModGRldiwgVElfT1BFTl9QT1JULAorCQkoX191OCkoVElfVUFSVDFfUE9SVCArIHBvcnRfbnVtYmVyKSwgb3Blbl9zZXR0aW5ncywgTlVMTCwgMCk7CisJaWYgKHN0YXR1cykgeworCQlkZXZfZXJyKCZwb3J0LT5kZXYsICIlcyAtIGNhbm5vdCBzZW5kIG9wZW4gY29tbWFuZCwgJWRcbiIsIF9fRlVOQ1RJT05fXywgc3RhdHVzKTsKKwkJZ290byB1bmxpbmtfaW50X3VyYjsKKwl9CisKKwlkYmcoIiVzIC0gc2VuZGluZyBUSV9TVEFSVF9QT1JUIiwgX19GVU5DVElPTl9fKTsKKwlzdGF0dXMgPSB0aV9jb21tYW5kX291dF9zeW5jKHRkZXYsIFRJX1NUQVJUX1BPUlQsCisJCShfX3U4KShUSV9VQVJUMV9QT1JUICsgcG9ydF9udW1iZXIpLCAwLCBOVUxMLCAwKTsKKwlpZiAoc3RhdHVzKSB7CisJCWRldl9lcnIoJnBvcnQtPmRldiwgIiVzIC0gY2Fubm90IHNlbmQgc3RhcnQgY29tbWFuZCwgJWRcbiIsIF9fRlVOQ1RJT05fXywgc3RhdHVzKTsKKwkJZ290byB1bmxpbmtfaW50X3VyYjsKKwl9CisKKwlkYmcoIiVzIC0gc2VuZGluZyBUSV9QVVJHRV9QT1JUIiwgX19GVU5DVElPTl9fKTsKKwlzdGF0dXMgPSB0aV9jb21tYW5kX291dF9zeW5jKHRkZXYsIFRJX1BVUkdFX1BPUlQsCisJCShfX3U4KShUSV9VQVJUMV9QT1JUICsgcG9ydF9udW1iZXIpLCBUSV9QVVJHRV9JTlBVVCwgTlVMTCwgMCk7CisJaWYgKHN0YXR1cykgeworCQlkZXZfZXJyKCZwb3J0LT5kZXYsICIlcyAtIGNhbm5vdCBjbGVhciBpbnB1dCBidWZmZXJzLCAlZFxuIiwgX19GVU5DVElPTl9fLCBzdGF0dXMpOworCQlnb3RvIHVubGlua19pbnRfdXJiOworCX0KKwlzdGF0dXMgPSB0aV9jb21tYW5kX291dF9zeW5jKHRkZXYsIFRJX1BVUkdFX1BPUlQsCisJCShfX3U4KShUSV9VQVJUMV9QT1JUICsgcG9ydF9udW1iZXIpLCBUSV9QVVJHRV9PVVRQVVQsIE5VTEwsIDApOworCWlmIChzdGF0dXMpIHsKKwkJZGV2X2VycigmcG9ydC0+ZGV2LCAiJXMgLSBjYW5ub3QgY2xlYXIgb3V0cHV0IGJ1ZmZlcnMsICVkXG4iLCBfX0ZVTkNUSU9OX18sIHN0YXR1cyk7CisJCWdvdG8gdW5saW5rX2ludF91cmI7CisJfQorCisJLyogcmVzZXQgdGhlIGRhdGEgdG9nZ2xlIG9uIHRoZSBidWxrIGVuZHBvaW50cyB0byB3b3JrIGFyb3VuZCBidWcgaW4KKwkgKiBob3N0IGNvbnRyb2xsZXJzIHdoZXJlIHRoaW5ncyBnZXQgb3V0IG9mIHN5bmMgc29tZSB0aW1lcyAqLworCXVzYl9jbGVhcl9oYWx0KGRldiwgcG9ydC0+d3JpdGVfdXJiLT5waXBlKTsKKwl1c2JfY2xlYXJfaGFsdChkZXYsIHBvcnQtPnJlYWRfdXJiLT5waXBlKTsKKworCXRpX3NldF90ZXJtaW9zKHBvcnQsIE5VTEwpOworCisJZGJnKCIlcyAtIHNlbmRpbmcgVElfT1BFTl9QT1JUICgyKSIsIF9fRlVOQ1RJT05fXyk7CisJc3RhdHVzID0gdGlfY29tbWFuZF9vdXRfc3luYyh0ZGV2LCBUSV9PUEVOX1BPUlQsCisJCShfX3U4KShUSV9VQVJUMV9QT1JUICsgcG9ydF9udW1iZXIpLCBvcGVuX3NldHRpbmdzLCBOVUxMLCAwKTsKKwlpZiAoc3RhdHVzKSB7CisJCWRldl9lcnIoJnBvcnQtPmRldiwgIiVzIC0gY2Fubm90IHNlbmQgb3BlbiBjb21tYW5kICgyKSwgJWRcbiIsIF9fRlVOQ1RJT05fXywgc3RhdHVzKTsKKwkJZ290byB1bmxpbmtfaW50X3VyYjsKKwl9CisKKwlkYmcoIiVzIC0gc2VuZGluZyBUSV9TVEFSVF9QT1JUICgyKSIsIF9fRlVOQ1RJT05fXyk7CisJc3RhdHVzID0gdGlfY29tbWFuZF9vdXRfc3luYyh0ZGV2LCBUSV9TVEFSVF9QT1JULAorCQkoX191OCkoVElfVUFSVDFfUE9SVCArIHBvcnRfbnVtYmVyKSwgMCwgTlVMTCwgMCk7CisJaWYgKHN0YXR1cykgeworCQlkZXZfZXJyKCZwb3J0LT5kZXYsICIlcyAtIGNhbm5vdCBzZW5kIHN0YXJ0IGNvbW1hbmQgKDIpLCAlZFxuIiwgX19GVU5DVElPTl9fLCBzdGF0dXMpOworCQlnb3RvIHVubGlua19pbnRfdXJiOworCX0KKworCS8qIHN0YXJ0IHJlYWQgdXJiICovCisJZGJnKCIlcyAtIHN0YXJ0IHJlYWQgdXJiIiwgX19GVU5DVElPTl9fKTsKKwl1cmIgPSBwb3J0LT5yZWFkX3VyYjsKKwlpZiAoIXVyYikgeworCQlkZXZfZXJyKCZwb3J0LT5kZXYsICIlcyAtIG5vIHJlYWQgdXJiXG4iLCBfX0ZVTkNUSU9OX18pOworCQlzdGF0dXMgPSAtRUlOVkFMOworCQlnb3RvIHVubGlua19pbnRfdXJiOworCX0KKwl0cG9ydC0+dHBfcmVhZF91cmJfc3RhdGUgPSBUSV9SRUFEX1VSQl9SVU5OSU5HOworCXVyYi0+Y29tcGxldGUgPSB0aV9idWxrX2luX2NhbGxiYWNrOworCXVyYi0+Y29udGV4dCA9IHRwb3J0OworCXVyYi0+ZGV2ID0gZGV2OworCXN0YXR1cyA9IHVzYl9zdWJtaXRfdXJiKHVyYiwgR0ZQX0tFUk5FTCk7CisJaWYgKHN0YXR1cykgeworCQlkZXZfZXJyKCZwb3J0LT5kZXYsICIlcyAtIHN1Ym1pdCByZWFkIHVyYiBmYWlsZWQsICVkXG4iLCBfX0ZVTkNUSU9OX18sIHN0YXR1cyk7CisJCWdvdG8gdW5saW5rX2ludF91cmI7CisJfQorCisJdHBvcnQtPnRwX2lzX29wZW4gPSAxOworCSsrdGRldi0+dGRfb3Blbl9wb3J0X2NvdW50OworCisJZ290byB1cF9zZW07CisKK3VubGlua19pbnRfdXJiOgorCWlmICh0ZGV2LT50ZF9vcGVuX3BvcnRfY291bnQgPT0gMCkKKwkJdXNiX2tpbGxfdXJiKHBvcnQtPnNlcmlhbC0+cG9ydFswXS0+aW50ZXJydXB0X2luX3VyYik7Cit1cF9zZW06CisJdXAoJnRkZXYtPnRkX29wZW5fY2xvc2Vfc2VtKTsKKwlkYmcoIiVzIC0gZXhpdCAlZCIsIF9fRlVOQ1RJT05fXywgc3RhdHVzKTsKKwlyZXR1cm4gc3RhdHVzOworfQorCisKK3N0YXRpYyB2b2lkIHRpX2Nsb3NlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXN0cnVjdCB0aV9kZXZpY2UgKnRkZXY7CisJc3RydWN0IHRpX3BvcnQgKnRwb3J0OworCWludCBwb3J0X251bWJlcjsKKwlpbnQgc3RhdHVzOworCWludCBkb191cDsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCQkJIAorCXRkZXYgPSB1c2JfZ2V0X3NlcmlhbF9kYXRhKHBvcnQtPnNlcmlhbCk7CisJdHBvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJaWYgKHRkZXYgPT0gTlVMTCB8fCB0cG9ydCA9PSBOVUxMKQorCQlyZXR1cm47CisKKwl0cG9ydC0+dHBfaXNfb3BlbiA9IDA7CisKKwl0aV9kcmFpbih0cG9ydCwgKHRwb3J0LT50cF9jbG9zaW5nX3dhaXQqSFopLzEwMCwgMSk7CisKKwl1c2Jfa2lsbF91cmIocG9ydC0+cmVhZF91cmIpOworCXVzYl9raWxsX3VyYihwb3J0LT53cml0ZV91cmIpOworCXRwb3J0LT50cF93cml0ZV91cmJfaW5fdXNlID0gMDsKKworCXBvcnRfbnVtYmVyID0gcG9ydC0+bnVtYmVyIC0gcG9ydC0+c2VyaWFsLT5taW5vcjsKKworCWRiZygiJXMgLSBzZW5kaW5nIFRJX0NMT1NFX1BPUlQiLCBfX0ZVTkNUSU9OX18pOworCXN0YXR1cyA9IHRpX2NvbW1hbmRfb3V0X3N5bmModGRldiwgVElfQ0xPU0VfUE9SVCwKKwkJICAgICAoX191OCkoVElfVUFSVDFfUE9SVCArIHBvcnRfbnVtYmVyKSwgMCwgTlVMTCwgMCk7CisJaWYgKHN0YXR1cykKKwkJZGV2X2VycigmcG9ydC0+ZGV2LCAiJXMgLSBjYW5ub3Qgc2VuZCBjbG9zZSBwb3J0IGNvbW1hbmQsICVkXG4iICwgX19GVU5DVElPTl9fLCBzdGF0dXMpOworCisJLyogaWYgZG93biBpcyBpbnRlcnJ1cHRlZCwgY29udGludWUgYW55d2F5ICovCisJZG9fdXAgPSAhZG93bl9pbnRlcnJ1cHRpYmxlKCZ0ZGV2LT50ZF9vcGVuX2Nsb3NlX3NlbSk7CisJLS10cG9ydC0+dHBfdGRldi0+dGRfb3Blbl9wb3J0X2NvdW50OworCWlmICh0cG9ydC0+dHBfdGRldi0+dGRfb3Blbl9wb3J0X2NvdW50IDw9IDApIHsKKwkJLyogbGFzdCBwb3J0IGlzIGNsb3NlZCwgc2h1dCBkb3duIGludGVycnVwdCB1cmIgKi8KKwkJdXNiX2tpbGxfdXJiKHBvcnQtPnNlcmlhbC0+cG9ydFswXS0+aW50ZXJydXB0X2luX3VyYik7CisJCXRwb3J0LT50cF90ZGV2LT50ZF9vcGVuX3BvcnRfY291bnQgPSAwOworCX0KKwlpZiAoZG9fdXApCisJCXVwKCZ0ZGV2LT50ZF9vcGVuX2Nsb3NlX3NlbSk7CisKKwlkYmcoIiVzIC0gZXhpdCIsIF9fRlVOQ1RJT05fXyk7Cit9CisKKworc3RhdGljIGludCB0aV93cml0ZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhLAorCWludCBjb3VudCkKK3sKKwlzdHJ1Y3QgdGlfcG9ydCAqdHBvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJaWYgKGNvdW50ID09IDApIHsKKwkJZGJnKCIlcyAtIHdyaXRlIHJlcXVlc3Qgb2YgMCBieXRlcyIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybiAwOworCX0KKworCWlmICh0cG9ydCA9PSBOVUxMIHx8ICF0cG9ydC0+dHBfaXNfb3BlbikKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmdHBvcnQtPnRwX2xvY2ssIGZsYWdzKTsKKwljb3VudCA9IHRpX2J1Zl9wdXQodHBvcnQtPnRwX3dyaXRlX2J1ZiwgZGF0YSwgY291bnQpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnRwb3J0LT50cF9sb2NrLCBmbGFncyk7CisKKwl0aV9zZW5kKHRwb3J0KTsKKworCXJldHVybiBjb3VudDsKK30KKworCitzdGF0aWMgaW50IHRpX3dyaXRlX3Jvb20oc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKK3sKKwlzdHJ1Y3QgdGlfcG9ydCAqdHBvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJaW50IHJvb20gPSAwOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCWlmICh0cG9ydCA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT0RFVjsKKwkKKwlzcGluX2xvY2tfaXJxc2F2ZSgmdHBvcnQtPnRwX2xvY2ssIGZsYWdzKTsKKwlyb29tID0gdGlfYnVmX3NwYWNlX2F2YWlsKHRwb3J0LT50cF93cml0ZV9idWYpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnRwb3J0LT50cF9sb2NrLCBmbGFncyk7CisKKwlkYmcoIiVzIC0gcmV0dXJucyAlZCIsIF9fRlVOQ1RJT05fXywgcm9vbSk7CisJcmV0dXJuIHJvb207Cit9CisKKworc3RhdGljIGludCB0aV9jaGFyc19pbl9idWZmZXIoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKK3sKKwlzdHJ1Y3QgdGlfcG9ydCAqdHBvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJaW50IGNoYXJzID0gMDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAodHBvcnQgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmdHBvcnQtPnRwX2xvY2ssIGZsYWdzKTsKKwljaGFycyA9IHRpX2J1Zl9kYXRhX2F2YWlsKHRwb3J0LT50cF93cml0ZV9idWYpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnRwb3J0LT50cF9sb2NrLCBmbGFncyk7CisKKwlkYmcoIiVzIC0gcmV0dXJucyAlZCIsIF9fRlVOQ1RJT05fXywgY2hhcnMpOworCXJldHVybiBjaGFyczsKK30KKworCitzdGF0aWMgdm9pZCB0aV90aHJvdHRsZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCB0aV9wb3J0ICp0cG9ydCA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5OworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAodHBvcnQgPT0gTlVMTCkKKwkJcmV0dXJuOworCisJdHR5ID0gcG9ydC0+dHR5OworCWlmICghdHR5KSB7CisJCWRiZygiJXMgLSBubyB0dHkiLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm47CisJfQorCisJaWYgKElfSVhPRkYodHR5KSB8fCBDX0NSVFNDVFModHR5KSkKKwkJdGlfc3RvcF9yZWFkKHRwb3J0LCB0dHkpOworCit9CisKKworc3RhdGljIHZvaWQgdGlfdW50aHJvdHRsZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCB0aV9wb3J0ICp0cG9ydCA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5OworCWludCBzdGF0dXM7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCWlmICh0cG9ydCA9PSBOVUxMKQorCQlyZXR1cm47CisKKwl0dHkgPSBwb3J0LT50dHk7CisJaWYgKCF0dHkpIHsKKwkJZGJnKCIlcyAtIG5vIHR0eSIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybjsKKwl9CisKKwlpZiAoSV9JWE9GRih0dHkpIHx8IENfQ1JUU0NUUyh0dHkpKSB7CisJCXN0YXR1cyA9IHRpX3Jlc3RhcnRfcmVhZCh0cG9ydCwgdHR5KTsKKwkJaWYgKHN0YXR1cykKKwkJCWRldl9lcnIoJnBvcnQtPmRldiwgIiVzIC0gY2Fubm90IHJlc3RhcnQgcmVhZCwgJWRcbiIsIF9fRlVOQ1RJT05fXywgc3RhdHVzKTsKKwl9Cit9CisKKworc3RhdGljIGludCB0aV9pb2N0bChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlsZSwKKwl1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKK3sKKwlzdHJ1Y3QgdGlfcG9ydCAqdHBvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJc3RydWN0IGFzeW5jX2ljb3VudCBjbm93OworCXN0cnVjdCBhc3luY19pY291bnQgY3ByZXY7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCwgY21kID0gMHglMDRYIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIsIGNtZCk7CisKKwlpZiAodHBvcnQgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlzd2l0Y2ggKGNtZCkgeworCQljYXNlIFRJT0NHU0VSSUFMOgorCQkJZGJnKCIlcyAtICglZCkgVElPQ0dTRVJJQUwiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisJCQlyZXR1cm4gdGlfZ2V0X3NlcmlhbF9pbmZvKHRwb3J0LCAoc3RydWN0IHNlcmlhbF9zdHJ1Y3QgX191c2VyICopYXJnKTsKKwkJCWJyZWFrOworCisJCWNhc2UgVElPQ1NTRVJJQUw6CisJCQlkYmcoIiVzIC0gKCVkKSBUSU9DU1NFUklBTCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKwkJCXJldHVybiB0aV9zZXRfc2VyaWFsX2luZm8odHBvcnQsIChzdHJ1Y3Qgc2VyaWFsX3N0cnVjdCBfX3VzZXIgKilhcmcpOworCQkJYnJlYWs7CisKKwkJY2FzZSBUSU9DTUlXQUlUOgorCQkJZGJnKCIlcyAtICglZCkgVElPQ01JV0FJVCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKwkJCWNwcmV2ID0gdHBvcnQtPnRwX2ljb3VudDsKKwkJCXdoaWxlICgxKSB7CisJCQkJaW50ZXJydXB0aWJsZV9zbGVlcF9vbigmdHBvcnQtPnRwX21zcl93YWl0KTsKKwkJCQlpZiAoc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpCisJCQkJCXJldHVybiAtRVJFU1RBUlRTWVM7CisJCQkJY25vdyA9IHRwb3J0LT50cF9pY291bnQ7CisJCQkJaWYgKGNub3cucm5nID09IGNwcmV2LnJuZyAmJiBjbm93LmRzciA9PSBjcHJldi5kc3IgJiYKKwkJCQkgICAgY25vdy5kY2QgPT0gY3ByZXYuZGNkICYmIGNub3cuY3RzID09IGNwcmV2LmN0cykKKwkJCQkJcmV0dXJuIC1FSU87IC8qIG5vIGNoYW5nZSA9PiBlcnJvciAqLworCQkJCWlmICgoKGFyZyAmIFRJT0NNX1JORykgJiYgKGNub3cucm5nICE9IGNwcmV2LnJuZykpIHx8CisJCQkJICAgICgoYXJnICYgVElPQ01fRFNSKSAmJiAoY25vdy5kc3IgIT0gY3ByZXYuZHNyKSkgfHwKKwkJCQkgICAgKChhcmcgJiBUSU9DTV9DRCkgICYmIChjbm93LmRjZCAhPSBjcHJldi5kY2QpKSB8fAorCQkJCSAgICAoKGFyZyAmIFRJT0NNX0NUUykgJiYgKGNub3cuY3RzICE9IGNwcmV2LmN0cykpICkgeworCQkJCQlyZXR1cm4gMDsKKwkJCQl9CisJCQkJY3ByZXYgPSBjbm93OworCQkJfQorCQkJYnJlYWs7CisKKwkJY2FzZSBUSU9DR0lDT1VOVDoKKwkJCWRiZygiJXMgLSAoJWQpIFRJT0NHSUNPVU5UIFJYPSVkLCBUWD0lZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyLCB0cG9ydC0+dHBfaWNvdW50LnJ4LCB0cG9ydC0+dHBfaWNvdW50LnR4KTsKKwkJCWlmIChjb3B5X3RvX3VzZXIoKHZvaWQgX191c2VyICopYXJnLCAmdHBvcnQtPnRwX2ljb3VudCwgc2l6ZW9mKHRwb3J0LT50cF9pY291bnQpKSkKKwkJCQlyZXR1cm4gLUVGQVVMVDsKKwkJCXJldHVybiAwOworCX0KKworCXJldHVybiAtRU5PSU9DVExDTUQ7Cit9CisKKworc3RhdGljIHZvaWQgdGlfc2V0X3Rlcm1pb3Moc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwKKwlzdHJ1Y3QgdGVybWlvcyAqb2xkX3Rlcm1pb3MpCit7CisJc3RydWN0IHRpX3BvcnQgKnRwb3J0ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXN0cnVjdCB0dHlfc3RydWN0ICp0dHkgPSBwb3J0LT50dHk7CisJc3RydWN0IHRpX3VhcnRfY29uZmlnICpjb25maWc7CisJdGNmbGFnX3QgY2ZsYWcsaWZsYWc7CisJaW50IGJhdWQ7CisJaW50IHN0YXR1czsKKwlpbnQgcG9ydF9udW1iZXIgPSBwb3J0LT5udW1iZXIgLSBwb3J0LT5zZXJpYWwtPm1pbm9yOworCXVuc2lnbmVkIGludCBtY3I7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCWlmICghdHR5IHx8ICF0dHktPnRlcm1pb3MpIHsKKwkJZGJnKCIlcyAtIG5vIHR0eSBvciB0ZXJtaW9zIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuOworCX0KKworCWNmbGFnID0gdHR5LT50ZXJtaW9zLT5jX2NmbGFnOworCWlmbGFnID0gdHR5LT50ZXJtaW9zLT5jX2lmbGFnOworCisJaWYgKG9sZF90ZXJtaW9zICYmIGNmbGFnID09IG9sZF90ZXJtaW9zLT5jX2NmbGFnCisJJiYgaWZsYWcgPT0gb2xkX3Rlcm1pb3MtPmNfaWZsYWcpIHsKKwkJZGJnKCIlcyAtIG5vdGhpbmcgdG8gY2hhbmdlIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuOworCX0KKworCWRiZygiJXMgLSBjbGZhZyAlMDh4LCBpZmxhZyAlMDh4IiwgX19GVU5DVElPTl9fLCBjZmxhZywgaWZsYWcpOworCisJaWYgKG9sZF90ZXJtaW9zKQorCQlkYmcoIiVzIC0gb2xkIGNsZmFnICUwOHgsIG9sZCBpZmxhZyAlMDh4IiwgX19GVU5DVElPTl9fLCBvbGRfdGVybWlvcy0+Y19jZmxhZywgb2xkX3Rlcm1pb3MtPmNfaWZsYWcpOworCisJaWYgKHRwb3J0ID09IE5VTEwpCisJCXJldHVybjsKKworCWNvbmZpZyA9IGttYWxsb2Moc2l6ZW9mKCpjb25maWcpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWNvbmZpZykgeworCQlkZXZfZXJyKCZwb3J0LT5kZXYsICIlcyAtIG91dCBvZiBtZW1vcnlcbiIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybjsKKwl9CisKKwljb25maWctPndGbGFncyA9IDA7CisKKwkvKiB0aGVzZSBmbGFncyBtdXN0IGJlIHNldCAqLworCWNvbmZpZy0+d0ZsYWdzIHw9IFRJX1VBUlRfRU5BQkxFX01TX0lOVFM7CisJY29uZmlnLT53RmxhZ3MgfD0gVElfVUFSVF9FTkFCTEVfQVVUT19TVEFSVF9ETUE7CisJY29uZmlnLT5iVWFydE1vZGUgPSAoX191OCkodHBvcnQtPnRwX3VhcnRfbW9kZSk7CisKKwlzd2l0Y2ggKGNmbGFnICYgQ1NJWkUpIHsKKwkJY2FzZSBDUzU6CisJCQkgICAgY29uZmlnLT5iRGF0YUJpdHMgPSBUSV9VQVJUXzVfREFUQV9CSVRTOworCQkJICAgIGJyZWFrOworCQljYXNlIENTNjoKKwkJCSAgICBjb25maWctPmJEYXRhQml0cyA9IFRJX1VBUlRfNl9EQVRBX0JJVFM7CisJCQkgICAgYnJlYWs7CisJCWNhc2UgQ1M3OgorCQkJICAgIGNvbmZpZy0+YkRhdGFCaXRzID0gVElfVUFSVF83X0RBVEFfQklUUzsKKwkJCSAgICBicmVhazsKKwkJZGVmYXVsdDoKKwkJY2FzZSBDUzg6CisJCQkgICAgY29uZmlnLT5iRGF0YUJpdHMgPSBUSV9VQVJUXzhfREFUQV9CSVRTOworCQkJICAgIGJyZWFrOworCX0KKworCWlmIChjZmxhZyAmIFBBUkVOQikgeworCQlpZiAoY2ZsYWcgJiBQQVJPREQpIHsKKwkJCWNvbmZpZy0+d0ZsYWdzIHw9IFRJX1VBUlRfRU5BQkxFX1BBUklUWV9DSEVDS0lORzsKKwkJCWNvbmZpZy0+YlBhcml0eSA9IFRJX1VBUlRfT0REX1BBUklUWTsKKwkJfSBlbHNlIHsKKwkJCWNvbmZpZy0+d0ZsYWdzIHw9IFRJX1VBUlRfRU5BQkxFX1BBUklUWV9DSEVDS0lORzsKKwkJCWNvbmZpZy0+YlBhcml0eSA9IFRJX1VBUlRfRVZFTl9QQVJJVFk7CisJCX0KKwl9IGVsc2UgeworCQljb25maWctPndGbGFncyAmPSB+VElfVUFSVF9FTkFCTEVfUEFSSVRZX0NIRUNLSU5HOworCQljb25maWctPmJQYXJpdHkgPSBUSV9VQVJUX05PX1BBUklUWTsgCQorCX0KKworCWlmIChjZmxhZyAmIENTVE9QQikKKwkJY29uZmlnLT5iU3RvcEJpdHMgPSBUSV9VQVJUXzJfU1RPUF9CSVRTOworCWVsc2UKKwkJY29uZmlnLT5iU3RvcEJpdHMgPSBUSV9VQVJUXzFfU1RPUF9CSVRTOworCisJaWYgKGNmbGFnICYgQ1JUU0NUUykgeworCQkvKiBSVFMgZmxvdyBjb250cm9sIG11c3QgYmUgb2ZmIHRvIGRyb3AgUlRTIGZvciBiYXVkIHJhdGUgQjAgKi8KKwkJaWYgKChjZmxhZyAmIENCQVVEKSAhPSBCMCkKKwkJCWNvbmZpZy0+d0ZsYWdzIHw9IFRJX1VBUlRfRU5BQkxFX1JUU19JTjsKKwkJY29uZmlnLT53RmxhZ3MgfD0gVElfVUFSVF9FTkFCTEVfQ1RTX09VVDsKKwl9IGVsc2UgeworCQl0dHktPmh3X3N0b3BwZWQgPSAwOworCQl0aV9yZXN0YXJ0X3JlYWQodHBvcnQsIHR0eSk7CisJfQorCisJaWYgKElfSVhPRkYodHR5KSB8fCBJX0lYT04odHR5KSkgeworCQljb25maWctPmNYb24gID0gU1RBUlRfQ0hBUih0dHkpOworCQljb25maWctPmNYb2ZmID0gU1RPUF9DSEFSKHR0eSk7CisKKwkJaWYgKElfSVhPRkYodHR5KSkKKwkJCWNvbmZpZy0+d0ZsYWdzIHw9IFRJX1VBUlRfRU5BQkxFX1hfSU47CisJCWVsc2UKKwkJCXRpX3Jlc3RhcnRfcmVhZCh0cG9ydCwgdHR5KTsKKworCQlpZiAoSV9JWE9OKHR0eSkpCisJCQljb25maWctPndGbGFncyB8PSBUSV9VQVJUX0VOQUJMRV9YX09VVDsKKwl9CisKKwliYXVkID0gdHR5X2dldF9iYXVkX3JhdGUodHR5KTsKKwlpZiAoIWJhdWQpIGJhdWQgPSA5NjAwOworCWlmICh0cG9ydC0+dHBfdGRldi0+dGRfaXNfMzQxMCkKKwkJY29uZmlnLT53QmF1ZFJhdGUgPSAoX191MTYpKCg5MjMwNzcgKyBiYXVkLzIpIC8gYmF1ZCk7CisJZWxzZQorCQljb25maWctPndCYXVkUmF0ZSA9IChfX3UxNikoKDQ2MTUzOCArIGJhdWQvMikgLyBiYXVkKTsKKworCWRiZygiJXMgLSBCYXVkUmF0ZT0lZCwgd0JhdWRSYXRlPSVkLCB3RmxhZ3M9MHglMDRYLCBiRGF0YUJpdHM9JWQsIGJQYXJpdHk9JWQsIGJTdG9wQml0cz0lZCwgY1hvbj0lZCwgY1hvZmY9JWQsIGJVYXJ0TW9kZT0lZCIsCisJX19GVU5DVElPTl9fLCBiYXVkLCBjb25maWctPndCYXVkUmF0ZSwgY29uZmlnLT53RmxhZ3MsIGNvbmZpZy0+YkRhdGFCaXRzLCBjb25maWctPmJQYXJpdHksIGNvbmZpZy0+YlN0b3BCaXRzLCBjb25maWctPmNYb24sIGNvbmZpZy0+Y1hvZmYsIGNvbmZpZy0+YlVhcnRNb2RlKTsKKworCWNwdV90b19iZTE2cygmY29uZmlnLT53QmF1ZFJhdGUpOworCWNwdV90b19iZTE2cygmY29uZmlnLT53RmxhZ3MpOworCisJc3RhdHVzID0gdGlfY29tbWFuZF9vdXRfc3luYyh0cG9ydC0+dHBfdGRldiwgVElfU0VUX0NPTkZJRywKKwkJKF9fdTgpKFRJX1VBUlQxX1BPUlQgKyBwb3J0X251bWJlciksIDAsIChfX3U4ICopY29uZmlnLAorCQlzaXplb2YoKmNvbmZpZykpOworCWlmIChzdGF0dXMpCisJCWRldl9lcnIoJnBvcnQtPmRldiwgIiVzIC0gY2Fubm90IHNldCBjb25maWcgb24gcG9ydCAlZCwgJWRcbiIsIF9fRlVOQ1RJT05fXywgcG9ydF9udW1iZXIsIHN0YXR1cyk7CisKKwkvKiBTRVRfQ09ORklHIGFzc2VydHMgUlRTIGFuZCBEVFIsIHJlc2V0IHRoZW0gY29ycmVjdGx5ICovCisJbWNyID0gdHBvcnQtPnRwX3NoYWRvd19tY3I7CisJLyogaWYgYmF1ZCByYXRlIGlzIEIwLCBjbGVhciBSVFMgYW5kIERUUiAqLworCWlmICgoY2ZsYWcgJiBDQkFVRCkgPT0gQjApCisJCW1jciAmPSB+KFRJX01DUl9EVFIgfCBUSV9NQ1JfUlRTKTsKKwlzdGF0dXMgPSB0aV9zZXRfbWNyKHRwb3J0LCBtY3IpOworCWlmIChzdGF0dXMpCisJCWRldl9lcnIoJnBvcnQtPmRldiwgIiVzIC0gY2Fubm90IHNldCBtb2RlbSBjb250cm9sIG9uIHBvcnQgJWQsICVkXG4iLCBfX0ZVTkNUSU9OX18sIHBvcnRfbnVtYmVyLCBzdGF0dXMpOworCisJa2ZyZWUoY29uZmlnKTsKK30KKworCitzdGF0aWMgaW50IHRpX3Rpb2NtZ2V0KHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXN0cnVjdCB0aV9wb3J0ICp0cG9ydCA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwl1bnNpZ25lZCBpbnQgcmVzdWx0OworCXVuc2lnbmVkIGludCBtc3I7CisJdW5zaWduZWQgaW50IG1jcjsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJaWYgKHRwb3J0ID09IE5VTEwpCisJCXJldHVybiAtRU5PREVWOworCisJbXNyID0gdHBvcnQtPnRwX21zcjsKKwltY3IgPSB0cG9ydC0+dHBfc2hhZG93X21jcjsKKworCXJlc3VsdCA9ICgobWNyICYgVElfTUNSX0RUUikgPyBUSU9DTV9EVFIgOiAwKQorCQl8ICgobWNyICYgVElfTUNSX1JUUykgPyBUSU9DTV9SVFMgOiAwKQorCQl8ICgobWNyICYgVElfTUNSX0xPT1ApID8gVElPQ01fTE9PUCA6IDApCisJCXwgKChtc3IgJiBUSV9NU1JfQ1RTKSA/IFRJT0NNX0NUUyA6IDApCisJCXwgKChtc3IgJiBUSV9NU1JfQ0QpID8gVElPQ01fQ0FSIDogMCkKKwkJfCAoKG1zciAmIFRJX01TUl9SSSkgPyBUSU9DTV9SSSA6IDApCisJCXwgKChtc3IgJiBUSV9NU1JfRFNSKSA/IFRJT0NNX0RTUiA6IDApOworCisJZGJnKCIlcyAtIDB4JTA0WCIsIF9fRlVOQ1RJT05fXywgcmVzdWx0KTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKKworc3RhdGljIGludCB0aV90aW9jbXNldChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlsZSwKKwl1bnNpZ25lZCBpbnQgc2V0LCB1bnNpZ25lZCBpbnQgY2xlYXIpCit7CisJc3RydWN0IHRpX3BvcnQgKnRwb3J0ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXVuc2lnbmVkIGludCBtY3I7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCWlmICh0cG9ydCA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCW1jciA9IHRwb3J0LT50cF9zaGFkb3dfbWNyOworCisJaWYgKHNldCAmIFRJT0NNX1JUUykKKwkJbWNyIHw9IFRJX01DUl9SVFM7CisJaWYgKHNldCAmIFRJT0NNX0RUUikKKwkJbWNyIHw9IFRJX01DUl9EVFI7CisJaWYgKHNldCAmIFRJT0NNX0xPT1ApCisJCW1jciB8PSBUSV9NQ1JfTE9PUDsKKworCWlmIChjbGVhciAmIFRJT0NNX1JUUykKKwkJbWNyICY9IH5USV9NQ1JfUlRTOworCWlmIChjbGVhciAmIFRJT0NNX0RUUikKKwkJbWNyICY9IH5USV9NQ1JfRFRSOworCWlmIChjbGVhciAmIFRJT0NNX0xPT1ApCisJCW1jciAmPSB+VElfTUNSX0xPT1A7CisKKwlyZXR1cm4gdGlfc2V0X21jcih0cG9ydCwgbWNyKTsKK30KKworCitzdGF0aWMgdm9pZCB0aV9icmVhayhzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBpbnQgYnJlYWtfc3RhdGUpCit7CisJc3RydWN0IHRpX3BvcnQgKnRwb3J0ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCWludCBzdGF0dXM7CisKKwlkYmcoIiVzIC0gc3RhdGUgPSAlZCIsIF9fRlVOQ1RJT05fXywgYnJlYWtfc3RhdGUpOworCisJaWYgKHRwb3J0ID09IE5VTEwpCisJCXJldHVybjsKKworCXRpX2RyYWluKHRwb3J0LCAodHBvcnQtPnRwX2Nsb3Npbmdfd2FpdCpIWikvMTAwLCAwKTsKKworCXN0YXR1cyA9IHRpX3dyaXRlX2J5dGUodHBvcnQtPnRwX3RkZXYsCisJCXRwb3J0LT50cF91YXJ0X2Jhc2VfYWRkciArIFRJX1VBUlRfT0ZGU0VUX0xDUiwKKwkJVElfTENSX0JSRUFLLCBicmVha19zdGF0ZSA9PSAtMSA/IFRJX0xDUl9CUkVBSyA6IDApOworCisJaWYgKHN0YXR1cykKKwkJZGJnKCIlcyAtIGVycm9yIHNldHRpbmcgYnJlYWssICVkIiwgX19GVU5DVElPTl9fLCBzdGF0dXMpOworfQorCisKK3N0YXRpYyB2b2lkIHRpX2ludGVycnVwdF9jYWxsYmFjayhzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXN0cnVjdCB0aV9kZXZpY2UgKnRkZXYgPSAoc3RydWN0IHRpX2RldmljZSAqKXVyYi0+Y29udGV4dDsKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0OworCXN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgPSB0ZGV2LT50ZF9zZXJpYWw7CisJc3RydWN0IHRpX3BvcnQgKnRwb3J0OworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZ1cmItPmRldi0+ZGV2OworCXVuc2lnbmVkIGNoYXIgKmRhdGEgPSB1cmItPnRyYW5zZmVyX2J1ZmZlcjsKKwlpbnQgbGVuZ3RoID0gdXJiLT5hY3R1YWxfbGVuZ3RoOworCWludCBwb3J0X251bWJlcjsKKwlpbnQgZnVuY3Rpb247CisJaW50IHN0YXR1czsKKwlfX3U4IG1zcjsKKworCWRiZygiJXMiLCBfX0ZVTkNUSU9OX18pOworCisJc3dpdGNoICh1cmItPnN0YXR1cykgeworCWNhc2UgMDoKKwkJYnJlYWs7CisJY2FzZSAtRUNPTk5SRVNFVDoKKwljYXNlIC1FTk9FTlQ6CisJY2FzZSAtRVNIVVRET1dOOgorCQlkYmcoIiVzIC0gdXJiIHNodXR0aW5nIGRvd24sICVkIiwgX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyk7CisJCXRkZXYtPnRkX3VyYl9lcnJvciA9IDE7CisJCXJldHVybjsKKwlkZWZhdWx0OgorCQlkZXZfZXJyKGRldiwgIiVzIC0gbm9uemVybyB1cmIgc3RhdHVzLCAlZFxuIiwgX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyk7CisJCXRkZXYtPnRkX3VyYl9lcnJvciA9IDE7CisJCWdvdG8gZXhpdDsKKwl9CisKKwlpZiAobGVuZ3RoICE9IDIpIHsKKwkJZGJnKCIlcyAtIGJhZCBwYWNrZXQgc2l6ZSwgJWQiLCBfX0ZVTkNUSU9OX18sIGxlbmd0aCk7CisJCWdvdG8gZXhpdDsKKwl9CisKKwlpZiAoZGF0YVswXSA9PSBUSV9DT0RFX0hBUkRXQVJFX0VSUk9SKSB7CisJCWRldl9lcnIoZGV2LCAiJXMgLSBoYXJkd2FyZSBlcnJvciwgJWRcbiIsIF9fRlVOQ1RJT05fXywgZGF0YVsxXSk7CisJCWdvdG8gZXhpdDsKKwl9CisKKwlwb3J0X251bWJlciA9IFRJX0dFVF9QT1JUX0ZST01fQ09ERShkYXRhWzBdKTsKKwlmdW5jdGlvbiA9IFRJX0dFVF9GVU5DX0ZST01fQ09ERShkYXRhWzBdKTsKKworCWRiZygiJXMgLSBwb3J0X251bWJlciAlZCwgZnVuY3Rpb24gJWQsIGRhdGEgMHglMDJYIiwgX19GVU5DVElPTl9fLCBwb3J0X251bWJlciwgZnVuY3Rpb24sIGRhdGFbMV0pOworCisJaWYgKHBvcnRfbnVtYmVyID49IHNlcmlhbC0+bnVtX3BvcnRzKSB7CisJCWRldl9lcnIoZGV2LCAiJXMgLSBiYWQgcG9ydCBudW1iZXIsICVkXG4iLCBfX0ZVTkNUSU9OX18sIHBvcnRfbnVtYmVyKTsKKwkJZ290byBleGl0OworCX0KKworCXBvcnQgPSBzZXJpYWwtPnBvcnRbcG9ydF9udW1iZXJdOworCisJdHBvcnQgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJaWYgKCF0cG9ydCkKKwkJZ290byBleGl0OworCisJc3dpdGNoIChmdW5jdGlvbikgeworCWNhc2UgVElfQ09ERV9EQVRBX0VSUk9SOgorCQlkZXZfZXJyKGRldiwgIiVzIC0gREFUQSBFUlJPUiwgcG9ydCAlZCwgZGF0YSAweCUwMlhcbiIsIF9fRlVOQ1RJT05fXywgcG9ydF9udW1iZXIsIGRhdGFbMV0pOworCQlicmVhazsKKworCWNhc2UgVElfQ09ERV9NT0RFTV9TVEFUVVM6CisJCW1zciA9IGRhdGFbMV07CisJCWRiZygiJXMgLSBwb3J0ICVkLCBtc3IgMHglMDJYIiwgX19GVU5DVElPTl9fLCBwb3J0X251bWJlciwgbXNyKTsKKwkJdGlfaGFuZGxlX25ld19tc3IodHBvcnQsIG1zcik7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJZGV2X2VycihkZXYsICIlcyAtIHVua25vd24gaW50ZXJydXB0IGNvZGUsIDB4JTAyWFxuIiwgX19GVU5DVElPTl9fLCBkYXRhWzFdKTsKKwkJYnJlYWs7CisJfQorCitleGl0OgorCXN0YXR1cyA9IHVzYl9zdWJtaXRfdXJiKHVyYiwgR0ZQX0FUT01JQyk7CisJaWYgKHN0YXR1cykKKwkJZGV2X2VycihkZXYsICIlcyAtIHJlc3VibWl0IGludGVycnVwdCB1cmIgZmFpbGVkLCAlZFxuIiwgX19GVU5DVElPTl9fLCBzdGF0dXMpOworfQorCisKK3N0YXRpYyB2b2lkIHRpX2J1bGtfaW5fY2FsbGJhY2soc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlzdHJ1Y3QgdGlfcG9ydCAqdHBvcnQgPSAoc3RydWN0IHRpX3BvcnQgKil1cmItPmNvbnRleHQ7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IHRwb3J0LT50cF9wb3J0OworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZ1cmItPmRldi0+ZGV2OworCWludCBzdGF0dXMgPSAwOworCisJZGJnKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwlzd2l0Y2ggKHVyYi0+c3RhdHVzKSB7CisJY2FzZSAwOgorCQlicmVhazsKKwljYXNlIC1FQ09OTlJFU0VUOgorCWNhc2UgLUVOT0VOVDoKKwljYXNlIC1FU0hVVERPV046CisJCWRiZygiJXMgLSB1cmIgc2h1dHRpbmcgZG93biwgJWQiLCBfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzKTsKKwkJdHBvcnQtPnRwX3RkZXYtPnRkX3VyYl9lcnJvciA9IDE7CisJCXdha2VfdXBfaW50ZXJydXB0aWJsZSgmdHBvcnQtPnRwX3dyaXRlX3dhaXQpOworCQlyZXR1cm47CisJZGVmYXVsdDoKKwkJZGV2X2VycihkZXYsICIlcyAtIG5vbnplcm8gdXJiIHN0YXR1cywgJWRcbiIsIF9fRlVOQ1RJT05fXywgdXJiLT5zdGF0dXMgKTsKKwkJdHBvcnQtPnRwX3RkZXYtPnRkX3VyYl9lcnJvciA9IDE7CisJCXdha2VfdXBfaW50ZXJydXB0aWJsZSgmdHBvcnQtPnRwX3dyaXRlX3dhaXQpOworCX0KKworCWlmICh1cmItPnN0YXR1cyA9PSAtRVBJUEUpCisJCWdvdG8gZXhpdDsKKworCWlmICh1cmItPnN0YXR1cykgeworCQlkZXZfZXJyKGRldiwgIiVzIC0gc3RvcHBpbmcgcmVhZCFcbiIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybjsKKwl9CisKKwlpZiAocG9ydC0+dHR5ICYmIHVyYi0+YWN0dWFsX2xlbmd0aCkgeworCQl1c2Jfc2VyaWFsX2RlYnVnX2RhdGEoZGVidWcsIGRldiwgX19GVU5DVElPTl9fLAorCQkJdXJiLT5hY3R1YWxfbGVuZ3RoLCB1cmItPnRyYW5zZmVyX2J1ZmZlcik7CisKKwkJaWYgKCF0cG9ydC0+dHBfaXNfb3BlbikKKwkJCWRiZygiJXMgLSBwb3J0IGNsb3NlZCwgZHJvcHBpbmcgZGF0YSIsIF9fRlVOQ1RJT05fXyk7CisJCWVsc2UKKwkJCXRpX3JlY3YoJnVyYi0+ZGV2LT5kZXYsIHBvcnQtPnR0eSwgdXJiLT50cmFuc2Zlcl9idWZmZXIsCisJCQkJdXJiLT5hY3R1YWxfbGVuZ3RoKTsKKworCQlzcGluX2xvY2soJnRwb3J0LT50cF9sb2NrKTsKKwkJdHBvcnQtPnRwX2ljb3VudC5yeCArPSB1cmItPmFjdHVhbF9sZW5ndGg7CisJCXNwaW5fdW5sb2NrKCZ0cG9ydC0+dHBfbG9jayk7CisJfQorCitleGl0OgorCS8qIGNvbnRpbnVlIHRvIHJlYWQgdW5sZXNzIHN0b3BwaW5nICovCisJc3Bpbl9sb2NrKCZ0cG9ydC0+dHBfbG9jayk7CisJaWYgKHRwb3J0LT50cF9yZWFkX3VyYl9zdGF0ZSA9PSBUSV9SRUFEX1VSQl9SVU5OSU5HKSB7CisJCXVyYi0+ZGV2ID0gcG9ydC0+c2VyaWFsLT5kZXY7CisJCXN0YXR1cyA9IHVzYl9zdWJtaXRfdXJiKHVyYiwgR0ZQX0FUT01JQyk7CisJfSBlbHNlIGlmICh0cG9ydC0+dHBfcmVhZF91cmJfc3RhdGUgPT0gVElfUkVBRF9VUkJfU1RPUFBJTkcpIHsKKwkJdHBvcnQtPnRwX3JlYWRfdXJiX3N0YXRlID0gVElfUkVBRF9VUkJfU1RPUFBFRDsKKwl9CisJc3Bpbl91bmxvY2soJnRwb3J0LT50cF9sb2NrKTsKKwlpZiAoc3RhdHVzKQorCQlkZXZfZXJyKGRldiwgIiVzIC0gcmVzdWJtaXQgcmVhZCB1cmIgZmFpbGVkLCAlZFxuIiwgX19GVU5DVElPTl9fLCBzdGF0dXMpOworfQorCisKK3N0YXRpYyB2b2lkIHRpX2J1bGtfb3V0X2NhbGxiYWNrKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJc3RydWN0IHRpX3BvcnQgKnRwb3J0ID0gKHN0cnVjdCB0aV9wb3J0ICopdXJiLT5jb250ZXh0OworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSB0cG9ydC0+dHBfcG9ydDsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmdXJiLT5kZXYtPmRldjsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJdHBvcnQtPnRwX3dyaXRlX3VyYl9pbl91c2UgPSAwOworCisJc3dpdGNoICh1cmItPnN0YXR1cykgeworCWNhc2UgMDoKKwkJYnJlYWs7CisJY2FzZSAtRUNPTk5SRVNFVDoKKwljYXNlIC1FTk9FTlQ6CisJY2FzZSAtRVNIVVRET1dOOgorCQlkYmcoIiVzIC0gdXJiIHNodXR0aW5nIGRvd24sICVkIiwgX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyk7CisJCXRwb3J0LT50cF90ZGV2LT50ZF91cmJfZXJyb3IgPSAxOworCQl3YWtlX3VwX2ludGVycnVwdGlibGUoJnRwb3J0LT50cF93cml0ZV93YWl0KTsKKwkJcmV0dXJuOworCWRlZmF1bHQ6CisJCWRldl9lcnIoZGV2LCAiJXMgLSBub256ZXJvIHVyYiBzdGF0dXMsICVkXG4iLCBfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzKTsKKwkJdHBvcnQtPnRwX3RkZXYtPnRkX3VyYl9lcnJvciA9IDE7CisJCXdha2VfdXBfaW50ZXJydXB0aWJsZSgmdHBvcnQtPnRwX3dyaXRlX3dhaXQpOworCX0KKworCS8qIHNlbmQgYW55IGJ1ZmZlcmVkIGRhdGEgKi8KKwl0aV9zZW5kKHRwb3J0KTsKK30KKworCitzdGF0aWMgdm9pZCB0aV9yZWN2KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwKKwl1bnNpZ25lZCBjaGFyICpkYXRhLCBpbnQgbGVuZ3RoKQoreworCWludCBjbnQ7CisKKwlkbyB7CisJCWlmICh0dHktPmZsaXAuY291bnQgPj0gVFRZX0ZMSVBCVUZfU0laRSkgeworCQkJdHR5X2ZsaXBfYnVmZmVyX3B1c2godHR5KTsKKwkJCWlmICh0dHktPmZsaXAuY291bnQgPj0gVFRZX0ZMSVBCVUZfU0laRSkgeworCQkJCWRldl9lcnIoZGV2LCAiJXMgLSBkcm9wcGluZyBkYXRhLCAlZCBieXRlcyBsb3N0XG4iLCBfX0ZVTkNUSU9OX18sIGxlbmd0aCk7CisJCQkJcmV0dXJuOworCQkJfQorCQl9CisJCWNudCA9IG1pbihsZW5ndGgsIFRUWV9GTElQQlVGX1NJWkUgLSB0dHktPmZsaXAuY291bnQpOworCQltZW1jcHkodHR5LT5mbGlwLmNoYXJfYnVmX3B0ciwgZGF0YSwgY250KTsKKwkJbWVtc2V0KHR0eS0+ZmxpcC5mbGFnX2J1Zl9wdHIsIDAsIGNudCk7CisJCXR0eS0+ZmxpcC5jaGFyX2J1Zl9wdHIgKz0gY250OworCQl0dHktPmZsaXAuZmxhZ19idWZfcHRyICs9IGNudDsKKwkJdHR5LT5mbGlwLmNvdW50ICs9IGNudDsKKwkJZGF0YSArPSBjbnQ7CisJCWxlbmd0aCAtPSBjbnQ7CisJfSB3aGlsZSAobGVuZ3RoID4gMCk7CisKKwl0dHlfZmxpcF9idWZmZXJfcHVzaCh0dHkpOworfQorCisKK3N0YXRpYyB2b2lkIHRpX3NlbmQoc3RydWN0IHRpX3BvcnQgKnRwb3J0KQoreworCWludCBjb3VudCwgcmVzdWx0OworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSB0cG9ydC0+dHBfcG9ydDsKKwlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5ID0gcG9ydC0+dHR5OworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnRwb3J0LT50cF9sb2NrLCBmbGFncyk7CisKKwlpZiAodHBvcnQtPnRwX3dyaXRlX3VyYl9pbl91c2UpIHsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdHBvcnQtPnRwX2xvY2ssIGZsYWdzKTsKKwkJcmV0dXJuOworCX0KKworCWNvdW50ID0gdGlfYnVmX2dldCh0cG9ydC0+dHBfd3JpdGVfYnVmLAorCQkJCXBvcnQtPndyaXRlX3VyYi0+dHJhbnNmZXJfYnVmZmVyLAorCQkJCXBvcnQtPmJ1bGtfb3V0X3NpemUpOworCisJaWYgKGNvdW50ID09IDApIHsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdHBvcnQtPnRwX2xvY2ssIGZsYWdzKTsKKwkJcmV0dXJuOworCX0KKworCXRwb3J0LT50cF93cml0ZV91cmJfaW5fdXNlID0gMTsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnRwb3J0LT50cF9sb2NrLCBmbGFncyk7CisKKwl1c2Jfc2VyaWFsX2RlYnVnX2RhdGEoZGVidWcsICZwb3J0LT5kZXYsIF9fRlVOQ1RJT05fXywgY291bnQsIHBvcnQtPndyaXRlX3VyYi0+dHJhbnNmZXJfYnVmZmVyKTsKKworCXVzYl9maWxsX2J1bGtfdXJiKHBvcnQtPndyaXRlX3VyYiwgcG9ydC0+c2VyaWFsLT5kZXYsCisJCQkgICB1c2Jfc25kYnVsa3BpcGUocG9ydC0+c2VyaWFsLT5kZXYsCisJCQkJCSAgICBwb3J0LT5idWxrX291dF9lbmRwb2ludEFkZHJlc3MpLAorCQkJICAgcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXIsIGNvdW50LAorCQkJICAgdGlfYnVsa19vdXRfY2FsbGJhY2ssIHRwb3J0KTsKKworCXJlc3VsdCA9IHVzYl9zdWJtaXRfdXJiKHBvcnQtPndyaXRlX3VyYiwgR0ZQX0FUT01JQyk7CisJaWYgKHJlc3VsdCkgeworCQlkZXZfZXJyKCZwb3J0LT5kZXYsICIlcyAtIHN1Ym1pdCB3cml0ZSB1cmIgZmFpbGVkLCAlZFxuIiwgX19GVU5DVElPTl9fLCByZXN1bHQpOworCQl0cG9ydC0+dHBfd3JpdGVfdXJiX2luX3VzZSA9IDA7IAorCQkvKiBUT0RPOiByZXNjaGVkdWxlIHRpX3NlbmQgKi8KKwl9IGVsc2UgeworCQlzcGluX2xvY2tfaXJxc2F2ZSgmdHBvcnQtPnRwX2xvY2ssIGZsYWdzKTsKKwkJdHBvcnQtPnRwX2ljb3VudC50eCArPSBjb3VudDsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdHBvcnQtPnRwX2xvY2ssIGZsYWdzKTsKKwl9CisKKwkvKiBtb3JlIHJvb20gaW4gdGhlIGJ1ZmZlciBmb3IgbmV3IHdyaXRlcywgd2FrZXVwICovCisJaWYgKHR0eSkKKwkJdHR5X3dha2V1cCh0dHkpOworCXdha2VfdXBfaW50ZXJydXB0aWJsZSgmdHBvcnQtPnRwX3dyaXRlX3dhaXQpOworfQorCisKK3N0YXRpYyBpbnQgdGlfc2V0X21jcihzdHJ1Y3QgdGlfcG9ydCAqdHBvcnQsIHVuc2lnbmVkIGludCBtY3IpCit7CisJaW50IHN0YXR1czsKKworCXN0YXR1cyA9IHRpX3dyaXRlX2J5dGUodHBvcnQtPnRwX3RkZXYsCisJCXRwb3J0LT50cF91YXJ0X2Jhc2VfYWRkciArIFRJX1VBUlRfT0ZGU0VUX01DUiwKKwkJVElfTUNSX1JUUyB8IFRJX01DUl9EVFIgfCBUSV9NQ1JfTE9PUCwgbWNyKTsKKworCWlmICghc3RhdHVzKQorCQl0cG9ydC0+dHBfc2hhZG93X21jciA9IG1jcjsKKworCXJldHVybiBzdGF0dXM7Cit9CisKKworc3RhdGljIGludCB0aV9nZXRfbHNyKHN0cnVjdCB0aV9wb3J0ICp0cG9ydCkKK3sKKwlpbnQgc2l6ZSxzdGF0dXM7CisJc3RydWN0IHRpX2RldmljZSAqdGRldiA9IHRwb3J0LT50cF90ZGV2OworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSB0cG9ydC0+dHBfcG9ydDsKKwlpbnQgcG9ydF9udW1iZXIgPSBwb3J0LT5udW1iZXIgLSBwb3J0LT5zZXJpYWwtPm1pbm9yOworCXN0cnVjdCB0aV9wb3J0X3N0YXR1cyAqZGF0YTsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJc2l6ZSA9IHNpemVvZihzdHJ1Y3QgdGlfcG9ydF9zdGF0dXMpOworCWRhdGEgPSBrbWFsbG9jKHNpemUsIEdGUF9LRVJORUwpOworCWlmICghZGF0YSkgeworCQlkZXZfZXJyKCZwb3J0LT5kZXYsICIlcyAtIG91dCBvZiBtZW1vcnlcbiIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCXN0YXR1cyA9IHRpX2NvbW1hbmRfaW5fc3luYyh0ZGV2LCBUSV9HRVRfUE9SVF9TVEFUVVMsCisJCShfX3U4KShUSV9VQVJUMV9QT1JUK3BvcnRfbnVtYmVyKSwgMCwgKF9fdTggKilkYXRhLCBzaXplKTsKKwlpZiAoc3RhdHVzKSB7CisJCWRldl9lcnIoJnBvcnQtPmRldiwgIiVzIC0gZ2V0IHBvcnQgc3RhdHVzIGNvbW1hbmQgZmFpbGVkLCAlZFxuIiwgX19GVU5DVElPTl9fLCBzdGF0dXMpOworCQlnb3RvIGZyZWVfZGF0YTsKKwl9CisKKwlkYmcoIiVzIC0gbHNyIDB4JTAyWCIsIF9fRlVOQ1RJT05fXywgZGF0YS0+YkxTUik7CisKKwl0cG9ydC0+dHBfbHNyID0gZGF0YS0+YkxTUjsKKworZnJlZV9kYXRhOgorCWtmcmVlKGRhdGEpOworCXJldHVybiBzdGF0dXM7Cit9CisKKworc3RhdGljIGludCB0aV9nZXRfc2VyaWFsX2luZm8oc3RydWN0IHRpX3BvcnQgKnRwb3J0LAorCXN0cnVjdCBzZXJpYWxfc3RydWN0IF9fdXNlciAqcmV0X2FyZykKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ID0gdHBvcnQtPnRwX3BvcnQ7CisJc3RydWN0IHNlcmlhbF9zdHJ1Y3QgcmV0X3NlcmlhbDsKKworCWlmICghcmV0X2FyZykKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwltZW1zZXQoJnJldF9zZXJpYWwsIDAsIHNpemVvZihyZXRfc2VyaWFsKSk7CisKKwlyZXRfc2VyaWFsLnR5cGUgPSBQT1JUXzE2NTUwQTsKKwlyZXRfc2VyaWFsLmxpbmUgPSBwb3J0LT5zZXJpYWwtPm1pbm9yOworCXJldF9zZXJpYWwucG9ydCA9IHBvcnQtPm51bWJlciAtIHBvcnQtPnNlcmlhbC0+bWlub3I7CisJcmV0X3NlcmlhbC5mbGFncyA9IHRwb3J0LT50cF9mbGFnczsKKwlyZXRfc2VyaWFsLnhtaXRfZmlmb19zaXplID0gVElfV1JJVEVfQlVGX1NJWkU7CisJcmV0X3NlcmlhbC5iYXVkX2Jhc2UgPSB0cG9ydC0+dHBfdGRldi0+dGRfaXNfMzQxMCA/IDkyMTYwMCA6IDQ2MDgwMDsKKwlyZXRfc2VyaWFsLmNsb3Npbmdfd2FpdCA9IHRwb3J0LT50cF9jbG9zaW5nX3dhaXQ7CisKKwlpZiAoY29weV90b191c2VyKHJldF9hcmcsICZyZXRfc2VyaWFsLCBzaXplb2YoKnJldF9hcmcpKSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlyZXR1cm4gMDsKK30KKworCitzdGF0aWMgaW50IHRpX3NldF9zZXJpYWxfaW5mbyhzdHJ1Y3QgdGlfcG9ydCAqdHBvcnQsCisJc3RydWN0IHNlcmlhbF9zdHJ1Y3QgX191c2VyICpuZXdfYXJnKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSB0cG9ydC0+dHBfcG9ydDsKKwlzdHJ1Y3Qgc2VyaWFsX3N0cnVjdCBuZXdfc2VyaWFsOworCisJaWYgKGNvcHlfZnJvbV91c2VyKCZuZXdfc2VyaWFsLCBuZXdfYXJnLCBzaXplb2YobmV3X3NlcmlhbCkpKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCXRwb3J0LT50cF9mbGFncyA9IG5ld19zZXJpYWwuZmxhZ3MgJiBUSV9TRVRfU0VSSUFMX0ZMQUdTOworCWlmIChwb3J0LT50dHkpCisJCXBvcnQtPnR0eS0+bG93X2xhdGVuY3kgPQorCQkJKHRwb3J0LT50cF9mbGFncyAmIEFTWU5DX0xPV19MQVRFTkNZKSA/IDEgOiAwOworCXRwb3J0LT50cF9jbG9zaW5nX3dhaXQgPSBuZXdfc2VyaWFsLmNsb3Npbmdfd2FpdDsKKworCXJldHVybiAwOworfQorCisKK3N0YXRpYyB2b2lkIHRpX2hhbmRsZV9uZXdfbXNyKHN0cnVjdCB0aV9wb3J0ICp0cG9ydCwgX191OCBtc3IpCit7CisJc3RydWN0IGFzeW5jX2ljb3VudCAqaWNvdW50OworCXN0cnVjdCB0dHlfc3RydWN0ICp0dHk7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCWRiZygiJXMgLSBtc3IgMHglMDJYIiwgX19GVU5DVElPTl9fLCBtc3IpOworCisJaWYgKG1zciAmIFRJX01TUl9ERUxUQV9NQVNLKSB7CisJCXNwaW5fbG9ja19pcnFzYXZlKCZ0cG9ydC0+dHBfbG9jaywgZmxhZ3MpOworCQlpY291bnQgPSAmdHBvcnQtPnRwX2ljb3VudDsKKwkJaWYgKG1zciAmIFRJX01TUl9ERUxUQV9DVFMpCisJCQlpY291bnQtPmN0cysrOworCQlpZiAobXNyICYgVElfTVNSX0RFTFRBX0RTUikKKwkJCWljb3VudC0+ZHNyKys7CisJCWlmIChtc3IgJiBUSV9NU1JfREVMVEFfQ0QpCisJCQlpY291bnQtPmRjZCsrOworCQlpZiAobXNyICYgVElfTVNSX0RFTFRBX1JJKQorCQkJaWNvdW50LT5ybmcrKzsKKwkJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCZ0cG9ydC0+dHBfbXNyX3dhaXQpOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ0cG9ydC0+dHBfbG9jaywgZmxhZ3MpOworCX0KKworCXRwb3J0LT50cF9tc3IgPSBtc3IgJiBUSV9NU1JfTUFTSzsKKworCS8qIGhhbmRsZSBDVFMgZmxvdyBjb250cm9sICovCisJdHR5ID0gdHBvcnQtPnRwX3BvcnQtPnR0eTsKKwlpZiAodHR5ICYmIENfQ1JUU0NUUyh0dHkpKSB7CisJCWlmIChtc3IgJiBUSV9NU1JfQ1RTKSB7CisJCQl0dHktPmh3X3N0b3BwZWQgPSAwOworCQkJdHR5X3dha2V1cCh0dHkpOworCQl9IGVsc2UgeworCQkJdHR5LT5od19zdG9wcGVkID0gMTsKKwkJfQorCX0KK30KKworCitzdGF0aWMgdm9pZCB0aV9kcmFpbihzdHJ1Y3QgdGlfcG9ydCAqdHBvcnQsIHVuc2lnbmVkIGxvbmcgdGltZW91dCwgaW50IGZsdXNoKQoreworCXN0cnVjdCB0aV9kZXZpY2UgKnRkZXYgPSB0cG9ydC0+dHBfdGRldjsKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ID0gdHBvcnQtPnRwX3BvcnQ7CisJd2FpdF9xdWV1ZV90IHdhaXQ7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnRwb3J0LT50cF9sb2NrLCBmbGFncyk7CisKKwkvKiB3YWl0IGZvciBkYXRhIHRvIGRyYWluIGZyb20gdGhlIGJ1ZmZlciAqLworCXRkZXYtPnRkX3VyYl9lcnJvciA9IDA7CisJaW5pdF93YWl0cXVldWVfZW50cnkoJndhaXQsIGN1cnJlbnQpOworCWFkZF93YWl0X3F1ZXVlKCZ0cG9ydC0+dHBfd3JpdGVfd2FpdCwgJndhaXQpOworCWZvciAoOzspIHsKKwkJc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19JTlRFUlJVUFRJQkxFKTsKKwkJaWYgKHRpX2J1Zl9kYXRhX2F2YWlsKHRwb3J0LT50cF93cml0ZV9idWYpID09IDAKKwkJfHwgdGltZW91dCA9PSAwIHx8IHNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpCisJCXx8IHRkZXYtPnRkX3VyYl9lcnJvcgorCQl8fCAhdXNiX2dldF9pbnRmZGF0YShwb3J0LT5zZXJpYWwtPmludGVyZmFjZSkpICAvKiBkaXNjb25uZWN0ICovCisJCQlicmVhazsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdHBvcnQtPnRwX2xvY2ssIGZsYWdzKTsKKwkJdGltZW91dCA9IHNjaGVkdWxlX3RpbWVvdXQodGltZW91dCk7CisJCXNwaW5fbG9ja19pcnFzYXZlKCZ0cG9ydC0+dHBfbG9jaywgZmxhZ3MpOworCX0KKwlzZXRfY3VycmVudF9zdGF0ZShUQVNLX1JVTk5JTkcpOworCXJlbW92ZV93YWl0X3F1ZXVlKCZ0cG9ydC0+dHBfd3JpdGVfd2FpdCwgJndhaXQpOworCisJLyogZmx1c2ggYW55IHJlbWFpbmluZyBkYXRhIGluIHRoZSBidWZmZXIgKi8KKwlpZiAoZmx1c2gpCisJCXRpX2J1Zl9jbGVhcih0cG9ydC0+dHBfd3JpdGVfYnVmKTsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnRwb3J0LT50cF9sb2NrLCBmbGFncyk7CisKKwkvKiB3YWl0IGZvciBkYXRhIHRvIGRyYWluIGZyb20gdGhlIGRldmljZSAqLworCS8qIHdhaXQgZm9yIGVtcHR5IHR4IHJlZ2lzdGVyLCBwbHVzIDIwIG1zICovCisJdGltZW91dCArPSBqaWZmaWVzOworCXRwb3J0LT50cF9sc3IgJj0gflRJX0xTUl9UWF9FTVBUWTsKKwl3aGlsZSAoKGxvbmcpKGppZmZpZXMgLSB0aW1lb3V0KSA8IDAgJiYgIXNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpCisJJiYgISh0cG9ydC0+dHBfbHNyJlRJX0xTUl9UWF9FTVBUWSkgJiYgIXRkZXYtPnRkX3VyYl9lcnJvcgorCSYmIHVzYl9nZXRfaW50ZmRhdGEocG9ydC0+c2VyaWFsLT5pbnRlcmZhY2UpKSB7ICAvKiBub3QgZGlzY29ubmVjdGVkICovCisJCWlmICh0aV9nZXRfbHNyKHRwb3J0KSkKKwkJCWJyZWFrOworCQltc2xlZXBfaW50ZXJydXB0aWJsZSgyMCk7CisJfQorfQorCisKK3N0YXRpYyB2b2lkIHRpX3N0b3BfcmVhZChzdHJ1Y3QgdGlfcG9ydCAqdHBvcnQsIHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZ0cG9ydC0+dHBfbG9jaywgZmxhZ3MpOworCisJaWYgKHRwb3J0LT50cF9yZWFkX3VyYl9zdGF0ZSA9PSBUSV9SRUFEX1VSQl9SVU5OSU5HKQorCQl0cG9ydC0+dHBfcmVhZF91cmJfc3RhdGUgPSBUSV9SRUFEX1VSQl9TVE9QUElORzsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnRwb3J0LT50cF9sb2NrLCBmbGFncyk7Cit9CisKKworc3RhdGljIGludCB0aV9yZXN0YXJ0X3JlYWQoc3RydWN0IHRpX3BvcnQgKnRwb3J0LCBzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KQoreworCXN0cnVjdCB1cmIgKnVyYjsKKwlpbnQgc3RhdHVzID0gMDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnRwb3J0LT50cF9sb2NrLCBmbGFncyk7CisKKwlpZiAodHBvcnQtPnRwX3JlYWRfdXJiX3N0YXRlID09IFRJX1JFQURfVVJCX1NUT1BQRUQpIHsKKwkJdXJiID0gdHBvcnQtPnRwX3BvcnQtPnJlYWRfdXJiOworCQl1cmItPmNvbXBsZXRlID0gdGlfYnVsa19pbl9jYWxsYmFjazsKKwkJdXJiLT5jb250ZXh0ID0gdHBvcnQ7CisJCXVyYi0+ZGV2ID0gdHBvcnQtPnRwX3BvcnQtPnNlcmlhbC0+ZGV2OworCQlzdGF0dXMgPSB1c2Jfc3VibWl0X3VyYih1cmIsIEdGUF9LRVJORUwpOworCX0KKwl0cG9ydC0+dHBfcmVhZF91cmJfc3RhdGUgPSBUSV9SRUFEX1VSQl9SVU5OSU5HOworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdHBvcnQtPnRwX2xvY2ssIGZsYWdzKTsKKworCXJldHVybiBzdGF0dXM7Cit9CisKKworc3RhdGljIGludCB0aV9jb21tYW5kX291dF9zeW5jKHN0cnVjdCB0aV9kZXZpY2UgKnRkZXYsIF9fdTggY29tbWFuZCwKKwlfX3UxNiBtb2R1bGVpZCwgX191MTYgdmFsdWUsIF9fdTggKmRhdGEsIGludCBzaXplKQoreworCWludCBzdGF0dXM7CisKKwlzdGF0dXMgPSB1c2JfY29udHJvbF9tc2codGRldi0+dGRfc2VyaWFsLT5kZXYsCisJCXVzYl9zbmRjdHJscGlwZSh0ZGV2LT50ZF9zZXJpYWwtPmRldiwgMCksIGNvbW1hbmQsCisJCShVU0JfVFlQRV9WRU5ET1IgfCBVU0JfUkVDSVBfREVWSUNFIHwgVVNCX0RJUl9PVVQpLAorCQl2YWx1ZSwgbW9kdWxlaWQsIGRhdGEsIHNpemUsIDEwMDApOworCisJaWYgKHN0YXR1cyA9PSBzaXplKQorCQlzdGF0dXMgPSAwOworCisJaWYgKHN0YXR1cyA+IDApCisJCXN0YXR1cyA9IC1FQ09NTTsKKworCXJldHVybiBzdGF0dXM7Cit9CisKKworc3RhdGljIGludCB0aV9jb21tYW5kX2luX3N5bmMoc3RydWN0IHRpX2RldmljZSAqdGRldiwgX191OCBjb21tYW5kLAorCV9fdTE2IG1vZHVsZWlkLCBfX3UxNiB2YWx1ZSwgX191OCAqZGF0YSwgaW50IHNpemUpCit7CisJaW50IHN0YXR1czsKKworCXN0YXR1cyA9IHVzYl9jb250cm9sX21zZyh0ZGV2LT50ZF9zZXJpYWwtPmRldiwKKwkJdXNiX3JjdmN0cmxwaXBlKHRkZXYtPnRkX3NlcmlhbC0+ZGV2LCAwKSwgY29tbWFuZCwKKwkJKFVTQl9UWVBFX1ZFTkRPUiB8IFVTQl9SRUNJUF9ERVZJQ0UgfCBVU0JfRElSX0lOKSwKKwkJdmFsdWUsIG1vZHVsZWlkLCBkYXRhLCBzaXplLCAxMDAwKTsKKworCWlmIChzdGF0dXMgPT0gc2l6ZSkKKwkJc3RhdHVzID0gMDsKKworCWlmIChzdGF0dXMgPiAwKQorCQlzdGF0dXMgPSAtRUNPTU07CisKKwlyZXR1cm4gc3RhdHVzOworfQorCisKK3N0YXRpYyBpbnQgdGlfd3JpdGVfYnl0ZShzdHJ1Y3QgdGlfZGV2aWNlICp0ZGV2LCB1bnNpZ25lZCBsb25nIGFkZHIsCisJX191OCBtYXNrLCBfX3U4IGJ5dGUpCit7CisJaW50IHN0YXR1czsKKwl1bnNpZ25lZCBpbnQgc2l6ZTsKKwlzdHJ1Y3QgdGlfd3JpdGVfZGF0YV9ieXRlcyAqZGF0YTsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmdGRldi0+dGRfc2VyaWFsLT5kZXYtPmRldjsKKworCWRiZygiJXMgLSBhZGRyIDB4JTA4bFgsIG1hc2sgMHglMDJYLCBieXRlIDB4JTAyWCIsIF9fRlVOQ1RJT05fXywgYWRkciwgbWFzaywgYnl0ZSk7CisKKwlzaXplID0gc2l6ZW9mKHN0cnVjdCB0aV93cml0ZV9kYXRhX2J5dGVzKSArIDI7CisJZGF0YSA9IGttYWxsb2Moc2l6ZSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFkYXRhKSB7CisJCWRldl9lcnIoZGV2LCAiJXMgLSBvdXQgb2YgbWVtb3J5XG4iLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwlkYXRhLT5iQWRkclR5cGUgPSBUSV9SV19EQVRBX0FERFJfWERBVEE7CisJZGF0YS0+YkRhdGFUeXBlID0gVElfUldfREFUQV9CWVRFOworCWRhdGEtPmJEYXRhQ291bnRlciA9IDE7CisJZGF0YS0+d0Jhc2VBZGRySGkgPSBjcHVfdG9fYmUxNihhZGRyPj4xNik7CisJZGF0YS0+d0Jhc2VBZGRyTG8gPSBjcHVfdG9fYmUxNihhZGRyKTsKKwlkYXRhLT5iRGF0YVswXSA9IG1hc2s7CisJZGF0YS0+YkRhdGFbMV0gPSBieXRlOworCisJc3RhdHVzID0gdGlfY29tbWFuZF9vdXRfc3luYyh0ZGV2LCBUSV9XUklURV9EQVRBLCBUSV9SQU1fUE9SVCwgMCwKKwkJKF9fdTggKilkYXRhLCBzaXplKTsKKworCWlmIChzdGF0dXMgPCAwKQorCQlkZXZfZXJyKGRldiwgIiVzIC0gZmFpbGVkLCAlZFxuIiwgX19GVU5DVElPTl9fLCBzdGF0dXMpOworCisJa2ZyZWUoZGF0YSk7CisKKwlyZXR1cm4gc3RhdHVzOworfQorCisKK3N0YXRpYyBpbnQgdGlfZG93bmxvYWRfZmlybXdhcmUoc3RydWN0IHRpX2RldmljZSAqdGRldiwKKwl1bnNpZ25lZCBjaGFyICpmaXJtd2FyZSwgdW5zaWduZWQgaW50IGZpcm13YXJlX3NpemUpCit7CisJaW50IHN0YXR1cyA9IDA7CisJaW50IGJ1ZmZlcl9zaXplOworCWludCBwb3M7CisJaW50IGxlbjsKKwlpbnQgZG9uZTsKKwlfX3U4IGNzID0gMDsKKwlfX3U4ICpidWZmZXI7CisJc3RydWN0IHVzYl9kZXZpY2UgKmRldiA9IHRkZXYtPnRkX3NlcmlhbC0+ZGV2OworCXN0cnVjdCB0aV9maXJtd2FyZV9oZWFkZXIgKmhlYWRlcjsKKwl1bnNpZ25lZCBpbnQgcGlwZSA9IHVzYl9zbmRidWxrcGlwZShkZXYsCisJCXRkZXYtPnRkX3NlcmlhbC0+cG9ydFswXS0+YnVsa19vdXRfZW5kcG9pbnRBZGRyZXNzKTsKKworCisJYnVmZmVyX3NpemUgPSBUSV9GSVJNV0FSRV9CVUZfU0laRSArIHNpemVvZihzdHJ1Y3QgdGlfZmlybXdhcmVfaGVhZGVyKTsKKwlidWZmZXIgPSBrbWFsbG9jKGJ1ZmZlcl9zaXplLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWJ1ZmZlcikgeworCQlkZXZfZXJyKCZkZXYtPmRldiwgIiVzIC0gb3V0IG9mIG1lbW9yeVxuIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJbWVtY3B5KGJ1ZmZlciwgZmlybXdhcmUsIGZpcm13YXJlX3NpemUpOworCW1lbXNldChidWZmZXIrZmlybXdhcmVfc2l6ZSwgMHhmZiwgYnVmZmVyX3NpemUtZmlybXdhcmVfc2l6ZSk7CisKKwlmb3IocG9zID0gc2l6ZW9mKHN0cnVjdCB0aV9maXJtd2FyZV9oZWFkZXIpOyBwb3MgPCBidWZmZXJfc2l6ZTsgcG9zKyspCisJCWNzID0gKF9fdTgpKGNzICsgYnVmZmVyW3Bvc10pOworCisJaGVhZGVyID0gKHN0cnVjdCB0aV9maXJtd2FyZV9oZWFkZXIgKilidWZmZXI7CisJaGVhZGVyLT53TGVuZ3RoID0gY3B1X3RvX2xlMTYoKF9fdTE2KShidWZmZXJfc2l6ZSAtIHNpemVvZihzdHJ1Y3QgdGlfZmlybXdhcmVfaGVhZGVyKSkpOworCWhlYWRlci0+YkNoZWNrU3VtID0gY3M7CisKKwlkYmcoIiVzIC0gZG93bmxvYWRpbmcgZmlybXdhcmUiLCBfX0ZVTkNUSU9OX18pOworCWZvciAocG9zID0gMDsgcG9zIDwgYnVmZmVyX3NpemU7IHBvcyArPSBkb25lKSB7CisJCWxlbiA9IG1pbihidWZmZXJfc2l6ZSAtIHBvcywgVElfRE9XTkxPQURfTUFYX1BBQ0tFVF9TSVpFKTsKKwkJc3RhdHVzID0gdXNiX2J1bGtfbXNnKGRldiwgcGlwZSwgYnVmZmVyK3BvcywgbGVuLCAmZG9uZSwgMTAwMCk7CisJCWlmIChzdGF0dXMpCisJCQlicmVhazsKKwl9CisKKwlrZnJlZShidWZmZXIpOworCisJaWYgKHN0YXR1cykgeworCQlkZXZfZXJyKCZkZXYtPmRldiwgIiVzIC0gZXJyb3IgZG93bmxvYWRpbmcgZmlybXdhcmUsICVkXG4iLCBfX0ZVTkNUSU9OX18sIHN0YXR1cyk7CisJCXJldHVybiBzdGF0dXM7CisJfQorCisJZGJnKCIlcyAtIGRvd25sb2FkIHN1Y2Nlc3NmdWwiLCBfX0ZVTkNUSU9OX18pOworCisJcmV0dXJuIDA7Cit9CisKKworLyogQ2lyY3VsYXIgQnVmZmVyIEZ1bmN0aW9ucyAqLworCisvKgorICogdGlfYnVmX2FsbG9jCisgKgorICogQWxsb2NhdGUgYSBjaXJjdWxhciBidWZmZXIgYW5kIGFsbCBhc3NvY2lhdGVkIG1lbW9yeS4KKyAqLworCitzdGF0aWMgc3RydWN0IGNpcmNfYnVmICp0aV9idWZfYWxsb2Modm9pZCkKK3sKKwlzdHJ1Y3QgY2lyY19idWYgKmNiOworCisJY2IgPSAoc3RydWN0IGNpcmNfYnVmICopa21hbGxvYyhzaXplb2Yoc3RydWN0IGNpcmNfYnVmKSwgR0ZQX0tFUk5FTCk7CisJaWYgKGNiID09IE5VTEwpCisJCXJldHVybiBOVUxMOworCisJY2ItPmJ1ZiA9IGttYWxsb2MoVElfV1JJVEVfQlVGX1NJWkUsIEdGUF9LRVJORUwpOworCWlmIChjYi0+YnVmID09IE5VTEwpIHsKKwkJa2ZyZWUoY2IpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwl0aV9idWZfY2xlYXIoY2IpOworCisJcmV0dXJuIGNiOworfQorCisKKy8qCisgKiB0aV9idWZfZnJlZQorICoKKyAqIEZyZWUgdGhlIGJ1ZmZlciBhbmQgYWxsIGFzc29jaWF0ZWQgbWVtb3J5LgorICovCisKK3N0YXRpYyB2b2lkIHRpX2J1Zl9mcmVlKHN0cnVjdCBjaXJjX2J1ZiAqY2IpCit7CisJa2ZyZWUoY2ItPmJ1Zik7CisJa2ZyZWUoY2IpOworfQorCisKKy8qCisgKiB0aV9idWZfY2xlYXIKKyAqCisgKiBDbGVhciBvdXQgYWxsIGRhdGEgaW4gdGhlIGNpcmN1bGFyIGJ1ZmZlci4KKyAqLworCitzdGF0aWMgdm9pZCB0aV9idWZfY2xlYXIoc3RydWN0IGNpcmNfYnVmICpjYikKK3sKKwljYi0+aGVhZCA9IGNiLT50YWlsID0gMDsKK30KKworCisvKgorICogdGlfYnVmX2RhdGFfYXZhaWwKKyAqCisgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcyBvZiBkYXRhIGF2YWlsYWJsZSBpbiB0aGUgY2lyY3VsYXIKKyAqIGJ1ZmZlci4KKyAqLworCitzdGF0aWMgaW50IHRpX2J1Zl9kYXRhX2F2YWlsKHN0cnVjdCBjaXJjX2J1ZiAqY2IpCit7CisJcmV0dXJuIENJUkNfQ05UKGNiLT5oZWFkLGNiLT50YWlsLFRJX1dSSVRFX0JVRl9TSVpFKTsKK30KKworCisvKgorICogdGlfYnVmX3NwYWNlX2F2YWlsCisgKgorICogUmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0ZXMgb2Ygc3BhY2UgYXZhaWxhYmxlIGluIHRoZSBjaXJjdWxhcgorICogYnVmZmVyLgorICovCisKK3N0YXRpYyBpbnQgdGlfYnVmX3NwYWNlX2F2YWlsKHN0cnVjdCBjaXJjX2J1ZiAqY2IpCit7CisJcmV0dXJuIENJUkNfU1BBQ0UoY2ItPmhlYWQsY2ItPnRhaWwsVElfV1JJVEVfQlVGX1NJWkUpOworfQorCisKKy8qCisgKiB0aV9idWZfcHV0CisgKgorICogQ29weSBkYXRhIGRhdGEgZnJvbSBhIHVzZXIgYnVmZmVyIGFuZCBwdXQgaXQgaW50byB0aGUgY2lyY3VsYXIgYnVmZmVyLgorICogUmVzdHJpY3QgdG8gdGhlIGFtb3VudCBvZiBzcGFjZSBhdmFpbGFibGUuCisgKgorICogUmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0ZXMgY29waWVkLgorICovCisKK3N0YXRpYyBpbnQgdGlfYnVmX3B1dChzdHJ1Y3QgY2lyY19idWYgKmNiLCBjb25zdCBjaGFyICpidWYsIGludCBjb3VudCkKK3sKKwlpbnQgYywgcmV0ID0gMDsKKworCXdoaWxlICgxKSB7CisJCWMgPSBDSVJDX1NQQUNFX1RPX0VORChjYi0+aGVhZCwgY2ItPnRhaWwsIFRJX1dSSVRFX0JVRl9TSVpFKTsKKwkJaWYgKGNvdW50IDwgYykKKwkJCWMgPSBjb3VudDsKKwkJaWYgKGMgPD0gMCkKKwkJCWJyZWFrOworCQltZW1jcHkoY2ItPmJ1ZiArIGNiLT5oZWFkLCBidWYsIGMpOworCQljYi0+aGVhZCA9IChjYi0+aGVhZCArIGMpICYgKFRJX1dSSVRFX0JVRl9TSVpFLTEpOworCQlidWYgKz0gYzsKKwkJY291bnQgLT0gYzsKKwkJcmV0ICs9IGM7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworCisvKgorICogdGlfYnVmX2dldAorICoKKyAqIEdldCBkYXRhIGZyb20gdGhlIGNpcmN1bGFyIGJ1ZmZlciBhbmQgY29weSB0byB0aGUgZ2l2ZW4gYnVmZmVyLgorICogUmVzdHJpY3QgdG8gdGhlIGFtb3VudCBvZiBkYXRhIGF2YWlsYWJsZS4KKyAqCisgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcyBjb3BpZWQuCisgKi8KKworc3RhdGljIGludCB0aV9idWZfZ2V0KHN0cnVjdCBjaXJjX2J1ZiAqY2IsIGNoYXIgKmJ1ZiwgaW50IGNvdW50KQoreworCWludCBjLCByZXQgPSAwOworCisJd2hpbGUgKDEpIHsKKwkJYyA9IENJUkNfQ05UX1RPX0VORChjYi0+aGVhZCwgY2ItPnRhaWwsIFRJX1dSSVRFX0JVRl9TSVpFKTsKKwkJaWYgKGNvdW50IDwgYykKKwkJCWMgPSBjb3VudDsKKwkJaWYgKGMgPD0gMCkKKwkJCWJyZWFrOworCQltZW1jcHkoYnVmLCBjYi0+YnVmICsgY2ItPnRhaWwsIGMpOworCQljYi0+dGFpbCA9IChjYi0+dGFpbCArIGMpICYgKFRJX1dSSVRFX0JVRl9TSVpFLTEpOworCQlidWYgKz0gYzsKKwkJY291bnQgLT0gYzsKKwkJcmV0ICs9IGM7CisJfQorCisJcmV0dXJuIHJldDsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC90aV91c2JfMzQxMF81MDUyLmggYi9kcml2ZXJzL3VzYi9zZXJpYWwvdGlfdXNiXzM0MTBfNTA1Mi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyYzFhZWIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvdGlfdXNiXzM0MTBfNTA1Mi5oCkBAIC0wLDAgKzEsMjI0IEBACisvKiB2aTogdHM9OCBzdz04CisgKgorICogVEkgMzQxMC81MDUyIFVTQiBTZXJpYWwgRHJpdmVyIEhlYWRlcgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNCBUZXhhcyBJbnN0cnVtZW50cworICoKKyAqIFRoaXMgZHJpdmVyIGlzIGJhc2VkIG9uIHRoZSBMaW51eCBpb190aSBkcml2ZXIsIHdoaWNoIGlzCisgKiAgIENvcHlyaWdodCAoQykgMjAwMC0yMDAyIEluc2lkZSBPdXQgTmV0d29ya3MKKyAqICAgQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIgR3JlZyBLcm9haC1IYXJ0bWFuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBGb3IgcXVlc3Rpb25zIG9yIHByb2JsZW1zIHdpdGggdGhpcyBkcml2ZXIsIGNvbnRhY3QgVGV4YXMgSW5zdHJ1bWVudHMKKyAqIHRlY2huaWNhbCBzdXBwb3J0LCBvciBBbCBCb3JjaGVycyA8YWxib3JjaGVyc0BzdGVpbmVycG9pbnQuY29tPiwgb3IKKyAqIFBldGVyIEJlcmdlciA8cGJlcmdlckBicmltc29uLmNvbT4uCisgKi8KKworI2lmbmRlZiBfVElfMzQxMF81MDUyX0hfCisjZGVmaW5lIF9USV8zNDEwXzUwNTJfSF8KKworLyogQ29uZmlndXJhdGlvbiBpZHMgKi8KKyNkZWZpbmUgVElfQk9PVF9DT05GSUcJCQkxCisjZGVmaW5lIFRJX0FDVElWRV9DT05GSUcJCTIKKworLyogVmVuZG9yIGFuZCBwcm9kdWN0IGlkcyAqLworI2RlZmluZSBUSV9WRU5ET1JfSUQJCQkweDA0NTEKKyNkZWZpbmUgVElfMzQxMF9QUk9EVUNUX0lECQkweDM0MTAKKyNkZWZpbmUgVElfNTA1Ml9CT09UX1BST0RVQ1RfSUQJCTB4NTA1MgkvKiBubyBFRVBST00sIG5vIGZpcm13YXJlICovCisjZGVmaW5lIFRJXzUxNTJfQk9PVF9QUk9EVUNUX0lECQkweDUxNTIJLyogbm8gRUVQUk9NLCBubyBmaXJtd2FyZSAqLworI2RlZmluZSBUSV81MDUyX0VFUFJPTV9QUk9EVUNUX0lECTB4NTA1QQkvKiBFRVBST00sIG5vIGZpcm13YXJlICovCisjZGVmaW5lIFRJXzUwNTJfRklSTVdBUkVfUFJPRFVDVF9JRAkweDUwNUYJLyogZmlybXdhcmUgaXMgcnVubmluZyAqLworCisvKiBDb21tYW5kcyAqLworI2RlZmluZSBUSV9HRVRfVkVSU0lPTgkJCTB4MDEKKyNkZWZpbmUgVElfR0VUX1BPUlRfU1RBVFVTCQkweDAyCisjZGVmaW5lIFRJX0dFVF9QT1JUX0RFVl9JTkZPCQkweDAzCisjZGVmaW5lIFRJX0dFVF9DT05GSUcJCQkweDA0CisjZGVmaW5lIFRJX1NFVF9DT05GSUcJCQkweDA1CisjZGVmaW5lIFRJX09QRU5fUE9SVAkJCTB4MDYKKyNkZWZpbmUgVElfQ0xPU0VfUE9SVAkJCTB4MDcKKyNkZWZpbmUgVElfU1RBUlRfUE9SVAkJCTB4MDgKKyNkZWZpbmUgVElfU1RPUF9QT1JUCQkJMHgwOQorI2RlZmluZSBUSV9URVNUX1BPUlQJCQkweDBBCisjZGVmaW5lIFRJX1BVUkdFX1BPUlQJCQkweDBCCisjZGVmaW5lIFRJX1JFU0VUX0VYVF9ERVZJQ0UJCTB4MEMKKyNkZWZpbmUgVElfV1JJVEVfREFUQQkJCTB4ODAKKyNkZWZpbmUgVElfUkVBRF9EQVRBCQkJMHg4MQorI2RlZmluZSBUSV9SRVFfVFlQRV9DTEFTUwkJMHg4MgorCisvKiBNb2R1bGUgaWRlbnRpZmllcnMgKi8KKyNkZWZpbmUgVElfSTJDX1BPUlQJCQkweDAxCisjZGVmaW5lIFRJX0lFRUUxMjg0X1BPUlQJCTB4MDIKKyNkZWZpbmUgVElfVUFSVDFfUE9SVAkJCTB4MDMKKyNkZWZpbmUgVElfVUFSVDJfUE9SVAkJCTB4MDQKKyNkZWZpbmUgVElfUkFNX1BPUlQJCQkweDA1CisKKy8qIE1vZGVtIHN0YXR1cyAqLworI2RlZmluZSBUSV9NU1JfREVMVEFfQ1RTCQkweDAxCisjZGVmaW5lIFRJX01TUl9ERUxUQV9EU1IJCTB4MDIKKyNkZWZpbmUgVElfTVNSX0RFTFRBX1JJCQkJMHgwNAorI2RlZmluZSBUSV9NU1JfREVMVEFfQ0QJCQkweDA4CisjZGVmaW5lIFRJX01TUl9DVFMJCQkweDEwCisjZGVmaW5lIFRJX01TUl9EU1IJCQkweDIwCisjZGVmaW5lIFRJX01TUl9SSQkJCTB4NDAKKyNkZWZpbmUgVElfTVNSX0NECQkJMHg4MAorI2RlZmluZSBUSV9NU1JfREVMVEFfTUFTSwkJMHgwRgorI2RlZmluZSBUSV9NU1JfTUFTSwkJCTB4RjAKKworLyogTGluZSBzdGF0dXMgKi8KKyNkZWZpbmUgVElfTFNSX09WRVJSVU5fRVJST1IJCTB4MDEKKyNkZWZpbmUgVElfTFNSX1BBUklUWV9FUlJPUgkJMHgwMgorI2RlZmluZSBUSV9MU1JfRlJBTUlOR19FUlJPUgkJMHgwNAorI2RlZmluZSBUSV9MU1JfQlJFQUsJCQkweDA4CisjZGVmaW5lIFRJX0xTUl9FUlJPUgkJCTB4MEYKKyNkZWZpbmUgVElfTFNSX1JYX0ZVTEwJCQkweDEwCisjZGVmaW5lIFRJX0xTUl9UWF9FTVBUWQkJCTB4MjAKKworLyogTGluZSBjb250cm9sICovCisjZGVmaW5lIFRJX0xDUl9CUkVBSwkJCTB4NDAKKworLyogTW9kZW0gY29udHJvbCAqLworI2RlZmluZSBUSV9NQ1JfTE9PUAkJCTB4MDQKKyNkZWZpbmUgVElfTUNSX0RUUgkJCTB4MTAKKyNkZWZpbmUgVElfTUNSX1JUUwkJCTB4MjAKKworLyogTWFzayBzZXR0aW5ncyAqLworI2RlZmluZSBUSV9VQVJUX0VOQUJMRV9SVFNfSU4JCTB4MDAwMQorI2RlZmluZSBUSV9VQVJUX0RJU0FCTEVfUlRTCQkweDAwMDIKKyNkZWZpbmUgVElfVUFSVF9FTkFCTEVfUEFSSVRZX0NIRUNLSU5HCTB4MDAwOAorI2RlZmluZSBUSV9VQVJUX0VOQUJMRV9EU1JfT1VUCQkweDAwMTAKKyNkZWZpbmUgVElfVUFSVF9FTkFCTEVfQ1RTX09VVAkJMHgwMDIwCisjZGVmaW5lIFRJX1VBUlRfRU5BQkxFX1hfT1VUCQkweDAwNDAKKyNkZWZpbmUgVElfVUFSVF9FTkFCTEVfWEFfT1VUCQkweDAwODAKKyNkZWZpbmUgVElfVUFSVF9FTkFCTEVfWF9JTgkJMHgwMTAwCisjZGVmaW5lIFRJX1VBUlRfRU5BQkxFX0RUUl9JTgkJMHgwODAwCisjZGVmaW5lIFRJX1VBUlRfRElTQUJMRV9EVFIJCTB4MTAwMAorI2RlZmluZSBUSV9VQVJUX0VOQUJMRV9NU19JTlRTCQkweDIwMDAKKyNkZWZpbmUgVElfVUFSVF9FTkFCTEVfQVVUT19TVEFSVF9ETUEJMHg0MDAwCisKKy8qIFBhcml0eSAqLworI2RlZmluZSBUSV9VQVJUX05PX1BBUklUWQkJMHgwMAorI2RlZmluZSBUSV9VQVJUX09ERF9QQVJJVFkJCTB4MDEKKyNkZWZpbmUgVElfVUFSVF9FVkVOX1BBUklUWQkJMHgwMgorI2RlZmluZSBUSV9VQVJUX01BUktfUEFSSVRZCQkweDAzCisjZGVmaW5lIFRJX1VBUlRfU1BBQ0VfUEFSSVRZCQkweDA0CisKKy8qIFN0b3AgYml0cyAqLworI2RlZmluZSBUSV9VQVJUXzFfU1RPUF9CSVRTCQkweDAwCisjZGVmaW5lIFRJX1VBUlRfMV81X1NUT1BfQklUUwkJMHgwMQorI2RlZmluZSBUSV9VQVJUXzJfU1RPUF9CSVRTCQkweDAyCisKKy8qIEJpdHMgcGVyIGNoYXJhY3RlciAqLworI2RlZmluZSBUSV9VQVJUXzVfREFUQV9CSVRTCQkweDAwCisjZGVmaW5lIFRJX1VBUlRfNl9EQVRBX0JJVFMJCTB4MDEKKyNkZWZpbmUgVElfVUFSVF83X0RBVEFfQklUUwkJMHgwMgorI2RlZmluZSBUSV9VQVJUXzhfREFUQV9CSVRTCQkweDAzCisKKy8qIDIzMi80ODUgbW9kZXMgKi8KKyNkZWZpbmUgVElfVUFSVF8yMzIJCQkweDAwCisjZGVmaW5lIFRJX1VBUlRfNDg1X1JFQ0VJVkVSX0RJU0FCTEVECTB4MDEKKyNkZWZpbmUgVElfVUFSVF80ODVfUkVDRUlWRVJfRU5BQkxFRAkweDAyCisKKy8qIFBpcGUgdHJhbnNmZXIgbW9kZSBhbmQgdGltZW91dCAqLworI2RlZmluZSBUSV9QSVBFX01PREVfQ09OVElOT1VTCQkweDAxCisjZGVmaW5lIFRJX1BJUEVfTU9ERV9NQVNLCQkweDAzCisjZGVmaW5lIFRJX1BJUEVfVElNRU9VVF9NQVNLCQkweDdDCisjZGVmaW5lIFRJX1BJUEVfVElNRU9VVF9FTkFCTEUJCTB4ODAKKworLyogQ29uZmlnIHN0cnVjdCAqLworc3RydWN0IHRpX3VhcnRfY29uZmlnIHsKKwlfX3UxNgl3QmF1ZFJhdGU7CisJX191MTYJd0ZsYWdzOworCV9fdTgJYkRhdGFCaXRzOworCV9fdTgJYlBhcml0eTsKKwlfX3U4CWJTdG9wQml0czsKKwljaGFyCWNYb247CisJY2hhcgljWG9mZjsKKwlfX3U4CWJVYXJ0TW9kZTsKK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKKy8qIEdldCBwb3J0IHN0YXR1cyAqLworc3RydWN0IHRpX3BvcnRfc3RhdHVzIHsKKwlfX3U4CWJDbWRDb2RlOworCV9fdTgJYk1vZHVsZUlkOworCV9fdTgJYkVycm9yQ29kZTsKKwlfX3U4CWJNU1I7CisJX191OAliTFNSOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworLyogUHVyZ2UgbW9kZXMgKi8KKyNkZWZpbmUgVElfUFVSR0VfT1VUUFVUCQkJMHgwMAorI2RlZmluZSBUSV9QVVJHRV9JTlBVVAkJCTB4ODAKKworLyogUmVhZC9Xcml0ZSBkYXRhICovCisjZGVmaW5lIFRJX1JXX0RBVEFfQUREUl9TRlIJCTB4MTAKKyNkZWZpbmUgVElfUldfREFUQV9BRERSX0lEQVRBCQkweDIwCisjZGVmaW5lIFRJX1JXX0RBVEFfQUREUl9YREFUQQkJMHgzMAorI2RlZmluZSBUSV9SV19EQVRBX0FERFJfQ09ERQkJMHg0MAorI2RlZmluZSBUSV9SV19EQVRBX0FERFJfR1BJTwkJMHg1MAorI2RlZmluZSBUSV9SV19EQVRBX0FERFJfSTJDCQkweDYwCisjZGVmaW5lIFRJX1JXX0RBVEFfQUREUl9GTEFTSAkJMHg3MAorI2RlZmluZSBUSV9SV19EQVRBX0FERFJfRFNQCQkweDgwCisKKyNkZWZpbmUgVElfUldfREFUQV9VTlNQRUNJRklFRAkJMHgwMAorI2RlZmluZSBUSV9SV19EQVRBX0JZVEUJCQkweDAxCisjZGVmaW5lIFRJX1JXX0RBVEFfV09SRAkJCTB4MDIKKyNkZWZpbmUgVElfUldfREFUQV9ET1VCTEVfV09SRAkJMHgwNAorCitzdHJ1Y3QgdGlfd3JpdGVfZGF0YV9ieXRlcyB7CisJX191OAliQWRkclR5cGU7CisJX191OAliRGF0YVR5cGU7CisJX191OAliRGF0YUNvdW50ZXI7CisJX19iZTE2CXdCYXNlQWRkckhpOworCV9fYmUxNgl3QmFzZUFkZHJMbzsKKwlfX3U4CWJEYXRhWzBdOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworc3RydWN0IHRpX3JlYWRfZGF0YV9yZXF1ZXN0IHsKKwlfX3U4CWJBZGRyVHlwZTsKKwlfX3U4CWJEYXRhVHlwZTsKKwlfX3U4CWJEYXRhQ291bnRlcjsKKwlfX2JlMTYJd0Jhc2VBZGRySGk7CisJX19iZTE2CXdCYXNlQWRkckxvOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworc3RydWN0IHRpX3JlYWRfZGF0YV9ieXRlcyB7CisJX191OAliQ21kQ29kZTsKKwlfX3U4CWJNb2R1bGVJZDsKKwlfX3U4CWJFcnJvckNvZGU7CisJX191OAliRGF0YVswXTsKK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKKy8qIEludGVycnVwdCBzdHJ1Y3QgKi8KK3N0cnVjdCB0aV9pbnRlcnJ1cHQgeworCV9fdTgJYklDb2RlOworCV9fdTgJYklJbmZvOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworLyogSW50ZXJydXB0IGNvZGVzICovCisjZGVmaW5lIFRJX0dFVF9QT1JUX0ZST01fQ09ERShjKQkoKChjKSA+PiA0KSAtIDMpCisjZGVmaW5lIFRJX0dFVF9GVU5DX0ZST01fQ09ERShjKQkoKGMpICYgMHgwZikKKyNkZWZpbmUgVElfQ09ERV9IQVJEV0FSRV9FUlJPUgkJMHhGRgorI2RlZmluZSBUSV9DT0RFX0RBVEFfRVJST1IJCTB4MDMKKyNkZWZpbmUgVElfQ09ERV9NT0RFTV9TVEFUVVMJCTB4MDQKKworLyogRG93bmxvYWQgZmlybXdhcmUgbWF4IHBhY2tldCBzaXplICovCisjZGVmaW5lIFRJX0RPV05MT0FEX01BWF9QQUNLRVRfU0laRQk2NAorCisvKiBGaXJtd2FyZSBpbWFnZSBoZWFkZXIgKi8KK3N0cnVjdCB0aV9maXJtd2FyZV9oZWFkZXIgeworCV9fbGUxNgl3TGVuZ3RoOworCV9fdTgJYkNoZWNrU3VtOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworLyogVUFSVCBhZGRyZXNzZXMgKi8KKyNkZWZpbmUgVElfVUFSVDFfQkFTRV9BRERSCQkweEZGQTAJLyogVUFSVCAxIGJhc2UgYWRkcmVzcyAqLworI2RlZmluZSBUSV9VQVJUMl9CQVNFX0FERFIJCTB4RkZCMAkvKiBVQVJUIDIgYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIFRJX1VBUlRfT0ZGU0VUX0xDUgkJMHgwMDAyCS8qIFVBUlQgTUNSIHJlZ2lzdGVyIG9mZnNldCAqLworI2RlZmluZSBUSV9VQVJUX09GRlNFVF9NQ1IJCTB4MDAwNAkvKiBVQVJUIE1DUiByZWdpc3RlciBvZmZzZXQgKi8KKworI2VuZGlmIC8qIF9USV8zNDEwXzUwNTJfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC91c2Itc2VyaWFsLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1MzZmNjMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5jCkBAIC0wLDAgKzEsMTQzNSBAQAorLyoKKyAqIFVTQiBTZXJpYWwgQ29udmVydGVyIGRyaXZlcgorICoKKyAqIENvcHlyaWdodCAoQykgMTk5OSAtIDIwMDQgR3JlZyBLcm9haC1IYXJ0bWFuIChncmVnQGtyb2FoLmNvbSkKKyAqIENvcHlyaWdodCAoQykgMjAwMCBQZXRlciBCZXJnZXIgKHBiZXJnZXJAYnJpbXNvbi5jb20pCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAgQWwgQm9yY2hlcnMgKGJvcmNoZXJzQHN0ZWluZXJwb2ludC5jb20pCisgKgorICoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICoJbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbgorICoJMiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIGRyaXZlciB3YXMgb3JpZ2luYWxseSBiYXNlZCBvbiB0aGUgQUNNIGRyaXZlciBieSBBcm1pbiBGdWVyc3QgKHdoaWNoIHdhcyAKKyAqIGJhc2VkIG9uIGEgZHJpdmVyIGJ5IEJyYWQgS2VyeWFuKQorICoKKyAqIFNlZSBEb2N1bWVudGF0aW9uL3VzYi91c2Itc2VyaWFsLnR4dCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB1c2luZyB0aGlzIGRyaXZlcgorICoKKyAqICgxMi8xMC8yMDAyKSBna2gKKyAqCVNwbGl0IHRoZSBwb3J0cyBvZmYgaW50byB0aGVpciBvd24gc3RydWN0IGRldmljZSwgYW5kIGFkZGVkIGEKKyAqCXVzYi1zZXJpYWwgYnVzIGRyaXZlci4KKyAqCisgKiAoMTEvMTkvMjAwMikgZ2toCisgKglyZW1vdmVkIGEgZmV3ICNpZmRlZnMgZm9yIHRoZSBnZW5lcmljIGNvZGUgYW5kIGNsZWFuZWQgdXAgdGhlIGZhaWx1cmUKKyAqCWxvZ2ljIGluIGluaXRpYWxpemF0aW9uLgorICoKKyAqICgxMC8wMi8yMDAyKSBna2gKKyAqCW1vdmVkIHRoZSBjb25zb2xlIGNvZGUgdG8gY29uc29sZS5jIGFuZCBvdXQgb2YgdGhpcyBmaWxlLgorICoKKyAqICgwNi8wNS8yMDAyKSBna2gKKyAqCW1vdmVkIGxvY2F0aW9uIG9mIHN0YXJ0dXAoKSBjYWxsIGluIHNlcmlhbF9wcm9iZSgpIHVudGlsIGFmdGVyIGFsbAorICoJb2YgdGhlIHBvcnQgaW5mb3JtYXRpb24gYW5kIGVuZHBvaW50cyBhcmUgaW5pdGlhbGl6ZWQuICBUaGlzIG1ha2VzCisgKgl0aGluZ3MgZWFzaWVyIGZvciBzb21lIGRyaXZlcnMuCisgKgorICogKDA0LzEwLzIwMDIpIGdraAorICoJYWRkZWQgc2VyaWFsX3JlYWRfcHJvYyBmdW5jdGlvbiB3aGljaCBjcmVhdGVzIGEKKyAqCS9wcm9jL3R0eS9kcml2ZXIvdXNiLXNlcmlhbCBmaWxlLgorICoKKyAqICgwMy8yNy8yMDAyKSBna2gKKyAqCUdvdCBVU0Igc2VyaWFsIGNvbnNvbGUgY29kZSB3b3JraW5nIHByb3Blcmx5IGFuZCBtZXJnZWQgaW50byB0aGUgbWFpbgorICoJdmVyc2lvbiBvZiB0aGUgdHJlZS4gIFRoYW5rcyB0byBSYW5keSBEdW5sYXAgZm9yIHRoZSBpbml0aWFsIHZlcnNpb24KKyAqCW9mIHRoaXMgY29kZSwgYW5kIGZvciBwdXNoaW5nIG1lIHRvIGZpbmlzaCBpdCB1cC4KKyAqCVRoZSBVU0Igc2VyaWFsIGNvbnNvbGUgd29ya3Mgd2l0aCBhbnkgdXNiIHNlcmlhbCBkcml2ZXIgZGV2aWNlLgorICoKKyAqICgwMy8yMS8yMDAyKSBna2gKKyAqCU1vdmVkIGFsbCBtYW5pcHVsYXRpb24gb2YgcG9ydC0+b3Blbl9jb3VudCBpbnRvIHRoZSBjb3JlLiAgTm93IHRoZQorICoJaW5kaXZpZHVhbCBkcml2ZXIncyBvcGVuIGFuZCBjbG9zZSBmdW5jdGlvbnMgYXJlIGNhbGxlZCBvbmx5IHdoZW4gdGhlCisgKglmaXJzdCBvcGVuKCkgYW5kIGxhc3QgY2xvc2UoKSBpcyBjYWxsZWQuICBNYWtpbmcgdGhlIGRyaXZlcnMgYSBiaXQKKyAqCXNtYWxsZXIgYW5kIHNpbXBsZXIuCisgKglGaXhlZCBhIGJ1ZyBpZiBhIGRyaXZlciBkaWRuJ3QgaGF2ZSB0aGUgb3duZXIgZmllbGQgc2V0LgorICoKKyAqICgwMi8yNi8yMDAyKSBna2gKKyAqCU1vdmVkIGFsbCBsb2NraW5nIGludG8gdGhlIG1haW4gc2VyaWFsXyogZnVuY3Rpb25zLCBpbnN0ZWFkIG9mIGhhdmluZyAKKyAqCXRoZSBpbmRpdmlkdWFsIGRyaXZlcnMgaGF2ZSB0byBncmFiIHRoZSBwb3J0IHNlbWFwaG9yZS4gIFRoaXMgc2hvdWxkCisgKglyZWR1Y2UgcmFjZXMuCisgKglSZXdvcmtlZCB0aGUgTU9EX0lOQyBsb2dpYyBhIGJpdCB0byBhbHdheXMgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQsIGV2ZW4KKyAqCWlmIHRoZSBnZW5lcmljIGRyaXZlciBpcyBiZWluZyB1c2VkLgorICoKKyAqICgxMC8xMC8yMDAxKSBna2gKKyAqCXVzYl9zZXJpYWxfZGlzY29ubmVjdCgpIG5vdyBzZXRzIHRoZSBzZXJpYWwtPmRldiBwb2ludGVyIGlzIHRvIE5VTEwgdG8KKyAqCWhlbHAgcHJldmVudCBjaGlsZCBkcml2ZXJzIGZyb20gYWNjZXNzaW5nIHRoZSBkZXZpY2Ugc2luY2UgaXQgaXMgbm93CisgKglnb25lLgorICoKKyAqICgwOS8xMy8yMDAxKSBna2gKKyAqCU1vdmVkIGdlbmVyaWMgZHJpdmVyIGluaXRpYWxpemUgYWZ0ZXIgd2UgaGF2ZSByZWdpc3RlcmVkIHdpdGggdGhlIFVTQgorICoJY29yZS4gIFRoYW5rcyB0byBSYW5keSBEdW5sYXAgZm9yIHBvaW50aW5nIHRoaXMgcHJvYmxlbSBvdXQuCisgKgorICogKDA3LzAzLzIwMDEpIGdraAorICoJRml4ZWQgbW9kdWxlIHBhcmFtYXRlciBzaXplLiAgVGhhbmtzIHRvIEpvaG4gQnJvY2ttZXllciBmb3IgdGhlIHBvaW50ZXIuCisgKglGaXhlZCB2ZW5kb3IgYW5kIHByb2R1Y3QgZ2V0dGluZyBkZWZpbmVkIHRocm91Z2ggdGhlIE1PRFVMRV9QQVJNIG1hY3JvCisgKglpZiB0aGUgR2VuZXJpYyBkcml2ZXIgd2Fzbid0IGNvbXBpbGVkIGluLgorICoJRml4ZWQgcHJvYmxlbSB3aXRoIGdlbmVyaWNfc2h1dGRvd24oKSBub3QgYmVpbmcgY2FsbGVkIGZvciBkcml2ZXJzIHRoYXQKKyAqCWRvbid0IGhhdmUgYSBzaHV0ZG93bigpIGZ1bmN0aW9uLgorICoKKyAqICgwNi8wNi8yMDAxKSBna2gKKyAqCWFkZGVkIGV2aWwgaGFjayB0aGF0IGlzIG5lZWRlZCBmb3IgdGhlIHByb2xpZmljIHBsMjMwMyBkZXZpY2UgZHVlIHRvIHRoZQorICoJY3Jhenkgd2F5IGl0cyBlbmRwb2ludHMgYXJlIHNldCB1cC4KKyAqCisgKiAoMDUvMzAvMjAwMSkgZ2toCisgKglzd2l0Y2hlZCBmcm9tIHVzaW5nIHNwaW5sb2NrIHRvIGEgc2VtYXBob3JlLCB3aGljaCBmaXhlcyBsb3RzIG9mIHByb2JsZW1zLgorICoKKyAqICgwNC8wOC8yMDAxKSBnYgorICoJSWRlbnRpZnkgdmVyc2lvbiBvbiBtb2R1bGUgbG9hZC4KKyAqCisgKiAyMDAxXzAyXzA1IGdraAorICoJRml4ZWQgYnVmZmVyIG92ZXJmbG93cyBidWcgd2l0aCB0aGUgZ2VuZXJpYyBzZXJpYWwgZHJpdmVyLiAgVGhhbmtzIHRvCisgKglUb2RkIFNxdWlyZXMgPHNxdWlyZXN0QGN0MC5jb20+IGZvciBmaXhpbmcgdGhpcy4KKyAqCisgKiAoMDEvMTAvMjAwMSkgZ2toCisgKglGaXhlZCBidWcgd2hlcmUgdGhlIGdlbmVyaWMgc2VyaWFsIGFkYXB0b3IgZ3JhYmJlZCBfYW55XyBkZXZpY2UgdGhhdCB3YXMKKyAqCW9mZmVyZWQgdG8gaXQuCisgKgorICogKDEyLzEyLzIwMDApIGdraAorICoJUmVtb3ZlZCBNT0RfSU5DIGFuZCBNT0RfREVDIGZyb20gcG9sbCBhbmQgZGlzY29ubmVjdCBmdW5jdGlvbnMsIGFuZAorICoJbW92ZWQgdGhlbSB0byB0aGUgc2VyaWFsX29wZW4gYW5kIHNlcmlhbF9jbG9zZSBmdW5jdGlvbnMuCisgKglBbHNvIGZpeGVkIGJ1ZyB3aXRoIHRoZXJlIG5vdCBiZWluZyBhIE1PRF9ERUMgZm9yIHRoZSBnZW5lcmljIGRyaXZlcgorICoJKHRoYW5rcyB0byBHYXJ5IEJydWJha2VyIGZvciBmaW5kaW5nIHRoaXMuKQorICoKKyAqICgxMS8yOS8yMDAwKSBna2gKKyAqCVNtYWxsIE5VTEwgcG9pbnRlciBpbml0aWFsaXphdGlvbiBjbGVhbnVwIHdoaWNoIHNhdmVzIGEgYml0IG9mIGRpc2sgaW1hZ2UKKyAqCisgKiAoMTEvMDEvMjAwMCkgQWRhbSBKLiBSaWNodGVyCisgKglpbnN0ZWFkIG9mIHVzaW5nIGlkVmVuZG9yL2lkUHJvZHVjdCBwYWlycywgdXNiIHNlcmlhbCBkcml2ZXJzCisgKglub3cgaWRlbnRpZnkgdGhlaXIgaGFyZHdhcmUgaW50ZXJlc3Qgd2l0aCB1c2JfZGV2aWNlX2lkIHRhYmxlcywKKyAqCXdoaWNoIHRoZXkgdXN1YWxseSBoYXZlIGFueWhvdyBmb3IgdXNlIHdpdGggTU9EVUxFX0RFVklDRV9UQUJMRS4KKyAqCisgKiAoMTAvMDUvMjAwMCkgZ2toCisgKglGaXhlZCBidWcgd2l0aCB1cmItPmRldiBub3QgYmVpbmcgc2V0IHByb3Blcmx5LCBub3cgdGhhdCB0aGUgdXNiCisgKgljb3JlIG5lZWRzIGl0LgorICogCisgKiAoMDkvMTEvMjAwMCkgZ2toCisgKglSZW1vdmVkIERFQlVHICNpZmRlZnMgd2l0aCBjYWxsIHRvIHVzYl9zZXJpYWxfZGVidWdfZGF0YQorICoKKyAqICgwOC8yOC8yMDAwKSBna2gKKyAqCUFkZGVkIHBvcnRfbG9jayB0byBwb3J0IHN0cnVjdHVyZS4KKyAqCUFkZGVkIGxvY2tzIGZvciBTTVAgc2FmZW5lc3MgdG8gZ2VuZXJpYyBkcml2ZXIKKyAqCUZpeGVkIHRoZSBhYmlsaXR5IHRvIG9wZW4gYSBnZW5lcmljIGRldmljZSdzIHBvcnQgbW9yZSB0aGFuIG9uY2UuCisgKgorICogKDA3LzIzLzIwMDApIGdraAorICoJQWRkZWQgYnVsa19vdXRfZW5kcG9pbnRBZGRyZXNzIHRvIHBvcnQgc3RydWN0dXJlLgorICoKKyAqICgwNy8xOS8yMDAwKSBna2gsIHBiZXJnZXIsIGFuZCBib3JjaGVycworICoJTW9kaWZpY2F0aW9ucyB0byBhbGxvdyB1c2Itc2VyaWFsIGRyaXZlcnMgdG8gYmUgbW9kdWxlcy4KKyAqCisgKiAoMDcvMDMvMjAwMCkgZ2toCisgKglBZGRlZCBtb3JlIGRlYnVnZ2luZyB0byBzZXJpYWxfaW9jdGwgY2FsbAorICogCisgKiAoMDYvMjUvMjAwMCkgZ2toCisgKglDaGFuZ2VkIGdlbmVyaWNfd3JpdGVfYnVsa19jYWxsYmFjayB0byBub3QgY2FsbCB3YWtlX3VwX2ludGVycnVwdGlibGUKKyAqCWRpcmVjdGx5LCBidXQgdG8gaGF2ZSBwb3J0X3NvZnRpbnQgZG8gaXQgYXQgYSBzYWZlciB0aW1lLgorICoKKyAqICgwNi8yMy8yMDAwKSBna2gKKyAqCUNsZWFuZWQgdXAgZGVidWdnaW5nIHN0YXRlbWVudHMgaW4gYSBxdWVzdCB0byBmaW5kIFVIQ0kgdGltZW91dCBidWcuCisgKgorICogKDA1LzIyLzIwMDApIGdraAorICoJQ2hhbmdlZCB0aGUgbWFrZWZpbGUsIGVuYWJsaW5nIHRoZSBiaWcgQ09ORklHX1VTQl9TRVJJQUxfU09NVEhJTkcgdG8gYmUgCisgKglyZW1vdmVkIGZyb20gdGhlIGluZGl2aWR1YWwgZGV2aWNlIHNvdXJjZSBmaWxlcy4KKyAqCisgKiAoMDUvMDMvMjAwMCkgZ2toCisgKglBZGRlZCB0aGUgRGlnaSBBY2NlbGVwb3J0IGRyaXZlciBmcm9tIEFsIEJvcmNoZXJzIGFuZCBQZXRlciBCZXJnZXIuCisgKiAKKyAqICgwNS8wMi8yMDAwKSBna2gKKyAqCUNoYW5nZWQgZGV2ZnMgYW5kIHR0eSByZWdpc3RlciBjb2RlIHRvIHdvcmsgcHJvcGVybHkgbm93LiBUaGlzIHdhcyBiYXNlZCBvbgorICoJdGhlIEFDTSBkcml2ZXIgY2hhbmdlcyBieSBWb2p0ZWNoIFBhdmxpay4KKyAqCisgKiAoMDQvMjcvMjAwMCkgUnlhbiBWYW5kZXJCaWpsCisgKiAJUHV0IGNhbGxzIHRvICpfcGFyYW5vaWFfY2hlY2tzIGludG8gb25lIGZ1bmN0aW9uLgorICogCisgKiAoMDQvMjMvMjAwMCkgZ2toCisgKglGaXhlZCBidWcgdGhhdCBSYW5keSBEdW5sYXAgZm91bmQgZm9yIEdlbmVyaWMgZGV2aWNlcyB3aXRoIG5vIGJ1bGsgb3V0IHBvcnRzLgorICoJTW92ZWQgd2hlbiB0aGUgc3RhcnR1cCBjb2RlIHByaW50ZWQgb3V0IHRoZSBkZXZpY2VzIHRoYXQgYXJlIHN1cHBvcnRlZC4KKyAqCisgKiAoMDQvMTkvMjAwMCkgZ2toCisgKglBZGRlZCBkcml2ZXIgZm9yIFp5WEVMIG9tbmkubmV0IGxjZCBwbHVzIElTRE4gVEEKKyAqCU1hZGUgc3RhcnR1cCBpbmZvIG1lc3NhZ2Ugc3BlY2lmeSB3aGljaCBkcml2ZXJzIHdlcmUgY29tcGlsZWQgaW4uCisgKgorICogKDA0LzAzLzIwMDApIGdraAorICoJQ2hhbmdlZCB0aGUgcHJvYmUgcHJvY2VzcyB0byByZW1vdmUgdGhlIG1vZHVsZSB1bmxvYWQgcmFjZXMuCisgKglDaGFuZ2VkIHdoZXJlIHRoZSB0dHkgbGF5ZXIgZ2V0cyBpbml0aWFsaXplZCB0byBoYXZlIGRldmZzIHdvcmsgbmljZXIuCisgKglBZGRlZCBpbml0aWFsIGRldmZzIHN1cHBvcnQuCisgKgorICogKDAzLzI2LzIwMDApIGdraAorICoJU3BsaXQgZHJpdmVyIHVwIGludG8gZGV2aWNlIHNwZWNpZmljIHBpZWNlcy4KKyAqIAorICogKDAzLzE5LzIwMDApIGdraAorICoJRml4ZWQgb29wcyB0aGF0IGNvdWxkIGhhcHBlbiB3aGVuIGRldmljZSB3YXMgcmVtb3ZlZCB3aGlsZSBhIHByb2dyYW0KKyAqCXdhcyB0YWxraW5nIHRvIHRoZSBkZXZpY2UuCisgKglSZW1vdmVkIHRoZSBzdGF0aWMgdXJicyBhbmQgbm93IGFsbCB1cmJzIGFyZSBjcmVhdGVkIGFuZCBkZXN0cm95ZWQKKyAqCWR5bmFtaWNhbGx5LgorICoJUmV3b3JrZWQgdGhlIGludGVybmFsIGludGVyZmFjZS4gTm93IGV2ZXJ5dGhpbmcgaXMgYmFzZWQgb24gdGhlIAorICoJdXNiX3NlcmlhbF9wb3J0IHN0cnVjdHVyZSBpbnN0ZWFkIG9mIHRoZSBsYXJnZXIgdXNiX3NlcmlhbCBzdHJ1Y3R1cmUuCisgKglUaGlzIGZpeGVzIHRoZSBidWcgdGhhdCBhIG11bHRpcG9ydCBkZXZpY2UgY291bGQgbm90IGhhdmUgbW9yZSB0aGFuCisgKglvbmUgcG9ydCBvcGVuIGF0IG9uZSB0aW1lLgorICoKKyAqICgwMy8xNy8yMDAwKSBna2gKKyAqCUFkZGVkIGNvbmZpZyBvcHRpb24gZm9yIGRlYnVnZ2luZyBtZXNzYWdlcy4KKyAqCUFkZGVkIHBhdGNoIGZvciBrZXlzcGFuIHBkYSBmcm9tIEJyaWFuIFdhcm5lci4KKyAqCisgKiAoMDMvMDYvMjAwMCkgZ2toCisgKglBZGRlZCB0aGUga2V5c3BhbiBwZGEgY29kZSBmcm9tIEJyaWFuIFdhcm5lciA8d2FybmVyQGxvdGhhci5jb20+CisgKglNb3ZlZCBhIGJ1bmNoIG9mIHRoZSBwb3J0IHNwZWNpZmljIHN0dWZmIGludG8gaXRzIG93biBzdHJ1Y3R1cmUuIFRoaXMKKyAqCWlzIGluIGFudGljaXBhdGlvbiBvZiB0aGUgdHJ1ZSBtdWx0aXBvcnQgZGV2aWNlcyAodGhlcmUncyBhIGJ1ZyBpZiB5b3UKKyAqCXRyeSB0byBhY2Nlc3MgbW9yZSB0aGFuIG9uZSBwb3J0IG9mIGFueSBtdWx0aXBvcnQgZGV2aWNlIHJpZ2h0IG5vdykKKyAqCisgKiAoMDIvMjEvMjAwMCkgZ2toCisgKglNYWRlIGl0IHNvIHRoYXQgYW55IHNlcmlhbCBkZXZpY2VzIG9ubHkgaGF2ZSB0byBzcGVjaWZ5IHdoaWNoIGZ1bmN0aW9ucworICoJdGhleSB3YW50IHRvIG92ZXJsb2FkIGZyb20gdGhlIGdlbmVyaWMgZnVuY3Rpb24gY2FsbHMgKGdyZWF0LCAKKyAqCWluaGVyaXRhbmNlIGluIEMsIGluIGEgZHJpdmVyLCBqdXN0IHdoYXQgSSB3YW50ZWQuLi4pCisgKglBZGRlZCBzdXBwb3J0IGZvciBzZXRfdGVybWlvcyBhbmQgaW9jdGwgZnVuY3Rpb24gY2FsbHMuIE5vIGRyaXZlcnMgdGFrZQorICoJYWR2YW50YWdlIG9mIHRoaXMgeWV0LgorICoJUmVtb3ZlZCB0aGUgI2lmZGVmIE1PRFVMRSwgbm93IHRoZXJlIGlzIG5vIG1vZHVsZSBzcGVjaWZpYyBjb2RlLgorICoJQ2xlYW5lZCB1cCBhIGZldyBjb21tZW50cyBpbiB1c2Itc2VyaWFsLmggdGhhdCB3ZXJlIHdyb25nICh0aGFua3MgYWdhaW4KKyAqCXRvIE1pbGVzIExvdHQpLgorICoJU21hbGwgZml4IHRvIGdldF9mcmVlX3NlcmlhbC4KKyAqCisgKiAoMDIvMTQvMjAwMCkgZ2toCisgKglSZW1vdmVkIHRoZSBCZWxraW4gYW5kIFBlcmFjb20gZnVuY3Rpb25hbGl0eSBmcm9tIHRoZSBkcml2ZXIgZHVlIHRvCisgKgl0aGUgbGFjayBvZiBzdXBwb3J0IGZyb20gdGhlIHZlbmRvciwgYW5kIG1lIG5vdCB3YW50aW5nIHBlb3BsZSB0byAKKyAqCWFjY2lkZW5hdGx5IGJ1eSB0aGUgZGV2aWNlLCBleHBlY3RpbmcgaXQgdG8gd29yayB3aXRoIExpbnV4LgorICoJQWRkZWQgcmVhZF9idWxrX2NhbGxiYWNrIGFuZCB3cml0ZV9idWxrX2NhbGxiYWNrIHRvIHRoZSB0eXBlIHN0cnVjdHVyZQorICoJZm9yIHRoZSBuZWVkcyBvZiB0aGUgRlRESSBhbmQgV2hpdGVIRUFUIGRyaXZlci4KKyAqCUNoYW5nZWQgYWxsIHJldmVyZW5jZXMgdG8gRlRESSB0byBGVERJX1NJTyBhdCB0aGUgcmVxdWVzdCBvZiBCaWxsCisgKglSeWRlci4KKyAqCUNoYW5nZWQgdGhlIG91dHB1dCB1cmIgc2l6ZSBiYWNrIHRvIHRoZSBtYXggZW5kcG9pbnQgc2l6ZSB0byBtYWtlCisgKgl0aGUgZnRkaV9zaW8gZHJpdmVyIGhhdmUgaXQgZWFzaWVyLCBhbmQgZHVlIHRvIHRoZSBmYWN0IHRoYXQgaXQgZGlkbid0CisgKglyZWFsbHkgaW5jcmVhc2UgdGhlIHNwZWVkIGFueS4KKyAqCisgKiAoMDIvMTEvMjAwMCkgZ2toCisgKglBZGRlZCBWSVNPUl9GVU5DVElPTl9DT05TT0xFIHRvIHRoZSB2aXNvciBzdGFydHVwIGZ1bmN0aW9uLiBUaGlzIHdhcyBhCisgKglwYXRjaCBmcm9tIE1pbGVzIExvdHQgKG1pbG9zQGluc3luYy5uZXQpLgorICoJRml4ZWQgYnVnIHdpdGggbm90IHJlc3RvcmluZyB0aGUgbWlub3IgcmFuZ2UgdGhhdCBhIGRldmljZSBncmFicywgaWYKKyAqCXRoZSBzdGFydHVwIGZ1bmN0aW9uIGZhaWxzICh0aGFua3MgTWlsZXMgZm9yIGZpbmRpbmcgdGhpcykuCisgKgorICogKDAyLzA1LzIwMDApIGdraAorICoJQWRkZWQgaW5pdGlhbCBmcmFtZXdvcmsgZm9yIHRoZSBLZXlzcGFuIFBEQSBzZXJpYWwgY29udmVydGVyIHNvIHRoYXQKKyAqCUJyaWFuIFdhcm5lciBoYXMgYSBwbGFjZSB0byBwdXQgaGlzIGNvZGUuCisgKglNYWRlIHRoZSBlenVzYiBzcGVjaWZpYyBmdW5jdGlvbnMgZ2VuZXJpYyBlbm91Z2ggdGhhdCBkaWZmZXJlbnQKKyAqCWRldmljZXMgY2FuIHVzZSB0aGVtICh3aGl0ZWhlYXQgYW5kIGtleXNwYW5fcGRhIGJvdGggbmVlZCB0aGVtKS4KKyAqCVNwbGl0IG91dCBhIHdob2xlIGJ1bmNoIG9mIHN0cnVjdHVyZSBhbmQgb3RoZXIgc3R1ZmYgdG8gYSBzZXBhcmF0ZQorICoJdXNiLXNlcmlhbC5oIGZpbGUuCisgKglNYWRlIHRoZSBWaXNvciBjb25uZWN0aW9uIG1lc3NhZ2VzIGEgbGl0dGxlIG1vcmUgdW5kZXJzdGFuZGFibGUsIG5vdworICoJdGhhdCBNaWxlcyBMb3R0IChtaWxvc0BpbnN5bmMubmV0KSBoYXMgZ290dGVuIHRoZSBHZW5lcmljIGNoYW5uZWwgdG8KKyAqCXdvcmsuIEFsc28gbWFkZSB0aGVtIGFsd2F5cyBzaG93IHVwIGluIHRoZSBsb2cgZmlsZS4KKyAqIAorICogKDAxLzI1LzIwMDApIGdraAorICoJQWRkZWQgaW5pdGlhbCBmcmFtZXdvcmsgZm9yIEZUREkgc2VyaWFsIGNvbnZlcnRlciBzbyB0aGF0IEJpbGwgUnlkZXIKKyAqCWhhcyBhIHBsYWNlIHRvIHB1dCBoaXMgY29kZS4KKyAqCUFkZGVkIHRoZSB2ZW5kb3Igc3BlY2lmaWMgaW5mbyBmcm9tIEhhbmRzcHJpbmcuIE5vdyB3ZSBjYW4gcHJpbnQgb3V0CisgKglpbmZvcm1hdGlvbmFsIGRlYnVnIG1lc3NhZ2VzIGFzIHdlbGwgYXMgdW5kZXJzdGFuZCB3aGF0IGlzIGhhcHBlbmluZy4KKyAqCisgKiAoMDEvMjMvMjAwMCkgZ2toCisgKglGaXhlZCBwcm9ibGVtIG9mIGNyYXNoIHdoZW4gdHJ5aW5nIHRvIG9wZW4gYSBwb3J0IHRoYXQgZGlkbid0IGhhdmUgYQorICoJZGV2aWNlIGFzc2lnbmVkIHRvIGl0LiBNYWRlIHRoZSBtaW5vciBub2RlIGZpbmRpbmcgYSBsaXR0bGUgc21hcnRlciwKKyAqCW5vdyBpdCBsb29rcyB0byBmaW5kIGEgY29udGludW91cyBzcGFjZSBmb3IgdGhlIG5ldyBkZXZpY2UuCisgKgorICogKDAxLzIxLzIwMDApIGdraAorICoJRml4ZWQgYnVnIGluIHZpc29yX3N0YXJ0dXAgd2l0aCBwYXRjaCBmcm9tIE1pbGVzIExvdHQgKG1pbG9zQGluc3luYy5uZXQpCisgKglGaXhlZCBnZXRfc2VyaWFsX2J5X21pbm9yIHdoaWNoIHdhcyBhbGwgbWVzc2VkIHVwIGZvciBtdWx0aSBwb3J0IAorICoJZGV2aWNlcy4gRml4ZWQgbXVsdGkgcG9ydCBwcm9ibGVtIGZvciBnZW5lcmljIGRldmljZXMuIE5vdyB0aGUgbnVtYmVyCisgKglvZiBwb3J0cyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBudW1iZXIgb2YgYnVsayBvdXQgZW5kcG9pbnRzIGZvciB0aGUKKyAqCWdlbmVyaWMgZGV2aWNlLgorICoKKyAqICgwMS8xOS8yMDAwKSBna2gKKyAqCVJlbW92ZWQgbG90cyBvZiBjcnVmdCB0aGF0IHdhcyBhcm91bmQgZnJvbSB0aGUgb2xkIChwcmUgdXJiKSBkcml2ZXIgCisgKglpbnRlcmZhY2UuCisgKglNYWRlIHRoZSBzZXJpYWxfdGFibGUgZHluYW1pYy4gVGhpcyBzaG91bGQgc2F2ZSBsb3RzIG9mIG1lbW9yeSB3aGVuCisgKgl0aGUgbnVtYmVyIG9mIG1pbm9yIG5vZGVzIGdvZXMgdXAgdG8gMjU2LgorICoJQWRkZWQgaW5pdGlhbCBzdXBwb3J0IGZvciBkZXZpY2VzIHRoYXQgaGF2ZSBtb3JlIHRoYW4gb25lIHBvcnQuIAorICoJQWRkZWQgbW9yZSBkZWJ1Z2dpbmcgY29tbWVudHMgZm9yIHRoZSBWaXNvciwgYW5kIGFkZGVkIGEgbmVlZGVkIAorICoJc2V0X2NvbmZpZ3VyYXRpb24gY2FsbC4KKyAqCisgKiAoMDEvMTcvMjAwMCkgZ2toCisgKglGaXhlZCB0aGUgV2hpdGVIRUFUIGZpcm13YXJlIChteSBwcm9jZXNzaW5nIHRvb2wgaGFkIGEgYnVnKQorICoJYW5kIGFkZGVkIG5ldyBkZWJ1ZyBsb2FkZXIgZmlybXdhcmUgZm9yIGl0LgorICoJUmVtb3ZlZCB0aGUgcHV0X2NoYXIgZnVuY3Rpb24gYXMgaXQgaXNuJ3QgcmVhbGx5IG5lZWRlZC4KKyAqCUFkZGVkIHZpc29yIHN0YXJ0dXAgY29tbWFuZHMgYXMgZm91bmQgYnkgdGhlIFdpbjk4IGR1bXAuCisgKiAKKyAqICgwMS8xMy8yMDAwKSBna2gKKyAqCUZpeGVkIHRoZSB2ZW5kb3IgaWQgZm9yIHRoZSBnZW5lcmljIGRyaXZlciB0byB0aGUgb25lIEkgbWVhbnQgaXQgdG8gYmUuCisgKgorICogKDAxLzEyLzIwMDApIGdraAorICoJRm9yZ2V0IHRoZSB2ZXJzaW9uIG51bWJlcmluZy4uLnRoYXQncyBwcmV0dHkgdXNlbGVzcy4uLgorICoJTWFkZSB0aGUgZHJpdmVyIGFibGUgdG8gYmUgY29tcGlsZWQgc28gdGhhdCB0aGUgdXNlciBjYW4gc2VsZWN0IHdoaWNoCisgKgljb252ZXJ0ZXIgdGhleSB3YW50IHRvIHVzZS4gVGhpcyBhbGxvd3MgcGVvcGxlIHdobyBvbmx5IHdhbnQgdGhlIFZpc29yCisgKglzdXBwb3J0IHRvIG5vdCBwYXkgdGhlIG1lbW9yeSBzaXplIHByaWNlIG9mIHRoZSBXaGl0ZUhFQVQuCisgKglGaXhlZCBidWcgd2hlcmUgdGhlIGdlbmVyaWMgZHJpdmVyIChpZFZlbmRvcj0wMDAwIGFuZCBpZFByb2R1Y3Q9MDAwMCkKKyAqCWdyYWJiZWQgdGhlIHJvb3QgaHViLiBOb3QgZ29vZC4KKyAqIAorICogdmVyc2lvbiAwLjQuMCAoMDEvMTAvMjAwMCkgZ2toCisgKglBZGRlZCB3aGl0ZWhlYXQuaCBjb250YWluaW5nIHRoZSBmaXJtd2FyZSBmb3IgdGhlIENvbm5lY3RUZWNoIFdoaXRlSEVBVAorICoJZGV2aWNlLiBBZGRlZCBzdGFydHVwIGZ1bmN0aW9uIHRvIGFsbG93IGZpcm13YXJlIHRvIGJlIGRvd25sb2FkZWQgdG8KKyAqCWEgZGV2aWNlIGlmIGl0IG5lZWRzIHRvIGJlLgorICoJQWRkZWQgZmlybXdhcmUgZG93bmxvYWQgbG9naWMgdG8gdGhlIFdoaXRlSEVBVCBkZXZpY2UuCisgKglTdGFydGVkIHRvIGFkZCAjZGVmaW5lcyB0byBzcGxpdCB1cCB0aGUgZGlmZmVyZW50IGRyaXZlcnMgZm9yIHBvdGVudGlhbAorICoJY29uZmlndXJhdGlvbiBvcHRpb24uCisgKgkKKyAqIHZlcnNpb24gMC4zLjEgKDEyLzMwLzk5KSBna2gKKyAqICAgICAgRml4ZWQgcHJvYmxlbXMgd2l0aCB1cmIgZm9yIGJ1bGsgb3V0LgorICogICAgICBBZGRlZCBpbml0aWFsIHN1cHBvcnQgZm9yIG11bHRpcGxlIHNldHMgb2YgZW5kcG9pbnRzLiBUaGlzIGVuYWJsZXMKKyAqICAgICAgdGhlIEhhbmRzcHJpbmcgVmlzb3IgdG8gYmUgYXR0YWNoZWQgc3VjY2Vzc2Z1bGx5LiBPbmx5IHRoZSBmaXJzdAorICogICAgICBidWxrIGluIC8gYnVsayBvdXQgZW5kcG9pbnQgcGFpciBpcyBiZWluZyB1c2VkIHJpZ2h0IG5vdy4KKyAqCisgKiB2ZXJzaW9uIDAuMy4wICgxMi8yNy85OSkgZ2toCisgKglBZGRlZCBpbml0aWFsIHN1cHBvcnQgZm9yIHRoZSBIYW5kc3ByaW5nIFZpc29yIGJhc2VkIG9uIGEgcGF0Y2ggZnJvbQorICoJTWlsZXMgTG90dCAobWlsb3NAc25lZXR5Lmluc3luYy5uZXQpCisgKglDbGVhbmVkIHVwIHRoZSBjb2RlIGEgYnVuY2ggYW5kIGNvbnZlcnRlZCBvdmVyIHRvIHVzaW5nIHVyYnMgb25seS4KKyAqCisgKiB2ZXJzaW9uIDAuMi4zICgxMi8yMS85OSkgZ2toCisgKglBZGRlZCBpbml0aWFsIHN1cHBvcnQgZm9yIHRoZSBDb25uZWN0IFRlY2ggV2hpdGVIRUFUIGNvbnZlcnRlci4KKyAqCUluY3JlbWVudGVkIHRoZSBudW1iZXIgb2YgcG9ydHMgaW4gZXhwZWN0YXRpb24gb2YgZ2V0dGluZyB0aGUKKyAqCVdoaXRlSEVBVCB0byB3b3JrIHByb3Blcmx5ICg0IHBvcnRzIHBlciBjb25uZWN0aW9uKS4KKyAqCUFkZGVkIG5vdGlmaWNhdGlvbiBvbiBpbnNlcnRpb24gYW5kIHJlbW92YWwgb2Ygd2hhdCBwb3J0IHRoZQorICoJZGV2aWNlIGlzL3dhcyBjb25uZWN0ZWQgdG8gKGFuZCB3aGF0IGtpbmQgb2YgZGV2aWNlIGl0IHdhcykuCisgKgorICogdmVyc2lvbiAwLjIuMiAoMTIvMTYvOTkpIGdraAorICoJQ2hhbmdlZCBtYWpvciBudW1iZXIgdG8gdGhlIG5ldyBhbGxvY2F0ZWQgbnVtYmVyLiBXZSdyZSBsZWdhbCBub3chCisgKgorICogdmVyc2lvbiAwLjIuMSAoMTIvMTQvOTkpIGdraAorICoJRml4ZWQgYnVnIHRoYXQgaGFwcGVucyB3aGVuIGRldmljZSBub2RlIGlzIG9wZW5lZCB3aGVuIHRoZXJlIGlzbid0IGEKKyAqCWRldmljZSBhdHRhY2hlZCB0byBpdC4gVGhhbmtzIHRvIG1hcmVrQHdlYmRlc2lnbi5ubyBmb3Igbm90aWNpbmcgdGhpcy4KKyAqCisgKiB2ZXJzaW9uIDAuMi4wICgxMS8xMC85OSkgZ2toCisgKglTcGxpdCB1cCBpbnRlcm5hbHMgdG8gbWFrZSBpdCBlYXNpZXIgdG8gYWRkIGRpZmZlcmVudCB0eXBlcyBvZiBzZXJpYWwgCisgKgljb252ZXJ0ZXJzIHRvIHRoZSBjb2RlLgorICoJQWRkZWQgYSAiZ2VuZXJpYyIgZHJpdmVyIHRoYXQgZ2V0cyBpdCdzIHZlbmRvciBhbmQgcHJvZHVjdCBpZAorICoJZnJvbSB3aGVuIHRoZSBtb2R1bGUgaXMgbG9hZGVkLiBUaGFua3MgdG8gRGF2aWQgRS4gTmVsc29uIChkbmVsc29uQGp1bXAubmV0KQorICoJZm9yIHRoZSBpZGVhIGFuZCBzYW1wbGUgY29kZSAoZnJvbSB0aGUgdXNiIHNjYW5uZXIgZHJpdmVyLikKKyAqCUNsZWFyZWQgdXAgYW55IGxpY2Vuc2luZyBxdWVzdGlvbnMgYnkgcmVsZWFzaW5nIGl0IHVuZGVyIHRoZSBHTlUgR1BMLgorICoKKyAqIHZlcnNpb24gMC4xLjIgKDEwLzI1Lzk5KSBna2gKKyAqIAlGaXhlZCBidWcgaW4gZGV0ZWN0aW5nIGRldmljZS4KKyAqCisgKiB2ZXJzaW9uIDAuMS4xICgxMC8wNS85OSkgZ2toCisgKiAJQ2hhbmdlZCB0aGUgbWFqb3IgbnVtYmVyIHRvIG5vdCBjb25mbGljdCB3aXRoIGFueXRoaW5nIGVsc2UuCisgKgorICogdmVyc2lvbiAwLjEgKDA5LzI4Lzk5KSBna2gKKyAqIAlDYW4gcmVjb2duaXplIHRoZSB0d28gZGlmZmVyZW50IGRldmljZXMgYW5kIHN0YXJ0IHVwIGEgcmVhZCBmcm9tCisgKglkZXZpY2Ugd2hlbiBhc2tlZCB0by4gV3JpdGVzIGFsc28gd29yay4gTm8gY29udHJvbCBzaWduYWxzIHlldCwgdGhpcworICoJYWxsIGlzIHZlbmRvciBzcGVjaWZpYyBkYXRhIChpLmUuIG5vIHNwZWMpLCBhbHNvIG5vIGNvbnRyb2wgZm9yCisgKglkaWZmZXJlbnQgYmF1ZCByYXRlcyBvciBvdGhlciBiaXQgc2V0dGluZ3MuCisgKglDdXJyZW50bHkgd2UgYXJlIHVzaW5nIHRoZSBzYW1lIGRldmlkIGFzIHRoZSBhY20gZHJpdmVyLiBUaGlzIG5lZWRzCisgKgl0byBjaGFuZ2UuCisgKiAKKyAqLworCisjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eS5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eV9kcml2ZXIuaD4KKyNpbmNsdWRlIDxsaW51eC90dHlfZmxpcC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KKyNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgorI2luY2x1ZGUgInVzYi1zZXJpYWwuaCIKKyNpbmNsdWRlICJwbDIzMDMuaCIKKworLyoKKyAqIFZlcnNpb24gSW5mb3JtYXRpb24KKyAqLworI2RlZmluZSBEUklWRVJfVkVSU0lPTiAidjIuMCIKKyNkZWZpbmUgRFJJVkVSX0FVVEhPUiAiR3JlZyBLcm9haC1IYXJ0bWFuLCBncmVnQGtyb2FoLmNvbSwgaHR0cDovL3d3dy5rcm9haC5jb20vbGludXgvIgorI2RlZmluZSBEUklWRVJfREVTQyAiVVNCIFNlcmlhbCBEcml2ZXIgY29yZSIKKworLyogRHJpdmVyIHN0cnVjdHVyZSB3ZSByZWdpc3RlciB3aXRoIHRoZSBVU0IgY29yZSAqLworc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHVzYl9zZXJpYWxfZHJpdmVyID0geworCS5vd25lciA9CVRISVNfTU9EVUxFLAorCS5uYW1lID0JCSJ1c2JzZXJpYWwiLAorCS5wcm9iZSA9CXVzYl9zZXJpYWxfcHJvYmUsCisJLmRpc2Nvbm5lY3QgPQl1c2Jfc2VyaWFsX2Rpc2Nvbm5lY3QsCit9OworCisvKiBUaGVyZSBpcyBubyBNT0RVTEVfREVWSUNFX1RBQkxFIGZvciB1c2JzZXJpYWwuYy4gIEluc3RlYWQKKyAgIHRoZSBNT0RVTEVfREVWSUNFX1RBQkxFIGRlY2xhcmF0aW9ucyBpbiBlYWNoIHNlcmlhbCBkcml2ZXIKKyAgIGNhdXNlIHRoZSAiaG90cGx1ZyIgcHJvZ3JhbSB0byBwdWxsIGluIHdoYXRldmVyIG1vZHVsZSBpcyBuZWNlc3NhcnkKKyAgIHZpYSBtb2Rwcm9iZSwgYW5kIG1vZHByb2JlIHdpbGwgbG9hZCB1c2JzZXJpYWwgYmVjYXVzZSB0aGUgc2VyaWFsCisgICBkcml2ZXJzIGRlcGVuZCBvbiBpdC4KKyovCisKK3N0YXRpYyBpbnQgZGVidWc7CitzdGF0aWMgc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbF90YWJsZVtTRVJJQUxfVFRZX01JTk9SU107CS8qIGluaXRpYWxseSBhbGwgTlVMTCAqLworc3RhdGljIExJU1RfSEVBRCh1c2Jfc2VyaWFsX2RyaXZlcl9saXN0KTsKKworc3RydWN0IHVzYl9zZXJpYWwgKnVzYl9zZXJpYWxfZ2V0X2J5X2luZGV4KHVuc2lnbmVkIGluZGV4KQoreworCXN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgPSBzZXJpYWxfdGFibGVbaW5kZXhdOworCisJaWYgKHNlcmlhbCkKKwkJa3JlZl9nZXQoJnNlcmlhbC0+a3JlZik7CisJcmV0dXJuIHNlcmlhbDsKK30KKworc3RhdGljIHN0cnVjdCB1c2Jfc2VyaWFsICpnZXRfZnJlZV9zZXJpYWwgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIGludCBudW1fcG9ydHMsIHVuc2lnbmVkIGludCAqbWlub3IpCit7CisJdW5zaWduZWQgaW50IGksIGo7CisJaW50IGdvb2Rfc3BvdDsKKworCWRiZygiJXMgJWQiLCBfX0ZVTkNUSU9OX18sIG51bV9wb3J0cyk7CisKKwkqbWlub3IgPSAwOworCWZvciAoaSA9IDA7IGkgPCBTRVJJQUxfVFRZX01JTk9SUzsgKytpKSB7CisJCWlmIChzZXJpYWxfdGFibGVbaV0pCisJCQljb250aW51ZTsKKworCQlnb29kX3Nwb3QgPSAxOworCQlmb3IgKGogPSAxOyBqIDw9IG51bV9wb3J0cy0xOyArK2opCisJCQlpZiAoKGkraiA+PSBTRVJJQUxfVFRZX01JTk9SUykgfHwgKHNlcmlhbF90YWJsZVtpK2pdKSkgeworCQkJCWdvb2Rfc3BvdCA9IDA7CisJCQkJaSArPSBqOworCQkJCWJyZWFrOworCQkJfQorCQlpZiAoZ29vZF9zcG90ID09IDApCisJCQljb250aW51ZTsKKworCQkqbWlub3IgPSBpOworCQlkYmcoIiVzIC0gbWlub3IgYmFzZSA9ICVkIiwgX19GVU5DVElPTl9fLCAqbWlub3IpOworCQlmb3IgKGkgPSAqbWlub3I7IChpIDwgKCptaW5vciArIG51bV9wb3J0cykpICYmIChpIDwgU0VSSUFMX1RUWV9NSU5PUlMpOyArK2kpCisJCQlzZXJpYWxfdGFibGVbaV0gPSBzZXJpYWw7CisJCXJldHVybiBzZXJpYWw7CisJfQorCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgdm9pZCByZXR1cm5fc2VyaWFsKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7CisJaW50IGk7CisKKwlkYmcoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCWlmIChzZXJpYWwgPT0gTlVMTCkKKwkJcmV0dXJuOworCisJZm9yIChpID0gMDsgaSA8IHNlcmlhbC0+bnVtX3BvcnRzOyArK2kpIHsKKwkJc2VyaWFsX3RhYmxlW3NlcmlhbC0+bWlub3IgKyBpXSA9IE5VTEw7CisJfQorfQorCitzdGF0aWMgdm9pZCBkZXN0cm95X3NlcmlhbChzdHJ1Y3Qga3JlZiAqa3JlZikKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsOworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQ7CisJaW50IGk7CisKKwlzZXJpYWwgPSB0b191c2Jfc2VyaWFsKGtyZWYpOworCisJZGJnICgiJXMgLSAlcyIsIF9fRlVOQ1RJT05fXywgc2VyaWFsLT50eXBlLT5uYW1lKTsKKworCXNlcmlhbC0+dHlwZS0+c2h1dGRvd24oc2VyaWFsKTsKKworCS8qIHJldHVybiB0aGUgbWlub3IgcmFuZ2UgdGhhdCB0aGlzIGRldmljZSBoYWQgKi8KKwlyZXR1cm5fc2VyaWFsKHNlcmlhbCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgc2VyaWFsLT5udW1fcG9ydHM7ICsraSkKKwkJc2VyaWFsLT5wb3J0W2ldLT5vcGVuX2NvdW50ID0gMDsKKworCS8qIHRoZSBwb3J0cyBhcmUgY2xlYW5lZCB1cCBhbmQgcmVsZWFzZWQgaW4gcG9ydF9yZWxlYXNlKCkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgc2VyaWFsLT5udW1fcG9ydHM7ICsraSkKKwkJaWYgKHNlcmlhbC0+cG9ydFtpXS0+ZGV2LnBhcmVudCAhPSBOVUxMKSB7CisJCQlkZXZpY2VfdW5yZWdpc3Rlcigmc2VyaWFsLT5wb3J0W2ldLT5kZXYpOworCQkJc2VyaWFsLT5wb3J0W2ldID0gTlVMTDsKKwkJfQorCisJLyogSWYgdGhpcyBpcyBhICJmYWtlIiBwb3J0LCB3ZSBoYXZlIHRvIGNsZWFuIGl0IHVwIGhlcmUsIGFzIGl0IHdpbGwKKwkgKiBub3QgZ2V0IGNsZWFuZWQgdXAgaW4gcG9ydF9yZWxlYXNlKCkgYXMgaXQgd2FzIG5ldmVyIHJlZ2lzdGVyZWQgd2l0aAorCSAqIHRoZSBkcml2ZXIgY29yZSAqLworCWlmIChzZXJpYWwtPm51bV9wb3J0cyA8IHNlcmlhbC0+bnVtX3BvcnRfcG9pbnRlcnMpIHsKKwkJZm9yIChpID0gc2VyaWFsLT5udW1fcG9ydHM7IGkgPCBzZXJpYWwtPm51bV9wb3J0X3BvaW50ZXJzOyArK2kpIHsKKwkJCXBvcnQgPSBzZXJpYWwtPnBvcnRbaV07CisJCQlpZiAoIXBvcnQpCisJCQkJY29udGludWU7CisJCQl1c2Jfa2lsbF91cmIocG9ydC0+cmVhZF91cmIpOworCQkJdXNiX2ZyZWVfdXJiKHBvcnQtPnJlYWRfdXJiKTsKKwkJCXVzYl9raWxsX3VyYihwb3J0LT53cml0ZV91cmIpOworCQkJdXNiX2ZyZWVfdXJiKHBvcnQtPndyaXRlX3VyYik7CisJCQl1c2Jfa2lsbF91cmIocG9ydC0+aW50ZXJydXB0X2luX3VyYik7CisJCQl1c2JfZnJlZV91cmIocG9ydC0+aW50ZXJydXB0X2luX3VyYik7CisJCQl1c2Jfa2lsbF91cmIocG9ydC0+aW50ZXJydXB0X291dF91cmIpOworCQkJdXNiX2ZyZWVfdXJiKHBvcnQtPmludGVycnVwdF9vdXRfdXJiKTsKKwkJCWtmcmVlKHBvcnQtPmJ1bGtfaW5fYnVmZmVyKTsKKwkJCWtmcmVlKHBvcnQtPmJ1bGtfb3V0X2J1ZmZlcik7CisJCQlrZnJlZShwb3J0LT5pbnRlcnJ1cHRfaW5fYnVmZmVyKTsKKwkJCWtmcmVlKHBvcnQtPmludGVycnVwdF9vdXRfYnVmZmVyKTsKKwkJfQorCX0KKworCXVzYl9wdXRfZGV2KHNlcmlhbC0+ZGV2KTsKKworCS8qIGZyZWUgdXAgYW55IG1lbW9yeSB0aGF0IHdlIGFsbG9jYXRlZCAqLworCWtmcmVlIChzZXJpYWwpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIERyaXZlciB0dHkgaW50ZXJmYWNlIGZ1bmN0aW9ucworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIGludCBzZXJpYWxfb3BlbiAoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgc3RydWN0IGZpbGUgKiBmaWxwKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWw7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydDsKKwl1bnNpZ25lZCBpbnQgcG9ydE51bWJlcjsKKwlpbnQgcmV0dmFsOworCQorCWRiZygiJXMiLCBfX0ZVTkNUSU9OX18pOworCisJLyogZ2V0IHRoZSBzZXJpYWwgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHR0eSBwb2ludGVyICovCisJc2VyaWFsID0gdXNiX3NlcmlhbF9nZXRfYnlfaW5kZXgodHR5LT5pbmRleCk7CisJaWYgKCFzZXJpYWwpIHsKKwkJdHR5LT5kcml2ZXJfZGF0YSA9IE5VTEw7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCXBvcnROdW1iZXIgPSB0dHktPmluZGV4IC0gc2VyaWFsLT5taW5vcjsKKwlwb3J0ID0gc2VyaWFsLT5wb3J0W3BvcnROdW1iZXJdOworCSAKKwkrK3BvcnQtPm9wZW5fY291bnQ7CisKKwlpZiAocG9ydC0+b3Blbl9jb3VudCA9PSAxKSB7CisKKwkJLyogc2V0IHVwIG91ciBwb3J0IHN0cnVjdHVyZSBtYWtpbmcgdGhlIHR0eSBkcml2ZXIKKwkJICogcmVtZW1iZXIgb3VyIHBvcnQgb2JqZWN0LCBhbmQgdXMgaXQgKi8KKwkJdHR5LT5kcml2ZXJfZGF0YSA9IHBvcnQ7CisJCXBvcnQtPnR0eSA9IHR0eTsKKworCQkvKiBsb2NrIHRoaXMgbW9kdWxlIGJlZm9yZSB3ZSBjYWxsIGl0CisJCSAqIHRoaXMgbWF5IGZhaWwsIHdoaWNoIG1lYW5zIHdlIG11c3QgYmFpbCBvdXQsCisJCSAqIHNhZmUgYmVjYXVzZSB3ZSBhcmUgY2FsbGVkIHdpdGggQktMIGhlbGQgKi8KKwkJaWYgKCF0cnlfbW9kdWxlX2dldChzZXJpYWwtPnR5cGUtPm93bmVyKSkgeworCQkJcmV0dmFsID0gLUVOT0RFVjsKKwkJCWdvdG8gYmFpbG91dF9rcmVmX3B1dDsKKwkJfQorCisJCS8qIG9ubHkgY2FsbCB0aGUgZGV2aWNlIHNwZWNpZmljIG9wZW4gaWYgdGhpcyAKKwkJICogaXMgdGhlIGZpcnN0IHRpbWUgdGhlIHBvcnQgaXMgb3BlbmVkICovCisJCXJldHZhbCA9IHNlcmlhbC0+dHlwZS0+b3Blbihwb3J0LCBmaWxwKTsKKwkJaWYgKHJldHZhbCkKKwkJCWdvdG8gYmFpbG91dF9tb2R1bGVfcHV0OworCX0KKworCXJldHVybiAwOworCitiYWlsb3V0X21vZHVsZV9wdXQ6CisJbW9kdWxlX3B1dChzZXJpYWwtPnR5cGUtPm93bmVyKTsKK2JhaWxvdXRfa3JlZl9wdXQ6CisJa3JlZl9wdXQoJnNlcmlhbC0+a3JlZiwgZGVzdHJveV9zZXJpYWwpOworCXBvcnQtPm9wZW5fY291bnQgPSAwOworCXJldHVybiByZXR2YWw7Cit9CisKK3N0YXRpYyB2b2lkIHNlcmlhbF9jbG9zZShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBzdHJ1Y3QgZmlsZSAqIGZpbHApCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopIHR0eS0+ZHJpdmVyX2RhdGE7CisKKwlpZiAoIXBvcnQpCisJCXJldHVybjsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJaWYgKHBvcnQtPm9wZW5fY291bnQgPT0gMCkKKwkJcmV0dXJuOworCisJLS1wb3J0LT5vcGVuX2NvdW50OworCWlmIChwb3J0LT5vcGVuX2NvdW50ID09IDApIHsKKwkJLyogb25seSBjYWxsIHRoZSBkZXZpY2Ugc3BlY2lmaWMgY2xvc2UgaWYgdGhpcyAKKwkJICogcG9ydCBpcyBiZWluZyBjbG9zZWQgYnkgdGhlIGxhc3Qgb3duZXIgKi8KKwkJcG9ydC0+c2VyaWFsLT50eXBlLT5jbG9zZShwb3J0LCBmaWxwKTsKKworCQlpZiAocG9ydC0+dHR5KSB7CisJCQlpZiAocG9ydC0+dHR5LT5kcml2ZXJfZGF0YSkKKwkJCQlwb3J0LT50dHktPmRyaXZlcl9kYXRhID0gTlVMTDsKKwkJCXBvcnQtPnR0eSA9IE5VTEw7CisJCX0KKworCQltb2R1bGVfcHV0KHBvcnQtPnNlcmlhbC0+dHlwZS0+b3duZXIpOworCX0KKworCWtyZWZfcHV0KCZwb3J0LT5zZXJpYWwtPmtyZWYsIGRlc3Ryb3lfc2VyaWFsKTsKK30KKworc3RhdGljIGludCBzZXJpYWxfd3JpdGUgKHN0cnVjdCB0dHlfc3RydWN0ICogdHR5LCBjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBjb3VudCkKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ID0gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKikgdHR5LT5kcml2ZXJfZGF0YTsKKwlpbnQgcmV0dmFsID0gLUVJTlZBTDsKKworCWRiZygiJXMgLSBwb3J0ICVkLCAlZCBieXRlKHMpIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIsIGNvdW50KTsKKworCWlmICghcG9ydC0+b3Blbl9jb3VudCkgeworCQlkYmcoIiVzIC0gcG9ydCBub3Qgb3BlbmVkIiwgX19GVU5DVElPTl9fKTsKKwkJZ290byBleGl0OworCX0KKworCS8qIHBhc3Mgb24gdG8gdGhlIGRyaXZlciBzcGVjaWZpYyB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb24gKi8KKwlyZXR2YWwgPSBwb3J0LT5zZXJpYWwtPnR5cGUtPndyaXRlKHBvcnQsIGJ1ZiwgY291bnQpOworCitleGl0OgorCXJldHVybiByZXR2YWw7Cit9CisKK3N0YXRpYyBpbnQgc2VyaWFsX3dyaXRlX3Jvb20gKHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpIAoreworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqKSB0dHktPmRyaXZlcl9kYXRhOworCWludCByZXR2YWwgPSAtRUlOVkFMOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAoIXBvcnQtPm9wZW5fY291bnQpIHsKKwkJZGJnKCIlcyAtIHBvcnQgbm90IG9wZW4iLCBfX0ZVTkNUSU9OX18pOworCQlnb3RvIGV4aXQ7CisJfQorCisJLyogcGFzcyBvbiB0byB0aGUgZHJpdmVyIHNwZWNpZmljIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvbiAqLworCXJldHZhbCA9IHBvcnQtPnNlcmlhbC0+dHlwZS0+d3JpdGVfcm9vbShwb3J0KTsKKworZXhpdDoKKwlyZXR1cm4gcmV0dmFsOworfQorCitzdGF0aWMgaW50IHNlcmlhbF9jaGFyc19pbl9idWZmZXIgKHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpIAoreworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqKSB0dHktPmRyaXZlcl9kYXRhOworCWludCByZXR2YWwgPSAtRUlOVkFMOworCisJZGJnKCIlcyA9IHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAoIXBvcnQtPm9wZW5fY291bnQpIHsKKwkJZGJnKCIlcyAtIHBvcnQgbm90IG9wZW4iLCBfX0ZVTkNUSU9OX18pOworCQlnb3RvIGV4aXQ7CisJfQorCisJLyogcGFzcyBvbiB0byB0aGUgZHJpdmVyIHNwZWNpZmljIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvbiAqLworCXJldHZhbCA9IHBvcnQtPnNlcmlhbC0+dHlwZS0+Y2hhcnNfaW5fYnVmZmVyKHBvcnQpOworCitleGl0OgorCXJldHVybiByZXR2YWw7Cit9CisKK3N0YXRpYyB2b2lkIHNlcmlhbF90aHJvdHRsZSAoc3RydWN0IHR0eV9zdHJ1Y3QgKiB0dHkpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopIHR0eS0+ZHJpdmVyX2RhdGE7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCWlmICghcG9ydC0+b3Blbl9jb3VudCkgeworCQlkYmcgKCIlcyAtIHBvcnQgbm90IG9wZW4iLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm47CisJfQorCisJLyogcGFzcyBvbiB0byB0aGUgZHJpdmVyIHNwZWNpZmljIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvbiAqLworCWlmIChwb3J0LT5zZXJpYWwtPnR5cGUtPnRocm90dGxlKQorCQlwb3J0LT5zZXJpYWwtPnR5cGUtPnRocm90dGxlKHBvcnQpOworfQorCitzdGF0aWMgdm9pZCBzZXJpYWxfdW50aHJvdHRsZSAoc3RydWN0IHR0eV9zdHJ1Y3QgKiB0dHkpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopIHR0eS0+ZHJpdmVyX2RhdGE7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCWlmICghcG9ydC0+b3Blbl9jb3VudCkgeworCQlkYmcoIiVzIC0gcG9ydCBub3Qgb3BlbiIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybjsKKwl9CisKKwkvKiBwYXNzIG9uIHRvIHRoZSBkcml2ZXIgc3BlY2lmaWMgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uICovCisJaWYgKHBvcnQtPnNlcmlhbC0+dHlwZS0+dW50aHJvdHRsZSkKKwkJcG9ydC0+c2VyaWFsLT50eXBlLT51bnRocm90dGxlKHBvcnQpOworfQorCitzdGF0aWMgaW50IHNlcmlhbF9pb2N0bCAoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgc3RydWN0IGZpbGUgKiBmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ID0gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKikgdHR5LT5kcml2ZXJfZGF0YTsKKwlpbnQgcmV0dmFsID0gLUVOT0RFVjsKKworCWRiZygiJXMgLSBwb3J0ICVkLCBjbWQgMHglLjR4IiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIsIGNtZCk7CisKKwlpZiAoIXBvcnQtPm9wZW5fY291bnQpIHsKKwkJZGJnICgiJXMgLSBwb3J0IG5vdCBvcGVuIiwgX19GVU5DVElPTl9fKTsKKwkJZ290byBleGl0OworCX0KKworCS8qIHBhc3Mgb24gdG8gdGhlIGRyaXZlciBzcGVjaWZpYyB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb24gaWYgaXQgaXMgYXZhaWxhYmxlICovCisJaWYgKHBvcnQtPnNlcmlhbC0+dHlwZS0+aW9jdGwpCisJCXJldHZhbCA9IHBvcnQtPnNlcmlhbC0+dHlwZS0+aW9jdGwocG9ydCwgZmlsZSwgY21kLCBhcmcpOworCWVsc2UKKwkJcmV0dmFsID0gLUVOT0lPQ1RMQ01EOworCitleGl0OgorCXJldHVybiByZXR2YWw7Cit9CisKK3N0YXRpYyB2b2lkIHNlcmlhbF9zZXRfdGVybWlvcyAoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgc3RydWN0IHRlcm1pb3MgKiBvbGQpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopIHR0eS0+ZHJpdmVyX2RhdGE7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCWlmICghcG9ydC0+b3Blbl9jb3VudCkgeworCQlkYmcoIiVzIC0gcG9ydCBub3Qgb3BlbiIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybjsKKwl9CisKKwkvKiBwYXNzIG9uIHRvIHRoZSBkcml2ZXIgc3BlY2lmaWMgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uIGlmIGl0IGlzIGF2YWlsYWJsZSAqLworCWlmIChwb3J0LT5zZXJpYWwtPnR5cGUtPnNldF90ZXJtaW9zKQorCQlwb3J0LT5zZXJpYWwtPnR5cGUtPnNldF90ZXJtaW9zKHBvcnQsIG9sZCk7Cit9CisKK3N0YXRpYyB2b2lkIHNlcmlhbF9icmVhayAoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgaW50IGJyZWFrX3N0YXRlKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqKSB0dHktPmRyaXZlcl9kYXRhOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAoIXBvcnQtPm9wZW5fY291bnQpIHsKKwkJZGJnKCIlcyAtIHBvcnQgbm90IG9wZW4iLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm47CisJfQorCisJLyogcGFzcyBvbiB0byB0aGUgZHJpdmVyIHNwZWNpZmljIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvbiBpZiBpdCBpcyBhdmFpbGFibGUgKi8KKwlpZiAocG9ydC0+c2VyaWFsLT50eXBlLT5icmVha19jdGwpCisJCXBvcnQtPnNlcmlhbC0+dHlwZS0+YnJlYWtfY3RsKHBvcnQsIGJyZWFrX3N0YXRlKTsKK30KKworc3RhdGljIGludCBzZXJpYWxfcmVhZF9wcm9jIChjaGFyICpwYWdlLCBjaGFyICoqc3RhcnQsIG9mZl90IG9mZiwgaW50IGNvdW50LCBpbnQgKmVvZiwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsOworCWludCBsZW5ndGggPSAwOworCWludCBpOworCW9mZl90IGJlZ2luID0gMDsKKwljaGFyIHRtcFs0MF07CisKKwlkYmcoIiVzIiwgX19GVU5DVElPTl9fKTsKKwlsZW5ndGggKz0gc3ByaW50ZiAocGFnZSwgInVzYnNlcmluZm86MS4wIGRyaXZlcjolc1xuIiwgRFJJVkVSX1ZFUlNJT04pOworCWZvciAoaSA9IDA7IGkgPCBTRVJJQUxfVFRZX01JTk9SUyAmJiBsZW5ndGggPCBQQUdFX1NJWkU7ICsraSkgeworCQlzZXJpYWwgPSB1c2Jfc2VyaWFsX2dldF9ieV9pbmRleChpKTsKKwkJaWYgKHNlcmlhbCA9PSBOVUxMKQorCQkJY29udGludWU7CisKKwkJbGVuZ3RoICs9IHNwcmludGYgKHBhZ2UrbGVuZ3RoLCAiJWQ6IiwgaSk7CisJCWlmIChzZXJpYWwtPnR5cGUtPm93bmVyKQorCQkJbGVuZ3RoICs9IHNwcmludGYgKHBhZ2UrbGVuZ3RoLCAiIG1vZHVsZTolcyIsIG1vZHVsZV9uYW1lKHNlcmlhbC0+dHlwZS0+b3duZXIpKTsKKwkJbGVuZ3RoICs9IHNwcmludGYgKHBhZ2UrbGVuZ3RoLCAiIG5hbWU6XCIlc1wiIiwgc2VyaWFsLT50eXBlLT5uYW1lKTsKKwkJbGVuZ3RoICs9IHNwcmludGYgKHBhZ2UrbGVuZ3RoLCAiIHZlbmRvcjolMDR4IHByb2R1Y3Q6JTA0eCIsIAorCQkJCSAgIGxlMTZfdG9fY3B1KHNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmlkVmVuZG9yKSwgCisJCQkJICAgbGUxNl90b19jcHUoc2VyaWFsLT5kZXYtPmRlc2NyaXB0b3IuaWRQcm9kdWN0KSk7CisJCWxlbmd0aCArPSBzcHJpbnRmIChwYWdlK2xlbmd0aCwgIiBudW1fcG9ydHM6JWQiLCBzZXJpYWwtPm51bV9wb3J0cyk7CisJCWxlbmd0aCArPSBzcHJpbnRmIChwYWdlK2xlbmd0aCwgIiBwb3J0OiVkIiwgaSAtIHNlcmlhbC0+bWlub3IgKyAxKTsKKworCQl1c2JfbWFrZV9wYXRoKHNlcmlhbC0+ZGV2LCB0bXAsIHNpemVvZih0bXApKTsKKwkJbGVuZ3RoICs9IHNwcmludGYgKHBhZ2UrbGVuZ3RoLCAiIHBhdGg6JXMiLCB0bXApOworCQkJCisJCWxlbmd0aCArPSBzcHJpbnRmIChwYWdlK2xlbmd0aCwgIlxuIik7CisJCWlmICgobGVuZ3RoICsgYmVnaW4pID4gKG9mZiArIGNvdW50KSkKKwkJCWdvdG8gZG9uZTsKKwkJaWYgKChsZW5ndGggKyBiZWdpbikgPCBvZmYpIHsKKwkJCWJlZ2luICs9IGxlbmd0aDsKKwkJCWxlbmd0aCA9IDA7CisJCX0KKwkJa3JlZl9wdXQoJnNlcmlhbC0+a3JlZiwgZGVzdHJveV9zZXJpYWwpOworCX0KKwkqZW9mID0gMTsKK2RvbmU6CisJaWYgKG9mZiA+PSAobGVuZ3RoICsgYmVnaW4pKQorCQlyZXR1cm4gMDsKKwkqc3RhcnQgPSBwYWdlICsgKG9mZi1iZWdpbik7CisJcmV0dXJuICgoY291bnQgPCBiZWdpbitsZW5ndGgtb2ZmKSA/IGNvdW50IDogYmVnaW4rbGVuZ3RoLW9mZik7Cit9CisKK3N0YXRpYyBpbnQgc2VyaWFsX3Rpb2NtZ2V0IChzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ID0gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKikgdHR5LT5kcml2ZXJfZGF0YTsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJaWYgKCFwb3J0LT5vcGVuX2NvdW50KSB7CisJCWRiZygiJXMgLSBwb3J0IG5vdCBvcGVuIiwgX19GVU5DVElPTl9fKTsKKwkJZ290byBleGl0OworCX0KKworCWlmIChwb3J0LT5zZXJpYWwtPnR5cGUtPnRpb2NtZ2V0KQorCQlyZXR1cm4gcG9ydC0+c2VyaWFsLT50eXBlLT50aW9jbWdldChwb3J0LCBmaWxlKTsKKworZXhpdDoKKwlyZXR1cm4gLUVJTlZBTDsKK30KKworc3RhdGljIGludCBzZXJpYWxfdGlvY21zZXQgKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIHN0cnVjdCBmaWxlICpmaWxlLAorCQkJICAgIHVuc2lnbmVkIGludCBzZXQsIHVuc2lnbmVkIGludCBjbGVhcikKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ID0gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKikgdHR5LT5kcml2ZXJfZGF0YTsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJaWYgKCFwb3J0LT5vcGVuX2NvdW50KSB7CisJCWRiZygiJXMgLSBwb3J0IG5vdCBvcGVuIiwgX19GVU5DVElPTl9fKTsKKwkJZ290byBleGl0OworCX0KKworCWlmIChwb3J0LT5zZXJpYWwtPnR5cGUtPnRpb2Ntc2V0KQorCQlyZXR1cm4gcG9ydC0+c2VyaWFsLT50eXBlLT50aW9jbXNldChwb3J0LCBmaWxlLCBzZXQsIGNsZWFyKTsKKworZXhpdDoKKwlyZXR1cm4gLUVJTlZBTDsKK30KKwordm9pZCB1c2Jfc2VyaWFsX3BvcnRfc29mdGludCh2b2lkICpwcml2YXRlKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqKXByaXZhdGU7CisJc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eTsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCQorCWlmICghcG9ydCkKKwkJcmV0dXJuOworCisJdHR5ID0gcG9ydC0+dHR5OworCWlmICghdHR5KQorCQlyZXR1cm47CisKKwl0dHlfd2FrZXVwKHR0eSk7Cit9CisKK3N0YXRpYyB2b2lkIHBvcnRfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IHRvX3VzYl9zZXJpYWxfcG9ydChkZXYpOworCisJZGJnICgiJXMgLSAlcyIsIF9fRlVOQ1RJT05fXywgZGV2LT5idXNfaWQpOworCXVzYl9raWxsX3VyYihwb3J0LT5yZWFkX3VyYik7CisJdXNiX2ZyZWVfdXJiKHBvcnQtPnJlYWRfdXJiKTsKKwl1c2Jfa2lsbF91cmIocG9ydC0+d3JpdGVfdXJiKTsKKwl1c2JfZnJlZV91cmIocG9ydC0+d3JpdGVfdXJiKTsKKwl1c2Jfa2lsbF91cmIocG9ydC0+aW50ZXJydXB0X2luX3VyYik7CisJdXNiX2ZyZWVfdXJiKHBvcnQtPmludGVycnVwdF9pbl91cmIpOworCXVzYl9raWxsX3VyYihwb3J0LT5pbnRlcnJ1cHRfb3V0X3VyYik7CisJdXNiX2ZyZWVfdXJiKHBvcnQtPmludGVycnVwdF9vdXRfdXJiKTsKKwlrZnJlZShwb3J0LT5idWxrX2luX2J1ZmZlcik7CisJa2ZyZWUocG9ydC0+YnVsa19vdXRfYnVmZmVyKTsKKwlrZnJlZShwb3J0LT5pbnRlcnJ1cHRfaW5fYnVmZmVyKTsKKwlrZnJlZShwb3J0LT5pbnRlcnJ1cHRfb3V0X2J1ZmZlcik7CisJa2ZyZWUocG9ydCk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbCAqIGNyZWF0ZV9zZXJpYWwgKHN0cnVjdCB1c2JfZGV2aWNlICpkZXYsIAorCQkJCQkgIHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UsCisJCQkJCSAgc3RydWN0IHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUgKnR5cGUpCit7CisJc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbDsKKworCXNlcmlhbCA9IGttYWxsb2MgKHNpemVvZiAoKnNlcmlhbCksIEdGUF9LRVJORUwpOworCWlmICghc2VyaWFsKSB7CisJCWRldl9lcnIoJmRldi0+ZGV2LCAiJXMgLSBvdXQgb2YgbWVtb3J5XG4iLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm4gTlVMTDsKKwl9CisJbWVtc2V0IChzZXJpYWwsIDAsIHNpemVvZigqc2VyaWFsKSk7CisJc2VyaWFsLT5kZXYgPSB1c2JfZ2V0X2RldihkZXYpOworCXNlcmlhbC0+dHlwZSA9IHR5cGU7CisJc2VyaWFsLT5pbnRlcmZhY2UgPSBpbnRlcmZhY2U7CisJa3JlZl9pbml0KCZzZXJpYWwtPmtyZWYpOworCisJcmV0dXJuIHNlcmlhbDsKK30KKworc3RhdGljIHN0cnVjdCB1c2Jfc2VyaWFsX2RldmljZV90eXBlICpzZWFyY2hfc2VyaWFsX2RldmljZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaWZhY2UpCit7CisJc3RydWN0IGxpc3RfaGVhZCAqcDsKKwljb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQ7CisJc3RydWN0IHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUgKnQ7CisKKwkvKiBMaXN0IHRyb3VnaCBrbm93IGRldmljZXMgYW5kIHNlZSBpZiB0aGUgdXNiIGlkIG1hdGNoZXMgKi8KKwlsaXN0X2Zvcl9lYWNoKHAsICZ1c2Jfc2VyaWFsX2RyaXZlcl9saXN0KSB7CisJCXQgPSBsaXN0X2VudHJ5KHAsIHN0cnVjdCB1c2Jfc2VyaWFsX2RldmljZV90eXBlLCBkcml2ZXJfbGlzdCk7CisJCWlkID0gdXNiX21hdGNoX2lkKGlmYWNlLCB0LT5pZF90YWJsZSk7CisJCWlmIChpZCAhPSBOVUxMKSB7CisJCQlkYmcoImRlc2NyaXB0b3IgbWF0Y2hlcyIpOworCQkJcmV0dXJuIHQ7CisJCX0KKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKworaW50IHVzYl9zZXJpYWxfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSwKKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpCit7CisJc3RydWN0IHVzYl9kZXZpY2UgKmRldiA9IGludGVyZmFjZV90b191c2JkZXYgKGludGVyZmFjZSk7CisJc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCA9IE5VTEw7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydDsKKwlzdHJ1Y3QgdXNiX2hvc3RfaW50ZXJmYWNlICppZmFjZV9kZXNjOworCXN0cnVjdCB1c2JfZW5kcG9pbnRfZGVzY3JpcHRvciAqZW5kcG9pbnQ7CisJc3RydWN0IHVzYl9lbmRwb2ludF9kZXNjcmlwdG9yICppbnRlcnJ1cHRfaW5fZW5kcG9pbnRbTUFYX05VTV9QT1JUU107CisJc3RydWN0IHVzYl9lbmRwb2ludF9kZXNjcmlwdG9yICppbnRlcnJ1cHRfb3V0X2VuZHBvaW50W01BWF9OVU1fUE9SVFNdOworCXN0cnVjdCB1c2JfZW5kcG9pbnRfZGVzY3JpcHRvciAqYnVsa19pbl9lbmRwb2ludFtNQVhfTlVNX1BPUlRTXTsKKwlzdHJ1Y3QgdXNiX2VuZHBvaW50X2Rlc2NyaXB0b3IgKmJ1bGtfb3V0X2VuZHBvaW50W01BWF9OVU1fUE9SVFNdOworCXN0cnVjdCB1c2Jfc2VyaWFsX2RldmljZV90eXBlICp0eXBlID0gTlVMTDsKKwlpbnQgcmV0dmFsOworCWludCBtaW5vcjsKKwlpbnQgYnVmZmVyX3NpemU7CisJaW50IGk7CisJaW50IG51bV9pbnRlcnJ1cHRfaW4gPSAwOworCWludCBudW1faW50ZXJydXB0X291dCA9IDA7CisJaW50IG51bV9idWxrX2luID0gMDsKKwlpbnQgbnVtX2J1bGtfb3V0ID0gMDsKKwlpbnQgbnVtX3BvcnRzID0gMDsKKwlpbnQgbWF4X2VuZHBvaW50czsKKworCXR5cGUgPSBzZWFyY2hfc2VyaWFsX2RldmljZShpbnRlcmZhY2UpOworCWlmICghdHlwZSkgeworCQlkYmcoIm5vbmUgbWF0Y2hlZCIpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlzZXJpYWwgPSBjcmVhdGVfc2VyaWFsIChkZXYsIGludGVyZmFjZSwgdHlwZSk7CisJaWYgKCFzZXJpYWwpIHsKKwkJZGV2X2VycigmaW50ZXJmYWNlLT5kZXYsICIlcyAtIG91dCBvZiBtZW1vcnlcbiIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCS8qIGlmIHRoaXMgZGV2aWNlIHR5cGUgaGFzIGEgcHJvYmUgZnVuY3Rpb24sIGNhbGwgaXQgKi8KKwlpZiAodHlwZS0+cHJvYmUpIHsKKwkJY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkOworCisJCWlmICghdHJ5X21vZHVsZV9nZXQodHlwZS0+b3duZXIpKSB7CisJCQlkZXZfZXJyKCZpbnRlcmZhY2UtPmRldiwgIm1vZHVsZSBnZXQgZmFpbGVkLCBleGl0aW5nXG4iKTsKKwkJCWtmcmVlIChzZXJpYWwpOworCQkJcmV0dXJuIC1FSU87CisJCX0KKworCQlpZCA9IHVzYl9tYXRjaF9pZChpbnRlcmZhY2UsIHR5cGUtPmlkX3RhYmxlKTsKKwkJcmV0dmFsID0gdHlwZS0+cHJvYmUoc2VyaWFsLCBpZCk7CisJCW1vZHVsZV9wdXQodHlwZS0+b3duZXIpOworCisJCWlmIChyZXR2YWwpIHsKKwkJCWRiZyAoInN1YiBkcml2ZXIgcmVqZWN0ZWQgZGV2aWNlIik7CisJCQlrZnJlZSAoc2VyaWFsKTsKKwkJCXJldHVybiByZXR2YWw7CisJCX0KKwl9CisKKwkvKiBkZXNjcmlwdG9yIG1hdGNoZXMsIGxldCdzIGZpbmQgdGhlIGVuZHBvaW50cyBuZWVkZWQgKi8KKwkvKiBjaGVjayBvdXQgdGhlIGVuZHBvaW50cyAqLworCWlmYWNlX2Rlc2MgPSBpbnRlcmZhY2UtPmN1cl9hbHRzZXR0aW5nOworCWZvciAoaSA9IDA7IGkgPCBpZmFjZV9kZXNjLT5kZXNjLmJOdW1FbmRwb2ludHM7ICsraSkgeworCQllbmRwb2ludCA9ICZpZmFjZV9kZXNjLT5lbmRwb2ludFtpXS5kZXNjOworCQkKKwkJaWYgKChlbmRwb2ludC0+YkVuZHBvaW50QWRkcmVzcyAmIDB4ODApICYmCisJCSAgICAoKGVuZHBvaW50LT5ibUF0dHJpYnV0ZXMgJiAzKSA9PSAweDAyKSkgeworCQkJLyogd2UgZm91bmQgYSBidWxrIGluIGVuZHBvaW50ICovCisJCQlkYmcoImZvdW5kIGJ1bGsgaW4gb24gZW5kcG9pbnQgJWQiLCBpKTsKKwkJCWJ1bGtfaW5fZW5kcG9pbnRbbnVtX2J1bGtfaW5dID0gZW5kcG9pbnQ7CisJCQkrK251bV9idWxrX2luOworCQl9CisKKwkJaWYgKCgoZW5kcG9pbnQtPmJFbmRwb2ludEFkZHJlc3MgJiAweDgwKSA9PSAweDAwKSAmJgorCQkgICAgKChlbmRwb2ludC0+Ym1BdHRyaWJ1dGVzICYgMykgPT0gMHgwMikpIHsKKwkJCS8qIHdlIGZvdW5kIGEgYnVsayBvdXQgZW5kcG9pbnQgKi8KKwkJCWRiZygiZm91bmQgYnVsayBvdXQgb24gZW5kcG9pbnQgJWQiLCBpKTsKKwkJCWJ1bGtfb3V0X2VuZHBvaW50W251bV9idWxrX291dF0gPSBlbmRwb2ludDsKKwkJCSsrbnVtX2J1bGtfb3V0OworCQl9CisJCQorCQlpZiAoKGVuZHBvaW50LT5iRW5kcG9pbnRBZGRyZXNzICYgMHg4MCkgJiYKKwkJICAgICgoZW5kcG9pbnQtPmJtQXR0cmlidXRlcyAmIDMpID09IDB4MDMpKSB7CisJCQkvKiB3ZSBmb3VuZCBhIGludGVycnVwdCBpbiBlbmRwb2ludCAqLworCQkJZGJnKCJmb3VuZCBpbnRlcnJ1cHQgaW4gb24gZW5kcG9pbnQgJWQiLCBpKTsKKwkJCWludGVycnVwdF9pbl9lbmRwb2ludFtudW1faW50ZXJydXB0X2luXSA9IGVuZHBvaW50OworCQkJKytudW1faW50ZXJydXB0X2luOworCQl9CisKKwkJaWYgKCgoZW5kcG9pbnQtPmJFbmRwb2ludEFkZHJlc3MgJiAweDgwKSA9PSAweDAwKSAmJgorCQkgICAgKChlbmRwb2ludC0+Ym1BdHRyaWJ1dGVzICYgMykgPT0gMHgwMykpIHsKKwkJCS8qIHdlIGZvdW5kIGFuIGludGVycnVwdCBvdXQgZW5kcG9pbnQgKi8KKwkJCWRiZygiZm91bmQgaW50ZXJydXB0IG91dCBvbiBlbmRwb2ludCAlZCIsIGkpOworCQkJaW50ZXJydXB0X291dF9lbmRwb2ludFtudW1faW50ZXJydXB0X291dF0gPSBlbmRwb2ludDsKKwkJCSsrbnVtX2ludGVycnVwdF9vdXQ7CisJCX0KKwl9CisKKyNpZiBkZWZpbmVkKENPTkZJR19VU0JfU0VSSUFMX1BMMjMwMykgfHwgZGVmaW5lZChDT05GSUdfVVNCX1NFUklBTF9QTDIzMDNfTU9EVUxFKQorCS8qIEJFR0lOIEhPUlJJQkxFIEhBQ0sgRk9SIFBMMjMwMyAqLyAKKwkvKiB0aGlzIGlzIG5lZWRlZCBkdWUgdG8gdGhlIGxvb25leSB3YXkgaXRzIGVuZHBvaW50cyBhcmUgc2V0IHVwICovCisJaWYgKCgobGUxNl90b19jcHUoZGV2LT5kZXNjcmlwdG9yLmlkVmVuZG9yKSA9PSBQTDIzMDNfVkVORE9SX0lEKSAmJgorCSAgICAgKGxlMTZfdG9fY3B1KGRldi0+ZGVzY3JpcHRvci5pZFByb2R1Y3QpID09IFBMMjMwM19QUk9EVUNUX0lEKSkgfHwKKwkgICAgKChsZTE2X3RvX2NwdShkZXYtPmRlc2NyaXB0b3IuaWRWZW5kb3IpID09IEFURU5fVkVORE9SX0lEKSAmJgorCSAgICAgKGxlMTZfdG9fY3B1KGRldi0+ZGVzY3JpcHRvci5pZFByb2R1Y3QpID09IEFURU5fUFJPRFVDVF9JRCkpKSB7CisJCWlmIChpbnRlcmZhY2UgIT0gZGV2LT5hY3Rjb25maWctPmludGVyZmFjZVswXSkgeworCQkJLyogY2hlY2sgb3V0IHRoZSBlbmRwb2ludHMgb2YgdGhlIG90aGVyIGludGVyZmFjZSovCisJCQlpZmFjZV9kZXNjID0gZGV2LT5hY3Rjb25maWctPmludGVyZmFjZVswXS0+Y3VyX2FsdHNldHRpbmc7CisJCQlmb3IgKGkgPSAwOyBpIDwgaWZhY2VfZGVzYy0+ZGVzYy5iTnVtRW5kcG9pbnRzOyArK2kpIHsKKwkJCQllbmRwb2ludCA9ICZpZmFjZV9kZXNjLT5lbmRwb2ludFtpXS5kZXNjOworCQkJCWlmICgoZW5kcG9pbnQtPmJFbmRwb2ludEFkZHJlc3MgJiAweDgwKSAmJgorCQkJCSAgICAoKGVuZHBvaW50LT5ibUF0dHJpYnV0ZXMgJiAzKSA9PSAweDAzKSkgeworCQkJCQkvKiB3ZSBmb3VuZCBhIGludGVycnVwdCBpbiBlbmRwb2ludCAqLworCQkJCQlkYmcoImZvdW5kIGludGVycnVwdCBpbiBmb3IgUHJvbGlmaWMgZGV2aWNlIG9uIHNlcGFyYXRlIGludGVyZmFjZSIpOworCQkJCQlpbnRlcnJ1cHRfaW5fZW5kcG9pbnRbbnVtX2ludGVycnVwdF9pbl0gPSBlbmRwb2ludDsKKwkJCQkJKytudW1faW50ZXJydXB0X2luOworCQkJCX0KKwkJCX0KKwkJfQorCisJCS8qIE5vdyBtYWtlIHN1cmUgdGhlIFBMLTIzMDMgaXMgY29uZmlndXJlZCBjb3JyZWN0bHkuCisJCSAqIElmIG5vdCwgZ2l2ZSB1cCBub3cgYW5kIGhvcGUgdGhpcyBoYWNrIHdpbGwgd29yaworCQkgKiBwcm9wZXJseSBkdXJpbmcgYSBsYXRlciBpbnZvY2F0aW9uIG9mIHVzYl9zZXJpYWxfcHJvYmUKKwkJICovCisJCWlmIChudW1fYnVsa19pbiA9PSAwIHx8IG51bV9idWxrX291dCA9PSAwKSB7CisJCQlkZXZfaW5mbygmaW50ZXJmYWNlLT5kZXYsICJQTC0yMzAzIGhhY2s6IGRlc2NyaXB0b3JzIG1hdGNoZWQgYnV0IGVuZHBvaW50cyBkaWQgbm90XG4iKTsKKwkJCWtmcmVlIChzZXJpYWwpOworCQkJcmV0dXJuIC1FTk9ERVY7CisJCX0KKwl9CisJLyogRU5EIEhPUlJJQkxFIEhBQ0sgRk9SIFBMMjMwMyAqLworI2VuZGlmCisKKwkvKiBmb3VuZCBhbGwgdGhhdCB3ZSBuZWVkICovCisJZGV2X2luZm8oJmludGVyZmFjZS0+ZGV2LCAiJXMgY29udmVydGVyIGRldGVjdGVkXG4iLCB0eXBlLT5uYW1lKTsKKworI2lmZGVmIENPTkZJR19VU0JfU0VSSUFMX0dFTkVSSUMKKwlpZiAodHlwZSA9PSAmdXNiX3NlcmlhbF9nZW5lcmljX2RldmljZSkgeworCQludW1fcG9ydHMgPSBudW1fYnVsa19vdXQ7CisJCWlmIChudW1fcG9ydHMgPT0gMCkgeworCQkJZGV2X2VycigmaW50ZXJmYWNlLT5kZXYsICJHZW5lcmljIGRldmljZSB3aXRoIG5vIGJ1bGsgb3V0LCBub3QgYWxsb3dlZC5cbiIpOworCQkJa2ZyZWUgKHNlcmlhbCk7CisJCQlyZXR1cm4gLUVJTzsKKwkJfQorCX0KKyNlbmRpZgorCWlmICghbnVtX3BvcnRzKSB7CisJCS8qIGlmIHRoaXMgZGV2aWNlIHR5cGUgaGFzIGEgY2FsY19udW1fcG9ydHMgZnVuY3Rpb24sIGNhbGwgaXQgKi8KKwkJaWYgKHR5cGUtPmNhbGNfbnVtX3BvcnRzKSB7CisJCQlpZiAoIXRyeV9tb2R1bGVfZ2V0KHR5cGUtPm93bmVyKSkgeworCQkJCWRldl9lcnIoJmludGVyZmFjZS0+ZGV2LCAibW9kdWxlIGdldCBmYWlsZWQsIGV4aXRpbmdcbiIpOworCQkJCWtmcmVlIChzZXJpYWwpOworCQkJCXJldHVybiAtRUlPOworCQkJfQorCQkJbnVtX3BvcnRzID0gdHlwZS0+Y2FsY19udW1fcG9ydHMgKHNlcmlhbCk7CisJCQltb2R1bGVfcHV0KHR5cGUtPm93bmVyKTsKKwkJfQorCQlpZiAoIW51bV9wb3J0cykKKwkJCW51bV9wb3J0cyA9IHR5cGUtPm51bV9wb3J0czsKKwl9CisKKwlpZiAoZ2V0X2ZyZWVfc2VyaWFsIChzZXJpYWwsIG51bV9wb3J0cywgJm1pbm9yKSA9PSBOVUxMKSB7CisJCWRldl9lcnIoJmludGVyZmFjZS0+ZGV2LCAiTm8gbW9yZSBmcmVlIHNlcmlhbCBkZXZpY2VzXG4iKTsKKwkJa2ZyZWUgKHNlcmlhbCk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCXNlcmlhbC0+bWlub3IgPSBtaW5vcjsKKwlzZXJpYWwtPm51bV9wb3J0cyA9IG51bV9wb3J0czsKKwlzZXJpYWwtPm51bV9idWxrX2luID0gbnVtX2J1bGtfaW47CisJc2VyaWFsLT5udW1fYnVsa19vdXQgPSBudW1fYnVsa19vdXQ7CisJc2VyaWFsLT5udW1faW50ZXJydXB0X2luID0gbnVtX2ludGVycnVwdF9pbjsKKwlzZXJpYWwtPm51bV9pbnRlcnJ1cHRfb3V0ID0gbnVtX2ludGVycnVwdF9vdXQ7CisKKwkvKiBjcmVhdGUgb3VyIHBvcnRzLCB3ZSBuZWVkIGFzIG1hbnkgYXMgdGhlIG1heCBlbmRwb2ludHMgKi8KKwkvKiB3ZSBkb24ndCB1c2UgbnVtX3BvcnRzIGhlcmUgY2F1eiBzb21lIGRldmljZXMgaGF2ZSBtb3JlIGVuZHBvaW50IHBhaXJzIHRoYW4gcG9ydHMgKi8KKwltYXhfZW5kcG9pbnRzID0gbWF4KG51bV9idWxrX2luLCBudW1fYnVsa19vdXQpOworCW1heF9lbmRwb2ludHMgPSBtYXgobWF4X2VuZHBvaW50cywgbnVtX2ludGVycnVwdF9pbik7CisJbWF4X2VuZHBvaW50cyA9IG1heChtYXhfZW5kcG9pbnRzLCBudW1faW50ZXJydXB0X291dCk7CisJbWF4X2VuZHBvaW50cyA9IG1heChtYXhfZW5kcG9pbnRzLCAoaW50KXNlcmlhbC0+bnVtX3BvcnRzKTsKKwlzZXJpYWwtPm51bV9wb3J0X3BvaW50ZXJzID0gbWF4X2VuZHBvaW50czsKKwlkYmcoIiVzIC0gc2V0dGluZyB1cCAlZCBwb3J0IHN0cnVjdHVyZXMgZm9yIHRoaXMgZGV2aWNlIiwgX19GVU5DVElPTl9fLCBtYXhfZW5kcG9pbnRzKTsKKwlmb3IgKGkgPSAwOyBpIDwgbWF4X2VuZHBvaW50czsgKytpKSB7CisJCXBvcnQgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0KSwgR0ZQX0tFUk5FTCk7CisJCWlmICghcG9ydCkKKwkJCWdvdG8gcHJvYmVfZXJyb3I7CisJCW1lbXNldChwb3J0LCAweDAwLCBzaXplb2Yoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCkpOworCQlwb3J0LT5udW1iZXIgPSBpICsgc2VyaWFsLT5taW5vcjsKKwkJcG9ydC0+c2VyaWFsID0gc2VyaWFsOworCQlJTklUX1dPUksoJnBvcnQtPndvcmssIHVzYl9zZXJpYWxfcG9ydF9zb2Z0aW50LCBwb3J0KTsKKwkJc2VyaWFsLT5wb3J0W2ldID0gcG9ydDsKKwl9CisKKwkvKiBzZXQgdXAgdGhlIGVuZHBvaW50IGluZm9ybWF0aW9uICovCisJZm9yIChpID0gMDsgaSA8IG51bV9idWxrX2luOyArK2kpIHsKKwkJZW5kcG9pbnQgPSBidWxrX2luX2VuZHBvaW50W2ldOworCQlwb3J0ID0gc2VyaWFsLT5wb3J0W2ldOworCQlwb3J0LT5yZWFkX3VyYiA9IHVzYl9hbGxvY191cmIgKDAsIEdGUF9LRVJORUwpOworCQlpZiAoIXBvcnQtPnJlYWRfdXJiKSB7CisJCQlkZXZfZXJyKCZpbnRlcmZhY2UtPmRldiwgIk5vIGZyZWUgdXJicyBhdmFpbGFibGVcbiIpOworCQkJZ290byBwcm9iZV9lcnJvcjsKKwkJfQorCQlidWZmZXJfc2l6ZSA9IGxlMTZfdG9fY3B1KGVuZHBvaW50LT53TWF4UGFja2V0U2l6ZSk7CisJCXBvcnQtPmJ1bGtfaW5fc2l6ZSA9IGJ1ZmZlcl9zaXplOworCQlwb3J0LT5idWxrX2luX2VuZHBvaW50QWRkcmVzcyA9IGVuZHBvaW50LT5iRW5kcG9pbnRBZGRyZXNzOworCQlwb3J0LT5idWxrX2luX2J1ZmZlciA9IGttYWxsb2MgKGJ1ZmZlcl9zaXplLCBHRlBfS0VSTkVMKTsKKwkJaWYgKCFwb3J0LT5idWxrX2luX2J1ZmZlcikgeworCQkJZGV2X2VycigmaW50ZXJmYWNlLT5kZXYsICJDb3VsZG4ndCBhbGxvY2F0ZSBidWxrX2luX2J1ZmZlclxuIik7CisJCQlnb3RvIHByb2JlX2Vycm9yOworCQl9CisJCXVzYl9maWxsX2J1bGtfdXJiIChwb3J0LT5yZWFkX3VyYiwgZGV2LAorCQkJCSAgIHVzYl9yY3ZidWxrcGlwZSAoZGV2LAorCQkJCQkgICAJICAgIGVuZHBvaW50LT5iRW5kcG9pbnRBZGRyZXNzKSwKKwkJCQkgICBwb3J0LT5idWxrX2luX2J1ZmZlciwgYnVmZmVyX3NpemUsCisJCQkJICAgc2VyaWFsLT50eXBlLT5yZWFkX2J1bGtfY2FsbGJhY2ssCisJCQkJICAgcG9ydCk7CisJfQorCisJZm9yIChpID0gMDsgaSA8IG51bV9idWxrX291dDsgKytpKSB7CisJCWVuZHBvaW50ID0gYnVsa19vdXRfZW5kcG9pbnRbaV07CisJCXBvcnQgPSBzZXJpYWwtPnBvcnRbaV07CisJCXBvcnQtPndyaXRlX3VyYiA9IHVzYl9hbGxvY191cmIoMCwgR0ZQX0tFUk5FTCk7CisJCWlmICghcG9ydC0+d3JpdGVfdXJiKSB7CisJCQlkZXZfZXJyKCZpbnRlcmZhY2UtPmRldiwgIk5vIGZyZWUgdXJicyBhdmFpbGFibGVcbiIpOworCQkJZ290byBwcm9iZV9lcnJvcjsKKwkJfQorCQlidWZmZXJfc2l6ZSA9IGxlMTZfdG9fY3B1KGVuZHBvaW50LT53TWF4UGFja2V0U2l6ZSk7CisJCXBvcnQtPmJ1bGtfb3V0X3NpemUgPSBidWZmZXJfc2l6ZTsKKwkJcG9ydC0+YnVsa19vdXRfZW5kcG9pbnRBZGRyZXNzID0gZW5kcG9pbnQtPmJFbmRwb2ludEFkZHJlc3M7CisJCXBvcnQtPmJ1bGtfb3V0X2J1ZmZlciA9IGttYWxsb2MgKGJ1ZmZlcl9zaXplLCBHRlBfS0VSTkVMKTsKKwkJaWYgKCFwb3J0LT5idWxrX291dF9idWZmZXIpIHsKKwkJCWRldl9lcnIoJmludGVyZmFjZS0+ZGV2LCAiQ291bGRuJ3QgYWxsb2NhdGUgYnVsa19vdXRfYnVmZmVyXG4iKTsKKwkJCWdvdG8gcHJvYmVfZXJyb3I7CisJCX0KKwkJdXNiX2ZpbGxfYnVsa191cmIgKHBvcnQtPndyaXRlX3VyYiwgZGV2LAorCQkJCSAgIHVzYl9zbmRidWxrcGlwZSAoZGV2LAorCQkJCQkJICAgIGVuZHBvaW50LT5iRW5kcG9pbnRBZGRyZXNzKSwKKwkJCQkgICBwb3J0LT5idWxrX291dF9idWZmZXIsIGJ1ZmZlcl9zaXplLCAKKwkJCQkgICBzZXJpYWwtPnR5cGUtPndyaXRlX2J1bGtfY2FsbGJhY2ssCisJCQkJICAgcG9ydCk7CisJfQorCisJaWYgKHNlcmlhbC0+dHlwZS0+cmVhZF9pbnRfY2FsbGJhY2spIHsKKwkJZm9yIChpID0gMDsgaSA8IG51bV9pbnRlcnJ1cHRfaW47ICsraSkgeworCQkJZW5kcG9pbnQgPSBpbnRlcnJ1cHRfaW5fZW5kcG9pbnRbaV07CisJCQlwb3J0ID0gc2VyaWFsLT5wb3J0W2ldOworCQkJcG9ydC0+aW50ZXJydXB0X2luX3VyYiA9IHVzYl9hbGxvY191cmIoMCwgR0ZQX0tFUk5FTCk7CisJCQlpZiAoIXBvcnQtPmludGVycnVwdF9pbl91cmIpIHsKKwkJCQlkZXZfZXJyKCZpbnRlcmZhY2UtPmRldiwgIk5vIGZyZWUgdXJicyBhdmFpbGFibGVcbiIpOworCQkJCWdvdG8gcHJvYmVfZXJyb3I7CisJCQl9CisJCQlidWZmZXJfc2l6ZSA9IGxlMTZfdG9fY3B1KGVuZHBvaW50LT53TWF4UGFja2V0U2l6ZSk7CisJCQlwb3J0LT5pbnRlcnJ1cHRfaW5fZW5kcG9pbnRBZGRyZXNzID0gZW5kcG9pbnQtPmJFbmRwb2ludEFkZHJlc3M7CisJCQlwb3J0LT5pbnRlcnJ1cHRfaW5fYnVmZmVyID0ga21hbGxvYyAoYnVmZmVyX3NpemUsIEdGUF9LRVJORUwpOworCQkJaWYgKCFwb3J0LT5pbnRlcnJ1cHRfaW5fYnVmZmVyKSB7CisJCQkJZGV2X2VycigmaW50ZXJmYWNlLT5kZXYsICJDb3VsZG4ndCBhbGxvY2F0ZSBpbnRlcnJ1cHRfaW5fYnVmZmVyXG4iKTsKKwkJCQlnb3RvIHByb2JlX2Vycm9yOworCQkJfQorCQkJdXNiX2ZpbGxfaW50X3VyYiAocG9ydC0+aW50ZXJydXB0X2luX3VyYiwgZGV2LCAKKwkJCQkJICB1c2JfcmN2aW50cGlwZSAoZGV2LAorCQkJCQkJCSAgZW5kcG9pbnQtPmJFbmRwb2ludEFkZHJlc3MpLAorCQkJCQkgIHBvcnQtPmludGVycnVwdF9pbl9idWZmZXIsIGJ1ZmZlcl9zaXplLCAKKwkJCQkJICBzZXJpYWwtPnR5cGUtPnJlYWRfaW50X2NhbGxiYWNrLCBwb3J0LCAKKwkJCQkJICBlbmRwb2ludC0+YkludGVydmFsKTsKKwkJfQorCX0gZWxzZSBpZiAobnVtX2ludGVycnVwdF9pbikgeworCQlkYmcoInRoZSBkZXZpY2UgY2xhaW1zIHRvIHN1cHBvcnQgaW50ZXJydXB0IGluIHRyYW5zZmVycywgYnV0IHJlYWRfaW50X2NhbGxiYWNrIGlzIG5vdCBkZWZpbmVkIik7CisJfQorCQorCWlmIChzZXJpYWwtPnR5cGUtPndyaXRlX2ludF9jYWxsYmFjaykgeworCQlmb3IgKGkgPSAwOyBpIDwgbnVtX2ludGVycnVwdF9vdXQ7ICsraSkgeworCQkJZW5kcG9pbnQgPSBpbnRlcnJ1cHRfb3V0X2VuZHBvaW50W2ldOworCQkJcG9ydCA9IHNlcmlhbC0+cG9ydFtpXTsKKwkJCXBvcnQtPmludGVycnVwdF9vdXRfdXJiID0gdXNiX2FsbG9jX3VyYigwLCBHRlBfS0VSTkVMKTsKKwkJCWlmICghcG9ydC0+aW50ZXJydXB0X291dF91cmIpIHsKKwkJCQlkZXZfZXJyKCZpbnRlcmZhY2UtPmRldiwgIk5vIGZyZWUgdXJicyBhdmFpbGFibGVcbiIpOworCQkJCWdvdG8gcHJvYmVfZXJyb3I7CisJCQl9CisJCQlidWZmZXJfc2l6ZSA9IGxlMTZfdG9fY3B1KGVuZHBvaW50LT53TWF4UGFja2V0U2l6ZSk7CisJCQlwb3J0LT5pbnRlcnJ1cHRfb3V0X3NpemUgPSBidWZmZXJfc2l6ZTsKKwkJCXBvcnQtPmludGVycnVwdF9vdXRfZW5kcG9pbnRBZGRyZXNzID0gZW5kcG9pbnQtPmJFbmRwb2ludEFkZHJlc3M7CisJCQlwb3J0LT5pbnRlcnJ1cHRfb3V0X2J1ZmZlciA9IGttYWxsb2MgKGJ1ZmZlcl9zaXplLCBHRlBfS0VSTkVMKTsKKwkJCWlmICghcG9ydC0+aW50ZXJydXB0X291dF9idWZmZXIpIHsKKwkJCQlkZXZfZXJyKCZpbnRlcmZhY2UtPmRldiwgIkNvdWxkbid0IGFsbG9jYXRlIGludGVycnVwdF9vdXRfYnVmZmVyXG4iKTsKKwkJCQlnb3RvIHByb2JlX2Vycm9yOworCQkJfQorCQkJdXNiX2ZpbGxfaW50X3VyYiAocG9ydC0+aW50ZXJydXB0X291dF91cmIsIGRldiwKKwkJCQkJICB1c2Jfc25kaW50cGlwZSAoZGV2LAorCQkJCQkJCSAgZW5kcG9pbnQtPmJFbmRwb2ludEFkZHJlc3MpLAorCQkJCQkgIHBvcnQtPmludGVycnVwdF9vdXRfYnVmZmVyLCBidWZmZXJfc2l6ZSwKKwkJCQkJICBzZXJpYWwtPnR5cGUtPndyaXRlX2ludF9jYWxsYmFjaywgcG9ydCwKKwkJCQkJICBlbmRwb2ludC0+YkludGVydmFsKTsKKwkJfQorCX0gZWxzZSBpZiAobnVtX2ludGVycnVwdF9vdXQpIHsKKwkJZGJnKCJ0aGUgZGV2aWNlIGNsYWltcyB0byBzdXBwb3J0IGludGVycnVwdCBvdXQgdHJhbnNmZXJzLCBidXQgd3JpdGVfaW50X2NhbGxiYWNrIGlzIG5vdCBkZWZpbmVkIik7CisJfQorCQorCS8qIGlmIHRoaXMgZGV2aWNlIHR5cGUgaGFzIGFuIGF0dGFjaCBmdW5jdGlvbiwgY2FsbCBpdCAqLworCWlmICh0eXBlLT5hdHRhY2gpIHsKKwkJaWYgKCF0cnlfbW9kdWxlX2dldCh0eXBlLT5vd25lcikpIHsKKwkJCWRldl9lcnIoJmludGVyZmFjZS0+ZGV2LCAibW9kdWxlIGdldCBmYWlsZWQsIGV4aXRpbmdcbiIpOworCQkJZ290byBwcm9iZV9lcnJvcjsKKwkJfQorCQlyZXR2YWwgPSB0eXBlLT5hdHRhY2ggKHNlcmlhbCk7CisJCW1vZHVsZV9wdXQodHlwZS0+b3duZXIpOworCQlpZiAocmV0dmFsIDwgMCkKKwkJCWdvdG8gcHJvYmVfZXJyb3I7CisJCWlmIChyZXR2YWwgPiAwKSB7CisJCQkvKiBxdWlldGx5IGFjY2VwdCB0aGlzIGRldmljZSwgYnV0IGRvbid0IGJpbmQgdG8gYSBzZXJpYWwgcG9ydAorCQkJICogYXMgaXQncyBhYm91dCB0byBkaXNhcHBlYXIgKi8KKwkJCWdvdG8gZXhpdDsKKwkJfQorCX0KKworCS8qIHJlZ2lzdGVyIGFsbCBvZiB0aGUgaW5kaXZpZHVhbCBwb3J0cyB3aXRoIHRoZSBkcml2ZXIgY29yZSAqLworCWZvciAoaSA9IDA7IGkgPCBudW1fcG9ydHM7ICsraSkgeworCQlwb3J0ID0gc2VyaWFsLT5wb3J0W2ldOworCQlwb3J0LT5kZXYucGFyZW50ID0gJmludGVyZmFjZS0+ZGV2OworCQlwb3J0LT5kZXYuZHJpdmVyID0gTlVMTDsKKwkJcG9ydC0+ZGV2LmJ1cyA9ICZ1c2Jfc2VyaWFsX2J1c190eXBlOworCQlwb3J0LT5kZXYucmVsZWFzZSA9ICZwb3J0X3JlbGVhc2U7CisKKwkJc25wcmludGYgKCZwb3J0LT5kZXYuYnVzX2lkWzBdLCBzaXplb2YocG9ydC0+ZGV2LmJ1c19pZCksICJ0dHlVU0IlZCIsIHBvcnQtPm51bWJlcik7CisJCWRiZyAoIiVzIC0gcmVnaXN0ZXJpbmcgJXMiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPmRldi5idXNfaWQpOworCQlkZXZpY2VfcmVnaXN0ZXIgKCZwb3J0LT5kZXYpOworCX0KKworCXVzYl9zZXJpYWxfY29uc29sZV9pbml0IChkZWJ1ZywgbWlub3IpOworCitleGl0OgorCS8qIHN1Y2Nlc3MgKi8KKwl1c2Jfc2V0X2ludGZkYXRhIChpbnRlcmZhY2UsIHNlcmlhbCk7CisJcmV0dXJuIDA7CisKK3Byb2JlX2Vycm9yOgorCWZvciAoaSA9IDA7IGkgPCBudW1fYnVsa19pbjsgKytpKSB7CisJCXBvcnQgPSBzZXJpYWwtPnBvcnRbaV07CisJCWlmICghcG9ydCkKKwkJCWNvbnRpbnVlOworCQlpZiAocG9ydC0+cmVhZF91cmIpCisJCQl1c2JfZnJlZV91cmIgKHBvcnQtPnJlYWRfdXJiKTsKKwkJa2ZyZWUocG9ydC0+YnVsa19pbl9idWZmZXIpOworCX0KKwlmb3IgKGkgPSAwOyBpIDwgbnVtX2J1bGtfb3V0OyArK2kpIHsKKwkJcG9ydCA9IHNlcmlhbC0+cG9ydFtpXTsKKwkJaWYgKCFwb3J0KQorCQkJY29udGludWU7CisJCWlmIChwb3J0LT53cml0ZV91cmIpCisJCQl1c2JfZnJlZV91cmIgKHBvcnQtPndyaXRlX3VyYik7CisJCWtmcmVlKHBvcnQtPmJ1bGtfb3V0X2J1ZmZlcik7CisJfQorCWZvciAoaSA9IDA7IGkgPCBudW1faW50ZXJydXB0X2luOyArK2kpIHsKKwkJcG9ydCA9IHNlcmlhbC0+cG9ydFtpXTsKKwkJaWYgKCFwb3J0KQorCQkJY29udGludWU7CisJCWlmIChwb3J0LT5pbnRlcnJ1cHRfaW5fdXJiKQorCQkJdXNiX2ZyZWVfdXJiIChwb3J0LT5pbnRlcnJ1cHRfaW5fdXJiKTsKKwkJa2ZyZWUocG9ydC0+aW50ZXJydXB0X2luX2J1ZmZlcik7CisJfQorCWZvciAoaSA9IDA7IGkgPCBudW1faW50ZXJydXB0X291dDsgKytpKSB7CisJCXBvcnQgPSBzZXJpYWwtPnBvcnRbaV07CisJCWlmICghcG9ydCkKKwkJCWNvbnRpbnVlOworCQlpZiAocG9ydC0+aW50ZXJydXB0X291dF91cmIpCisJCQl1c2JfZnJlZV91cmIgKHBvcnQtPmludGVycnVwdF9vdXRfdXJiKTsKKwkJa2ZyZWUocG9ydC0+aW50ZXJydXB0X291dF9idWZmZXIpOworCX0KKworCS8qIHJldHVybiB0aGUgbWlub3IgcmFuZ2UgdGhhdCB0aGlzIGRldmljZSBoYWQgKi8KKwlyZXR1cm5fc2VyaWFsIChzZXJpYWwpOworCisJLyogZnJlZSB1cCBhbnkgbWVtb3J5IHRoYXQgd2UgYWxsb2NhdGVkICovCisJZm9yIChpID0gMDsgaSA8IHNlcmlhbC0+bnVtX3BvcnRfcG9pbnRlcnM7ICsraSkKKwkJa2ZyZWUoc2VyaWFsLT5wb3J0W2ldKTsKKwlrZnJlZSAoc2VyaWFsKTsKKwlyZXR1cm4gLUVJTzsKK30KKwordm9pZCB1c2Jfc2VyaWFsX2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSkKK3sKKwlpbnQgaTsKKwlzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsID0gdXNiX2dldF9pbnRmZGF0YSAoaW50ZXJmYWNlKTsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmaW50ZXJmYWNlLT5kZXY7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydDsKKworCWRiZyAoIiVzIiwgX19GVU5DVElPTl9fKTsKKworCXVzYl9zZXRfaW50ZmRhdGEgKGludGVyZmFjZSwgTlVMTCk7CisJaWYgKHNlcmlhbCkgeworCQlmb3IgKGkgPSAwOyBpIDwgc2VyaWFsLT5udW1fcG9ydHM7ICsraSkgeworCQkJcG9ydCA9IHNlcmlhbC0+cG9ydFtpXTsKKwkJCWlmIChwb3J0ICYmIHBvcnQtPnR0eSkKKwkJCQl0dHlfaGFuZ3VwKHBvcnQtPnR0eSk7CisJCX0KKwkJLyogbGV0IHRoZSBsYXN0IGhvbGRlciBvZiB0aGlzIG9iamVjdCAKKwkJICogY2F1c2UgaXQgdG8gYmUgY2xlYW5lZCB1cCAqLworCQlrcmVmX3B1dCgmc2VyaWFsLT5rcmVmLCBkZXN0cm95X3NlcmlhbCk7CisJfQorCWRldl9pbmZvKGRldiwgImRldmljZSBkaXNjb25uZWN0ZWRcbiIpOworfQorCitzdGF0aWMgc3RydWN0IHR0eV9vcGVyYXRpb25zIHNlcmlhbF9vcHMgPSB7CisJLm9wZW4gPQkJCXNlcmlhbF9vcGVuLAorCS5jbG9zZSA9CQlzZXJpYWxfY2xvc2UsCisJLndyaXRlID0JCXNlcmlhbF93cml0ZSwKKwkud3JpdGVfcm9vbSA9CQlzZXJpYWxfd3JpdGVfcm9vbSwKKwkuaW9jdGwgPQkJc2VyaWFsX2lvY3RsLAorCS5zZXRfdGVybWlvcyA9CQlzZXJpYWxfc2V0X3Rlcm1pb3MsCisJLnRocm90dGxlID0JCXNlcmlhbF90aHJvdHRsZSwKKwkudW50aHJvdHRsZSA9CQlzZXJpYWxfdW50aHJvdHRsZSwKKwkuYnJlYWtfY3RsID0JCXNlcmlhbF9icmVhaywKKwkuY2hhcnNfaW5fYnVmZmVyID0Jc2VyaWFsX2NoYXJzX2luX2J1ZmZlciwKKwkucmVhZF9wcm9jID0JCXNlcmlhbF9yZWFkX3Byb2MsCisJLnRpb2NtZ2V0ID0JCXNlcmlhbF90aW9jbWdldCwKKwkudGlvY21zZXQgPQkJc2VyaWFsX3Rpb2Ntc2V0LAorfTsKKworc3RydWN0IHR0eV9kcml2ZXIgKnVzYl9zZXJpYWxfdHR5X2RyaXZlcjsKKworc3RhdGljIGludCBfX2luaXQgdXNiX3NlcmlhbF9pbml0KHZvaWQpCit7CisJaW50IGk7CisJaW50IHJlc3VsdDsKKworCXVzYl9zZXJpYWxfdHR5X2RyaXZlciA9IGFsbG9jX3R0eV9kcml2ZXIoU0VSSUFMX1RUWV9NSU5PUlMpOworCWlmICghdXNiX3NlcmlhbF90dHlfZHJpdmVyKQorCQlyZXR1cm4gLUVOT01FTTsKKworCS8qIEluaXRpYWxpemUgb3VyIGdsb2JhbCBkYXRhICovCisJZm9yIChpID0gMDsgaSA8IFNFUklBTF9UVFlfTUlOT1JTOyArK2kpIHsKKwkJc2VyaWFsX3RhYmxlW2ldID0gTlVMTDsKKwl9CisKKwlyZXN1bHQgPSBidXNfcmVnaXN0ZXIoJnVzYl9zZXJpYWxfYnVzX3R5cGUpOworCWlmIChyZXN1bHQpIHsKKwkJZXJyKCIlcyAtIHJlZ2lzdGVyaW5nIGJ1cyBkcml2ZXIgZmFpbGVkIiwgX19GVU5DVElPTl9fKTsKKwkJZ290byBleGl0X2J1czsKKwl9CisKKwkvKiByZWdpc3RlciB0aGUgZ2VuZXJpYyBkcml2ZXIsIGlmIHdlIHNob3VsZCAqLworCXJlc3VsdCA9IHVzYl9zZXJpYWxfZ2VuZXJpY19yZWdpc3RlcihkZWJ1Zyk7CisJaWYgKHJlc3VsdCA8IDApIHsKKwkJZXJyKCIlcyAtIHJlZ2lzdGVyaW5nIGdlbmVyaWMgZHJpdmVyIGZhaWxlZCIsIF9fRlVOQ1RJT05fXyk7CisJCWdvdG8gZXhpdF9nZW5lcmljOworCX0KKworCXVzYl9zZXJpYWxfdHR5X2RyaXZlci0+b3duZXIgPSBUSElTX01PRFVMRTsKKwl1c2Jfc2VyaWFsX3R0eV9kcml2ZXItPmRyaXZlcl9uYW1lID0gInVzYnNlcmlhbCI7CisJdXNiX3NlcmlhbF90dHlfZHJpdmVyLT5kZXZmc19uYW1lID0gInVzYi90dHMvIjsKKwl1c2Jfc2VyaWFsX3R0eV9kcml2ZXItPm5hbWUgPSAJInR0eVVTQiI7CisJdXNiX3NlcmlhbF90dHlfZHJpdmVyLT5tYWpvciA9IFNFUklBTF9UVFlfTUFKT1I7CisJdXNiX3NlcmlhbF90dHlfZHJpdmVyLT5taW5vcl9zdGFydCA9IDA7CisJdXNiX3NlcmlhbF90dHlfZHJpdmVyLT50eXBlID0gVFRZX0RSSVZFUl9UWVBFX1NFUklBTDsKKwl1c2Jfc2VyaWFsX3R0eV9kcml2ZXItPnN1YnR5cGUgPSBTRVJJQUxfVFlQRV9OT1JNQUw7CisJdXNiX3NlcmlhbF90dHlfZHJpdmVyLT5mbGFncyA9IFRUWV9EUklWRVJfUkVBTF9SQVcgfCBUVFlfRFJJVkVSX05PX0RFVkZTOworCXVzYl9zZXJpYWxfdHR5X2RyaXZlci0+aW5pdF90ZXJtaW9zID0gdHR5X3N0ZF90ZXJtaW9zOworCXVzYl9zZXJpYWxfdHR5X2RyaXZlci0+aW5pdF90ZXJtaW9zLmNfY2ZsYWcgPSBCOTYwMCB8IENTOCB8IENSRUFEIHwgSFVQQ0wgfCBDTE9DQUw7CisJdHR5X3NldF9vcGVyYXRpb25zKHVzYl9zZXJpYWxfdHR5X2RyaXZlciwgJnNlcmlhbF9vcHMpOworCXJlc3VsdCA9IHR0eV9yZWdpc3Rlcl9kcml2ZXIodXNiX3NlcmlhbF90dHlfZHJpdmVyKTsKKwlpZiAocmVzdWx0KSB7CisJCWVycigiJXMgLSB0dHlfcmVnaXN0ZXJfZHJpdmVyIGZhaWxlZCIsIF9fRlVOQ1RJT05fXyk7CisJCWdvdG8gZXhpdF9yZWdfZHJpdmVyOworCX0KKworCS8qIHJlZ2lzdGVyIHRoZSBVU0IgZHJpdmVyICovCisJcmVzdWx0ID0gdXNiX3JlZ2lzdGVyKCZ1c2Jfc2VyaWFsX2RyaXZlcik7CisJaWYgKHJlc3VsdCA8IDApIHsKKwkJZXJyKCIlcyAtIHVzYl9yZWdpc3RlciBmYWlsZWQiLCBfX0ZVTkNUSU9OX18pOworCQlnb3RvIGV4aXRfdHR5OworCX0KKworCWluZm8oRFJJVkVSX0RFU0MgIiAiIERSSVZFUl9WRVJTSU9OKTsKKworCXJldHVybiByZXN1bHQ7CisKK2V4aXRfdHR5OgorCXR0eV91bnJlZ2lzdGVyX2RyaXZlcih1c2Jfc2VyaWFsX3R0eV9kcml2ZXIpOworCitleGl0X3JlZ19kcml2ZXI6CisJdXNiX3NlcmlhbF9nZW5lcmljX2RlcmVnaXN0ZXIoKTsKKworZXhpdF9nZW5lcmljOgorCWJ1c191bnJlZ2lzdGVyKCZ1c2Jfc2VyaWFsX2J1c190eXBlKTsKKworZXhpdF9idXM6CisJZXJyICgiJXMgLSByZXR1cm5pbmcgd2l0aCBlcnJvciAlZCIsIF9fRlVOQ1RJT05fXywgcmVzdWx0KTsKKwlwdXRfdHR5X2RyaXZlcih1c2Jfc2VyaWFsX3R0eV9kcml2ZXIpOworCXJldHVybiByZXN1bHQ7Cit9CisKKworc3RhdGljIHZvaWQgX19leGl0IHVzYl9zZXJpYWxfZXhpdCh2b2lkKQoreworCXVzYl9zZXJpYWxfY29uc29sZV9leGl0KCk7CisKKwl1c2Jfc2VyaWFsX2dlbmVyaWNfZGVyZWdpc3RlcigpOworCisJdXNiX2RlcmVnaXN0ZXIoJnVzYl9zZXJpYWxfZHJpdmVyKTsKKwl0dHlfdW5yZWdpc3Rlcl9kcml2ZXIodXNiX3NlcmlhbF90dHlfZHJpdmVyKTsKKwlwdXRfdHR5X2RyaXZlcih1c2Jfc2VyaWFsX3R0eV9kcml2ZXIpOworCWJ1c191bnJlZ2lzdGVyKCZ1c2Jfc2VyaWFsX2J1c190eXBlKTsKK30KKworCittb2R1bGVfaW5pdCh1c2Jfc2VyaWFsX2luaXQpOworbW9kdWxlX2V4aXQodXNiX3NlcmlhbF9leGl0KTsKKworI2RlZmluZSBzZXRfdG9fZ2VuZXJpY19pZl9udWxsKHR5cGUsIGZ1bmN0aW9uKQkJCQlcCisJZG8gewkJCQkJCQkJXAorCQlpZiAoIXR5cGUtPmZ1bmN0aW9uKSB7CQkJCQlcCisJCQl0eXBlLT5mdW5jdGlvbiA9IHVzYl9zZXJpYWxfZ2VuZXJpY18jI2Z1bmN0aW9uOwlcCisJCQlkYmcoIkhhZCB0byBvdmVycmlkZSB0aGUgIiAjZnVuY3Rpb24JCVwKKwkJCQkgIiB1c2Igc2VyaWFsIG9wZXJhdGlvbiB3aXRoIHRoZSBnZW5lcmljIG9uZS4iKTtcCisJCQl9CQkJCQkJXAorCX0gd2hpbGUgKDApCisKK3N0YXRpYyB2b2lkIGZpeHVwX2dlbmVyaWMoc3RydWN0IHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUgKmRldmljZSkKK3sKKwlzZXRfdG9fZ2VuZXJpY19pZl9udWxsKGRldmljZSwgb3Blbik7CisJc2V0X3RvX2dlbmVyaWNfaWZfbnVsbChkZXZpY2UsIHdyaXRlKTsKKwlzZXRfdG9fZ2VuZXJpY19pZl9udWxsKGRldmljZSwgY2xvc2UpOworCXNldF90b19nZW5lcmljX2lmX251bGwoZGV2aWNlLCB3cml0ZV9yb29tKTsKKwlzZXRfdG9fZ2VuZXJpY19pZl9udWxsKGRldmljZSwgY2hhcnNfaW5fYnVmZmVyKTsKKwlzZXRfdG9fZ2VuZXJpY19pZl9udWxsKGRldmljZSwgcmVhZF9idWxrX2NhbGxiYWNrKTsKKwlzZXRfdG9fZ2VuZXJpY19pZl9udWxsKGRldmljZSwgd3JpdGVfYnVsa19jYWxsYmFjayk7CisJc2V0X3RvX2dlbmVyaWNfaWZfbnVsbChkZXZpY2UsIHNodXRkb3duKTsKK30KKworaW50IHVzYl9zZXJpYWxfcmVnaXN0ZXIoc3RydWN0IHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUgKm5ld19kZXZpY2UpCit7CisJaW50IHJldHZhbDsKKworCWZpeHVwX2dlbmVyaWMobmV3X2RldmljZSk7CisKKwkvKiBBZGQgdGhpcyBkZXZpY2UgdG8gb3VyIGxpc3Qgb2YgZGV2aWNlcyAqLworCWxpc3RfYWRkKCZuZXdfZGV2aWNlLT5kcml2ZXJfbGlzdCwgJnVzYl9zZXJpYWxfZHJpdmVyX2xpc3QpOworCisJcmV0dmFsID0gdXNiX3NlcmlhbF9idXNfcmVnaXN0ZXIobmV3X2RldmljZSk7CisJaWYgKHJldHZhbCkgeworCQllcnIoInByb2JsZW0gJWQgd2hlbiByZWdpc3RlcmluZyBkcml2ZXIgJXMiLCByZXR2YWwsIG5ld19kZXZpY2UtPm5hbWUpOworCQlsaXN0X2RlbCgmbmV3X2RldmljZS0+ZHJpdmVyX2xpc3QpOworCX0KKwllbHNlCisJCWluZm8oIlVTQiBTZXJpYWwgc3VwcG9ydCByZWdpc3RlcmVkIGZvciAlcyIsIG5ld19kZXZpY2UtPm5hbWUpOworCisJcmV0dXJuIHJldHZhbDsKK30KKworCit2b2lkIHVzYl9zZXJpYWxfZGVyZWdpc3RlcihzdHJ1Y3QgdXNiX3NlcmlhbF9kZXZpY2VfdHlwZSAqZGV2aWNlKQoreworCWluZm8oIlVTQiBTZXJpYWwgZGVyZWdpc3RlcmluZyBkcml2ZXIgJXMiLCBkZXZpY2UtPm5hbWUpOworCWxpc3RfZGVsKCZkZXZpY2UtPmRyaXZlcl9saXN0KTsKKwl1c2Jfc2VyaWFsX2J1c19kZXJlZ2lzdGVyKGRldmljZSk7Cit9CisKKworCisvKiBJZiB0aGUgdXNiLXNlcmlhbCBjb3JlIGlzIGJ1aWx0IGludG8gdGhlIGNvcmUsIHRoZSB1c2Itc2VyaWFsIGRyaXZlcnMKKyAgIG5lZWQgdGhlc2Ugc3ltYm9scyB0byBsb2FkIHByb3Blcmx5IGFzIG1vZHVsZXMuICovCitFWFBPUlRfU1lNQk9MX0dQTCh1c2Jfc2VyaWFsX3JlZ2lzdGVyKTsKK0VYUE9SVF9TWU1CT0xfR1BMKHVzYl9zZXJpYWxfZGVyZWdpc3Rlcik7CitFWFBPUlRfU1lNQk9MX0dQTCh1c2Jfc2VyaWFsX3Byb2JlKTsKK0VYUE9SVF9TWU1CT0xfR1BMKHVzYl9zZXJpYWxfZGlzY29ubmVjdCk7CitFWFBPUlRfU1lNQk9MX0dQTCh1c2Jfc2VyaWFsX3BvcnRfc29mdGludCk7CisKKworLyogTW9kdWxlIGluZm9ybWF0aW9uICovCitNT0RVTEVfQVVUSE9SKCBEUklWRVJfQVVUSE9SICk7CitNT0RVTEVfREVTQ1JJUFRJT04oIERSSVZFUl9ERVNDICk7CitNT0RVTEVfVkVSU0lPTiggRFJJVkVSX1ZFUlNJT04gKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKKworbW9kdWxlX3BhcmFtKGRlYnVnLCBib29sLCBTX0lSVUdPIHwgU19JV1VTUik7CitNT0RVTEVfUEFSTV9ERVNDKGRlYnVnLCAiRGVidWcgZW5hYmxlZCBvciBub3QiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC91c2Itc2VyaWFsLmggYi9kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxZjBjNDAKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5oCkBAIC0wLDAgKzEsMzMyIEBACisvKgorICogVVNCIFNlcmlhbCBDb252ZXJ0ZXIgZHJpdmVyCisgKgorICoJQ29weXJpZ2h0IChDKSAxOTk5IC0gMjAwNAorICoJICAgIEdyZWcgS3JvYWgtSGFydG1hbiAoZ3JlZ0Brcm9haC5jb20pCisgKgorICoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqCWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKgl0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICoJKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBTZWUgRG9jdW1lbnRhdGlvbi91c2IvdXNiLXNlcmlhbC50eHQgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdXNpbmcgdGhpcyBkcml2ZXIKKyAqCisgKiAoMDMvMjYvMjAwMikgZ2toCisgKglyZW1vdmVkIHRoZSBwb3J0LT50dHkgY2hlY2sgZnJvbSBwb3J0X3BhcmFub2lhX2NoZWNrKCkgZHVlIHRvIHNlcmlhbAorICoJY29uc29sZXMgbm90IGhhdmluZyBhIHR0eSBkZXZpY2UgYXNzaWduZWQgdG8gdGhlbS4KKyAqCisgKiAoMTIvMDMvMjAwMSkgZ2toCisgKglyZW1vdmVkIGFjdGl2ZSBmcm9tIHRoZSBwb3J0IHN0cnVjdHVyZS4KKyAqCWFkZGVkIGRvY3VtZW50YXRpb24gdG8gdGhlIHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUgc3RydWN0dXJlCisgKgorICogKDEwLzEwLzIwMDEpIGdraAorICoJYWRkZWQgdmVuZG9yIGFuZCBwcm9kdWN0IHRvIHNlcmlhbCBzdHJ1Y3R1cmUuICBOZWVkZWQgdG8gZGV0ZXJtaW5lIGRldmljZQorICoJb3duZXIgd2hlbiB0aGUgZGV2aWNlIGlzIGRpc2Nvbm5lY3RlZC4KKyAqCisgKiAoMDUvMzAvMjAwMSkgZ2toCisgKglhZGRlZCBzZW0gdG8gcG9ydCBzdHJ1Y3R1cmUgYW5kIHJlbW92ZWQgcG9ydF9sb2NrCisgKgorICogKDEwLzA1LzIwMDApIGdraAorICoJQWRkZWQgaW50ZXJydXB0X2luX2VuZHBvaW50QWRkcmVzcyBhbmQgYnVsa19pbl9lbmRwb2ludEFkZHJlc3MgdG8gaGVscAorICoJZml4IGJ1ZyB3aXRoIHVyYi0+ZGV2IG5vdCBiZWluZyBzZXQgcHJvcGVybHksIG5vdyB0aGF0IHRoZSB1c2IgY29yZQorICoJbmVlZHMgaXQuCisgKiAKKyAqICgwOS8xMS8yMDAwKSBna2gKKyAqCUFkZGVkIHVzYl9zZXJpYWxfZGVidWdfZGF0YSBmdW5jdGlvbiB0byBoZWxwIGdldCByaWQgb2YgI0RFQlVHIGluIHRoZQorICoJZHJpdmVycy4KKyAqCisgKiAoMDgvMjgvMjAwMCkgZ2toCisgKglBZGRlZCBwb3J0X2xvY2sgdG8gcG9ydCBzdHJ1Y3R1cmUuCisgKgorICogKDA4LzA4LzIwMDApIGdraAorICoJQWRkZWQgb3Blbl9jb3VudCB0byBwb3J0IHN0cnVjdHVyZS4KKyAqCisgKiAoMDcvMjMvMjAwMCkgZ2toCisgKglBZGRlZCBidWxrX291dF9lbmRwb2ludEFkZHJlc3MgdG8gcG9ydCBzdHJ1Y3R1cmUuCisgKgorICogKDA3LzE5LzIwMDApIGdraCwgcGJlcmdlciwgYW5kIGJvcmNoZXJzCisgKglNb2RpZmljYXRpb25zIHRvIGFsbG93IHVzYi1zZXJpYWwgZHJpdmVycyB0byBiZSBtb2R1bGVzLgorICoKKyAqIAorICovCisKKworI2lmbmRlZiBfX0xJTlVYX1VTQl9TRVJJQUxfSAorI2RlZmluZSBfX0xJTlVYX1VTQl9TRVJJQUxfSAorCisjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+CisjaW5jbHVkZSA8bGludXgva3JlZi5oPgorCisjZGVmaW5lIFNFUklBTF9UVFlfTUFKT1IJMTg4CS8qIE5pY2UgbGVnYWwgbnVtYmVyIG5vdyAqLworI2RlZmluZSBTRVJJQUxfVFRZX01JTk9SUwkyNTUJLyogbG9hZHMgb2YgZGV2aWNlcyA6KSAqLworCisjZGVmaW5lIE1BWF9OVU1fUE9SVFMJCTgJLyogVGhlIG1heGltdW0gbnVtYmVyIG9mIHBvcnRzIG9uZSBkZXZpY2UgY2FuIGdyYWIgYXQgb25jZSAqLworCisvKiBwYXJpdHkgY2hlY2sgZmxhZyAqLworI2RlZmluZSBSRUxFVkFOVF9JRkxBRyhpZmxhZykJKGlmbGFnICYgKElHTkJSS3xCUktJTlR8SUdOUEFSfFBBUk1SS3xJTlBDSykpCisKKy8qKgorICogdXNiX3NlcmlhbF9wb3J0OiBzdHJ1Y3R1cmUgZm9yIHRoZSBzcGVjaWZpYyBwb3J0cyBvZiBhIGRldmljZS4KKyAqIEBzZXJpYWw6IHBvaW50ZXIgYmFjayB0byB0aGUgc3RydWN0IHVzYl9zZXJpYWwgb3duZXIgb2YgdGhpcyBwb3J0LgorICogQHR0eTogcG9pbnRlciB0byB0aGUgY29ycmVzcG9uZGluZyB0dHkgZm9yIHRoaXMgcG9ydC4KKyAqIEBudW1iZXI6IHRoZSBudW1iZXIgb2YgdGhlIHBvcnQgKHRoZSBtaW5vciBudW1iZXIpLgorICogQGludGVycnVwdF9pbl9idWZmZXI6IHBvaW50ZXIgdG8gdGhlIGludGVycnVwdCBpbiBidWZmZXIgZm9yIHRoaXMgcG9ydC4KKyAqIEBpbnRlcnJ1cHRfaW5fdXJiOiBwb2ludGVyIHRvIHRoZSBpbnRlcnJ1cHQgaW4gc3RydWN0IHVyYiBmb3IgdGhpcyBwb3J0LgorICogQGludGVycnVwdF9pbl9lbmRwb2ludEFkZHJlc3M6IGVuZHBvaW50IGFkZHJlc3MgZm9yIHRoZSBpbnRlcnJ1cHQgaW4gcGlwZQorICoJZm9yIHRoaXMgcG9ydC4KKyAqIEBpbnRlcnJ1cHRfb3V0X2J1ZmZlcjogcG9pbnRlciB0byB0aGUgaW50ZXJydXB0IG91dCBidWZmZXIgZm9yIHRoaXMgcG9ydC4KKyAqIEBpbnRlcnJ1cHRfb3V0X3NpemU6IHRoZSBzaXplIG9mIHRoZSBpbnRlcnJ1cHRfb3V0X2J1ZmZlciwgaW4gYnl0ZXMuCisgKiBAaW50ZXJydXB0X291dF91cmI6IHBvaW50ZXIgdG8gdGhlIGludGVycnVwdCBvdXQgc3RydWN0IHVyYiBmb3IgdGhpcyBwb3J0LgorICogQGludGVycnVwdF9vdXRfZW5kcG9pbnRBZGRyZXNzOiBlbmRwb2ludCBhZGRyZXNzIGZvciB0aGUgaW50ZXJydXB0IG91dCBwaXBlCisgKiAJZm9yIHRoaXMgcG9ydC4KKyAqIEBidWxrX2luX2J1ZmZlcjogcG9pbnRlciB0byB0aGUgYnVsayBpbiBidWZmZXIgZm9yIHRoaXMgcG9ydC4KKyAqIEByZWFkX3VyYjogcG9pbnRlciB0byB0aGUgYnVsayBpbiBzdHJ1Y3QgdXJiIGZvciB0aGlzIHBvcnQuCisgKiBAYnVsa19pbl9lbmRwb2ludEFkZHJlc3M6IGVuZHBvaW50IGFkZHJlc3MgZm9yIHRoZSBidWxrIGluIHBpcGUgZm9yIHRoaXMKKyAqCXBvcnQuCisgKiBAYnVsa19vdXRfYnVmZmVyOiBwb2ludGVyIHRvIHRoZSBidWxrIG91dCBidWZmZXIgZm9yIHRoaXMgcG9ydC4KKyAqIEBidWxrX291dF9zaXplOiB0aGUgc2l6ZSBvZiB0aGUgYnVsa19vdXRfYnVmZmVyLCBpbiBieXRlcy4KKyAqIEB3cml0ZV91cmI6IHBvaW50ZXIgdG8gdGhlIGJ1bGsgb3V0IHN0cnVjdCB1cmIgZm9yIHRoaXMgcG9ydC4KKyAqIEBidWxrX291dF9lbmRwb2ludEFkZHJlc3M6IGVuZHBvaW50IGFkZHJlc3MgZm9yIHRoZSBidWxrIG91dCBwaXBlIGZvciB0aGlzCisgKglwb3J0LgorICogQHdyaXRlX3dhaXQ6IGEgd2FpdF9xdWV1ZV9oZWFkX3QgdXNlZCBieSB0aGUgcG9ydC4KKyAqIEB3b3JrOiB3b3JrIHF1ZXVlIGVudHJ5IGZvciB0aGUgbGluZSBkaXNjaXBsaW5lIHdha2luZyB1cC4KKyAqIEBvcGVuX2NvdW50OiBudW1iZXIgb2YgdGltZXMgdGhpcyBwb3J0IGhhcyBiZWVuIG9wZW5lZC4KKyAqCisgKiBUaGlzIHN0cnVjdHVyZSBpcyB1c2VkIGJ5IHRoZSB1c2Itc2VyaWFsIGNvcmUgYW5kIGRyaXZlcnMgZm9yIHRoZSBzcGVjaWZpYworICogcG9ydHMgb2YgYSBkZXZpY2UuCisgKi8KK3N0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgeworCXN0cnVjdCB1c2Jfc2VyaWFsICoJc2VyaWFsOworCXN0cnVjdCB0dHlfc3RydWN0ICoJdHR5OworCXVuc2lnbmVkIGNoYXIJCW51bWJlcjsKKworCXVuc2lnbmVkIGNoYXIgKgkJaW50ZXJydXB0X2luX2J1ZmZlcjsKKwlzdHJ1Y3QgdXJiICoJCWludGVycnVwdF9pbl91cmI7CisJX191OAkJCWludGVycnVwdF9pbl9lbmRwb2ludEFkZHJlc3M7CisKKwl1bnNpZ25lZCBjaGFyICoJCWludGVycnVwdF9vdXRfYnVmZmVyOworCWludAkJCWludGVycnVwdF9vdXRfc2l6ZTsKKwlzdHJ1Y3QgdXJiICoJCWludGVycnVwdF9vdXRfdXJiOworCV9fdTgJCQlpbnRlcnJ1cHRfb3V0X2VuZHBvaW50QWRkcmVzczsKKworCXVuc2lnbmVkIGNoYXIgKgkJYnVsa19pbl9idWZmZXI7CisJaW50CQkJYnVsa19pbl9zaXplOworCXN0cnVjdCB1cmIgKgkJcmVhZF91cmI7CisJX191OAkJCWJ1bGtfaW5fZW5kcG9pbnRBZGRyZXNzOworCisJdW5zaWduZWQgY2hhciAqCQlidWxrX291dF9idWZmZXI7CisJaW50CQkJYnVsa19vdXRfc2l6ZTsKKwlzdHJ1Y3QgdXJiICoJCXdyaXRlX3VyYjsKKwlfX3U4CQkJYnVsa19vdXRfZW5kcG9pbnRBZGRyZXNzOworCisJd2FpdF9xdWV1ZV9oZWFkX3QJd3JpdGVfd2FpdDsKKwlzdHJ1Y3Qgd29ya19zdHJ1Y3QJd29yazsKKwlpbnQJCQlvcGVuX2NvdW50OworCXN0cnVjdCBkZXZpY2UJCWRldjsKK307CisjZGVmaW5lIHRvX3VzYl9zZXJpYWxfcG9ydChkKSBjb250YWluZXJfb2YoZCwgc3RydWN0IHVzYl9zZXJpYWxfcG9ydCwgZGV2KQorCisvKiBnZXQgYW5kIHNldCB0aGUgcG9ydCBwcml2YXRlIGRhdGEgcG9pbnRlciBoZWxwZXIgZnVuY3Rpb25zICovCitzdGF0aWMgaW5saW5lIHZvaWQgKnVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKK3sKKwlyZXR1cm4gZGV2X2dldF9kcnZkYXRhKCZwb3J0LT5kZXYpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgdXNiX3NldF9zZXJpYWxfcG9ydF9kYXRhIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCB2b2lkICpkYXRhKQoreworCWRldl9zZXRfZHJ2ZGF0YSgmcG9ydC0+ZGV2LCBkYXRhKTsKK30KKworLyoqCisgKiB1c2Jfc2VyaWFsIC0gc3RydWN0dXJlIHVzZWQgYnkgdGhlIHVzYi1zZXJpYWwgY29yZSBmb3IgYSBkZXZpY2UKKyAqIEBkZXY6IHBvaW50ZXIgdG8gdGhlIHN0cnVjdCB1c2JfZGV2aWNlIGZvciB0aGlzIGRldmljZQorICogQHR5cGU6IHBvaW50ZXIgdG8gdGhlIHN0cnVjdCB1c2Jfc2VyaWFsX2RldmljZV90eXBlIGZvciB0aGlzIGRldmljZQorICogQGludGVyZmFjZTogcG9pbnRlciB0byB0aGUgc3RydWN0IHVzYl9pbnRlcmZhY2UgZm9yIHRoaXMgZGV2aWNlCisgKiBAbWlub3I6IHRoZSBzdGFydGluZyBtaW5vciBudW1iZXIgZm9yIHRoaXMgZGV2aWNlCisgKiBAbnVtX3BvcnRzOiB0aGUgbnVtYmVyIG9mIHBvcnRzIHRoaXMgZGV2aWNlIGhhcworICogQG51bV9pbnRlcnJ1cHRfaW46IG51bWJlciBvZiBpbnRlcnJ1cHQgaW4gZW5kcG9pbnRzIHdlIGhhdmUKKyAqIEBudW1faW50ZXJydXB0X291dDogbnVtYmVyIG9mIGludGVycnVwdCBvdXQgZW5kcG9pbnRzIHdlIGhhdmUKKyAqIEBudW1fYnVsa19pbjogbnVtYmVyIG9mIGJ1bGsgaW4gZW5kcG9pbnRzIHdlIGhhdmUKKyAqIEBudW1fYnVsa19vdXQ6IG51bWJlciBvZiBidWxrIG91dCBlbmRwb2ludHMgd2UgaGF2ZQorICogQHBvcnQ6IGFycmF5IG9mIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgc3RydWN0dXJlcyBmb3IgdGhlIGRpZmZlcmVudCBwb3J0cy4KKyAqIEBwcml2YXRlOiBwbGFjZSB0byBwdXQgYW55IGRyaXZlciBzcGVjaWZpYyBpbmZvcm1hdGlvbiB0aGF0IGlzIG5lZWRlZC4gIFRoZQorICoJdXNiLXNlcmlhbCBkcml2ZXIgaXMgcmVxdWlyZWQgdG8gbWFuYWdlIHRoaXMgZGF0YSwgdGhlIHVzYi1zZXJpYWwgY29yZQorICoJd2lsbCBub3QgdG91Y2ggdGhpcy4gIFVzZSB1c2JfZ2V0X3NlcmlhbF9kYXRhKCkgYW5kCisgKgl1c2Jfc2V0X3NlcmlhbF9kYXRhKCkgdG8gYWNjZXNzIHRoaXMuCisgKi8KK3N0cnVjdCB1c2Jfc2VyaWFsIHsKKwlzdHJ1Y3QgdXNiX2RldmljZSAqCQlkZXY7CisJc3RydWN0IHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUgKgl0eXBlOworCXN0cnVjdCB1c2JfaW50ZXJmYWNlICoJCWludGVyZmFjZTsKKwl1bnNpZ25lZCBjaGFyCQkJbWlub3I7CisJdW5zaWduZWQgY2hhcgkJCW51bV9wb3J0czsKKwl1bnNpZ25lZCBjaGFyCQkJbnVtX3BvcnRfcG9pbnRlcnM7CisJY2hhcgkJCQludW1faW50ZXJydXB0X2luOworCWNoYXIJCQkJbnVtX2ludGVycnVwdF9vdXQ7CisJY2hhcgkJCQludW1fYnVsa19pbjsKKwljaGFyCQkJCW51bV9idWxrX291dDsKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICoJcG9ydFtNQVhfTlVNX1BPUlRTXTsKKwlzdHJ1Y3Qga3JlZgkJCWtyZWY7CisJdm9pZCAqCQkJCXByaXZhdGU7Cit9OworI2RlZmluZSB0b191c2Jfc2VyaWFsKGQpIGNvbnRhaW5lcl9vZihkLCBzdHJ1Y3QgdXNiX3NlcmlhbCwga3JlZikKKworI2RlZmluZSBOVU1fRE9OVF9DQVJFCSgtMSkKKworLyogZ2V0IGFuZCBzZXQgdGhlIHNlcmlhbCBwcml2YXRlIGRhdGEgcG9pbnRlciBoZWxwZXIgZnVuY3Rpb25zICovCitzdGF0aWMgaW5saW5lIHZvaWQgKnVzYl9nZXRfc2VyaWFsX2RhdGEgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7CisJcmV0dXJuIHNlcmlhbC0+cHJpdmF0ZTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHVzYl9zZXRfc2VyaWFsX2RhdGEgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIHZvaWQgKmRhdGEpCit7CisJc2VyaWFsLT5wcml2YXRlID0gZGF0YTsKK30KKworLyoqCisgKiB1c2Jfc2VyaWFsX2RldmljZV90eXBlIC0gYSBzdHJ1Y3R1cmUgdGhhdCBkZWZpbmVzIGEgdXNiIHNlcmlhbCBkZXZpY2UKKyAqIEBvd25lcjogcG9pbnRlciB0byB0aGUgbW9kdWxlIHRoYXQgb3ducyB0aGlzIGRldmljZS4KKyAqIEBuYW1lOiBwb2ludGVyIHRvIGEgc3RyaW5nIHRoYXQgZGVzY3JpYmVzIHRoaXMgZGV2aWNlLiAgVGhpcyBzdHJpbmcgdXNlZAorICoJaW4gdGhlIHN5c2xvZyBtZXNzYWdlcyB3aGVuIGEgZGV2aWNlIGlzIGluc2VydGVkIG9yIHJlbW92ZWQuCisgKiBAc2hvcnRfbmFtZTogYSBwb2ludGVyIHRvIGEgc3RyaW5nIHRoYXQgZGVzY3JpYmVzIHRoaXMgZGV2aWNlIGluCisgKglLT0JKX05BTUVfTEVOIGNoYXJhY3RlcnMgb3IgbGVzcy4gIFRoaXMgaXMgdXNlZCBmb3IgdGhlIHN5c2ZzIGludGVyZmFjZQorICoJdG8gZGVzY3JpYmUgdGhlIGRyaXZlci4KKyAqIEBpZF90YWJsZTogcG9pbnRlciB0byBhIGxpc3Qgb2YgdXNiX2RldmljZV9pZCBzdHJ1Y3R1cmVzIHRoYXQgZGVmaW5lIGFsbAorICoJb2YgdGhlIGRldmljZXMgdGhpcyBzdHJ1Y3R1cmUgY2FuIHN1cHBvcnQuCisgKiBAbnVtX2ludGVycnVwdF9pbjogdGhlIG51bWJlciBvZiBpbnRlcnJ1cHQgaW4gZW5kcG9pbnRzIHRoaXMgZGV2aWNlIHdpbGwKKyAqCWhhdmUuCisgKiBAbnVtX2ludGVycnVwdF9vdXQ6IHRoZSBudW1iZXIgb2YgaW50ZXJydXB0IG91dCBlbmRwb2ludHMgdGhpcyBkZXZpY2Ugd2lsbAorICoJaGF2ZS4KKyAqIEBudW1fYnVsa19pbjogdGhlIG51bWJlciBvZiBidWxrIGluIGVuZHBvaW50cyB0aGlzIGRldmljZSB3aWxsIGhhdmUuCisgKiBAbnVtX2J1bGtfb3V0OiB0aGUgbnVtYmVyIG9mIGJ1bGsgb3V0IGVuZHBvaW50cyB0aGlzIGRldmljZSB3aWxsIGhhdmUuCisgKiBAbnVtX3BvcnRzOiB0aGUgbnVtYmVyIG9mIGRpZmZlcmVudCBwb3J0cyB0aGlzIGRldmljZSB3aWxsIGhhdmUuCisgKiBAY2FsY19udW1fcG9ydHM6IHBvaW50ZXIgdG8gYSBmdW5jdGlvbiB0byBkZXRlcm1pbmUgaG93IG1hbnkgcG9ydHMgdGhpcworICoJZGV2aWNlIGhhcyBkeW5hbWljYWxseS4gIEl0IHdpbGwgYmUgY2FsbGVkIGFmdGVyIHRoZSBwcm9iZSgpCisgKgljYWxsYmFjayBpcyBjYWxsZWQsIGJ1dCBiZWZvcmUgYXR0YWNoKCkKKyAqIEBwcm9iZTogcG9pbnRlciB0byB0aGUgZHJpdmVyJ3MgcHJvYmUgZnVuY3Rpb24uCisgKglUaGlzIHdpbGwgYmUgY2FsbGVkIHdoZW4gdGhlIGRldmljZSBpcyBpbnNlcnRlZCBpbnRvIHRoZSBzeXN0ZW0sCisgKglidXQgYmVmb3JlIHRoZSBkZXZpY2UgaGFzIGJlZW4gZnVsbHkgaW5pdGlhbGl6ZWQgYnkgdGhlIHVzYl9zZXJpYWwKKyAqCXN1YnN5c3RlbS4gIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIGRvd25sb2FkIGFueSBmaXJtd2FyZSB0byB0aGUgZGV2aWNlLAorICoJb3IgYW55IG90aGVyIGVhcmx5IGluaXRpYWxpemF0aW9uIHRoYXQgbWlnaHQgYmUgbmVlZGVkLgorICoJUmV0dXJuIDAgdG8gY29udGludWUgb24gd2l0aCB0aGUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UuICBBbnl0aGluZyAKKyAqCWVsc2Ugd2lsbCBhYm9ydCBpdC4KKyAqIEBhdHRhY2g6IHBvaW50ZXIgdG8gdGhlIGRyaXZlcidzIGF0dGFjaCBmdW5jdGlvbi4KKyAqCVRoaXMgd2lsbCBiZSBjYWxsZWQgd2hlbiB0aGUgc3RydWN0IHVzYl9zZXJpYWwgc3RydWN0dXJlIGlzIGZ1bGx5IHNldAorICoJc2V0IHVwLiAgRG8gYW55IGxvY2FsIGluaXRpYWxpemF0aW9uIG9mIHRoZSBkZXZpY2UsIG9yIGFueSBwcml2YXRlCisgKgltZW1vcnkgc3RydWN0dXJlIGFsbG9jYXRpb24gYXQgdGhpcyBwb2ludCBpbiB0aW1lLgorICogQHNodXRkb3duOiBwb2ludGVyIHRvIHRoZSBkcml2ZXIncyBzaHV0ZG93biBmdW5jdGlvbi4gIFRoaXMgd2lsbCBiZQorICoJY2FsbGVkIHdoZW4gdGhlIGRldmljZSBpcyByZW1vdmVkIGZyb20gdGhlIHN5c3RlbS4KKyAqCisgKiBUaGlzIHN0cnVjdHVyZSBpcyBkZWZpbmVzIGEgVVNCIFNlcmlhbCBkZXZpY2UuICBJdCBwcm92aWRlcyBhbGwgb2YKKyAqIHRoZSBpbmZvcm1hdGlvbiB0aGF0IHRoZSBVU0Igc2VyaWFsIGNvcmUgY29kZSBuZWVkcy4gIElmIHRoZSBmdW5jdGlvbgorICogcG9pbnRlcnMgYXJlIGRlZmluZWQsIHRoZW4gdGhlIFVTQiBzZXJpYWwgY29yZSBjb2RlIHdpbGwgY2FsbCB0aGVtIHdoZW4KKyAqIHRoZSBjb3JyZXNwb25kaW5nIHR0eSBwb3J0IGZ1bmN0aW9ucyBhcmUgY2FsbGVkLiAgSWYgdGhleSBhcmUgbm90CisgKiBjYWxsZWQsIHRoZSBnZW5lcmljIHNlcmlhbCBmdW5jdGlvbiB3aWxsIGJlIHVzZWQgaW5zdGVhZC4KKyAqLworc3RydWN0IHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUgeworCXN0cnVjdCBtb2R1bGUgKm93bmVyOworCWNoYXIJKm5hbWU7CisJY2hhcgkqc2hvcnRfbmFtZTsKKwljb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWRfdGFibGU7CisJY2hhcgludW1faW50ZXJydXB0X2luOworCWNoYXIJbnVtX2ludGVycnVwdF9vdXQ7CisJY2hhcgludW1fYnVsa19pbjsKKwljaGFyCW51bV9idWxrX291dDsKKwljaGFyCW51bV9wb3J0czsKKworCXN0cnVjdCBsaXN0X2hlYWQJZHJpdmVyX2xpc3Q7CisJc3RydWN0IGRldmljZV9kcml2ZXIJZHJpdmVyOworCisJaW50ICgqcHJvYmUpIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLCBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpOworCWludCAoKmF0dGFjaCkgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpOworCWludCAoKmNhbGNfbnVtX3BvcnRzKSAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCk7CisKKwl2b2lkICgqc2h1dGRvd24pIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKTsKKworCWludCAoKnBvcnRfcHJvYmUpIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KTsKKwlpbnQgKCpwb3J0X3JlbW92ZSkgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworCisJLyogc2VyaWFsIGZ1bmN0aW9uIGNhbGxzICovCisJaW50ICAoKm9wZW4pCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKiBmaWxwKTsKKwl2b2lkICgqY2xvc2UpCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKiBmaWxwKTsKKwlpbnQgICgqd3JpdGUpCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpOworCWludCAgKCp3cml0ZV9yb29tKQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCk7CisJaW50ICAoKmlvY3RsKQkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICogZmlsZSwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOworCXZvaWQgKCpzZXRfdGVybWlvcykJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCB0ZXJtaW9zICogb2xkKTsKKwl2b2lkICgqYnJlYWtfY3RsKQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgaW50IGJyZWFrX3N0YXRlKTsKKwlpbnQgICgqY2hhcnNfaW5fYnVmZmVyKQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCk7CisJdm9pZCAoKnRocm90dGxlKQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCk7CisJdm9pZCAoKnVudGhyb3R0bGUpCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KTsKKwlpbnQgICgqdGlvY21nZXQpCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlsZSk7CisJaW50ICAoKnRpb2Ntc2V0KQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBzZXQsIHVuc2lnbmVkIGludCBjbGVhcik7CisKKwl2b2lkICgqcmVhZF9pbnRfY2FsbGJhY2spKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOworCXZvaWQgKCp3cml0ZV9pbnRfY2FsbGJhY2spKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOworCXZvaWQgKCpyZWFkX2J1bGtfY2FsbGJhY2spKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOworCXZvaWQgKCp3cml0ZV9idWxrX2NhbGxiYWNrKShzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKK307CisjZGVmaW5lIHRvX3VzYl9zZXJpYWxfZHJpdmVyKGQpIGNvbnRhaW5lcl9vZihkLCBzdHJ1Y3QgdXNiX3NlcmlhbF9kZXZpY2VfdHlwZSwgZHJpdmVyKQorCitleHRlcm4gaW50ICB1c2Jfc2VyaWFsX3JlZ2lzdGVyKHN0cnVjdCB1c2Jfc2VyaWFsX2RldmljZV90eXBlICpuZXdfZGV2aWNlKTsKK2V4dGVybiB2b2lkIHVzYl9zZXJpYWxfZGVyZWdpc3RlcihzdHJ1Y3QgdXNiX3NlcmlhbF9kZXZpY2VfdHlwZSAqZGV2aWNlKTsKK2V4dGVybiB2b2lkIHVzYl9zZXJpYWxfcG9ydF9zb2Z0aW50KHZvaWQgKnByaXZhdGUpOworCitleHRlcm4gaW50IHVzYl9zZXJpYWxfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmlmYWNlLCBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpOworZXh0ZXJuIHZvaWQgdXNiX3NlcmlhbF9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICppZmFjZSk7CisKK2V4dGVybiBpbnQgZXp1c2Jfd3JpdGVtZW1vcnkgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIGludCBhZGRyZXNzLCB1bnNpZ25lZCBjaGFyICpkYXRhLCBpbnQgbGVuZ3RoLCBfX3U4IGJSZXF1ZXN0KTsKK2V4dGVybiBpbnQgZXp1c2Jfc2V0X3Jlc2V0IChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLCB1bnNpZ25lZCBjaGFyIHJlc2V0X2JpdCk7CisKKy8qIFVTQiBTZXJpYWwgY29uc29sZSBmdW5jdGlvbnMgKi8KKyNpZmRlZiBDT05GSUdfVVNCX1NFUklBTF9DT05TT0xFCitleHRlcm4gdm9pZCB1c2Jfc2VyaWFsX2NvbnNvbGVfaW5pdCAoaW50IGRlYnVnLCBpbnQgbWlub3IpOworZXh0ZXJuIHZvaWQgdXNiX3NlcmlhbF9jb25zb2xlX2V4aXQgKHZvaWQpOworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCB1c2Jfc2VyaWFsX2NvbnNvbGVfaW5pdCAoaW50IGRlYnVnLCBpbnQgbWlub3IpIHsgfQorc3RhdGljIGlubGluZSB2b2lkIHVzYl9zZXJpYWxfY29uc29sZV9leGl0ICh2b2lkKSB7IH0KKyNlbmRpZgorCisvKiBGdW5jdGlvbnMgbmVlZGVkIGJ5IG90aGVyIHBhcnRzIG9mIHRoZSB1c2JzZXJpYWwgY29yZSAqLworZXh0ZXJuIHN0cnVjdCB1c2Jfc2VyaWFsICp1c2Jfc2VyaWFsX2dldF9ieV9pbmRleCAodW5zaWduZWQgaW50IG1pbm9yKTsKK2V4dGVybiBpbnQgdXNiX3NlcmlhbF9nZW5lcmljX29wZW4gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKTsKK2V4dGVybiBpbnQgdXNiX3NlcmlhbF9nZW5lcmljX3dyaXRlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBjb3VudCk7CitleHRlcm4gdm9pZCB1c2Jfc2VyaWFsX2dlbmVyaWNfY2xvc2UgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKTsKK2V4dGVybiBpbnQgdXNiX3NlcmlhbF9nZW5lcmljX3dyaXRlX3Jvb20gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworZXh0ZXJuIGludCB1c2Jfc2VyaWFsX2dlbmVyaWNfY2hhcnNfaW5fYnVmZmVyIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KTsKK2V4dGVybiB2b2lkIHVzYl9zZXJpYWxfZ2VuZXJpY19yZWFkX2J1bGtfY2FsbGJhY2sgKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOworZXh0ZXJuIHZvaWQgdXNiX3NlcmlhbF9nZW5lcmljX3dyaXRlX2J1bGtfY2FsbGJhY2sgKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOworZXh0ZXJuIHZvaWQgdXNiX3NlcmlhbF9nZW5lcmljX3NodXRkb3duIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKTsKK2V4dGVybiBpbnQgdXNiX3NlcmlhbF9nZW5lcmljX3JlZ2lzdGVyIChpbnQgZGVidWcpOworZXh0ZXJuIHZvaWQgdXNiX3NlcmlhbF9nZW5lcmljX2RlcmVnaXN0ZXIgKHZvaWQpOworCitleHRlcm4gaW50IHVzYl9zZXJpYWxfYnVzX3JlZ2lzdGVyIChzdHJ1Y3QgdXNiX3NlcmlhbF9kZXZpY2VfdHlwZSAqZGV2aWNlKTsKK2V4dGVybiB2b2lkIHVzYl9zZXJpYWxfYnVzX2RlcmVnaXN0ZXIgKHN0cnVjdCB1c2Jfc2VyaWFsX2RldmljZV90eXBlICpkZXZpY2UpOworCitleHRlcm4gc3RydWN0IHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUgdXNiX3NlcmlhbF9nZW5lcmljX2RldmljZTsKK2V4dGVybiBzdHJ1Y3QgYnVzX3R5cGUgdXNiX3NlcmlhbF9idXNfdHlwZTsKK2V4dGVybiBzdHJ1Y3QgdHR5X2RyaXZlciAqdXNiX3NlcmlhbF90dHlfZHJpdmVyOworCitzdGF0aWMgaW5saW5lIHZvaWQgdXNiX3NlcmlhbF9kZWJ1Z19kYXRhKGludCBkZWJ1ZywKKwkJCQkJIHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkJIGNvbnN0IGNoYXIgKmZ1bmN0aW9uLCBpbnQgc2l6ZSwKKwkJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEpCit7CisJaW50IGk7CisKKwlpZiAoZGVidWcpIHsKKwkJZGV2X3ByaW50ayhLRVJOX0RFQlVHLCBkZXYsICIlcyAtIGxlbmd0aCA9ICVkLCBkYXRhID0gIiwgZnVuY3Rpb24sIHNpemUpOworCQlmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgKytpKQorCQkJcHJpbnRrICgiJS4yeCAiLCBkYXRhW2ldKTsKKwkJcHJpbnRrICgiXG4iKTsKKwl9Cit9CisKKy8qIFVzZSBvdXIgb3duIGRiZyBtYWNybyAqLworI3VuZGVmIGRiZworI2RlZmluZSBkYmcoZm9ybWF0LCBhcmcuLi4pIGRvIHsgaWYgKGRlYnVnKSBwcmludGsoS0VSTl9ERUJVRyAiJXM6ICIgZm9ybWF0ICJcbiIgLCBfX0ZJTEVfXyAsICMjIGFyZyk7IH0gd2hpbGUgKDApCisKKworCisjZW5kaWYJLyogaWZkZWYgX19MSU5VWF9VU0JfU0VSSUFMX0ggKi8KKwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL3Zpc29yLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvdmlzb3IuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OWQzMTNlCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL3Zpc29yLmMKQEAgLTAsMCArMSwxMTYxIEBACisvKgorICogVVNCIEhhbmRTcHJpbmcgVmlzb3IsIFBhbG0gbTUweCwgYW5kIFNvbnkgQ2xpZSBkcml2ZXIKKyAqIChzdXBwb3J0cyBhbGwgb2YgdGhlIFBhbG0gT1MgVVNCIGRldmljZXMpCisgKgorICoJQ29weXJpZ2h0IChDKSAxOTk5IC0gMjAwNAorICoJICAgIEdyZWcgS3JvYWgtSGFydG1hbiAoZ3JlZ0Brcm9haC5jb20pCisgKgorICoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqCWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKgl0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICoJKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBTZWUgRG9jdW1lbnRhdGlvbi91c2IvdXNiLXNlcmlhbC50eHQgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdXNpbmcgdGhpcyBkcml2ZXIKKyAqCisgKiAoMDYvMDMvMjAwMykgSnVkZCBNb250Z29tZXJ5IDxqdWRkIGF0IGpwaWxvdC5vcmc+CisgKiAgICAgQWRkZWQgc3VwcG9ydCBmb3IgbW9kdWxlIHBhcmFtZXRlciBvcHRpb25zIGZvciB1bnRlc3RlZC91bmtub3duCisgKiAgICAgZGV2aWNlcy4KKyAqCisgKiAoMDMvMDkvMjAwMykgZ2toCisgKglBZGRlZCBzdXBwb3J0IGZvciB0aGUgU29ueSBDbGllIE5aOTBWIGRldmljZS4gIFRoYW5rcyB0byBNYXJ0aW4gQnJhY2h0bAorICoJPGJyYWNodGxAcmVkZ3JlcC5jej4gZm9yIHRoZSBpbmZvcm1hdGlvbi4KKyAqCisgKiAoMDMvMDUvMjAwMykgZ2toCisgKglUaGluayBUcmVvIHN1cHBvcnQgaXMgbm93IHdvcmtpbmcuCisgKgorICogKDA0LzAzLzIwMDIpIGdraAorICoJQWRkZWQgc3VwcG9ydCBmb3IgdGhlIFNvbnkgT1MgNC4xIGRldmljZXMuICBUaGFua3MgdG8gSGlyb3l1a2kgQVJBS0kKKyAqCTxoaXJvQHpvYi5uZS5qcD4gZm9yIHRoZSBpbmZvcm1hdGlvbi4KKyAqCisgKiAoMDMvMjcvMjAwMikgZ2toCisgKglSZW1vdmVkIGFzc3VtcHRpb25zIHRoYXQgcG9ydC0+dHR5IHdhcyBhbHdheXMgdmFsaWQgKGlzIG5vdCB0cnVlCisgKglmb3IgdXNiIHNlcmlhbCBjb25zb2xlIGRldmljZXMuKQorICoKKyAqICgwMy8yMy8yMDAyKSBna2gKKyAqCUFkZGVkIHN1cHBvcnQgZm9yIHRoZSBQYWxtIGk3MDUgZGV2aWNlLCB0aGFua3MgdG8gVGhvbWFzIFJpZW1lcgorICoJPHRvbUBuZXRtZWNoLmNvbT4gZm9yIHRoZSBpbmZvcm1hdGlvbi4KKyAqCisgKiAoMDMvMjEvMjAwMikgZ2toCisgKglBZGRlZCBzdXBwb3J0IGZvciB0aGUgUGFsbSBtMTMwIGRldmljZSwgdGhhbmtzIHRvIFVkbyBFaXNlbmJhcnRoCisgKgk8dWRvLmVpc2VuYmFydGhAd2ViLmRlPiBmb3IgdGhlIGluZm9ybWF0aW9uLgorICoKKyAqICgwMi8yNy8yMDAyKSBna2gKKyAqCVJld29ya2VkIHRoZSB1cmIgaGFuZGxpbmcgbG9naWMuICBXZSBoYXZlIG5vIG1vcmUgcG9vbCwgYnV0IGR5bmFtaWNhbGx5CisgKglhbGxvY2F0ZSB0aGUgdXJiIGFuZCB0aGUgdHJhbnNmZXIgYnVmZmVyIG9uIHRoZSBmbHkuICBJbiB0ZXN0aW5nIHRoaXMKKyAqCWRvZXMgbm90IGluY3VyZSBhbnkgbWVhc3VyYWJsZSBvdmVyaGVhZC4gIFRoaXMgYWxzbyByZWxpZXMgb24gdGhlIGZhY3QKKyAqCXRoYXQgd2UgaGF2ZSBwcm9wZXIgcmVmZXJlbmNlIGNvdW50aW5nIGxvZ2ljIGZvciB1cmJzLgorICoKKyAqICgwMi8yMS8yMDAyKSBTaWxhUworICogIEFkZGVkIGluaXRpYWwgc3VwcG9ydCBmb3IgdGhlIFBhbG0gbTUxNSBkZXZpY2VzLgorICoKKyAqICgwMi8xNC8yMDAyKSBna2gKKyAqCUFkZGVkIHN1cHBvcnQgZm9yIHRoZSBDbGllIFMtMzYwIGRldmljZS4KKyAqCisgKiAoMTIvMTgvMjAwMSkgZ2toCisgKglBZGRlZCBiZXR0ZXIgQ2xpZSBzdXBwb3J0IGZvciAzLjUgZGV2aWNlcy4gIFRoYW5rcyB0byBHZW9mZnJleSBMZXZhbmQKKyAqCWZvciB0aGUgcGF0Y2guCisgKgorICogKDExLzExLzIwMDEpIGdraAorICoJQWRkZWQgc3VwcG9ydCBmb3IgdGhlIG0xMjUgZGV2aWNlcywgYW5kIGFkZGVkIGNoZWNrIHRvIHByZXZlbnQgb29wc2VzCisgKglmb3IgQ2xp6SBkZXZpY2VzIHRoYXQgbGllIGFib3V0IHRoZSBudW1iZXIgb2YgcG9ydHMgdGhleSBoYXZlLgorICoKKyAqICgwOC8zMC8yMDAxKSBna2gKKyAqCUFkZGVkIHN1cHBvcnQgZm9yIHRoZSBDbGllIGRldmljZXMsIGJvdGggdGhlIDMuNSBhbmQgNC4wIG9zIHZlcnNpb25zLgorICoJTWFueSB0aGFua3MgdG8gRGFuaWVsIEJ1cmtlLCBhbmQgQnJ5YW4gUGF5bmUgZm9yIGhlbHBpbmcgd2l0aCB0aGlzLgorICoKKyAqICgwOC8yMy8yMDAxKSBna2gKKyAqCWZpeGVkIGEgZmV3IHBvdGVudGlhbCBidWdzIHBvaW50ZWQgb3V0IGJ5IE9saXZlciBOZXVrdW0uCisgKgorICogKDA1LzMwLzIwMDEpIGdraAorICoJc3dpdGNoZWQgZnJvbSB1c2luZyBzcGlubG9jayB0byBhIHNlbWFwaG9yZSwgd2hpY2ggZml4ZXMgbG90cyBvZiBwcm9ibGVtcy4KKyAqCisgKiAoMDUvMjgvMjAwMCkgZ2toCisgKglBZGRlZCBpbml0aWFsIHN1cHBvcnQgZm9yIHRoZSBQYWxtIG01MDAgYW5kIFBhbG0gbTUwNSBkZXZpY2VzLgorICoKKyAqICgwNC8wOC8yMDAxKSBnYgorICoJSWRlbnRpZnkgdmVyc2lvbiBvbiBtb2R1bGUgbG9hZC4KKyAqCisgKiAoMDEvMjEvMjAwMCkgZ2toCisgKglBZGRlZCB3cml0ZV9yb29tIGFuZCBjaGFyc19pbl9idWZmZXIsIGFzIHRoZXkgd2VyZSBwcmV2aW91c2x5IHVzaW5nIHRoZQorICoJZ2VuZXJpYyBkcml2ZXIgdmVyc2lvbnMgd2hpY2ggaXMgYWxsIHdyb25nIG5vdyB0aGF0IHdlIGFyZSB1c2luZyBhbiB1cmIKKyAqCXBvb2wuICBUaGFua3MgdG8gV29sZmdhbmcgR3JhbmRlZ2dlciBmb3IgcG9pbnRpbmcgdGhpcyBvdXQgdG8gbWUuCisgKglSZW1vdmVkIGNvdW50IGFzc2lnbm1lbnQgaW4gdGhlIHdyaXRlIGZ1bmN0aW9uLCB3aGljaCB3YXMgbm90IG5lZWRlZCBhbnltb3JlCisgKgllaXRoZXIuICBUaGFua3MgdG8gQWwgQm9yY2hlcnMgZm9yIHBvaW50aW5nIHRoaXMgb3V0LgorICoKKyAqICgxMi8xMi8yMDAwKSBna2gKKyAqCU1vdmVkIE1PRF9ERUMgdG8gZW5kIG9mIHZpc29yX2Nsb3NlIHRvIGJlIG5pY2VyLCBhcyB0aGUgZmluYWwgd3JpdGUgCisgKgltZXNzYWdlIGNhbiBzbGVlcC4KKyAqIAorICogKDExLzEyLzIwMDApIGdraAorICoJRml4ZWQgYnVnIHdpdGggZGF0YSBiZWluZyBkcm9wcGVkIG9uIHRoZSBmbG9vciBieSBmb3JjaW5nIHR0eS0+bG93X2xhdGVuY3kKKyAqCXRvIGJlIG9uLiAgSG9wZWZ1bGx5IHRoaXMgZml4ZXMgdGhlIE9IQ0kgaXNzdWUhCisgKgorICogKDExLzAxLzIwMDApIEFkYW0gSi4gUmljaHRlcgorICoJdXNiX2RldmljZV9pZCB0YWJsZSBzdXBwb3J0CisgKiAKKyAqICgxMC8wNS8yMDAwKSBna2gKKyAqCUZpeGVkIGJ1ZyB3aXRoIHVyYi0+ZGV2IG5vdCBiZWluZyBzZXQgcHJvcGVybHksIG5vdyB0aGF0IHRoZSB1c2IKKyAqCWNvcmUgbmVlZHMgaXQuCisgKiAKKyAqICgwOS8xMS8yMDAwKSBna2gKKyAqCUdvdCByaWQgb2YgYWx3YXlzIGNhbGxpbmcga21hbGxvYyBmb3IgZXZlcnkgdXJiIHdlIHdyb3RlIG91dCB0byB0aGUKKyAqCWRldmljZS4KKyAqCUFkZGVkIHZpc29yX3JlYWRfY2FsbGJhY2sgc28gd2UgY2FuIGtlZXAgdHJhY2sgb2YgYnl0ZXMgaW4gYW5kIG91dCBmb3IKKyAqCXRob3NlIHBlb3BsZSB3aG8gbGlrZSB0byBrbm93IHRoZSBzcGVlZCBvZiB0aGVpciBkZXZpY2UuCisgKglSZW1vdmVkIERFQlVHICNpZmRlZnMgd2l0aCBjYWxsIHRvIHVzYl9zZXJpYWxfZGVidWdfZGF0YQorICoKKyAqICgwOS8wNi8yMDAwKSBna2gKKyAqCUZpeGVkIG9vcHMgaW4gdmlzb3JfZXhpdC4gIE5lZWQgdG8gdW5jb21tZW50IHVzYl91bmxpbmtfdXJiIGNhbGwgX2FmdGVyXworICoJdGhlIGhvc3QgY29udHJvbGxlciBkcml2ZXJzIHNldCB1cmItPmRldiA9IE5VTEwgd2hlbiB0aGUgdXJiIGlzIGZpbmlzaGVkLgorICoKKyAqICgwOC8yOC8yMDAwKSBna2gKKyAqCUFkZGVkIGxvY2tzIGZvciBTTVAgc2FmZW5lc3MuCisgKgorICogKDA4LzA4LzIwMDApIGdraAorICoJRml4ZWQgZW5kaWFuIHByb2JsZW0gaW4gdmlzb3Jfc3RhcnR1cC4KKyAqCUZpeGVkIE1PRF9JTkMgYW5kIE1PRF9ERUMgbG9naWMgYW5kIHRoZSBhYmlsaXR5IHRvIG9wZW4gYSBwb3J0IG1vcmUgCisgKgl0aGFuIG9uY2UuCisgKiAKKyAqICgwNy8yMy8yMDAwKSBna2gKKyAqCUFkZGVkIHBvb2wgb2Ygd3JpdGUgdXJicyB0byBzcGVlZCB1cCB0cmFuc2ZlcnMgdG8gdGhlIHZpc29yLgorICogCisgKiAoMDcvMTkvMjAwMCkgZ2toCisgKglBZGRlZCBtb2R1bGVfaW5pdCBhbmQgbW9kdWxlX2V4aXQgZnVuY3Rpb25zIHRvIGhhbmRsZSB0aGUgZmFjdCB0aGF0IHRoaXMKKyAqCWRyaXZlciBpcyBhIGxvYWRhYmxlIG1vZHVsZSBub3cuCisgKgorICogKDA3LzAzLzIwMDApIGdraAorICoJQWRkZWQgdmlzb3Jfc2V0X2lvY3RsIGFuZCB2aXNvcl9zZXRfdGVybWlvcyBmdW5jdGlvbnMgKHRoZXkgZG9uJ3QgZG8gbXVjaAorICoJb2YgYW55dGhpbmcsIGJ1dCBhcmUgZ29vZCBmb3IgZGVidWdnaW5nLikKKyAqIAorICogKDA2LzI1LzIwMDApIGdraAorICoJRml4ZWQgYnVnIGluIHZpc29yX3VudGhyb3R0bGUgdGhhdCBzaG91bGQgaGVscCB3aXRoIHRoZSBkaXNjb25uZWN0IGluIFBQUAorICoJYnVnIHRoYXQgcGVvcGxlIGhhdmUgYmVlbiByZXBvcnRpbmcuCisgKgorICogKDA2LzIzLzIwMDApIGdraAorICoJQ2xlYW5lZCB1cCBkZWJ1Z2dpbmcgc3RhdGVtZW50cyBpbiBhIHF1ZXN0IHRvIGZpbmQgVUhDSSB0aW1lb3V0IGJ1Zy4KKyAqCisgKiAoMDQvMjcvMjAwMCkgUnlhbiBWYW5kZXJCaWpsCisgKiAJRml4ZWQgbWVtb3J5IGxlYWsgaW4gdmlzb3JfY2xvc2UKKyAqCisgKiAoMDMvMjYvMjAwMCkgZ2toCisgKglTcGxpdCBkcml2ZXIgdXAgaW50byBkZXZpY2Ugc3BlY2lmaWMgcGllY2VzLgorICogCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC90dHkuaD4KKyNpbmNsdWRlIDxsaW51eC90dHlfZHJpdmVyLmg+CisjaW5jbHVkZSA8bGludXgvdHR5X2ZsaXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC91c2IuaD4KKyNpbmNsdWRlICJ1c2Itc2VyaWFsLmgiCisjaW5jbHVkZSAidmlzb3IuaCIKKworLyoKKyAqIFZlcnNpb24gSW5mb3JtYXRpb24KKyAqLworI2RlZmluZSBEUklWRVJfVkVSU0lPTiAidjIuMSIKKyNkZWZpbmUgRFJJVkVSX0FVVEhPUiAiR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVnQGtyb2FoLmNvbT4iCisjZGVmaW5lIERSSVZFUl9ERVNDICJVU0IgSGFuZFNwcmluZyBWaXNvciAvIFBhbG0gT1MgZHJpdmVyIgorCisvKiBmdW5jdGlvbiBwcm90b3R5cGVzIGZvciBhIGhhbmRzcHJpbmcgdmlzb3IgKi8KK3N0YXRpYyBpbnQgIHZpc29yX29wZW4JCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlscCk7CitzdGF0aWMgdm9pZCB2aXNvcl9jbG9zZQkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKTsKK3N0YXRpYyBpbnQgIHZpc29yX3dyaXRlCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpOworc3RhdGljIGludCAgdmlzb3Jfd3JpdGVfcm9vbQkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworc3RhdGljIGludCAgdmlzb3JfY2hhcnNfaW5fYnVmZmVyCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KTsKK3N0YXRpYyB2b2lkIHZpc29yX3Rocm90dGxlCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KTsKK3N0YXRpYyB2b2lkIHZpc29yX3VudGhyb3R0bGUJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworc3RhdGljIGludCAgdmlzb3JfcHJvYmUJCShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLCBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpOworc3RhdGljIGludCAgdmlzb3JfY2FsY19udW1fcG9ydHMoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCk7CitzdGF0aWMgdm9pZCB2aXNvcl9zaHV0ZG93bgkoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCk7CitzdGF0aWMgaW50ICB2aXNvcl9pb2N0bAkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICogZmlsZSwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOworc3RhdGljIHZvaWQgdmlzb3Jfc2V0X3Rlcm1pb3MJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCB0ZXJtaW9zICpvbGRfdGVybWlvcyk7CitzdGF0aWMgdm9pZCB2aXNvcl93cml0ZV9idWxrX2NhbGxiYWNrCShzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKK3N0YXRpYyB2b2lkIHZpc29yX3JlYWRfYnVsa19jYWxsYmFjawkoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CitzdGF0aWMgdm9pZCB2aXNvcl9yZWFkX2ludF9jYWxsYmFjawkoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CitzdGF0aWMgaW50ICBjbGllXzNfNV9zdGFydHVwCShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKTsKK3N0YXRpYyBpbnQgIHRyZW9fYXR0YWNoCQkoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCk7CitzdGF0aWMgaW50IGNsaWVfNV9hdHRhY2ggKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpOworc3RhdGljIGludCBwYWxtX29zXzNfcHJvYmUgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCk7CitzdGF0aWMgaW50IHBhbG1fb3NfNF9wcm9iZSAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKTsKKworLyogUGFyYW1ldGVycyB0aGF0IG1heSBiZSBwYXNzZWQgaW50byB0aGUgbW9kdWxlLiAqLworc3RhdGljIGludCBkZWJ1ZzsKK3N0YXRpYyBfX3UxNiB2ZW5kb3I7CitzdGF0aWMgX191MTYgcHJvZHVjdDsKKworc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlIFtdID0geworCXsgVVNCX0RFVklDRShIQU5EU1BSSU5HX1ZFTkRPUl9JRCwgSEFORFNQUklOR19WSVNPUl9JRCksCisJCS5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdCkmcGFsbV9vc18zX3Byb2JlIH0sCisJeyBVU0JfREVWSUNFKEhBTkRTUFJJTkdfVkVORE9SX0lELCBIQU5EU1BSSU5HX1RSRU9fSUQpLAorCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJnBhbG1fb3NfNF9wcm9iZSB9LAorCXsgVVNCX0RFVklDRShIQU5EU1BSSU5HX1ZFTkRPUl9JRCwgSEFORFNQUklOR19UUkVPNjAwX0lEKSwKKwkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZwYWxtX29zXzRfcHJvYmUgfSwKKwl7IFVTQl9ERVZJQ0UoUEFMTV9WRU5ET1JfSUQsIFBBTE1fTTUwMF9JRCksCisJCS5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdCkmcGFsbV9vc180X3Byb2JlIH0sCisJeyBVU0JfREVWSUNFKFBBTE1fVkVORE9SX0lELCBQQUxNX001MDVfSUQpLAorCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJnBhbG1fb3NfNF9wcm9iZSB9LAorCXsgVVNCX0RFVklDRShQQUxNX1ZFTkRPUl9JRCwgUEFMTV9NNTE1X0lEKSwKKwkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZwYWxtX29zXzRfcHJvYmUgfSwKKwl7IFVTQl9ERVZJQ0UoUEFMTV9WRU5ET1JfSUQsIFBBTE1fSTcwNV9JRCksCisJCS5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdCkmcGFsbV9vc180X3Byb2JlIH0sCisJeyBVU0JfREVWSUNFKFBBTE1fVkVORE9SX0lELCBQQUxNX00xMDBfSUQpLAorCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJnBhbG1fb3NfNF9wcm9iZSB9LAorCXsgVVNCX0RFVklDRShQQUxNX1ZFTkRPUl9JRCwgUEFMTV9NMTI1X0lEKSwKKwkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZwYWxtX29zXzRfcHJvYmUgfSwKKwl7IFVTQl9ERVZJQ0UoUEFMTV9WRU5ET1JfSUQsIFBBTE1fTTEzMF9JRCksCisJCS5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdCkmcGFsbV9vc180X3Byb2JlIH0sCisJeyBVU0JfREVWSUNFKFBBTE1fVkVORE9SX0lELCBQQUxNX1RVTkdTVEVOX1RfSUQpLAorCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJnBhbG1fb3NfNF9wcm9iZSB9LAorCXsgVVNCX0RFVklDRShQQUxNX1ZFTkRPUl9JRCwgUEFMTV9UVU5HU1RFTl9aX0lEKSwKKwkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZwYWxtX29zXzRfcHJvYmUgfSwKKwl7IFVTQl9ERVZJQ0UoUEFMTV9WRU5ET1JfSUQsIFBBTE1fWklSRTMxX0lEKSwKKwkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZwYWxtX29zXzRfcHJvYmUgfSwKKwl7IFVTQl9ERVZJQ0UoUEFMTV9WRU5ET1JfSUQsIFBBTE1fWklSRV9JRCksCisJCS5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdCkmcGFsbV9vc180X3Byb2JlIH0sCisJeyBVU0JfREVWSUNFKFNPTllfVkVORE9SX0lELCBTT05ZX0NMSUVfNF8wX0lEKSwKKwkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZwYWxtX29zXzRfcHJvYmUgfSwKKwl7IFVTQl9ERVZJQ0UoU09OWV9WRU5ET1JfSUQsIFNPTllfQ0xJRV9TMzYwX0lEKSwKKwkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZwYWxtX29zXzRfcHJvYmUgfSwKKwl7IFVTQl9ERVZJQ0UoU09OWV9WRU5ET1JfSUQsIFNPTllfQ0xJRV80XzFfSUQpLAorCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJnBhbG1fb3NfNF9wcm9iZSB9LAorCXsgVVNCX0RFVklDRShTT05ZX1ZFTkRPUl9JRCwgU09OWV9DTElFX05YNjBfSUQpLAorCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJnBhbG1fb3NfNF9wcm9iZSB9LAorCXsgVVNCX0RFVklDRShTT05ZX1ZFTkRPUl9JRCwgU09OWV9DTElFX05aOTBWX0lEKSwKKwkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZwYWxtX29zXzRfcHJvYmUgfSwKKwl7IFVTQl9ERVZJQ0UoU09OWV9WRU5ET1JfSUQsIFNPTllfQ0xJRV9USjI1X0lEKSwKKwkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZwYWxtX29zXzRfcHJvYmUgfSwKKwl7IFVTQl9ERVZJQ0UoU0FNU1VOR19WRU5ET1JfSUQsIFNBTVNVTkdfU0NIX0kzMzBfSUQpLCAKKwkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZwYWxtX29zXzRfcHJvYmUgfSwKKwl7IFVTQl9ERVZJQ0UoU0FNU1VOR19WRU5ET1JfSUQsIFNBTVNVTkdfU1BIX0k1MDBfSUQpLCAKKwkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZwYWxtX29zXzRfcHJvYmUgfSwKKwl7IFVTQl9ERVZJQ0UoR0FSTUlOX1ZFTkRPUl9JRCwgR0FSTUlOX0lRVUVfMzYwMF9JRCksIAorCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJnBhbG1fb3NfNF9wcm9iZSB9LAorCXsgVVNCX0RFVklDRShBQ0VFQ0FfVkVORE9SX0lELCBBQ0VFQ0FfTUVaMTAwMF9JRCksCisJCS5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdCkmcGFsbV9vc180X3Byb2JlIH0sCisJeyBVU0JfREVWSUNFKEtZT0NFUkFfVkVORE9SX0lELCBLWU9DRVJBXzcxMzVfSUQpLAorCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJnBhbG1fb3NfNF9wcm9iZSB9LAorCXsgVVNCX0RFVklDRShGT1NTSUxfVkVORE9SX0lELCBGT1NTSUxfQUJBQ1VTX0lEKSwKKwkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZwYWxtX29zXzRfcHJvYmUgfSwKKwl7IH0sCQkJCQkvKiBvcHRpb25hbCBwYXJhbWV0ZXIgZW50cnkgKi8KKwl7IH0JCQkJCS8qIFRlcm1pbmF0aW5nIGVudHJ5ICovCit9OworCitzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgY2xpZV9pZF81X3RhYmxlIFtdID0geworCXsgVVNCX0RFVklDRShTT05ZX1ZFTkRPUl9JRCwgU09OWV9DTElFX1VYNTBfSUQpLAorCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJnBhbG1fb3NfNF9wcm9iZSB9LAorCXsgfSwJCQkJCS8qIG9wdGlvbmFsIHBhcmFtZXRlciBlbnRyeSAqLworCXsgfQkJCQkJLyogVGVybWluYXRpbmcgZW50cnkgKi8KK307CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBjbGllX2lkXzNfNV90YWJsZSBbXSA9IHsKKwl7IFVTQl9ERVZJQ0UoU09OWV9WRU5ET1JfSUQsIFNPTllfQ0xJRV8zXzVfSUQpIH0sCisJeyB9CQkJCQkvKiBUZXJtaW5hdGluZyBlbnRyeSAqLworfTsKKworc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlX2NvbWJpbmVkIFtdID0geworCXsgVVNCX0RFVklDRShIQU5EU1BSSU5HX1ZFTkRPUl9JRCwgSEFORFNQUklOR19WSVNPUl9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoSEFORFNQUklOR19WRU5ET1JfSUQsIEhBTkRTUFJJTkdfVFJFT19JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoSEFORFNQUklOR19WRU5ET1JfSUQsIEhBTkRTUFJJTkdfVFJFTzYwMF9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoUEFMTV9WRU5ET1JfSUQsIFBBTE1fTTUwMF9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoUEFMTV9WRU5ET1JfSUQsIFBBTE1fTTUwNV9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoUEFMTV9WRU5ET1JfSUQsIFBBTE1fTTUxNV9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoUEFMTV9WRU5ET1JfSUQsIFBBTE1fSTcwNV9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoUEFMTV9WRU5ET1JfSUQsIFBBTE1fTTEwMF9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoUEFMTV9WRU5ET1JfSUQsIFBBTE1fTTEyNV9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoUEFMTV9WRU5ET1JfSUQsIFBBTE1fTTEzMF9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoUEFMTV9WRU5ET1JfSUQsIFBBTE1fVFVOR1NURU5fVF9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoUEFMTV9WRU5ET1JfSUQsIFBBTE1fVFVOR1NURU5fWl9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoUEFMTV9WRU5ET1JfSUQsIFBBTE1fWklSRTMxX0lEKSB9LAorCXsgVVNCX0RFVklDRShQQUxNX1ZFTkRPUl9JRCwgUEFMTV9aSVJFX0lEKSB9LAorCXsgVVNCX0RFVklDRShTT05ZX1ZFTkRPUl9JRCwgU09OWV9DTElFXzNfNV9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoU09OWV9WRU5ET1JfSUQsIFNPTllfQ0xJRV80XzBfSUQpIH0sCisJeyBVU0JfREVWSUNFKFNPTllfVkVORE9SX0lELCBTT05ZX0NMSUVfUzM2MF9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoU09OWV9WRU5ET1JfSUQsIFNPTllfQ0xJRV80XzFfSUQpIH0sCisJeyBVU0JfREVWSUNFKFNPTllfVkVORE9SX0lELCBTT05ZX0NMSUVfTlg2MF9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoU09OWV9WRU5ET1JfSUQsIFNPTllfQ0xJRV9OWjkwVl9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoU09OWV9WRU5ET1JfSUQsIFNPTllfQ0xJRV9VWDUwX0lEKSB9LAorCXsgVVNCX0RFVklDRShTT05ZX1ZFTkRPUl9JRCwgU09OWV9DTElFX1RKMjVfSUQpIH0sCisJeyBVU0JfREVWSUNFKFNBTVNVTkdfVkVORE9SX0lELCBTQU1TVU5HX1NDSF9JMzMwX0lEKSB9LAorCXsgVVNCX0RFVklDRShTQU1TVU5HX1ZFTkRPUl9JRCwgU0FNU1VOR19TUEhfSTUwMF9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoR0FSTUlOX1ZFTkRPUl9JRCwgR0FSTUlOX0lRVUVfMzYwMF9JRCkgfSwKKwl7IFVTQl9ERVZJQ0UoQUNFRUNBX1ZFTkRPUl9JRCwgQUNFRUNBX01FWjEwMDBfSUQpIH0sCisJeyBVU0JfREVWSUNFKEtZT0NFUkFfVkVORE9SX0lELCBLWU9DRVJBXzcxMzVfSUQpIH0sCisJeyBVU0JfREVWSUNFKEZPU1NJTF9WRU5ET1JfSUQsIEZPU1NJTF9BQkFDVVNfSUQpIH0sCisJeyB9LAkJCQkJLyogb3B0aW9uYWwgcGFyYW1ldGVyIGVudHJ5ICovCisJeyB9CQkJCQkvKiBUZXJtaW5hdGluZyBlbnRyeSAqLworfTsKKworTU9EVUxFX0RFVklDRV9UQUJMRSAodXNiLCBpZF90YWJsZV9jb21iaW5lZCk7CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciB2aXNvcl9kcml2ZXIgPSB7CisJLm93bmVyID0JVEhJU19NT0RVTEUsCisJLm5hbWUgPQkJInZpc29yIiwKKwkucHJvYmUgPQl1c2Jfc2VyaWFsX3Byb2JlLAorCS5kaXNjb25uZWN0ID0JdXNiX3NlcmlhbF9kaXNjb25uZWN0LAorCS5pZF90YWJsZSA9CWlkX3RhYmxlX2NvbWJpbmVkLAorfTsKKworLyogQWxsIG9mIHRoZSBkZXZpY2UgaW5mbyBuZWVkZWQgZm9yIHRoZSBIYW5kc3ByaW5nIFZpc29yLCBhbmQgUGFsbSA0LjAgZGV2aWNlcyAqLworc3RhdGljIHN0cnVjdCB1c2Jfc2VyaWFsX2RldmljZV90eXBlIGhhbmRzcHJpbmdfZGV2aWNlID0geworCS5vd25lciA9CQlUSElTX01PRFVMRSwKKwkubmFtZSA9CQkJIkhhbmRzcHJpbmcgVmlzb3IgLyBQYWxtIE9TIiwKKwkuc2hvcnRfbmFtZSA9CQkidmlzb3IiLAorCS5pZF90YWJsZSA9CQlpZF90YWJsZSwKKwkubnVtX2ludGVycnVwdF9pbiA9CU5VTV9ET05UX0NBUkUsCisJLm51bV9idWxrX2luID0JCTIsCisJLm51bV9idWxrX291dCA9CQkyLAorCS5udW1fcG9ydHMgPQkJMiwKKwkub3BlbiA9CQkJdmlzb3Jfb3BlbiwKKwkuY2xvc2UgPQkJdmlzb3JfY2xvc2UsCisJLnRocm90dGxlID0JCXZpc29yX3Rocm90dGxlLAorCS51bnRocm90dGxlID0JCXZpc29yX3VudGhyb3R0bGUsCisJLmF0dGFjaCA9CQl0cmVvX2F0dGFjaCwKKwkucHJvYmUgPQkJdmlzb3JfcHJvYmUsCisJLmNhbGNfbnVtX3BvcnRzID0Jdmlzb3JfY2FsY19udW1fcG9ydHMsCisJLnNodXRkb3duID0JCXZpc29yX3NodXRkb3duLAorCS5pb2N0bCA9CQl2aXNvcl9pb2N0bCwKKwkuc2V0X3Rlcm1pb3MgPQkJdmlzb3Jfc2V0X3Rlcm1pb3MsCisJLndyaXRlID0JCXZpc29yX3dyaXRlLAorCS53cml0ZV9yb29tID0JCXZpc29yX3dyaXRlX3Jvb20sCisJLmNoYXJzX2luX2J1ZmZlciA9CXZpc29yX2NoYXJzX2luX2J1ZmZlciwKKwkud3JpdGVfYnVsa19jYWxsYmFjayA9CXZpc29yX3dyaXRlX2J1bGtfY2FsbGJhY2ssCisJLnJlYWRfYnVsa19jYWxsYmFjayA9CXZpc29yX3JlYWRfYnVsa19jYWxsYmFjaywKKwkucmVhZF9pbnRfY2FsbGJhY2sgPQl2aXNvcl9yZWFkX2ludF9jYWxsYmFjaywKK307CisKKy8qIEFsbCBvZiB0aGUgZGV2aWNlIGluZm8gbmVlZGVkIGZvciB0aGUgQ2xpZSBVWDUwLCBUSDU1IFBhbG0gNS4wIGRldmljZXMgKi8KK3N0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kZXZpY2VfdHlwZSBjbGllXzVfZGV2aWNlID0geworCS5vd25lciA9CQlUSElTX01PRFVMRSwKKwkubmFtZSA9CQkJIlNvbnkgQ2xpZSA1LjAiLAorCS5zaG9ydF9uYW1lID0JCSJjbGllXzUiLAorCS5pZF90YWJsZSA9CQljbGllX2lkXzVfdGFibGUsCisJLm51bV9pbnRlcnJ1cHRfaW4gPQlOVU1fRE9OVF9DQVJFLAorCS5udW1fYnVsa19pbiA9CQkyLAorCS5udW1fYnVsa19vdXQgPQkJMiwKKwkubnVtX3BvcnRzID0JCTIsCisJLm9wZW4gPQkJCXZpc29yX29wZW4sCisJLmNsb3NlID0JCXZpc29yX2Nsb3NlLAorCS50aHJvdHRsZSA9CQl2aXNvcl90aHJvdHRsZSwKKwkudW50aHJvdHRsZSA9CQl2aXNvcl91bnRocm90dGxlLAorCS5hdHRhY2ggPQkJY2xpZV81X2F0dGFjaCwKKwkucHJvYmUgPQkJdmlzb3JfcHJvYmUsCisJLmNhbGNfbnVtX3BvcnRzID0Jdmlzb3JfY2FsY19udW1fcG9ydHMsCisJLnNodXRkb3duID0JCXZpc29yX3NodXRkb3duLAorCS5pb2N0bCA9CQl2aXNvcl9pb2N0bCwKKwkuc2V0X3Rlcm1pb3MgPQkJdmlzb3Jfc2V0X3Rlcm1pb3MsCisJLndyaXRlID0JCXZpc29yX3dyaXRlLAorCS53cml0ZV9yb29tID0JCXZpc29yX3dyaXRlX3Jvb20sCisJLmNoYXJzX2luX2J1ZmZlciA9CXZpc29yX2NoYXJzX2luX2J1ZmZlciwKKwkud3JpdGVfYnVsa19jYWxsYmFjayA9CXZpc29yX3dyaXRlX2J1bGtfY2FsbGJhY2ssCisJLnJlYWRfYnVsa19jYWxsYmFjayA9CXZpc29yX3JlYWRfYnVsa19jYWxsYmFjaywKKwkucmVhZF9pbnRfY2FsbGJhY2sgPQl2aXNvcl9yZWFkX2ludF9jYWxsYmFjaywKK307CisKKy8qIGRldmljZSBpbmZvIGZvciB0aGUgU29ueSBDbGllIE9TIHZlcnNpb24gMy41ICovCitzdGF0aWMgc3RydWN0IHVzYl9zZXJpYWxfZGV2aWNlX3R5cGUgY2xpZV8zXzVfZGV2aWNlID0geworCS5vd25lciA9CQlUSElTX01PRFVMRSwKKwkubmFtZSA9CQkJIlNvbnkgQ2xpZSAzLjUiLAorCS5zaG9ydF9uYW1lID0JCSJjbGllXzMuNSIsCisJLmlkX3RhYmxlID0JCWNsaWVfaWRfM181X3RhYmxlLAorCS5udW1faW50ZXJydXB0X2luID0JMCwKKwkubnVtX2J1bGtfaW4gPQkJMSwKKwkubnVtX2J1bGtfb3V0ID0JCTEsCisJLm51bV9wb3J0cyA9CQkxLAorCS5vcGVuID0JCQl2aXNvcl9vcGVuLAorCS5jbG9zZSA9CQl2aXNvcl9jbG9zZSwKKwkudGhyb3R0bGUgPQkJdmlzb3JfdGhyb3R0bGUsCisJLnVudGhyb3R0bGUgPQkJdmlzb3JfdW50aHJvdHRsZSwKKwkuYXR0YWNoID0JCWNsaWVfM181X3N0YXJ0dXAsCisJLmlvY3RsID0JCXZpc29yX2lvY3RsLAorCS5zZXRfdGVybWlvcyA9CQl2aXNvcl9zZXRfdGVybWlvcywKKwkud3JpdGUgPQkJdmlzb3Jfd3JpdGUsCisJLndyaXRlX3Jvb20gPQkJdmlzb3Jfd3JpdGVfcm9vbSwKKwkuY2hhcnNfaW5fYnVmZmVyID0Jdmlzb3JfY2hhcnNfaW5fYnVmZmVyLAorCS53cml0ZV9idWxrX2NhbGxiYWNrID0Jdmlzb3Jfd3JpdGVfYnVsa19jYWxsYmFjaywKKwkucmVhZF9idWxrX2NhbGxiYWNrID0Jdmlzb3JfcmVhZF9idWxrX2NhbGxiYWNrLAorfTsKKworc3RydWN0IHZpc29yX3ByaXZhdGUgeworCXNwaW5sb2NrX3QgbG9jazsKKwlpbnQgYnl0ZXNfaW47CisJaW50IGJ5dGVzX291dDsKKwlpbnQgb3V0c3RhbmRpbmdfdXJiczsKKwlpbnQgdGhyb3R0bGVkOworfTsKKworLyogbnVtYmVyIG9mIG91dHN0YW5kaW5nIHVyYnMgdG8gcHJldmVudCB1c2Vyc3BhY2UgRG9TIGZyb20gaGFwcGVuaW5nICovCisjZGVmaW5lIFVSQl9VUFBFUl9MSU1JVAk0MgorCitzdGF0aWMgaW50IHN0YXRzOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBIYW5kc3ByaW5nIFZpc29yIHNwZWNpZmljIGRyaXZlciBmdW5jdGlvbnMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgaW50IHZpc29yX29wZW4gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxwKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgPSBwb3J0LT5zZXJpYWw7CisJc3RydWN0IHZpc29yX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQgcmVzdWx0ID0gMDsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJaWYgKCFwb3J0LT5yZWFkX3VyYikgeworCQkvKiB0aGlzIGlzIG5lZWRlZCBmb3Igc29tZSBicmFpbiBkZWFkIFNvbnkgZGV2aWNlcyAqLworCQlkZXZfZXJyKCZwb3J0LT5kZXYsICJEZXZpY2UgbGllZCBhYm91dCBudW1iZXIgb2YgcG9ydHMsIHBsZWFzZSB1c2UgYSBsb3dlciBvbmUuXG4iKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwlwcml2LT5ieXRlc19pbiA9IDA7CisJcHJpdi0+Ynl0ZXNfb3V0ID0gMDsKKwlwcml2LT5vdXRzdGFuZGluZ191cmJzID0gMDsKKwlwcml2LT50aHJvdHRsZWQgPSAwOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKworCS8qCisJICogRm9yY2UgbG93X2xhdGVuY3kgb24gc28gdGhhdCBvdXIgdHR5X3B1c2ggYWN0dWFsbHkgZm9yY2VzIHRoZSBkYXRhCisJICogdGhyb3VnaCwgb3RoZXJ3aXNlIGl0IGlzIHNjaGVkdWxlZCwgYW5kIHdpdGggaGlnaCBkYXRhIHJhdGVzIChsaWtlCisJICogd2l0aCBPSENJKSBkYXRhIGNhbiBnZXQgbG9zdC4KKwkgKi8KKwlpZiAocG9ydC0+dHR5KQorCQlwb3J0LT50dHktPmxvd19sYXRlbmN5ID0gMTsKKworCS8qIFN0YXJ0IHJlYWRpbmcgZnJvbSB0aGUgZGV2aWNlICovCisJdXNiX2ZpbGxfYnVsa191cmIgKHBvcnQtPnJlYWRfdXJiLCBzZXJpYWwtPmRldiwKKwkJCSAgIHVzYl9yY3ZidWxrcGlwZSAoc2VyaWFsLT5kZXYsIAorCQkJCQkgICAgcG9ydC0+YnVsa19pbl9lbmRwb2ludEFkZHJlc3MpLAorCQkJICAgcG9ydC0+cmVhZF91cmItPnRyYW5zZmVyX2J1ZmZlciwKKwkJCSAgIHBvcnQtPnJlYWRfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoLAorCQkJICAgdmlzb3JfcmVhZF9idWxrX2NhbGxiYWNrLCBwb3J0KTsKKwlyZXN1bHQgPSB1c2Jfc3VibWl0X3VyYihwb3J0LT5yZWFkX3VyYiwgR0ZQX0tFUk5FTCk7CisJaWYgKHJlc3VsdCkgeworCQlkZXZfZXJyKCZwb3J0LT5kZXYsICIlcyAtIGZhaWxlZCBzdWJtaXR0aW5nIHJlYWQgdXJiLCBlcnJvciAlZFxuIiwKKwkJCV9fRlVOQ1RJT05fXywgcmVzdWx0KTsKKwkJZ290byBleGl0OworCX0KKwkKKwlpZiAocG9ydC0+aW50ZXJydXB0X2luX3VyYikgeworCQlkYmcoIiVzIC0gYWRkaW5nIGludGVycnVwdCBpbnB1dCBmb3IgdHJlbyIsIF9fRlVOQ1RJT05fXyk7CisJCXJlc3VsdCA9IHVzYl9zdWJtaXRfdXJiKHBvcnQtPmludGVycnVwdF9pbl91cmIsIEdGUF9LRVJORUwpOworCQlpZiAocmVzdWx0KQorCQkJZGV2X2VycigmcG9ydC0+ZGV2LCAiJXMgLSBmYWlsZWQgc3VibWl0dGluZyBpbnRlcnJ1cHQgdXJiLCBlcnJvciAlZFxuIiwKKwkJCQlfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisJfQorZXhpdDoJCisJcmV0dXJuIHJlc3VsdDsKK30KKworCitzdGF0aWMgdm9pZCB2aXNvcl9jbG9zZSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKiBmaWxwKQoreworCXN0cnVjdCB2aXNvcl9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXVuc2lnbmVkIGNoYXIgKnRyYW5zZmVyX2J1ZmZlcjsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCQkJIAorCS8qIHNodXRkb3duIG91ciB1cmJzICovCisJdXNiX2tpbGxfdXJiKHBvcnQtPnJlYWRfdXJiKTsKKwlpZiAocG9ydC0+aW50ZXJydXB0X2luX3VyYikKKwkJdXNiX2tpbGxfdXJiKHBvcnQtPmludGVycnVwdF9pbl91cmIpOworCisJLyogVHJ5IHRvIHNlbmQgc2h1dGRvd24gbWVzc2FnZSwgaWYgdGhlIGRldmljZSBpcyBnb25lLCB0aGlzIHdpbGwganVzdCBmYWlsLiAqLworCXRyYW5zZmVyX2J1ZmZlciA9ICBrbWFsbG9jICgweDEyLCBHRlBfS0VSTkVMKTsKKwlpZiAodHJhbnNmZXJfYnVmZmVyKSB7CisJCXVzYl9jb250cm9sX21zZyAocG9ydC0+c2VyaWFsLT5kZXYsCisJCQkJIHVzYl9yY3ZjdHJscGlwZShwb3J0LT5zZXJpYWwtPmRldiwgMCksCisJCQkJIFZJU09SX0NMT1NFX05PVElGSUNBVElPTiwgMHhjMiwKKwkJCQkgMHgwMDAwLCAweDAwMDAsIAorCQkJCSB0cmFuc2Zlcl9idWZmZXIsIDB4MTIsIDMwMCk7CisJCWtmcmVlICh0cmFuc2Zlcl9idWZmZXIpOworCX0KKworCWlmIChzdGF0cykKKwkJZGV2X2luZm8oJnBvcnQtPmRldiwgIkJ5dGVzIEluID0gJWQgIEJ5dGVzIE91dCA9ICVkXG4iLAorCQkJIHByaXYtPmJ5dGVzX2luLCBwcml2LT5ieXRlc19vdXQpOworfQorCisKK3N0YXRpYyBpbnQgdmlzb3Jfd3JpdGUgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGNvdW50KQoreworCXN0cnVjdCB2aXNvcl9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwgPSBwb3J0LT5zZXJpYWw7CisJc3RydWN0IHVyYiAqdXJiOworCXVuc2lnbmVkIGNoYXIgKmJ1ZmZlcjsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCBzdGF0dXM7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJaWYgKHByaXYtPm91dHN0YW5kaW5nX3VyYnMgPiBVUkJfVVBQRVJfTElNSVQpIHsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCQlkYmcoIiVzIC0gd3JpdGUgbGltaXQgaGl0XG4iLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm4gMDsKKwl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCisJYnVmZmVyID0ga21hbGxvYyAoY291bnQsIEdGUF9BVE9NSUMpOworCWlmICghYnVmZmVyKSB7CisJCWRldl9lcnIoJnBvcnQtPmRldiwgIm91dCBvZiBtZW1vcnlcbiIpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwl1cmIgPSB1c2JfYWxsb2NfdXJiKDAsIEdGUF9BVE9NSUMpOworCWlmICghdXJiKSB7CisJCWRldl9lcnIoJnBvcnQtPmRldiwgIm5vIG1vcmUgZnJlZSB1cmJzXG4iKTsKKwkJa2ZyZWUgKGJ1ZmZlcik7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCW1lbWNweSAoYnVmZmVyLCBidWYsIGNvdW50KTsKKworCXVzYl9zZXJpYWxfZGVidWdfZGF0YShkZWJ1ZywgJnBvcnQtPmRldiwgX19GVU5DVElPTl9fLCBjb3VudCwgYnVmZmVyKTsKKworCXVzYl9maWxsX2J1bGtfdXJiICh1cmIsIHNlcmlhbC0+ZGV2LAorCQkJICAgdXNiX3NuZGJ1bGtwaXBlIChzZXJpYWwtPmRldiwKKwkJCQkJICAgIHBvcnQtPmJ1bGtfb3V0X2VuZHBvaW50QWRkcmVzcyksCisJCQkgICBidWZmZXIsIGNvdW50LCAKKwkJCSAgIHZpc29yX3dyaXRlX2J1bGtfY2FsbGJhY2ssIHBvcnQpOworCisJLyogc2VuZCBpdCBkb3duIHRoZSBwaXBlICovCisJc3RhdHVzID0gdXNiX3N1Ym1pdF91cmIodXJiLCBHRlBfQVRPTUlDKTsKKwlpZiAoc3RhdHVzKSB7CisJCWRldl9lcnIoJnBvcnQtPmRldiwgIiVzIC0gdXNiX3N1Ym1pdF91cmIod3JpdGUgYnVsaykgZmFpbGVkIHdpdGggc3RhdHVzID0gJWRcbiIsCisJCQlfX0ZVTkNUSU9OX18sIHN0YXR1cyk7CisJCWNvdW50ID0gc3RhdHVzOworCQlrZnJlZSAoYnVmZmVyKTsKKwl9IGVsc2UgeworCQlzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCQkrK3ByaXYtPm91dHN0YW5kaW5nX3VyYnM7CisJCXByaXYtPmJ5dGVzX291dCArPSBjb3VudDsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCX0KKworCS8qIHdlIGFyZSBkb25lIHdpdGggdGhpcyB1cmIsIHNvIGxldCB0aGUgaG9zdCBkcml2ZXIKKwkgKiByZWFsbHkgZnJlZSBpdCB3aGVuIGl0IGlzIGZpbmlzaGVkIHdpdGggaXQgKi8KKwl1c2JfZnJlZV91cmIgKHVyYik7CisKKwlyZXR1cm4gY291bnQ7Cit9CisKKworc3RhdGljIGludCB2aXNvcl93cml0ZV9yb29tIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJLyoKKwkgKiBXZSByZWFsbHkgY2FuIHRha2UgYW55dGhpbmcgdGhlIHVzZXIgdGhyb3dzIGF0IHVzCisJICogYnV0IGxldCdzIHBpY2sgYSBuaWNlIGJpZyBudW1iZXIgdG8gdGVsbCB0aGUgdHR5CisJICogbGF5ZXIgdGhhdCB3ZSBoYXZlIGxvdHMgb2YgZnJlZSBzcGFjZQorCSAqLworCXJldHVybiAyMDQ4OworfQorCisKK3N0YXRpYyBpbnQgdmlzb3JfY2hhcnNfaW5fYnVmZmVyIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJLyogCisJICogV2UgY2FuJ3QgcmVhbGx5IGFjY291bnQgZm9yIGhvdyBtdWNoIGRhdGEgd2UKKwkgKiBoYXZlIHNlbnQgb3V0LCBidXQgaGFzbid0IG1hZGUgaXQgdGhyb3VnaCB0byB0aGUKKwkgKiBkZXZpY2UsIHNvIGp1c3QgdGVsbCB0aGUgdHR5IGxheWVyIHRoYXQgZXZlcnl0aGluZworCSAqIGlzIGZsdXNoZWQuCisJICovCisJcmV0dXJuIDA7Cit9CisKKworc3RhdGljIHZvaWQgdmlzb3Jfd3JpdGVfYnVsa19jYWxsYmFjayAoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ID0gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKil1cmItPmNvbnRleHQ7CisJc3RydWN0IHZpc29yX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCS8qIGZyZWUgdXAgdGhlIHRyYW5zZmVyIGJ1ZmZlciwgYXMgdXNiX2ZyZWVfdXJiKCkgZG9lcyBub3QgZG8gdGhpcyAqLworCWtmcmVlICh1cmItPnRyYW5zZmVyX2J1ZmZlcik7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKwkKKwlpZiAodXJiLT5zdGF0dXMpCisJCWRiZygiJXMgLSBub256ZXJvIHdyaXRlIGJ1bGsgc3RhdHVzIHJlY2VpdmVkOiAlZCIsCisJCSAgICBfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJLS1wcml2LT5vdXRzdGFuZGluZ191cmJzOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKworCXNjaGVkdWxlX3dvcmsoJnBvcnQtPndvcmspOworfQorCisKK3N0YXRpYyB2b2lkIHZpc29yX3JlYWRfYnVsa19jYWxsYmFjayAoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0ID0gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKil1cmItPmNvbnRleHQ7CisJc3RydWN0IHZpc29yX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJdW5zaWduZWQgY2hhciAqZGF0YSA9IHVyYi0+dHJhbnNmZXJfYnVmZmVyOworCXN0cnVjdCB0dHlfc3RydWN0ICp0dHk7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQgaTsKKwlpbnQgdGhyb3R0bGVkOworCWludCByZXN1bHQ7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCWlmICh1cmItPnN0YXR1cykgeworCQlkYmcoIiVzIC0gbm9uemVybyByZWFkIGJ1bGsgc3RhdHVzIHJlY2VpdmVkOiAlZCIsIF9fRlVOQ1RJT05fXywgdXJiLT5zdGF0dXMpOworCQlyZXR1cm47CisJfQorCisJdXNiX3NlcmlhbF9kZWJ1Z19kYXRhKGRlYnVnLCAmcG9ydC0+ZGV2LCBfX0ZVTkNUSU9OX18sIHVyYi0+YWN0dWFsX2xlbmd0aCwgZGF0YSk7CisKKwl0dHkgPSBwb3J0LT50dHk7CisJaWYgKHR0eSAmJiB1cmItPmFjdHVhbF9sZW5ndGgpIHsKKwkJZm9yIChpID0gMDsgaSA8IHVyYi0+YWN0dWFsX2xlbmd0aCA7ICsraSkgeworCQkJLyogaWYgd2UgaW5zZXJ0IG1vcmUgdGhhbiBUVFlfRkxJUEJVRl9TSVpFIGNoYXJhY3RlcnMsIHdlIGRyb3AgdGhlbS4gKi8KKwkJCWlmKHR0eS0+ZmxpcC5jb3VudCA+PSBUVFlfRkxJUEJVRl9TSVpFKSB7CisJCQkJdHR5X2ZsaXBfYnVmZmVyX3B1c2godHR5KTsKKwkJCX0KKwkJCS8qIHRoaXMgZG9lc24ndCBhY3R1YWxseSBwdXNoIHRoZSBkYXRhIHRocm91Z2ggdW5sZXNzIHR0eS0+bG93X2xhdGVuY3kgaXMgc2V0ICovCisJCQl0dHlfaW5zZXJ0X2ZsaXBfY2hhcih0dHksIGRhdGFbaV0sIDApOworCQl9CisJCXR0eV9mbGlwX2J1ZmZlcl9wdXNoKHR0eSk7CisJfQorCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CisJcHJpdi0+Ynl0ZXNfaW4gKz0gdXJiLT5hY3R1YWxfbGVuZ3RoOworCXRocm90dGxlZCA9IHByaXYtPnRocm90dGxlZDsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CisKKwkvKiBDb250aW51ZSB0cnlpbmcgdG8gYWx3YXlzIHJlYWQgaWYgd2Ugc2hvdWxkICovCisJaWYgKCF0aHJvdHRsZWQpIHsKKwkJdXNiX2ZpbGxfYnVsa191cmIgKHBvcnQtPnJlYWRfdXJiLCBwb3J0LT5zZXJpYWwtPmRldiwKKwkJCQkgICB1c2JfcmN2YnVsa3BpcGUocG9ydC0+c2VyaWFsLT5kZXYsCisJCQkJCQkgICBwb3J0LT5idWxrX2luX2VuZHBvaW50QWRkcmVzcyksCisJCQkJICAgcG9ydC0+cmVhZF91cmItPnRyYW5zZmVyX2J1ZmZlciwKKwkJCQkgICBwb3J0LT5yZWFkX3VyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCwKKwkJCQkgICB2aXNvcl9yZWFkX2J1bGtfY2FsbGJhY2ssIHBvcnQpOworCQlyZXN1bHQgPSB1c2Jfc3VibWl0X3VyYihwb3J0LT5yZWFkX3VyYiwgR0ZQX0FUT01JQyk7CisJCWlmIChyZXN1bHQpCisJCQlkZXZfZXJyKCZwb3J0LT5kZXYsICIlcyAtIGZhaWxlZCByZXN1Ym1pdHRpbmcgcmVhZCB1cmIsIGVycm9yICVkXG4iLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisJfQorCXJldHVybjsKK30KKworc3RhdGljIHZvaWQgdmlzb3JfcmVhZF9pbnRfY2FsbGJhY2sgKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopdXJiLT5jb250ZXh0OworCWludCByZXN1bHQ7CisKKwlzd2l0Y2ggKHVyYi0+c3RhdHVzKSB7CisJY2FzZSAwOgorCQkvKiBzdWNjZXNzICovCisJCWJyZWFrOworCWNhc2UgLUVDT05OUkVTRVQ6CisJY2FzZSAtRU5PRU5UOgorCWNhc2UgLUVTSFVURE9XTjoKKwkJLyogdGhpcyB1cmIgaXMgdGVybWluYXRlZCwgY2xlYW4gdXAgKi8KKwkJZGJnKCIlcyAtIHVyYiBzaHV0dGluZyBkb3duIHdpdGggc3RhdHVzOiAlZCIsCisJCSAgICBfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzKTsKKwkJcmV0dXJuOworCWRlZmF1bHQ6CisJCWRiZygiJXMgLSBub256ZXJvIHVyYiBzdGF0dXMgcmVjZWl2ZWQ6ICVkIiwKKwkJICAgIF9fRlVOQ1RJT05fXywgdXJiLT5zdGF0dXMpOworCQlnb3RvIGV4aXQ7CisJfQorCisJLyoKKwkgKiBUaGlzIGluZm9ybWF0aW9uIGlzIHN0aWxsIHVua25vd24gd2hhdCBpdCBjYW4gYmUgdXNlZCBmb3IuCisJICogSWYgYW55b25lIGhhcyBhbiBpZGVhLCBwbGVhc2UgbGV0IHRoZSBhdXRob3Iga25vdy4uLgorCSAqCisJICogUnVtb3IgaGFzIGl0IHRoaXMgZW5kcG9pbnQgaXMgdXNlZCB0byBub3RpZnkgd2hlbiBkYXRhCisJICogaXMgcmVhZHkgdG8gYmUgcmVhZCBmcm9tIHRoZSBidWxrIG9uZXMuCisJICovCisJdXNiX3NlcmlhbF9kZWJ1Z19kYXRhKGRlYnVnLCAmcG9ydC0+ZGV2LCBfX0ZVTkNUSU9OX18sCisJCQkgICAgICB1cmItPmFjdHVhbF9sZW5ndGgsIHVyYi0+dHJhbnNmZXJfYnVmZmVyKTsKKworZXhpdDoKKwlyZXN1bHQgPSB1c2Jfc3VibWl0X3VyYiAodXJiLCBHRlBfQVRPTUlDKTsKKwlpZiAocmVzdWx0KQorCQlkZXZfZXJyKCZ1cmItPmRldi0+ZGV2LCAiJXMgLSBFcnJvciAlZCBzdWJtaXR0aW5nIGludGVycnVwdCB1cmJcbiIsCisJCQlfX0ZVTkNUSU9OX18sIHJlc3VsdCk7Cit9CisKK3N0YXRpYyB2b2lkIHZpc29yX3Rocm90dGxlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCB2aXNvcl9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworCXByaXYtPnRocm90dGxlZCA9IDE7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOworfQorCisKK3N0YXRpYyB2b2lkIHZpc29yX3VudGhyb3R0bGUgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpCit7CisJc3RydWN0IHZpc29yX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQgcmVzdWx0OworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKwlwcml2LT50aHJvdHRsZWQgPSAwOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKKworCXBvcnQtPnJlYWRfdXJiLT5kZXYgPSBwb3J0LT5zZXJpYWwtPmRldjsKKwlyZXN1bHQgPSB1c2Jfc3VibWl0X3VyYihwb3J0LT5yZWFkX3VyYiwgR0ZQX0FUT01JQyk7CisJaWYgKHJlc3VsdCkKKwkJZGV2X2VycigmcG9ydC0+ZGV2LCAiJXMgLSBmYWlsZWQgc3VibWl0dGluZyByZWFkIHVyYiwgZXJyb3IgJWRcbiIsIF9fRlVOQ1RJT05fXywgcmVzdWx0KTsKK30KKworc3RhdGljIGludCBwYWxtX29zXzNfcHJvYmUgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCkKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmc2VyaWFsLT5kZXYtPmRldjsKKwlzdHJ1Y3Qgdmlzb3JfY29ubmVjdGlvbl9pbmZvICpjb25uZWN0aW9uX2luZm87CisJdW5zaWduZWQgY2hhciAqdHJhbnNmZXJfYnVmZmVyOworCWNoYXIgKnN0cmluZzsKKwlpbnQgcmV0dmFsID0gMDsKKwlpbnQgaTsKKwlpbnQgbnVtX3BvcnRzID0gMDsKKworCWRiZygiJXMiLCBfX0ZVTkNUSU9OX18pOworCisJdHJhbnNmZXJfYnVmZmVyID0ga21hbGxvYyAoc2l6ZW9mICgqY29ubmVjdGlvbl9pbmZvKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCF0cmFuc2Zlcl9idWZmZXIpIHsKKwkJZGV2X2VycihkZXYsICIlcyAtIGttYWxsb2MoJVpkKSBmYWlsZWQuXG4iLCBfX0ZVTkNUSU9OX18sCisJCQlzaXplb2YoKmNvbm5lY3Rpb25faW5mbykpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwkvKiBzZW5kIGEgZ2V0IGNvbm5lY3Rpb24gaW5mbyByZXF1ZXN0ICovCisJcmV0dmFsID0gdXNiX2NvbnRyb2xfbXNnIChzZXJpYWwtPmRldiwKKwkJCQkgIHVzYl9yY3ZjdHJscGlwZShzZXJpYWwtPmRldiwgMCksCisJCQkJICBWSVNPUl9HRVRfQ09OTkVDVElPTl9JTkZPUk1BVElPTiwKKwkJCQkgIDB4YzIsIDB4MDAwMCwgMHgwMDAwLCB0cmFuc2Zlcl9idWZmZXIsCisJCQkJICBzaXplb2YoKmNvbm5lY3Rpb25faW5mbyksIDMwMCk7CisJaWYgKHJldHZhbCA8IDApIHsKKwkJZGV2X2VycihkZXYsICIlcyAtIGVycm9yICVkIGdldHRpbmcgY29ubmVjdGlvbiBpbmZvcm1hdGlvblxuIiwKKwkJCV9fRlVOQ1RJT05fXywgcmV0dmFsKTsKKwkJZ290byBleGl0OworCX0KKworCWlmIChyZXR2YWwgPT0gc2l6ZW9mKCpjb25uZWN0aW9uX2luZm8pKSB7CisJICAgICAgICBjb25uZWN0aW9uX2luZm8gPSAoc3RydWN0IHZpc29yX2Nvbm5lY3Rpb25faW5mbyAqKXRyYW5zZmVyX2J1ZmZlcjsKKworCQludW1fcG9ydHMgPSBsZTE2X3RvX2NwdShjb25uZWN0aW9uX2luZm8tPm51bV9wb3J0cyk7CisJCWZvciAoaSA9IDA7IGkgPCBudW1fcG9ydHM7ICsraSkgeworCQkJc3dpdGNoIChjb25uZWN0aW9uX2luZm8tPmNvbm5lY3Rpb25zW2ldLnBvcnRfZnVuY3Rpb25faWQpIHsKKwkJCQljYXNlIFZJU09SX0ZVTkNUSU9OX0dFTkVSSUM6CisJCQkJCXN0cmluZyA9ICJHZW5lcmljIjsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSBWSVNPUl9GVU5DVElPTl9ERUJVR0dFUjoKKwkJCQkJc3RyaW5nID0gIkRlYnVnZ2VyIjsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSBWSVNPUl9GVU5DVElPTl9IT1RTWU5DOgorCQkJCQlzdHJpbmcgPSAiSG90U3luYyI7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgVklTT1JfRlVOQ1RJT05fQ09OU09MRToKKwkJCQkJc3RyaW5nID0gIkNvbnNvbGUiOworCQkJCQlicmVhazsKKwkJCQljYXNlIFZJU09SX0ZVTkNUSU9OX1JFTU9URV9GSUxFX1NZUzoKKwkJCQkJc3RyaW5nID0gIlJlbW90ZSBGaWxlIFN5c3RlbSI7CisJCQkJCWJyZWFrOworCQkJCWRlZmF1bHQ6CisJCQkJCXN0cmluZyA9ICJ1bmtub3duIjsKKwkJCQkJYnJlYWs7CisJCQl9CisJCQlkZXZfaW5mbyhkZXYsICIlczogcG9ydCAlZCwgaXMgZm9yICVzIHVzZVxuIiwKKwkJCQlzZXJpYWwtPnR5cGUtPm5hbWUsCisJCQkJY29ubmVjdGlvbl9pbmZvLT5jb25uZWN0aW9uc1tpXS5wb3J0LCBzdHJpbmcpOworCQl9CisJfQorCS8qCisJKiBIYW5kbGUgZGV2aWNlcyB0aGF0IHJlcG9ydCBpbnZhbGlkIHN0dWZmIGhlcmUuCisJKi8KKwlpZiAobnVtX3BvcnRzID09IDAgfHwgbnVtX3BvcnRzID4gMikgeworCQlkZXZfd2FybiAoZGV2LCAiJXM6IE5vIHZhbGlkIGNvbm5lY3QgaW5mbyBhdmFpbGFibGVcbiIsCisJCQlzZXJpYWwtPnR5cGUtPm5hbWUpOworCQludW1fcG9ydHMgPSAyOworCX0KKyAgCisJZGV2X2luZm8oZGV2LCAiJXM6IE51bWJlciBvZiBwb3J0czogJWRcbiIsIHNlcmlhbC0+dHlwZS0+bmFtZSwKKwkJbnVtX3BvcnRzKTsKKworCS8qCisJICogc2F2ZSBvZmYgb3VyIG51bV9wb3J0cyBpbmZvIHNvIHRoYXQgd2UgY2FuIHVzZSBpdCBpbiB0aGUKKwkgKiBjYWxjX251bV9wb3J0cyBjYWxsYmFjaworCSAqLworCXVzYl9zZXRfc2VyaWFsX2RhdGEoc2VyaWFsLCAodm9pZCAqKShsb25nKW51bV9wb3J0cyk7CisKKwkvKiBhc2sgZm9yIHRoZSBudW1iZXIgb2YgYnl0ZXMgYXZhaWxhYmxlLCBidXQgaWdub3JlIHRoZSByZXNwb25zZSBhcyBpdCBpcyBicm9rZW4gKi8KKwlyZXR2YWwgPSB1c2JfY29udHJvbF9tc2cgKHNlcmlhbC0+ZGV2LAorCQkJCSAgdXNiX3JjdmN0cmxwaXBlKHNlcmlhbC0+ZGV2LCAwKSwKKwkJCQkgIFZJU09SX1JFUVVFU1RfQllURVNfQVZBSUxBQkxFLAorCQkJCSAgMHhjMiwgMHgwMDAwLCAweDAwMDUsIHRyYW5zZmVyX2J1ZmZlciwKKwkJCQkgIDB4MDIsIDMwMCk7CisJaWYgKHJldHZhbCA8IDApCisJCWRldl9lcnIoZGV2LCAiJXMgLSBlcnJvciAlZCBnZXR0aW5nIGJ5dGVzIGF2YWlsYWJsZSByZXF1ZXN0XG4iLAorCQkJX19GVU5DVElPTl9fLCByZXR2YWwpOworCXJldHZhbCA9IDA7CisKK2V4aXQ6CisJa2ZyZWUgKHRyYW5zZmVyX2J1ZmZlcik7CisKKwlyZXR1cm4gcmV0dmFsOworfQorCitzdGF0aWMgaW50IHBhbG1fb3NfNF9wcm9iZSAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZzZXJpYWwtPmRldi0+ZGV2OworCXN0cnVjdCBwYWxtX2V4dF9jb25uZWN0aW9uX2luZm8gKmNvbm5lY3Rpb25faW5mbzsKKwl1bnNpZ25lZCBjaGFyICp0cmFuc2Zlcl9idWZmZXI7CisJaW50IHJldHZhbDsKKworCWRiZygiJXMiLCBfX0ZVTkNUSU9OX18pOworCisJdHJhbnNmZXJfYnVmZmVyID0gIGttYWxsb2MgKHNpemVvZiAoKmNvbm5lY3Rpb25faW5mbyksIEdGUF9LRVJORUwpOworCWlmICghdHJhbnNmZXJfYnVmZmVyKSB7CisJCWRldl9lcnIoZGV2LCAiJXMgLSBrbWFsbG9jKCVaZCkgZmFpbGVkLlxuIiwgX19GVU5DVElPTl9fLAorCQkJc2l6ZW9mKCpjb25uZWN0aW9uX2luZm8pKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJcmV0dmFsID0gdXNiX2NvbnRyb2xfbXNnIChzZXJpYWwtPmRldiwKKwkJCQkgIHVzYl9yY3ZjdHJscGlwZShzZXJpYWwtPmRldiwgMCksIAorCQkJCSAgUEFMTV9HRVRfRVhUX0NPTk5FQ1RJT05fSU5GT1JNQVRJT04sCisJCQkJICAweGMyLCAweDAwMDAsIDB4MDAwMCwgdHJhbnNmZXJfYnVmZmVyLAorCQkJCSAgc2l6ZW9mICgqY29ubmVjdGlvbl9pbmZvKSwgMzAwKTsKKwlpZiAocmV0dmFsIDwgMCkKKwkJZGV2X2VycihkZXYsICIlcyAtIGVycm9yICVkIGdldHRpbmcgY29ubmVjdGlvbiBpbmZvXG4iLAorCQkJX19GVU5DVElPTl9fLCByZXR2YWwpOworCWVsc2UKKwkJdXNiX3NlcmlhbF9kZWJ1Z19kYXRhKGRlYnVnLCAmc2VyaWFsLT5kZXYtPmRldiwgX19GVU5DVElPTl9fLAorCQkJCSAgICAgIHJldHZhbCwgdHJhbnNmZXJfYnVmZmVyKTsKKworCWtmcmVlICh0cmFuc2Zlcl9idWZmZXIpOworCXJldHVybiAwOworfQorCisKK3N0YXRpYyBpbnQgdmlzb3JfcHJvYmUgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCkKK3sKKwlpbnQgcmV0dmFsID0gMDsKKwlpbnQgKCpzdGFydHVwKSAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKTsKKworCWRiZygiJXMiLCBfX0ZVTkNUSU9OX18pOworCisJaWYgKHNlcmlhbC0+ZGV2LT5hY3Rjb25maWctPmRlc2MuYkNvbmZpZ3VyYXRpb25WYWx1ZSAhPSAxKSB7CisJCWVycigiYWN0aXZlIGNvbmZpZyAjJWQgIT0gMSA/PyIsCisJCQlzZXJpYWwtPmRldi0+YWN0Y29uZmlnLT5kZXNjLmJDb25maWd1cmF0aW9uVmFsdWUpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlpZiAoaWQtPmRyaXZlcl9pbmZvKSB7CisJCXN0YXJ0dXAgPSAodm9pZCAqKWlkLT5kcml2ZXJfaW5mbzsKKwkJcmV0dmFsID0gc3RhcnR1cChzZXJpYWwsIGlkKTsKKwl9CisKKwlyZXR1cm4gcmV0dmFsOworfQorCitzdGF0aWMgaW50IHZpc29yX2NhbGNfbnVtX3BvcnRzIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQoreworCWludCBudW1fcG9ydHMgPSAoaW50KShsb25nKSh1c2JfZ2V0X3NlcmlhbF9kYXRhKHNlcmlhbCkpOworCisJaWYgKG51bV9wb3J0cykKKwkJdXNiX3NldF9zZXJpYWxfZGF0YShzZXJpYWwsIE5VTEwpOworCisJcmV0dXJuIG51bV9wb3J0czsKK30KKworc3RhdGljIGludCBnZW5lcmljX3N0YXJ0dXAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkKK3sKKwlzdHJ1Y3Qgdmlzb3JfcHJpdmF0ZSAqcHJpdjsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBzZXJpYWwtPm51bV9wb3J0czsgKytpKSB7CisJCXByaXYgPSBrbWFsbG9jIChzaXplb2YoKnByaXYpLCBHRlBfS0VSTkVMKTsKKwkJaWYgKCFwcml2KQorCQkJcmV0dXJuIC1FTk9NRU07CisJCW1lbXNldCAocHJpdiwgMHgwMCwgc2l6ZW9mKCpwcml2KSk7CisJCXNwaW5fbG9ja19pbml0KCZwcml2LT5sb2NrKTsKKwkJdXNiX3NldF9zZXJpYWxfcG9ydF9kYXRhKHNlcmlhbC0+cG9ydFtpXSwgcHJpdik7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNsaWVfM181X3N0YXJ0dXAgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJnNlcmlhbC0+ZGV2LT5kZXY7CisJaW50IHJlc3VsdDsKKwl1OCBkYXRhOworCisJZGJnKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwkvKgorCSAqIE5vdGUgdGhhdCBQRUctMzAwIHNlcmllcyBkZXZpY2VzIGV4cGVjdCB0aGUgZm9sbG93aW5nIHR3byBjYWxscy4KKwkgKi8KKworCS8qIGdldCB0aGUgY29uZmlnIG51bWJlciAqLworCXJlc3VsdCA9IHVzYl9jb250cm9sX21zZyAoc2VyaWFsLT5kZXYsIHVzYl9yY3ZjdHJscGlwZShzZXJpYWwtPmRldiwgMCksCisJCQkJICBVU0JfUkVRX0dFVF9DT05GSUdVUkFUSU9OLCBVU0JfRElSX0lOLAorCQkJCSAgMCwgMCwgJmRhdGEsIDEsIDMwMDApOworCWlmIChyZXN1bHQgPCAwKSB7CisJCWRldl9lcnIoZGV2LCAiJXM6IGdldCBjb25maWcgbnVtYmVyIGZhaWxlZDogJWRcbiIsIF9fRlVOQ1RJT05fXywgcmVzdWx0KTsKKwkJcmV0dXJuIHJlc3VsdDsKKwl9CisJaWYgKHJlc3VsdCAhPSAxKSB7CisJCWRldl9lcnIoZGV2LCAiJXM6IGdldCBjb25maWcgbnVtYmVyIGJhZCByZXR1cm4gbGVuZ3RoOiAlZFxuIiwgX19GVU5DVElPTl9fLCByZXN1bHQpOworCQlyZXR1cm4gLUVJTzsKKwl9CisKKwkvKiBnZXQgdGhlIGludGVyZmFjZSBudW1iZXIgKi8KKwlyZXN1bHQgPSB1c2JfY29udHJvbF9tc2cgKHNlcmlhbC0+ZGV2LCB1c2JfcmN2Y3RybHBpcGUoc2VyaWFsLT5kZXYsIDApLAorCQkJCSAgVVNCX1JFUV9HRVRfSU5URVJGQUNFLCAKKwkJCQkgIFVTQl9ESVJfSU4gfCBVU0JfUkVDSVBfSU5URVJGQUNFLAorCQkJCSAgMCwgMCwgJmRhdGEsIDEsIDMwMDApOworCWlmIChyZXN1bHQgPCAwKSB7CisJCWRldl9lcnIoZGV2LCAiJXM6IGdldCBpbnRlcmZhY2UgbnVtYmVyIGZhaWxlZDogJWRcbiIsIF9fRlVOQ1RJT05fXywgcmVzdWx0KTsKKwkJcmV0dXJuIHJlc3VsdDsKKwl9CisJaWYgKHJlc3VsdCAhPSAxKSB7CisJCWRldl9lcnIoZGV2LCAiJXM6IGdldCBpbnRlcmZhY2UgbnVtYmVyIGJhZCByZXR1cm4gbGVuZ3RoOiAlZFxuIiwgX19GVU5DVElPTl9fLCByZXN1bHQpOworCQlyZXR1cm4gLUVJTzsKKwl9CisKKwlyZXR1cm4gZ2VuZXJpY19zdGFydHVwKHNlcmlhbCk7Cit9CisgCitzdGF0aWMgaW50IHRyZW9fYXR0YWNoIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnN3YXBfcG9ydDsKKworCS8qIE9ubHkgZG8gdGhpcyBlbmRwb2ludCBoYWNrIGZvciB0aGUgSGFuZHNwcmluZyBkZXZpY2VzIHdpdGgKKwkgKiBpbnRlcnJ1cHQgaW4gZW5kcG9pbnRzLCB3aGljaCBmb3Igbm93IGFyZSB0aGUgVHJlbyBkZXZpY2VzLiAqLworCWlmICghKChsZTE2X3RvX2NwdShzZXJpYWwtPmRldi0+ZGVzY3JpcHRvci5pZFZlbmRvcikgPT0gSEFORFNQUklOR19WRU5ET1JfSUQpIHx8CisJICAgICAgKGxlMTZfdG9fY3B1KHNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmlkVmVuZG9yKSA9PSBLWU9DRVJBX1ZFTkRPUl9JRCkpIHx8CisJICAgIChzZXJpYWwtPm51bV9pbnRlcnJ1cHRfaW4gPT0gMCkpCisJCWdvdG8gZ2VuZXJpY19zdGFydHVwOworCisJZGJnKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwkvKgorCSogSXQgYXBwZWFycyB0aGF0IFRyZW9zIGFuZCBLeW9jZXJhcyB3YW50IHRvIHVzZSB0aGUgCisJKiAxc3QgYnVsayBpbiBlbmRwb2ludCB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSAybmQgYnVsayBvdXQgZW5kcG9pbnQsIAorCSogc28gbGV0J3Mgc3dhcCB0aGUgMXN0IGFuZCAybmQgYnVsayBpbiBhbmQgaW50ZXJydXB0IGVuZHBvaW50cy4gIAorCSogTm90ZSB0aGF0IHN3YXBwaW5nIHRoZSBidWxrIG91dCBlbmRwb2ludHMgd291bGQgYnJlYWsgbG90cyBvZiAKKwkqIGFwcHMgdGhhdCB3YW50IHRvIGNvbW11bmljYXRlIG9uIHRoZSBzZWNvbmQgcG9ydC4KKwkqLworI2RlZmluZSBDT1BZX1BPUlQoZGVzdCwgc3JjKQkJCQkJCVwKKwlkZXN0LT5yZWFkX3VyYiA9IHNyYy0+cmVhZF91cmI7CQkJCQlcCisJZGVzdC0+YnVsa19pbl9lbmRwb2ludEFkZHJlc3MgPSBzcmMtPmJ1bGtfaW5fZW5kcG9pbnRBZGRyZXNzOwlcCisJZGVzdC0+YnVsa19pbl9idWZmZXIgPSBzcmMtPmJ1bGtfaW5fYnVmZmVyOwkJCVwKKwlkZXN0LT5pbnRlcnJ1cHRfaW5fdXJiID0gc3JjLT5pbnRlcnJ1cHRfaW5fdXJiOwkJCVwKKwlkZXN0LT5pbnRlcnJ1cHRfaW5fZW5kcG9pbnRBZGRyZXNzID0gc3JjLT5pbnRlcnJ1cHRfaW5fZW5kcG9pbnRBZGRyZXNzOwlcCisJZGVzdC0+aW50ZXJydXB0X2luX2J1ZmZlciA9IHNyYy0+aW50ZXJydXB0X2luX2J1ZmZlcjsKKworCXN3YXBfcG9ydCA9IGttYWxsb2Moc2l6ZW9mKCpzd2FwX3BvcnQpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXN3YXBfcG9ydCkKKwkJcmV0dXJuIC1FTk9NRU07CisJQ09QWV9QT1JUKHN3YXBfcG9ydCwgc2VyaWFsLT5wb3J0WzBdKTsKKwlDT1BZX1BPUlQoc2VyaWFsLT5wb3J0WzBdLCBzZXJpYWwtPnBvcnRbMV0pOworCUNPUFlfUE9SVChzZXJpYWwtPnBvcnRbMV0sIHN3YXBfcG9ydCk7CisJa2ZyZWUoc3dhcF9wb3J0KTsKKworZ2VuZXJpY19zdGFydHVwOgorCXJldHVybiBnZW5lcmljX3N0YXJ0dXAoc2VyaWFsKTsKK30KKworc3RhdGljIGludCBjbGllXzVfYXR0YWNoIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQoreworCWRiZygiJXMiLCBfX0ZVTkNUSU9OX18pOworCisJLyogVEg1NSByZWdpc3RlcnMgMiBwb3J0cy4gCisJICAgQ29tbXVuaWNhdGlvbiBpbiBmcm9tIHRoZSBVWDUwL1RINTUgdXNlcyBidWxrX2luX2VuZHBvaW50QWRkcmVzcyBmcm9tIHBvcnQgMCAKKwkgICBDb21tdW5pY2F0aW9uIG91dCB0byB0aGUgVVg1MC9USDU1IHVzZXMgYnVsa19vdXRfZW5kcG9pbnRBZGRyZXNzIGZyb20gcG9ydCAxIAorCSAgIAorCSAgIExldHMgZG8gYSBxdWljayBhbmQgZGlydHkgbWFwcGluZworCSAqLworCQorCS8qIHNvbWUgc2FuaXR5IGNoZWNrICovCisJaWYgKHNlcmlhbC0+bnVtX3BvcnRzIDwgMikKKwkJcmV0dXJuIC0xOworCQkKKwkvKiBwb3J0IDAgbm93IHVzZXMgdGhlIG1vZGlmaWVkIGVuZHBvaW50IEFkZHJlc3MgKi8KKwlzZXJpYWwtPnBvcnRbMF0tPmJ1bGtfb3V0X2VuZHBvaW50QWRkcmVzcyA9IHNlcmlhbC0+cG9ydFsxXS0+YnVsa19vdXRfZW5kcG9pbnRBZGRyZXNzOworCisJcmV0dXJuIGdlbmVyaWNfc3RhcnR1cChzZXJpYWwpOworfQorCitzdGF0aWMgdm9pZCB2aXNvcl9zaHV0ZG93biAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkKK3sKKwlkYmcoIiVzIiwgX19GVU5DVElPTl9fKTsKK30KKworc3RhdGljIGludCB2aXNvcl9pb2N0bCAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKiBmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKK3sKKwlkYmcoIiVzIC0gcG9ydCAlZCwgY21kIDB4JS40eCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyLCBjbWQpOworCisJcmV0dXJuIC1FTk9JT0NUTENNRDsKK30KKworCisvKiBUaGlzIGZ1bmN0aW9uIGlzIGFsbCBuaWNlIGFuZCBnb29kLCBidXQgd2UgZG9uJ3QgY2hhbmdlIGFueXRoaW5nIGJhc2VkIG9uIGl0IDopICovCitzdGF0aWMgdm9pZCB2aXNvcl9zZXRfdGVybWlvcyAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IHRlcm1pb3MgKm9sZF90ZXJtaW9zKQoreworCXVuc2lnbmVkIGludCBjZmxhZzsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJaWYgKCghcG9ydC0+dHR5KSB8fCAoIXBvcnQtPnR0eS0+dGVybWlvcykpIHsKKwkJZGJnKCIlcyAtIG5vIHR0eSBzdHJ1Y3R1cmVzIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuOworCX0KKworCWNmbGFnID0gcG9ydC0+dHR5LT50ZXJtaW9zLT5jX2NmbGFnOworCS8qIGNoZWNrIHRoYXQgdGhleSByZWFsbHkgd2FudCB1cyB0byBjaGFuZ2Ugc29tZXRoaW5nICovCisJaWYgKG9sZF90ZXJtaW9zKSB7CisJCWlmICgoY2ZsYWcgPT0gb2xkX3Rlcm1pb3MtPmNfY2ZsYWcpICYmCisJCSAgICAoUkVMRVZBTlRfSUZMQUcocG9ydC0+dHR5LT50ZXJtaW9zLT5jX2lmbGFnKSA9PSBSRUxFVkFOVF9JRkxBRyhvbGRfdGVybWlvcy0+Y19pZmxhZykpKSB7CisJCQlkYmcoIiVzIC0gbm90aGluZyB0byBjaGFuZ2UuLi4iLCBfX0ZVTkNUSU9OX18pOworCQkJcmV0dXJuOworCQl9CisJfQorCisJLyogZ2V0IHRoZSBieXRlIHNpemUgKi8KKwlzd2l0Y2ggKGNmbGFnICYgQ1NJWkUpIHsKKwkJY2FzZSBDUzU6CWRiZygiJXMgLSBkYXRhIGJpdHMgPSA1IiwgX19GVU5DVElPTl9fKTsgICBicmVhazsKKwkJY2FzZSBDUzY6CWRiZygiJXMgLSBkYXRhIGJpdHMgPSA2IiwgX19GVU5DVElPTl9fKTsgICBicmVhazsKKwkJY2FzZSBDUzc6CWRiZygiJXMgLSBkYXRhIGJpdHMgPSA3IiwgX19GVU5DVElPTl9fKTsgICBicmVhazsKKwkJZGVmYXVsdDoKKwkJY2FzZSBDUzg6CWRiZygiJXMgLSBkYXRhIGJpdHMgPSA4IiwgX19GVU5DVElPTl9fKTsgICBicmVhazsKKwl9CisJCisJLyogZGV0ZXJtaW5lIHRoZSBwYXJpdHkgKi8KKwlpZiAoY2ZsYWcgJiBQQVJFTkIpCisJCWlmIChjZmxhZyAmIFBBUk9ERCkKKwkJCWRiZygiJXMgLSBwYXJpdHkgPSBvZGQiLCBfX0ZVTkNUSU9OX18pOworCQllbHNlCisJCQlkYmcoIiVzIC0gcGFyaXR5ID0gZXZlbiIsIF9fRlVOQ1RJT05fXyk7CisJZWxzZQorCQlkYmcoIiVzIC0gcGFyaXR5ID0gbm9uZSIsIF9fRlVOQ1RJT05fXyk7CisKKwkvKiBmaWd1cmUgb3V0IHRoZSBzdG9wIGJpdHMgcmVxdWVzdGVkICovCisJaWYgKGNmbGFnICYgQ1NUT1BCKQorCQlkYmcoIiVzIC0gc3RvcCBiaXRzID0gMiIsIF9fRlVOQ1RJT05fXyk7CisJZWxzZQorCQlkYmcoIiVzIC0gc3RvcCBiaXRzID0gMSIsIF9fRlVOQ1RJT05fXyk7CisKKwkKKwkvKiBmaWd1cmUgb3V0IHRoZSBmbG93IGNvbnRyb2wgc2V0dGluZ3MgKi8KKwlpZiAoY2ZsYWcgJiBDUlRTQ1RTKQorCQlkYmcoIiVzIC0gUlRTL0NUUyBpcyBlbmFibGVkIiwgX19GVU5DVElPTl9fKTsKKwllbHNlCisJCWRiZygiJXMgLSBSVFMvQ1RTIGlzIGRpc2FibGVkIiwgX19GVU5DVElPTl9fKTsKKwkKKwkvKiBkZXRlcm1pbmUgc29mdHdhcmUgZmxvdyBjb250cm9sICovCisJaWYgKElfSVhPRkYocG9ydC0+dHR5KSkKKwkJZGJnKCIlcyAtIFhPTi9YT0ZGIGlzIGVuYWJsZWQsIFhPTiA9ICUyeCwgWE9GRiA9ICUyeCIsCisJCSAgICBfX0ZVTkNUSU9OX18sIFNUQVJUX0NIQVIocG9ydC0+dHR5KSwgU1RPUF9DSEFSKHBvcnQtPnR0eSkpOworCWVsc2UKKwkJZGJnKCIlcyAtIFhPTi9YT0ZGIGlzIGRpc2FibGVkIiwgX19GVU5DVElPTl9fKTsKKworCS8qIGdldCB0aGUgYmF1ZCByYXRlIHdhbnRlZCAqLworCWRiZygiJXMgLSBiYXVkIHJhdGUgPSAlZCIsIF9fRlVOQ1RJT05fXywgdHR5X2dldF9iYXVkX3JhdGUocG9ydC0+dHR5KSk7CisKKwlyZXR1cm47Cit9CisKKworc3RhdGljIGludCBfX2luaXQgdmlzb3JfaW5pdCAodm9pZCkKK3sKKwlpbnQgaSwgcmV0dmFsOworCS8qIE9ubHkgaWYgcGFyYW1ldGVycyB3ZXJlIHBhc3NlZCB0byB1cyAqLworCWlmICgodmVuZG9yPjApICYmIChwcm9kdWN0PjApKSB7CisJCXN0cnVjdCB1c2JfZGV2aWNlX2lkIHVzYl9kZXZfdGVtcFtdPQorCQkJe3tVU0JfREVWSUNFKHZlbmRvciwgcHJvZHVjdCksCisJCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJnBhbG1fb3NfNF9wcm9iZSB9fTsKKworCQkvKiBGaW5kIHRoZSBsYXN0IGVudHJ5IGluIGlkX3RhYmxlICovCisJCWZvciAoaT0wOyA7IGkrKykgeworCQkJaWYgKGlkX3RhYmxlW2ldLmlkVmVuZG9yPT0wKSB7CisJCQkJaWRfdGFibGVbaV0gPSB1c2JfZGV2X3RlbXBbMF07CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwkJLyogRmluZCB0aGUgbGFzdCBlbnRyeSBpbiBpZF90YWJsZV9jb21iaW5lZCAqLworCQlmb3IgKGk9MDsgOyBpKyspIHsKKwkJCWlmIChpZF90YWJsZV9jb21iaW5lZFtpXS5pZFZlbmRvcj09MCkgeworCQkJCWlkX3RhYmxlX2NvbWJpbmVkW2ldID0gdXNiX2Rldl90ZW1wWzBdOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJCWluZm8oIlVudGVzdGVkIFVTQiBkZXZpY2Ugc3BlY2lmaWVkIGF0IHRpbWUgb2YgbW9kdWxlIGluc2VydGlvbiIpOworCQlpbmZvKCJXYXJuaW5nOiBUaGlzIGlzIG5vdCBndWFyYW50ZWVkIHRvIHdvcmsiKTsKKwkJaW5mbygiVXNpbmcgYSBuZXdlciBrZXJuZWwgaXMgcHJlZmVycmVkIHRvIHRoaXMgbWV0aG9kIik7CisJCWluZm8oIkFkZGluZyBQYWxtIE9TIHByb3RvY29sIDQueCBzdXBwb3J0IGZvciB1bmtub3duIGRldmljZTogMHgleC8weCV4IiwKKwkJCXZlbmRvciwgcHJvZHVjdCk7CisJfQorCXJldHZhbCA9IHVzYl9zZXJpYWxfcmVnaXN0ZXIoJmhhbmRzcHJpbmdfZGV2aWNlKTsKKwlpZiAocmV0dmFsKQorCQlnb3RvIGZhaWxlZF9oYW5kc3ByaW5nX3JlZ2lzdGVyOworCXJldHZhbCA9IHVzYl9zZXJpYWxfcmVnaXN0ZXIoJmNsaWVfM181X2RldmljZSk7CisJaWYgKHJldHZhbCkKKwkJZ290byBmYWlsZWRfY2xpZV8zXzVfcmVnaXN0ZXI7CisJcmV0dmFsID0gdXNiX3NlcmlhbF9yZWdpc3RlcigmY2xpZV81X2RldmljZSk7CisJaWYgKHJldHZhbCkKKwkJZ290byBmYWlsZWRfY2xpZV81X3JlZ2lzdGVyOworCXJldHZhbCA9IHVzYl9yZWdpc3Rlcigmdmlzb3JfZHJpdmVyKTsKKwlpZiAocmV0dmFsKSAKKwkJZ290byBmYWlsZWRfdXNiX3JlZ2lzdGVyOworCWluZm8oRFJJVkVSX0RFU0MgIiAiIERSSVZFUl9WRVJTSU9OKTsKKworCXJldHVybiAwOworZmFpbGVkX3VzYl9yZWdpc3RlcjoKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIoJmNsaWVfNV9kZXZpY2UpOworZmFpbGVkX2NsaWVfNV9yZWdpc3RlcjoKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIoJmNsaWVfM181X2RldmljZSk7CitmYWlsZWRfY2xpZV8zXzVfcmVnaXN0ZXI6CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyKCZoYW5kc3ByaW5nX2RldmljZSk7CitmYWlsZWRfaGFuZHNwcmluZ19yZWdpc3RlcjoKKwlyZXR1cm4gcmV0dmFsOworfQorCisKK3N0YXRpYyB2b2lkIF9fZXhpdCB2aXNvcl9leGl0ICh2b2lkKQoreworCXVzYl9kZXJlZ2lzdGVyICgmdmlzb3JfZHJpdmVyKTsKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIgKCZoYW5kc3ByaW5nX2RldmljZSk7CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyICgmY2xpZV8zXzVfZGV2aWNlKTsKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIgKCZjbGllXzVfZGV2aWNlKTsKK30KKworCittb2R1bGVfaW5pdCh2aXNvcl9pbml0KTsKK21vZHVsZV9leGl0KHZpc29yX2V4aXQpOworCitNT0RVTEVfQVVUSE9SKCBEUklWRVJfQVVUSE9SICk7CitNT0RVTEVfREVTQ1JJUFRJT04oIERSSVZFUl9ERVNDICk7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CisKK21vZHVsZV9wYXJhbShkZWJ1ZywgYm9vbCwgU19JUlVHTyB8IFNfSVdVU1IpOworTU9EVUxFX1BBUk1fREVTQyhkZWJ1ZywgIkRlYnVnIGVuYWJsZWQgb3Igbm90Iik7Cittb2R1bGVfcGFyYW0oc3RhdHMsIGJvb2wsIFNfSVJVR08gfCBTX0lXVVNSKTsKK01PRFVMRV9QQVJNX0RFU0Moc3RhdHMsICJFbmFibGVzIHN0YXRpc3RpY3Mgb3Igbm90Iik7CisKK21vZHVsZV9wYXJhbSh2ZW5kb3IsIHVzaG9ydCwgMCk7CitNT0RVTEVfUEFSTV9ERVNDKHZlbmRvciwgIlVzZXIgc3BlY2lmaWVkIHZlbmRvciBJRCIpOworbW9kdWxlX3BhcmFtKHByb2R1Y3QsIHVzaG9ydCwgMCk7CitNT0RVTEVfUEFSTV9ERVNDKHByb2R1Y3QsICJVc2VyIHNwZWNpZmllZCBwcm9kdWN0IElEIik7CisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC92aXNvci5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL3Zpc29yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTJmYTJjNgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC92aXNvci5oCkBAIC0wLDAgKzEsMTUxIEBACisvKgorICogVVNCIEhhbmRTcHJpbmcgVmlzb3IgZHJpdmVyCisgKgorICoJQ29weXJpZ2h0IChDKSAxOTk5IC0gMjAwMworICoJICAgIEdyZWcgS3JvYWgtSGFydG1hbiAoZ3JlZ0Brcm9haC5jb20pCisgKgorICoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqCWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKgl0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICoJKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBTZWUgRG9jdW1lbnRhdGlvbi91c2IvdXNiLXNlcmlhbC50eHQgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdXNpbmcgdGhpcyBkcml2ZXIKKyAqIAorICovCisKKyNpZm5kZWYgX19MSU5VWF9VU0JfU0VSSUFMX1ZJU09SX0gKKyNkZWZpbmUgX19MSU5VWF9VU0JfU0VSSUFMX1ZJU09SX0gKKworCisjZGVmaW5lIEhBTkRTUFJJTkdfVkVORE9SX0lECQkweDA4MmQKKyNkZWZpbmUgSEFORFNQUklOR19WSVNPUl9JRAkJMHgwMTAwCisjZGVmaW5lIEhBTkRTUFJJTkdfVFJFT19JRAkJMHgwMjAwCisjZGVmaW5lIEhBTkRTUFJJTkdfVFJFTzYwMF9JRAkJMHgwMzAwCisKKyNkZWZpbmUgUEFMTV9WRU5ET1JfSUQJCQkweDA4MzAKKyNkZWZpbmUgUEFMTV9NNTAwX0lECQkJMHgwMDAxCisjZGVmaW5lIFBBTE1fTTUwNV9JRAkJCTB4MDAwMgorI2RlZmluZSBQQUxNX001MTVfSUQJCQkweDAwMDMKKyNkZWZpbmUgUEFMTV9JNzA1X0lECQkJMHgwMDIwCisjZGVmaW5lIFBBTE1fTTEyNV9JRAkJCTB4MDA0MAorI2RlZmluZSBQQUxNX00xMzBfSUQJCQkweDAwNTAKKyNkZWZpbmUgUEFMTV9UVU5HU1RFTl9UX0lECQkweDAwNjAKKyNkZWZpbmUgUEFMTV9UVU5HU1RFTl9aX0lECQkweDAwMzEKKyNkZWZpbmUgUEFMTV9aSVJFMzFfSUQJCQkweDAwNjEKKyNkZWZpbmUgUEFMTV9aSVJFX0lECQkJMHgwMDcwCisjZGVmaW5lIFBBTE1fTTEwMF9JRAkJCTB4MDA4MAorCisjZGVmaW5lIFNPTllfVkVORE9SX0lECQkJMHgwNTRDCisjZGVmaW5lIFNPTllfQ0xJRV8zXzVfSUQJCTB4MDAzOAorI2RlZmluZSBTT05ZX0NMSUVfNF8wX0lECQkweDAwNjYKKyNkZWZpbmUgU09OWV9DTElFX1MzNjBfSUQJCTB4MDA5NQorI2RlZmluZSBTT05ZX0NMSUVfNF8xX0lECQkweDAwOUEKKyNkZWZpbmUgU09OWV9DTElFX05YNjBfSUQJCTB4MDBEQQorI2RlZmluZSBTT05ZX0NMSUVfTlo5MFZfSUQJCTB4MDBFOQorI2RlZmluZSBTT05ZX0NMSUVfVVg1MF9JRAkJMHgwMTQ0CisjZGVmaW5lIFNPTllfQ0xJRV9USjI1X0lECQkweDAxNjkKKworI2RlZmluZSBTQU1TVU5HX1ZFTkRPUl9JRAkJMHgwNEU4CisjZGVmaW5lIFNBTVNVTkdfU0NIX0kzMzBfSUQJCTB4ODAwMQorI2RlZmluZSBTQU1TVU5HX1NQSF9JNTAwX0lECQkweDY2MDEKKworI2RlZmluZSBHQVJNSU5fVkVORE9SX0lECQkweDA5MUUKKyNkZWZpbmUgR0FSTUlOX0lRVUVfMzYwMF9JRAkJMHgwMDA0CisKKyNkZWZpbmUgQUNFRUNBX1ZFTkRPUl9JRAkJMHg0NzY2CisjZGVmaW5lIEFDRUVDQV9NRVoxMDAwX0lECQkweDAwMDEKKworI2RlZmluZSBLWU9DRVJBX1ZFTkRPUl9JRAkJMHgwQzg4CisjZGVmaW5lIEtZT0NFUkFfNzEzNV9JRAkJCTB4MDAyMSAKKworI2RlZmluZSBGT1NTSUxfVkVORE9SX0lECQkweDBFNjcKKyNkZWZpbmUgRk9TU0lMX0FCQUNVU19JRAkJMHgwMDAyCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBIYW5kc3ByaW5nIFZpc29yIFZlbmRvciBzcGVjaWZpYyByZXF1ZXN0IGNvZGVzIChiUmVxdWVzdCB2YWx1ZXMpCisgKiBBIGJpZyB0aGFuayB5b3UgdG8gSGFuZHNwcmluZyBmb3IgcHJvdmlkaW5nIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb24uCisgKiBJZiBhbnlvbmUgd2FudHMgdGhlIG9yaWdpbmFsIGZpbGUgd2hlcmUgdGhlc2UgdmFsdWVzIGFuZCBzdHJ1Y3R1cmVzIGNhbWUKKyAqIGZyb20sIHNlbmQgZW1haWwgdG8gPGdyZWdAa3JvYWguY29tPi4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVklTT1JfUkVRVUVTVF9CWVRFU19BVkFJTEFCTEUgYXNrcyB0aGUgdmlzb3IgZm9yIHRoZSBudW1iZXIgb2YgYnl0ZXMgdGhhdAorICogYXJlIGF2YWlsYWJsZSB0byBiZSB0cmFuc2ZlcnJlZCB0byB0aGUgaG9zdCBmb3IgdGhlIHNwZWNpZmllZCBlbmRwb2ludC4KKyAqIEN1cnJlbnRseSB0aGlzIGlzIG5vdCB1c2VkLCBhbmQgYWx3YXlzIHJldHVybnMgMHgwMDAxCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgVklTT1JfUkVRVUVTVF9CWVRFU19BVkFJTEFCTEUJCTB4MDEKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFZJU09SX0NMT1NFX05PVElGSUNBVElPTiBpcyBzZXQgdG8gdGhlIGRldmljZSB0byBub3RpZnkgaXQgdGhhdCB0aGUgaG9zdAorICogaXMgbm93IGNsb3NpbmcgdGhlIHBpcGUuIEFuIGVtcHR5IHBhY2tldCBpcyBzZW50IGluIHJlc3BvbnNlLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIFZJU09SX0NMT1NFX05PVElGSUNBVElPTgkJMHgwMgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVklTT1JfR0VUX0NPTk5FQ1RJT05fSU5GT1JNQVRJT04gaXMgc2VudCBieSB0aGUgaG9zdCBkdXJpbmcgZW51bWVyYXRpb24gdG8KKyAqIGdldCB0aGUgZW5kcG9pbnRzIHVzZWQgYnkgdGhlIGNvbm5lY3Rpb24uCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgVklTT1JfR0VUX0NPTk5FQ1RJT05fSU5GT1JNQVRJT04JMHgwMworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBWSVNPUl9HRVRfQ09OTkVDVElPTl9JTkZPUk1BVElPTiByZXR1cm5zIGRhdGEgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RydWN0IHZpc29yX2Nvbm5lY3Rpb25faW5mbyB7CisJX19sZTE2CW51bV9wb3J0czsKKwlzdHJ1Y3QgeworCQlfX3U4CXBvcnRfZnVuY3Rpb25faWQ7CisJCV9fdTgJcG9ydDsKKwl9IGNvbm5lY3Rpb25zWzJdOworfTsKKworCisvKiBzdHJ1Y3Qgdmlzb3JfY29ubmVjdGlvbl9pbmZvLmNvbm5lY3Rpb25beF0ucG9ydCBkZWZpbmVzOiAqLworI2RlZmluZSBWSVNPUl9FTkRQT0lOVF8xCQkweDAxCisjZGVmaW5lIFZJU09SX0VORFBPSU5UXzIJCTB4MDIKKworLyogc3RydWN0IHZpc29yX2Nvbm5lY3Rpb25faW5mby5jb25uZWN0aW9uW3hdLnBvcnRfZnVuY3Rpb25faWQgZGVmaW5lczogKi8KKyNkZWZpbmUgVklTT1JfRlVOQ1RJT05fR0VORVJJQwkJMHgwMAorI2RlZmluZSBWSVNPUl9GVU5DVElPTl9ERUJVR0dFUgkJMHgwMQorI2RlZmluZSBWSVNPUl9GVU5DVElPTl9IT1RTWU5DCQkweDAyCisjZGVmaW5lIFZJU09SX0ZVTkNUSU9OX0NPTlNPTEUJCTB4MDMKKyNkZWZpbmUgVklTT1JfRlVOQ1RJT05fUkVNT1RFX0ZJTEVfU1lTCTB4MDQKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogUEFMTV9HRVRfU09NRV9VTktOT1dOX0lORk9STUFUSU9OIGlzIHNlbnQgYnkgdGhlIGhvc3QgZHVyaW5nIGVudW1lcmF0aW9uIHRvCisgKiBnZXQgc29tZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBNIHNlcmllcyBkZXZpY2VzLCB0aGF0IGlzIGN1cnJlbnRseSB1bmtub3duLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIFBBTE1fR0VUX0VYVF9DT05ORUNUSU9OX0lORk9STUFUSU9OCTB4MDQKKworLyoqCisgKiBzdHJ1Y3QgcGFsbV9leHRfY29ubmVjdGlvbl9pbmZvIC0gcmV0dXJuIGRhdGEgZnJvbSBhIFBBTE1fR0VUX0VYVF9DT05ORUNUSU9OX0lORk9STUFUSU9OIHJlcXVlc3QKKyAqIEBudW1fcG9ydHM6IG1heGltdW0gbnVtYmVyIG9mIGZ1bmN0aW9ucy9jb25uZWN0aW9ucyBpbiB1c2UKKyAqIEBlbmRwb2ludF9udW1iZXJzX2RpZmZlcmVudDogd2lsbCBiZSAxIGlmIGluIGFuZCBvdXQgZW5kcG9pbnRzIG51bWJlcnMgYXJlCisgKglkaWZmZXJlbnQsIG90aGVyd2lzZSBpdCBpcyAwLiAgSWYgdmFsdWUgaXMgMSwgdGhlbgorICoJY29ubmVjdGlvbnMuZW5kX3BvaW50X2luZm8gaXMgbm9uLXplcm8uICBJZiB2YWx1ZSBpcyAwLCB0aGVuCisgKgljb25uZWN0aW9ucy5wb3J0IGNvbnRhaW5zIHRoZSBlbmRwb2ludCBudW1iZXIsIHdoaWNoIGlzIHRoZSBzYW1lIGZvciBpbgorICoJYW5kIG91dC4KKyAqIEBwb3J0X2Z1bmN0aW9uX2lkOiBjb250YWlucyB0aGUgY3JlYXRvciBpZCBvZiB0aGUgYXBwbGljYXRvbiB0aGF0IG9wZW5lZAorICoJdGhpcyBjb25uZWN0aW9uLgorICogQHBvcnQ6IGNvbnRhaW5zIHRoZSBpbi9vdXQgZW5kcG9pbnQgbnVtYmVyLiAgSXMgMCBpZiBpbiBhbmQgb3V0IGVuZHBvaW50CisgKgludW1iZXJzIGFyZSBkaWZmZXJlbnQuCisgKiBAZW5kX3BvaW50X2luZm86IGhpZ2ggbnViYmUgaXMgaW4gZW5kcG9pbnQgYW5kIGxvdyBuaWJibGUgd2lsbCBpbmRpY2F0ZSBvdXQKKyAqCWVuZHBvaW50LiAgSXMgMCBpZiBpbiBhbmQgb3V0IGVuZHBvaW50cyBhcmUgdGhlIHNhbWUuCisgKgorICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbm5lY3Rpb25zIGN1cnJlbnRseSBzdXBwb3J0ZWQgaXMgMgorICovCitzdHJ1Y3QgcGFsbV9leHRfY29ubmVjdGlvbl9pbmZvIHsKKwlfX3U4IG51bV9wb3J0czsJCQorCV9fdTggZW5kcG9pbnRfbnVtYmVyc19kaWZmZXJlbnQ7CisJX19sZTE2IHJlc2VydmVkMTsKKwlzdHJ1Y3QgeworCQlfX3UzMiBwb3J0X2Z1bmN0aW9uX2lkOworCQlfX3U4IHBvcnQ7CisJCV9fdTggZW5kX3BvaW50X2luZm87CisJCV9fbGUxNiByZXNlcnZlZDsKKwl9IGNvbm5lY3Rpb25zWzJdOworfTsKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC93aGl0ZWhlYXQuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC93aGl0ZWhlYXQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjNiYzMwCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL3doaXRlaGVhdC5jCkBAIC0wLDAgKzEsMTUxMiBAQAorLyoKKyAqIFVTQiBDb25uZWN0VGVjaCBXaGl0ZUhFQVQgZHJpdmVyCisgKgorICoJQ29weXJpZ2h0IChDKSAyMDAyCisgKgkgICAgQ29ubmVjdCBUZWNoIEluYy4KKyAqCisgKglDb3B5cmlnaHQgKEMpIDE5OTkgLSAyMDAxCisgKgkgICAgR3JlZyBLcm9haC1IYXJ0bWFuIChncmVnQGtyb2FoLmNvbSkKKyAqCisgKglUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICoJaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqCXRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKgkoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFNlZSBEb2N1bWVudGF0aW9uL3VzYi91c2Itc2VyaWFsLnR4dCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB1c2luZyB0aGlzIGRyaXZlcgorICoKKyAqICgxMC8wOS8yMDAyKSBTdHVhcnQgTWFjRG9uYWxkIChzdHVhcnRtQGNvbm5lY3R0ZWNoLmNvbSkKKyAqCVVwZ3JhZGUgdG8gZnVsbCB3b3JraW5nIGRyaXZlcgorICoKKyAqICgwNS8zMC8yMDAxKSBna2gKKyAqCXN3aXRjaGVkIGZyb20gdXNpbmcgc3BpbmxvY2sgdG8gYSBzZW1hcGhvcmUsIHdoaWNoIGZpeGVzIGxvdHMgb2YgcHJvYmxlbXMuCisgKgorICogKDA0LzA4LzIwMDEpIGdiCisgKglJZGVudGlmeSB2ZXJzaW9uIG9uIG1vZHVsZSBsb2FkLgorICogCisgKiAyMDAxX01hcl8xOSBna2gKKyAqCUZpeGVkIE1PRF9JTkMgYW5kIE1PRF9ERUMgbG9naWMsIHRoZSBhYmlsaXR5IHRvIG9wZW4gYSBwb3J0IG1vcmUgCisgKgl0aGFuIG9uY2UsIGFuZCB0aGUgZ290IHRoZSBwcm9wZXIgdXNiX2RldmljZV9pZCB0YWJsZSBlbnRyaWVzIHNvCisgKgl0aGUgZHJpdmVyIHdvcmtzIGFnYWluLgorICoKKyAqICgxMS8wMS8yMDAwKSBBZGFtIEouIFJpY2h0ZXIKKyAqCXVzYl9kZXZpY2VfaWQgdGFibGUgc3VwcG9ydAorICogCisgKiAoMTAvMDUvMjAwMCkgZ2toCisgKglGaXhlZCBidWcgd2l0aCB1cmItPmRldiBub3QgYmVpbmcgc2V0IHByb3Blcmx5LCBub3cgdGhhdCB0aGUgdXNiCisgKgljb3JlIG5lZWRzIGl0LgorICogCisgKiAoMTAvMDMvMjAwMCkgc21kCisgKglmaXJtd2FyZSBpcyBpbXByb3ZlZCB0byBndWFyZCBhZ2FpbnN0IGNyYXAgc2VudCB0byBkZXZpY2UKKyAqCWZpcm13YXJlIG5vdyByZXBsaWVzIENNRF9GQUlMVVJFIG9uIGJhZCB0aGluZ3MKKyAqCXJlYWRfY2FsbGJhY2sgZml4IHlvdSBwcm92aWRlZCBmb3IgcHJpdmF0ZSBpbmZvIHN0cnVjdAorICoJY29tbWFuZF9maW5pc2hlZCBub3cgaW5kaWNhdGVzIHN1Y2Nlc3Mgb3IgZmFpbAorICoJc2V0dXBfcG9ydCBzdHJ1Y3Qgbm93IHBhY2tlZCB0byBhdm9pZCBnY2MgcGFkZGluZworICoJZmlybXdhcmUgdXNlcyAxIGJhc2VkIHBvcnQgbnVtYmVyaW5nLCBkcml2ZXIgbm93IGhhbmRsZXMgdGhhdAorICoKKyAqICgwOS8xMS8yMDAwKSBna2gKKyAqCVJlbW92ZWQgREVCVUcgI2lmZGVmcyB3aXRoIGNhbGwgdG8gdXNiX3NlcmlhbF9kZWJ1Z19kYXRhCisgKgorICogKDA3LzE5LzIwMDApIGdraAorICoJQWRkZWQgbW9kdWxlX2luaXQgYW5kIG1vZHVsZV9leGl0IGZ1bmN0aW9ucyB0byBoYW5kbGUgdGhlIGZhY3QgdGhhdCB0aGlzCisgKglkcml2ZXIgaXMgYSBsb2FkYWJsZSBtb2R1bGUgbm93LgorICoJRml4ZWQgYnVnIHdpdGggcG9ydC0+bWlub3IgdGhhdCB3YXMgZm91bmQgYnkgQWwgQm9yY2hlcnMKKyAqCisgKiAoMDcvMDQvMjAwMCkgZ2toCisgKglBZGRlZCBzdXBwb3J0IGZvciBwb3J0IHNldHRpbmdzLiBCYXVkIHJhdGUgY2FuIG5vdyBiZSBjaGFuZ2VkLiBMaW5lIHNpZ25hbHMKKyAqCWFyZSBub3QgdHJhbnNmZXJyZWQgdG8gYW5kIGZyb20gdGhlIHR0eSBsYXllciB5ZXQsIGJ1dCB0aGluZ3Mgc2VlbSB0byBiZSAKKyAqCXdvcmtpbmcgd2VsbCBub3cuCisgKgorICogKDA1LzA0LzIwMDApIGdraAorICoJRmlyc3QgY3V0IGF0IG9wZW4gYW5kIGNsb3NlIGNvbW1hbmRzLiBEYXRhIGNhbiBmbG93IHRocm91Z2ggdGhlIHBvcnRzIGF0CisgKglkZWZhdWx0IHNwZWVkcyBub3cuCisgKgorICogKDAzLzI2LzIwMDApIGdraAorICoJU3BsaXQgZHJpdmVyIHVwIGludG8gZGV2aWNlIHNwZWNpZmljIHBpZWNlcy4KKyAqIAorICovCisKKyNpbmNsdWRlIDxsaW51eC9jb25maWcuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvdHR5Lmg+CisjaW5jbHVkZSA8bGludXgvdHR5X2RyaXZlci5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eV9mbGlwLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGFzbS90ZXJtYml0cy5oPgorI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9yZWcuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpYWwuaD4KKyNpbmNsdWRlICJ1c2Itc2VyaWFsLmgiCisjaW5jbHVkZSAid2hpdGVoZWF0X2Z3LmgiCQkvKiBmaXJtd2FyZSBmb3IgdGhlIENvbm5lY3RUZWNoIFdoaXRlSEVBVCBkZXZpY2UgKi8KKyNpbmNsdWRlICJ3aGl0ZWhlYXQuaCIJCQkvKiBXaGl0ZUhFQVQgc3BlY2lmaWMgY29tbWFuZHMgKi8KKworc3RhdGljIGludCBkZWJ1ZzsKKworI2lmbmRlZiBDTVNQQVIKKyNkZWZpbmUgQ01TUEFSIDAKKyNlbmRpZgorCisvKgorICogVmVyc2lvbiBJbmZvcm1hdGlvbgorICovCisjZGVmaW5lIERSSVZFUl9WRVJTSU9OICJ2Mi4wIgorI2RlZmluZSBEUklWRVJfQVVUSE9SICJHcmVnIEtyb2FoLUhhcnRtYW4gPGdyZWdAa3JvYWguY29tPiwgU3R1YXJ0IE1hY0RvbmFsZCA8c3R1YXJ0bUBjb25uZWN0dGVjaC5jb20+IgorI2RlZmluZSBEUklWRVJfREVTQyAiVVNCIENvbm5lY3RUZWNoIFdoaXRlSEVBVCBkcml2ZXIiCisKKyNkZWZpbmUgQ09OTkVDVF9URUNIX1ZFTkRPUl9JRAkJMHgwNzEwCisjZGVmaW5lIENPTk5FQ1RfVEVDSF9GQUtFX1dISVRFX0hFQVRfSUQJMHgwMDAxCisjZGVmaW5lIENPTk5FQ1RfVEVDSF9XSElURV9IRUFUX0lECTB4ODAwMQorCisvKgorICAgSUQgdGFibGVzIGZvciB3aGl0ZWhlYXQgYXJlIHVudXN1YWwsIGJlY2F1c2Ugd2Ugd2FudCB0byBkaWZmZXJlbnQKKyAgIHRoaW5ncyBmb3IgZGlmZmVyZW50IHZlcnNpb25zIG9mIHRoZSBkZXZpY2UuICBFdmVudHVhbGx5LCB0aGlzCisgICB3aWxsIGJlIGRvYWJsZSBmcm9tIGEgc2luZ2xlIHRhYmxlLiAgQnV0LCBmb3Igbm93LCB3ZSBkZWZpbmUgdHdvCisgICBzZXBhcmF0ZSBJRCB0YWJsZXMsIGFuZCB0aGVuIGEgdGhpcmQgdGFibGUgdGhhdCBjb21iaW5lcyB0aGVtCisgICBqdXN0IGZvciB0aGUgcHVycG9zZSBvZiBleHBvcnRpbmcgdGhlIGF1dG9sb2FkaW5nIGluZm9ybWF0aW9uLgorKi8KK3N0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90YWJsZV9zdGQgW10gPSB7CisJeyBVU0JfREVWSUNFKENPTk5FQ1RfVEVDSF9WRU5ET1JfSUQsIENPTk5FQ1RfVEVDSF9XSElURV9IRUFUX0lEKSB9LAorCXsgfQkJCQkJCS8qIFRlcm1pbmF0aW5nIGVudHJ5ICovCit9OworCitzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgaWRfdGFibGVfcHJlcmVudW1lcmF0aW9uIFtdID0geworCXsgVVNCX0RFVklDRShDT05ORUNUX1RFQ0hfVkVORE9SX0lELCBDT05ORUNUX1RFQ0hfRkFLRV9XSElURV9IRUFUX0lEKSB9LAorCXsgfQkJCQkJCS8qIFRlcm1pbmF0aW5nIGVudHJ5ICovCit9OworCitzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgaWRfdGFibGVfY29tYmluZWQgW10gPSB7CisJeyBVU0JfREVWSUNFKENPTk5FQ1RfVEVDSF9WRU5ET1JfSUQsIENPTk5FQ1RfVEVDSF9XSElURV9IRUFUX0lEKSB9LAorCXsgVVNCX0RFVklDRShDT05ORUNUX1RFQ0hfVkVORE9SX0lELCBDT05ORUNUX1RFQ0hfRkFLRV9XSElURV9IRUFUX0lEKSB9LAorCXsgfQkJCQkJCS8qIFRlcm1pbmF0aW5nIGVudHJ5ICovCit9OworCitNT0RVTEVfREVWSUNFX1RBQkxFICh1c2IsIGlkX3RhYmxlX2NvbWJpbmVkKTsKKworc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHdoaXRlaGVhdF9kcml2ZXIgPSB7CisJLm93bmVyID0JVEhJU19NT0RVTEUsCisJLm5hbWUgPQkJIndoaXRlaGVhdCIsCisJLnByb2JlID0JdXNiX3NlcmlhbF9wcm9iZSwKKwkuZGlzY29ubmVjdCA9CXVzYl9zZXJpYWxfZGlzY29ubmVjdCwKKwkuaWRfdGFibGUgPQlpZF90YWJsZV9jb21iaW5lZCwKK307CisKKy8qIGZ1bmN0aW9uIHByb3RvdHlwZXMgZm9yIHRoZSBDb25uZWN0IFRlY2ggV2hpdGVIRUFUIHByZXJlbnVtZXJhdGlvbiBkZXZpY2UgKi8KK3N0YXRpYyBpbnQgIHdoaXRlaGVhdF9maXJtd2FyZV9kb3dubG9hZAkoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKTsKK3N0YXRpYyBpbnQgIHdoaXRlaGVhdF9maXJtd2FyZV9hdHRhY2gJKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpOworCisvKiBmdW5jdGlvbiBwcm90b3R5cGVzIGZvciB0aGUgQ29ubmVjdCBUZWNoIFdoaXRlSEVBVCBzZXJpYWwgY29udmVydGVyICovCitzdGF0aWMgaW50ICB3aGl0ZWhlYXRfYXR0YWNoCQkoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCk7CitzdGF0aWMgdm9pZCB3aGl0ZWhlYXRfc2h1dGRvd24JCShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKTsKK3N0YXRpYyBpbnQgIHdoaXRlaGVhdF9vcGVuCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbHApOworc3RhdGljIHZvaWQgd2hpdGVoZWF0X2Nsb3NlCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbHApOworc3RhdGljIGludCAgd2hpdGVoZWF0X3dyaXRlCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpOworc3RhdGljIGludCAgd2hpdGVoZWF0X3dyaXRlX3Jvb20JKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworc3RhdGljIGludCAgd2hpdGVoZWF0X2lvY3RsCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKiBmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7CitzdGF0aWMgdm9pZCB3aGl0ZWhlYXRfc2V0X3Rlcm1pb3MJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCB0ZXJtaW9zICogb2xkKTsKK3N0YXRpYyBpbnQgIHdoaXRlaGVhdF90aW9jbWdldAkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxlKTsKK3N0YXRpYyBpbnQgIHdoaXRlaGVhdF90aW9jbXNldAkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgc2V0LCB1bnNpZ25lZCBpbnQgY2xlYXIpOworc3RhdGljIHZvaWQgd2hpdGVoZWF0X2JyZWFrX2N0bAkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIGludCBicmVha19zdGF0ZSk7CitzdGF0aWMgaW50ICB3aGl0ZWhlYXRfY2hhcnNfaW5fYnVmZmVyCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KTsKK3N0YXRpYyB2b2lkIHdoaXRlaGVhdF90aHJvdHRsZQkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworc3RhdGljIHZvaWQgd2hpdGVoZWF0X3VudGhyb3R0bGUJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworc3RhdGljIHZvaWQgd2hpdGVoZWF0X3JlYWRfY2FsbGJhY2sJKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOworc3RhdGljIHZvaWQgd2hpdGVoZWF0X3dyaXRlX2NhbGxiYWNrCShzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKKworc3RhdGljIHN0cnVjdCB1c2Jfc2VyaWFsX2RldmljZV90eXBlIHdoaXRlaGVhdF9mYWtlX2RldmljZSA9IHsKKwkub3duZXIgPQkJVEhJU19NT0RVTEUsCisJLm5hbWUgPQkJCSJDb25uZWN0IFRlY2ggLSBXaGl0ZUhFQVQgLSAocHJlcmVudW1lcmF0aW9uKSIsCisJLnNob3J0X25hbWUgPQkJIndoaXRlaGVhdG5vZmlybSIsCisJLmlkX3RhYmxlID0JCWlkX3RhYmxlX3ByZXJlbnVtZXJhdGlvbiwKKwkubnVtX2ludGVycnVwdF9pbiA9CU5VTV9ET05UX0NBUkUsCisJLm51bV9idWxrX2luID0JCU5VTV9ET05UX0NBUkUsCisJLm51bV9idWxrX291dCA9CQlOVU1fRE9OVF9DQVJFLAorCS5udW1fcG9ydHMgPQkJMSwKKwkucHJvYmUgPQkJd2hpdGVoZWF0X2Zpcm13YXJlX2Rvd25sb2FkLAorCS5hdHRhY2ggPQkJd2hpdGVoZWF0X2Zpcm13YXJlX2F0dGFjaCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kZXZpY2VfdHlwZSB3aGl0ZWhlYXRfZGV2aWNlID0geworCS5vd25lciA9CQlUSElTX01PRFVMRSwKKwkubmFtZSA9CQkJIkNvbm5lY3QgVGVjaCAtIFdoaXRlSEVBVCIsCisJLnNob3J0X25hbWUgPQkJIndoaXRlaGVhdCIsCisJLmlkX3RhYmxlID0JCWlkX3RhYmxlX3N0ZCwKKwkubnVtX2ludGVycnVwdF9pbiA9CU5VTV9ET05UX0NBUkUsCisJLm51bV9idWxrX2luID0JCU5VTV9ET05UX0NBUkUsCisJLm51bV9idWxrX291dCA9CQlOVU1fRE9OVF9DQVJFLAorCS5udW1fcG9ydHMgPQkJNCwKKwkuYXR0YWNoID0JCXdoaXRlaGVhdF9hdHRhY2gsCisJLnNodXRkb3duID0JCXdoaXRlaGVhdF9zaHV0ZG93biwKKwkub3BlbiA9CQkJd2hpdGVoZWF0X29wZW4sCisJLmNsb3NlID0JCXdoaXRlaGVhdF9jbG9zZSwKKwkud3JpdGUgPQkJd2hpdGVoZWF0X3dyaXRlLAorCS53cml0ZV9yb29tID0JCXdoaXRlaGVhdF93cml0ZV9yb29tLAorCS5pb2N0bCA9CQl3aGl0ZWhlYXRfaW9jdGwsCisJLnNldF90ZXJtaW9zID0JCXdoaXRlaGVhdF9zZXRfdGVybWlvcywKKwkuYnJlYWtfY3RsID0JCXdoaXRlaGVhdF9icmVha19jdGwsCisJLnRpb2NtZ2V0ID0JCXdoaXRlaGVhdF90aW9jbWdldCwKKwkudGlvY21zZXQgPQkJd2hpdGVoZWF0X3Rpb2Ntc2V0LAorCS5jaGFyc19pbl9idWZmZXIgPQl3aGl0ZWhlYXRfY2hhcnNfaW5fYnVmZmVyLAorCS50aHJvdHRsZSA9CQl3aGl0ZWhlYXRfdGhyb3R0bGUsCisJLnVudGhyb3R0bGUgPQkJd2hpdGVoZWF0X3VudGhyb3R0bGUsCisJLnJlYWRfYnVsa19jYWxsYmFjayA9CXdoaXRlaGVhdF9yZWFkX2NhbGxiYWNrLAorCS53cml0ZV9idWxrX2NhbGxiYWNrID0Jd2hpdGVoZWF0X3dyaXRlX2NhbGxiYWNrLAorfTsKKworCitzdHJ1Y3Qgd2hpdGVoZWF0X2NvbW1hbmRfcHJpdmF0ZSB7CisJc3BpbmxvY2tfdAkJbG9jazsKKwlfX3U4CQkJcG9ydF9ydW5uaW5nOworCV9fdTgJCQljb21tYW5kX2ZpbmlzaGVkOworCXdhaXRfcXVldWVfaGVhZF90CXdhaXRfY29tbWFuZDsJLyogZm9yIGhhbmRsaW5nIHNsZWVwaW5nIHdoaWxlIHdhaXRpbmcgZm9yIGEgY29tbWFuZCB0byBmaW5pc2ggKi8KKwlfX3U4CQkJcmVzdWx0X2J1ZmZlcls2NF07Cit9OworCisKKyNkZWZpbmUgVEhST1RUTEVECQkweDAxCisjZGVmaW5lIEFDVFVBTExZX1RIUk9UVExFRAkweDAyCisKK3N0YXRpYyBpbnQgdXJiX3Bvb2xfc2l6ZSA9IDg7CisKK3N0cnVjdCB3aGl0ZWhlYXRfdXJiX3dyYXAgeworCXN0cnVjdCBsaXN0X2hlYWQJbGlzdDsKKwlzdHJ1Y3QgdXJiCQkqdXJiOworfTsKKworc3RydWN0IHdoaXRlaGVhdF9wcml2YXRlIHsKKwlzcGlubG9ja190CQlsb2NrOworCV9fdTgJCQlmbGFnczsKKwlfX3U4CQkJbWNyOworCXN0cnVjdCBsaXN0X2hlYWQJcnhfdXJic19mcmVlOworCXN0cnVjdCBsaXN0X2hlYWQJcnhfdXJic19zdWJtaXR0ZWQ7CisJc3RydWN0IGxpc3RfaGVhZAlyeF91cmJfcTsKKwlzdHJ1Y3Qgd29ya19zdHJ1Y3QJcnhfd29yazsKKwlzdHJ1Y3QgbGlzdF9oZWFkCXR4X3VyYnNfZnJlZTsKKwlzdHJ1Y3QgbGlzdF9oZWFkCXR4X3VyYnNfc3VibWl0dGVkOworfTsKKworCisvKiBsb2NhbCBmdW5jdGlvbiBwcm90b3R5cGVzICovCitzdGF0aWMgaW50IHN0YXJ0X2NvbW1hbmRfcG9ydChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKTsKK3N0YXRpYyB2b2lkIHN0b3BfY29tbWFuZF9wb3J0KHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpOworc3RhdGljIHZvaWQgY29tbWFuZF9wb3J0X3dyaXRlX2NhbGxiYWNrKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOworc3RhdGljIHZvaWQgY29tbWFuZF9wb3J0X3JlYWRfY2FsbGJhY2soc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CisKK3N0YXRpYyBpbnQgc3RhcnRfcG9ydF9yZWFkKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworc3RhdGljIHN0cnVjdCB3aGl0ZWhlYXRfdXJiX3dyYXAgKnVyYl90b193cmFwKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCk7CitzdGF0aWMgc3RydWN0IGxpc3RfaGVhZCAqbGlzdF9maXJzdChzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKTsKK3N0YXRpYyB2b2lkIHJ4X2RhdGFfc29mdGludCh2b2lkICpwcml2YXRlKTsKKworc3RhdGljIGludCBmaXJtX3NlbmRfY29tbWFuZChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBfX3U4IGNvbW1hbmQsIF9fdTggKmRhdGEsIF9fdTggZGF0YXNpemUpOworc3RhdGljIGludCBmaXJtX29wZW4oc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCk7CitzdGF0aWMgaW50IGZpcm1fY2xvc2Uoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCk7CitzdGF0aWMgaW50IGZpcm1fc2V0dXBfcG9ydChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KTsKK3N0YXRpYyBpbnQgZmlybV9zZXRfcnRzKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIF9fdTggb25vZmYpOworc3RhdGljIGludCBmaXJtX3NldF9kdHIoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgX191OCBvbm9mZik7CitzdGF0aWMgaW50IGZpcm1fc2V0X2JyZWFrKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIF9fdTggb25vZmYpOworc3RhdGljIGludCBmaXJtX3B1cmdlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIF9fdTggcnh0eCk7CitzdGF0aWMgaW50IGZpcm1fZ2V0X2R0cl9ydHMoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCk7CitzdGF0aWMgaW50IGZpcm1fcmVwb3J0X3R4X2RvbmUoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCk7CisKKworI2RlZmluZSBDT01NQU5EX1BPUlQJCTQKKyNkZWZpbmUgQ09NTUFORF9USU1FT1VUCQkoMipIWikJLyogMiBzZWNvbmQgdGltZW91dCBmb3IgYSBjb21tYW5kICovCisjZGVmaW5lCUNPTU1BTkRfVElNRU9VVF9NUwkyMDAwCisjZGVmaW5lIENMT1NJTkdfREVMQVkJCSgzMCAqIEhaKQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29ubmVjdCBUZWNoJ3MgV2hpdGUgSGVhdCBwcmVyZW51bWVyYXRpb24gZHJpdmVyIGZ1bmN0aW9ucworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBzdGVwcyB0byBkb3dubG9hZCB0aGUgZmlybXdhcmUgdG8gdGhlIFdoaXRlSEVBVCBkZXZpY2U6CisgLSBob2xkIHRoZSByZXNldCAoYnkgd3JpdGluZyB0byB0aGUgcmVzZXQgYml0IG9mIHRoZSBDUFVDUyByZWdpc3RlcikKKyAtIGRvd25sb2FkIHRoZSBWRU5EX0FYLkhFWCBmaWxlIHRvIHRoZSBjaGlwIHVzaW5nIFZFTkRPUl9SRVFVRVNULUFOQ0hPUl9MT0FECisgLSByZWxlYXNlIHRoZSByZXNldCAoYnkgd3JpdGluZyB0byB0aGUgQ1BVQ1MgcmVnaXN0ZXIpCisgLSBkb3dubG9hZCB0aGUgV0guSEVYIGZpbGUgZm9yIGFsbCBhZGRyZXNzZXMgZ3JlYXRlciB0aGFuIDB4MWIzZiB1c2luZworICAgVkVORE9SX1JFUVVFU1QtQU5DSE9SX0VYVEVSTkFMX1JBTV9MT0FECisgLSBob2xkIHRoZSByZXNldAorIC0gZG93bmxvYWQgdGhlIFdILkhFWCBmaWxlIGZvciBhbGwgYWRkcmVzc2VzIGxlc3MgdGhhbiAweDFiNDAgdXNpbmcKKyAgIFZFTkRPUl9SRVFVRVNUX0FOQ0hPUl9MT0FECisgLSByZWxlYXNlIHRoZSByZXNldAorIC0gZGV2aWNlIHJlbnVtZXJhdGVkIGl0c2VsZiBhbmQgY29tZXMgdXAgYXMgbmV3IGRldmljZSBpZCB3aXRoIGFsbAorICAgZmlybXdhcmUgZG93bmxvYWQgY29tcGxldGVkLgorKi8KK3N0YXRpYyBpbnQgd2hpdGVoZWF0X2Zpcm13YXJlX2Rvd25sb2FkIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLCBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpCit7CisJaW50IHJlc3BvbnNlOworCWNvbnN0IHN0cnVjdCB3aGl0ZWhlYXRfaGV4X3JlY29yZCAqcmVjb3JkOworCQorCWRiZygiJXMiLCBfX0ZVTkNUSU9OX18pOworCQorCXJlc3BvbnNlID0gZXp1c2Jfc2V0X3Jlc2V0IChzZXJpYWwsIDEpOworCisJcmVjb3JkID0gJndoaXRlaGVhdF9sb2FkZXJbMF07CisJd2hpbGUgKHJlY29yZC0+YWRkcmVzcyAhPSAweGZmZmYpIHsKKwkJcmVzcG9uc2UgPSBlenVzYl93cml0ZW1lbW9yeSAoc2VyaWFsLCByZWNvcmQtPmFkZHJlc3MsIAorCQkJCSh1bnNpZ25lZCBjaGFyICopcmVjb3JkLT5kYXRhLCByZWNvcmQtPmRhdGFfc2l6ZSwgMHhhMCk7CisJCWlmIChyZXNwb25zZSA8IDApIHsKKwkJCWVycigiJXMgLSBlenVzYl93cml0ZW1lbW9yeSBmYWlsZWQgZm9yIGxvYWRlciAoJWQgJTA0WCAlcCAlZCkiLAorCQkJCV9fRlVOQ1RJT05fXywgcmVzcG9uc2UsIHJlY29yZC0+YWRkcmVzcywgcmVjb3JkLT5kYXRhLCByZWNvcmQtPmRhdGFfc2l6ZSk7CisJCQlicmVhazsKKwkJfQorCQkrK3JlY29yZDsKKwl9CisKKwlyZXNwb25zZSA9IGV6dXNiX3NldF9yZXNldCAoc2VyaWFsLCAwKTsKKworCXJlY29yZCA9ICZ3aGl0ZWhlYXRfZmlybXdhcmVbMF07CisJd2hpbGUgKHJlY29yZC0+YWRkcmVzcyA8IDB4MWI0MCkgeworCQkrK3JlY29yZDsKKwl9CisJd2hpbGUgKHJlY29yZC0+YWRkcmVzcyAhPSAweGZmZmYpIHsKKwkJcmVzcG9uc2UgPSBlenVzYl93cml0ZW1lbW9yeSAoc2VyaWFsLCByZWNvcmQtPmFkZHJlc3MsIAorCQkJCSh1bnNpZ25lZCBjaGFyICopcmVjb3JkLT5kYXRhLCByZWNvcmQtPmRhdGFfc2l6ZSwgMHhhMyk7CisJCWlmIChyZXNwb25zZSA8IDApIHsKKwkJCWVycigiJXMgLSBlenVzYl93cml0ZW1lbW9yeSBmYWlsZWQgZm9yIGZpcnN0IGZpcm13YXJlIHN0ZXAgKCVkICUwNFggJXAgJWQpIiwgCisJCQkJX19GVU5DVElPTl9fLCByZXNwb25zZSwgcmVjb3JkLT5hZGRyZXNzLCByZWNvcmQtPmRhdGEsIHJlY29yZC0+ZGF0YV9zaXplKTsKKwkJCWJyZWFrOworCQl9CisJCSsrcmVjb3JkOworCX0KKwkKKwlyZXNwb25zZSA9IGV6dXNiX3NldF9yZXNldCAoc2VyaWFsLCAxKTsKKworCXJlY29yZCA9ICZ3aGl0ZWhlYXRfZmlybXdhcmVbMF07CisJd2hpbGUgKHJlY29yZC0+YWRkcmVzcyA8IDB4MWI0MCkgeworCQlyZXNwb25zZSA9IGV6dXNiX3dyaXRlbWVtb3J5IChzZXJpYWwsIHJlY29yZC0+YWRkcmVzcywgCisJCQkJKHVuc2lnbmVkIGNoYXIgKilyZWNvcmQtPmRhdGEsIHJlY29yZC0+ZGF0YV9zaXplLCAweGEwKTsKKwkJaWYgKHJlc3BvbnNlIDwgMCkgeworCQkJZXJyKCIlcyAtIGV6dXNiX3dyaXRlbWVtb3J5IGZhaWxlZCBmb3Igc2Vjb25kIGZpcm13YXJlIHN0ZXAgKCVkICUwNFggJXAgJWQpIiwgCisJCQkJX19GVU5DVElPTl9fLCByZXNwb25zZSwgcmVjb3JkLT5hZGRyZXNzLCByZWNvcmQtPmRhdGEsIHJlY29yZC0+ZGF0YV9zaXplKTsKKwkJCWJyZWFrOworCQl9CisJCSsrcmVjb3JkOworCX0KKworCXJlc3BvbnNlID0gZXp1c2Jfc2V0X3Jlc2V0IChzZXJpYWwsIDApOworCisJcmV0dXJuIDA7Cit9CisKKworc3RhdGljIGludCB3aGl0ZWhlYXRfZmlybXdhcmVfYXR0YWNoIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQoreworCS8qIFdlIHdhbnQgdGhpcyBkZXZpY2UgdG8gZmFpbCB0byBoYXZlIGEgZHJpdmVyIGFzc2lnbmVkIHRvIGl0ICovCisJcmV0dXJuIDE7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb25uZWN0IFRlY2gncyBXaGl0ZSBIZWF0IHNlcmlhbCBkcml2ZXIgZnVuY3Rpb25zCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgaW50IHdoaXRlaGVhdF9hdHRhY2ggKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqY29tbWFuZF9wb3J0OworCXN0cnVjdCB3aGl0ZWhlYXRfY29tbWFuZF9wcml2YXRlICpjb21tYW5kX2luZm87CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydDsKKwlzdHJ1Y3Qgd2hpdGVoZWF0X3ByaXZhdGUgKmluZm87CisJc3RydWN0IHdoaXRlaGVhdF9od19pbmZvICpod19pbmZvOworCWludCBwaXBlOworCWludCByZXQ7CisJaW50IGFsZW47CisJX191OCAqY29tbWFuZDsKKwlfX3U4ICpyZXN1bHQ7CisJaW50IGk7CisJaW50IGo7CisJc3RydWN0IHVyYiAqdXJiOworCWludCBidWZfc2l6ZTsKKwlzdHJ1Y3Qgd2hpdGVoZWF0X3VyYl93cmFwICp3cmFwOworCXN0cnVjdCBsaXN0X2hlYWQgKnRtcDsKKworCWNvbW1hbmRfcG9ydCA9IHNlcmlhbC0+cG9ydFtDT01NQU5EX1BPUlRdOworCisJcGlwZSA9IHVzYl9zbmRidWxrcGlwZSAoc2VyaWFsLT5kZXYsIGNvbW1hbmRfcG9ydC0+YnVsa19vdXRfZW5kcG9pbnRBZGRyZXNzKTsKKwljb21tYW5kID0ga21hbGxvYygyLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWNvbW1hbmQpCisJCWdvdG8gbm9fY29tbWFuZF9idWZmZXI7CisJY29tbWFuZFswXSA9IFdISVRFSEVBVF9HRVRfSFdfSU5GTzsKKwljb21tYW5kWzFdID0gMDsKKwkKKwlyZXN1bHQgPSBrbWFsbG9jKHNpemVvZigqaHdfaW5mbykgKyAxLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXJlc3VsdCkKKwkJZ290byBub19yZXN1bHRfYnVmZmVyOworCS8qCisJICogV2hlbiB0aGUgbW9kdWxlIGlzIHJlbG9hZGVkIHRoZSBmaXJtd2FyZSBpcyBzdGlsbCB0aGVyZSBhbmQKKwkgKiB0aGUgZW5kcG9pbnRzIGFyZSBzdGlsbCBpbiB0aGUgdXNiIGNvcmUgdW5jaGFuZ2VkLiBUaGlzIGlzIHRoZQorICAgICAgICAgKiB1bmxpbmtpbmcgYnVnIGluIGRpc2d1aXNlLiBTYW1lIGZvciB0aGUgY2FsbCBiZWxvdy4KKyAgICAgICAgICovCisJdXNiX2NsZWFyX2hhbHQoc2VyaWFsLT5kZXYsIHBpcGUpOworCXJldCA9IHVzYl9idWxrX21zZyAoc2VyaWFsLT5kZXYsIHBpcGUsIGNvbW1hbmQsIDIsICZhbGVuLCBDT01NQU5EX1RJTUVPVVRfTVMpOworCWlmIChyZXQpIHsKKwkJZXJyKCIlczogQ291bGRuJ3Qgc2VuZCBjb21tYW5kIFslZF0iLCBzZXJpYWwtPnR5cGUtPm5hbWUsIHJldCk7CisJCWdvdG8gbm9fZmlybXdhcmU7CisJfSBlbHNlIGlmIChhbGVuICE9IHNpemVvZihjb21tYW5kKSkgeworCQllcnIoIiVzOiBTZW5kIGNvbW1hbmQgaW5jb21wbGV0ZSBbJWRdIiwgc2VyaWFsLT50eXBlLT5uYW1lLCBhbGVuKTsKKwkJZ290byBub19maXJtd2FyZTsKKwl9CisKKwlwaXBlID0gdXNiX3JjdmJ1bGtwaXBlIChzZXJpYWwtPmRldiwgY29tbWFuZF9wb3J0LT5idWxrX2luX2VuZHBvaW50QWRkcmVzcyk7CisJLyogU2VlIHRoZSBjb21tZW50IG9uIHRoZSB1c2JfY2xlYXJfaGFsdCgpIGFib3ZlICovCisJdXNiX2NsZWFyX2hhbHQoc2VyaWFsLT5kZXYsIHBpcGUpOworCXJldCA9IHVzYl9idWxrX21zZyAoc2VyaWFsLT5kZXYsIHBpcGUsIHJlc3VsdCwgc2l6ZW9mKCpod19pbmZvKSArIDEsICZhbGVuLCBDT01NQU5EX1RJTUVPVVRfTVMpOworCWlmIChyZXQpIHsKKwkJZXJyKCIlczogQ291bGRuJ3QgZ2V0IHJlc3VsdHMgWyVkXSIsIHNlcmlhbC0+dHlwZS0+bmFtZSwgcmV0KTsKKwkJZ290byBub19maXJtd2FyZTsKKwl9IGVsc2UgaWYgKGFsZW4gIT0gc2l6ZW9mKHJlc3VsdCkpIHsKKwkJZXJyKCIlczogR2V0IHJlc3VsdHMgaW5jb21wbGV0ZSBbJWRdIiwgc2VyaWFsLT50eXBlLT5uYW1lLCBhbGVuKTsKKwkJZ290byBub19maXJtd2FyZTsKKwl9IGVsc2UgaWYgKHJlc3VsdFswXSAhPSBjb21tYW5kWzBdKSB7CisJCWVycigiJXM6IENvbW1hbmQgZmFpbGVkIFslZF0iLCBzZXJpYWwtPnR5cGUtPm5hbWUsIHJlc3VsdFswXSk7CisJCWdvdG8gbm9fZmlybXdhcmU7CisJfQorCisJaHdfaW5mbyA9IChzdHJ1Y3Qgd2hpdGVoZWF0X2h3X2luZm8gKikmcmVzdWx0WzFdOworCisJaW5mbygiJXM6IERyaXZlciAlczogRmlybXdhcmUgdiVkLiUwMmQiLCBzZXJpYWwtPnR5cGUtPm5hbWUsCisJICAgICBEUklWRVJfVkVSU0lPTiwgaHdfaW5mby0+c3dfbWFqb3JfcmV2LCBod19pbmZvLT5zd19taW5vcl9yZXYpOworCisJZm9yIChpID0gMDsgaSA8IHNlcmlhbC0+bnVtX3BvcnRzOyBpKyspIHsKKwkJcG9ydCA9IHNlcmlhbC0+cG9ydFtpXTsKKworCQlpbmZvID0gKHN0cnVjdCB3aGl0ZWhlYXRfcHJpdmF0ZSAqKWttYWxsb2Moc2l6ZW9mKHN0cnVjdCB3aGl0ZWhlYXRfcHJpdmF0ZSksIEdGUF9LRVJORUwpOworCQlpZiAoaW5mbyA9PSBOVUxMKSB7CisJCQllcnIoIiVzOiBPdXQgb2YgbWVtb3J5IGZvciBwb3J0IHN0cnVjdHVyZXNcbiIsIHNlcmlhbC0+dHlwZS0+bmFtZSk7CisJCQlnb3RvIG5vX3ByaXZhdGU7CisJCX0KKworCQlzcGluX2xvY2tfaW5pdCgmaW5mby0+bG9jayk7CisJCWluZm8tPmZsYWdzID0gMDsKKwkJaW5mby0+bWNyID0gMDsKKwkJSU5JVF9XT1JLKCZpbmZvLT5yeF93b3JrLCByeF9kYXRhX3NvZnRpbnQsIHBvcnQpOworCisJCUlOSVRfTElTVF9IRUFEKCZpbmZvLT5yeF91cmJzX2ZyZWUpOworCQlJTklUX0xJU1RfSEVBRCgmaW5mby0+cnhfdXJic19zdWJtaXR0ZWQpOworCQlJTklUX0xJU1RfSEVBRCgmaW5mby0+cnhfdXJiX3EpOworCQlJTklUX0xJU1RfSEVBRCgmaW5mby0+dHhfdXJic19mcmVlKTsKKwkJSU5JVF9MSVNUX0hFQUQoJmluZm8tPnR4X3VyYnNfc3VibWl0dGVkKTsKKworCQlmb3IgKGogPSAwOyBqIDwgdXJiX3Bvb2xfc2l6ZTsgaisrKSB7CisJCQl1cmIgPSB1c2JfYWxsb2NfdXJiKDAsIEdGUF9LRVJORUwpOworCQkJaWYgKCF1cmIpIHsKKwkJCQllcnIoIk5vIGZyZWUgdXJicyBhdmFpbGFibGUiKTsKKwkJCQlnb3RvIG5vX3J4X3VyYjsKKwkJCX0KKwkJCWJ1Zl9zaXplID0gcG9ydC0+cmVhZF91cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGg7CisJCQl1cmItPnRyYW5zZmVyX2J1ZmZlciA9IGttYWxsb2MoYnVmX3NpemUsIEdGUF9LRVJORUwpOworCQkJaWYgKCF1cmItPnRyYW5zZmVyX2J1ZmZlcikgeworCQkJCWVycigiQ291bGRuJ3QgYWxsb2NhdGUgdXJiIGJ1ZmZlciIpOworCQkJCWdvdG8gbm9fcnhfYnVmOworCQkJfQorCQkJd3JhcCA9IGttYWxsb2Moc2l6ZW9mKCp3cmFwKSwgR0ZQX0tFUk5FTCk7CisJCQlpZiAoIXdyYXApIHsKKwkJCQllcnIoIkNvdWxkbid0IGFsbG9jYXRlIHVyYiB3cmFwcGVyIik7CisJCQkJZ290byBub19yeF93cmFwOworCQkJfQorCQkJdXNiX2ZpbGxfYnVsa191cmIodXJiLCBzZXJpYWwtPmRldiwKKwkJCQkJdXNiX3JjdmJ1bGtwaXBlKHNlcmlhbC0+ZGV2LAorCQkJCQkJcG9ydC0+YnVsa19pbl9lbmRwb2ludEFkZHJlc3MpLAorCQkJCQl1cmItPnRyYW5zZmVyX2J1ZmZlciwgYnVmX3NpemUsCisJCQkJCXdoaXRlaGVhdF9yZWFkX2NhbGxiYWNrLCBwb3J0KTsKKwkJCXdyYXAtPnVyYiA9IHVyYjsKKwkJCWxpc3RfYWRkKCZ3cmFwLT5saXN0LCAmaW5mby0+cnhfdXJic19mcmVlKTsKKworCQkJdXJiID0gdXNiX2FsbG9jX3VyYigwLCBHRlBfS0VSTkVMKTsKKwkJCWlmICghdXJiKSB7CisJCQkJZXJyKCJObyBmcmVlIHVyYnMgYXZhaWxhYmxlIik7CisJCQkJZ290byBub190eF91cmI7CisJCQl9CisJCQlidWZfc2l6ZSA9IHBvcnQtPndyaXRlX3VyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aDsKKwkJCXVyYi0+dHJhbnNmZXJfYnVmZmVyID0ga21hbGxvYyhidWZfc2l6ZSwgR0ZQX0tFUk5FTCk7CisJCQlpZiAoIXVyYi0+dHJhbnNmZXJfYnVmZmVyKSB7CisJCQkJZXJyKCJDb3VsZG4ndCBhbGxvY2F0ZSB1cmIgYnVmZmVyIik7CisJCQkJZ290byBub190eF9idWY7CisJCQl9CisJCQl3cmFwID0ga21hbGxvYyhzaXplb2YoKndyYXApLCBHRlBfS0VSTkVMKTsKKwkJCWlmICghd3JhcCkgeworCQkJCWVycigiQ291bGRuJ3QgYWxsb2NhdGUgdXJiIHdyYXBwZXIiKTsKKwkJCQlnb3RvIG5vX3R4X3dyYXA7CisJCQl9CisJCQl1c2JfZmlsbF9idWxrX3VyYih1cmIsIHNlcmlhbC0+ZGV2LAorCQkJCQl1c2Jfc25kYnVsa3BpcGUoc2VyaWFsLT5kZXYsCisJCQkJCQlwb3J0LT5idWxrX291dF9lbmRwb2ludEFkZHJlc3MpLAorCQkJCQl1cmItPnRyYW5zZmVyX2J1ZmZlciwgYnVmX3NpemUsCisJCQkJCXdoaXRlaGVhdF93cml0ZV9jYWxsYmFjaywgcG9ydCk7CisJCQl3cmFwLT51cmIgPSB1cmI7CisJCQlsaXN0X2FkZCgmd3JhcC0+bGlzdCwgJmluZm8tPnR4X3VyYnNfZnJlZSk7CisJCX0KKworCQl1c2Jfc2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCwgaW5mbyk7CisJfQorCisJY29tbWFuZF9pbmZvID0gKHN0cnVjdCB3aGl0ZWhlYXRfY29tbWFuZF9wcml2YXRlICopa21hbGxvYyhzaXplb2Yoc3RydWN0IHdoaXRlaGVhdF9jb21tYW5kX3ByaXZhdGUpLCBHRlBfS0VSTkVMKTsKKwlpZiAoY29tbWFuZF9pbmZvID09IE5VTEwpIHsKKwkJZXJyKCIlczogT3V0IG9mIG1lbW9yeSBmb3IgcG9ydCBzdHJ1Y3R1cmVzXG4iLCBzZXJpYWwtPnR5cGUtPm5hbWUpOworCQlnb3RvIG5vX2NvbW1hbmRfcHJpdmF0ZTsKKwl9CisKKwlzcGluX2xvY2tfaW5pdCgmY29tbWFuZF9pbmZvLT5sb2NrKTsKKwljb21tYW5kX2luZm8tPnBvcnRfcnVubmluZyA9IDA7CisJaW5pdF93YWl0cXVldWVfaGVhZCgmY29tbWFuZF9pbmZvLT53YWl0X2NvbW1hbmQpOworCXVzYl9zZXRfc2VyaWFsX3BvcnRfZGF0YShjb21tYW5kX3BvcnQsIGNvbW1hbmRfaW5mbyk7CisJY29tbWFuZF9wb3J0LT53cml0ZV91cmItPmNvbXBsZXRlID0gY29tbWFuZF9wb3J0X3dyaXRlX2NhbGxiYWNrOworCWNvbW1hbmRfcG9ydC0+cmVhZF91cmItPmNvbXBsZXRlID0gY29tbWFuZF9wb3J0X3JlYWRfY2FsbGJhY2s7CisJa2ZyZWUocmVzdWx0KTsKKwlrZnJlZShjb21tYW5kKTsKKworCXJldHVybiAwOworCitub19maXJtd2FyZToKKwkvKiBGaXJtd2FyZSBsaWtlbHkgbm90IHJ1bm5pbmcgKi8KKwllcnIoIiVzOiBVbmFibGUgdG8gcmV0cmlldmUgZmlybXdhcmUgdmVyc2lvbiwgdHJ5IHJlcGx1Z2dpbmdcbiIsIHNlcmlhbC0+dHlwZS0+bmFtZSk7CisJZXJyKCIlczogSWYgdGhlIGZpcm13YXJlIGlzIG5vdCBydW5uaW5nIChzdGF0dXMgbGVkIG5vdCBibGlua2luZylcbiIsIHNlcmlhbC0+dHlwZS0+bmFtZSk7CisJZXJyKCIlczogcGxlYXNlIGNvbnRhY3Qgc3VwcG9ydEBjb25uZWN0dGVjaC5jb21cbiIsIHNlcmlhbC0+dHlwZS0+bmFtZSk7CisJcmV0dXJuIC1FTk9ERVY7CisKK25vX2NvbW1hbmRfcHJpdmF0ZToKKwlmb3IgKGkgPSBzZXJpYWwtPm51bV9wb3J0cyAtIDE7IGkgPj0gMDsgaS0tKSB7CisJCXBvcnQgPSBzZXJpYWwtPnBvcnRbaV07CisJCWluZm8gPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJCWZvciAoaiA9IHVyYl9wb29sX3NpemUgLSAxOyBqID49IDA7IGotLSkgeworCQkJdG1wID0gbGlzdF9maXJzdCgmaW5mby0+dHhfdXJic19mcmVlKTsKKwkJCWxpc3RfZGVsKHRtcCk7CisJCQl3cmFwID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCB3aGl0ZWhlYXRfdXJiX3dyYXAsIGxpc3QpOworCQkJdXJiID0gd3JhcC0+dXJiOworCQkJa2ZyZWUod3JhcCk7Citub190eF93cmFwOgorCQkJa2ZyZWUodXJiLT50cmFuc2Zlcl9idWZmZXIpOworbm9fdHhfYnVmOgorCQkJdXNiX2ZyZWVfdXJiKHVyYik7Citub190eF91cmI6CisJCQl0bXAgPSBsaXN0X2ZpcnN0KCZpbmZvLT5yeF91cmJzX2ZyZWUpOworCQkJbGlzdF9kZWwodG1wKTsKKwkJCXdyYXAgPSBsaXN0X2VudHJ5KHRtcCwgc3RydWN0IHdoaXRlaGVhdF91cmJfd3JhcCwgbGlzdCk7CisJCQl1cmIgPSB3cmFwLT51cmI7CisJCQlrZnJlZSh3cmFwKTsKK25vX3J4X3dyYXA6CisJCQlrZnJlZSh1cmItPnRyYW5zZmVyX2J1ZmZlcik7Citub19yeF9idWY6CisJCQl1c2JfZnJlZV91cmIodXJiKTsKK25vX3J4X3VyYjoKKwkJCTsKKwkJfQorCQlrZnJlZShpbmZvKTsKK25vX3ByaXZhdGU6CisJCTsKKwl9CisJa2ZyZWUocmVzdWx0KTsKK25vX3Jlc3VsdF9idWZmZXI6CisJa2ZyZWUoY29tbWFuZCk7Citub19jb21tYW5kX2J1ZmZlcjoKKwlyZXR1cm4gLUVOT01FTTsKK30KKworCitzdGF0aWMgdm9pZCB3aGl0ZWhlYXRfc2h1dGRvd24gKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqY29tbWFuZF9wb3J0OworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQ7CisJc3RydWN0IHdoaXRlaGVhdF9wcml2YXRlICppbmZvOworCXN0cnVjdCB3aGl0ZWhlYXRfdXJiX3dyYXAgKndyYXA7CisJc3RydWN0IHVyYiAqdXJiOworCXN0cnVjdCBsaXN0X2hlYWQgKnRtcDsKKwlzdHJ1Y3QgbGlzdF9oZWFkICp0bXAyOworCWludCBpOworCisJZGJnKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwkvKiBmcmVlIHVwIG91ciBwcml2YXRlIGRhdGEgZm9yIG91ciBjb21tYW5kIHBvcnQgKi8KKwljb21tYW5kX3BvcnQgPSBzZXJpYWwtPnBvcnRbQ09NTUFORF9QT1JUXTsKKwlrZnJlZSAodXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKGNvbW1hbmRfcG9ydCkpOworCisJZm9yIChpID0gMDsgaSA8IHNlcmlhbC0+bnVtX3BvcnRzOyBpKyspIHsKKwkJcG9ydCA9IHNlcmlhbC0+cG9ydFtpXTsKKwkJaW5mbyA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwkJbGlzdF9mb3JfZWFjaF9zYWZlKHRtcCwgdG1wMiwgJmluZm8tPnJ4X3VyYnNfZnJlZSkgeworCQkJbGlzdF9kZWwodG1wKTsKKwkJCXdyYXAgPSBsaXN0X2VudHJ5KHRtcCwgc3RydWN0IHdoaXRlaGVhdF91cmJfd3JhcCwgbGlzdCk7CisJCQl1cmIgPSB3cmFwLT51cmI7CisJCQlrZnJlZSh3cmFwKTsKKwkJCWtmcmVlKHVyYi0+dHJhbnNmZXJfYnVmZmVyKTsKKwkJCXVzYl9mcmVlX3VyYih1cmIpOworCQl9CisJCWxpc3RfZm9yX2VhY2hfc2FmZSh0bXAsIHRtcDIsICZpbmZvLT50eF91cmJzX2ZyZWUpIHsKKwkJCWxpc3RfZGVsKHRtcCk7CisJCQl3cmFwID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCB3aGl0ZWhlYXRfdXJiX3dyYXAsIGxpc3QpOworCQkJdXJiID0gd3JhcC0+dXJiOworCQkJa2ZyZWUod3JhcCk7CisJCQlrZnJlZSh1cmItPnRyYW5zZmVyX2J1ZmZlcik7CisJCQl1c2JfZnJlZV91cmIodXJiKTsKKwkJfQorCQlrZnJlZShpbmZvKTsKKwl9CisKKwlyZXR1cm47Cit9CisKKworc3RhdGljIGludCB3aGl0ZWhlYXRfb3BlbiAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbHApCit7CisJaW50CQlyZXR2YWwgPSAwOworCXN0cnVjdCB0ZXJtaW9zCW9sZF90ZXJtOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlyZXR2YWwgPSBzdGFydF9jb21tYW5kX3BvcnQocG9ydC0+c2VyaWFsKTsKKwlpZiAocmV0dmFsKQorCQlnb3RvIGV4aXQ7CisKKwlpZiAocG9ydC0+dHR5KQorCQlwb3J0LT50dHktPmxvd19sYXRlbmN5ID0gMTsKKworCS8qIHNlbmQgYW4gb3BlbiBwb3J0IGNvbW1hbmQgKi8KKwlyZXR2YWwgPSBmaXJtX29wZW4ocG9ydCk7CisJaWYgKHJldHZhbCkgeworCQlzdG9wX2NvbW1hbmRfcG9ydChwb3J0LT5zZXJpYWwpOworCQlnb3RvIGV4aXQ7CisJfQorCisJcmV0dmFsID0gZmlybV9wdXJnZShwb3J0LCBXSElURUhFQVRfUFVSR0VfUlggfCBXSElURUhFQVRfUFVSR0VfVFgpOworCWlmIChyZXR2YWwpIHsKKwkJZmlybV9jbG9zZShwb3J0KTsKKwkJc3RvcF9jb21tYW5kX3BvcnQocG9ydC0+c2VyaWFsKTsKKwkJZ290byBleGl0OworCX0KKworCW9sZF90ZXJtLmNfY2ZsYWcgPSB+cG9ydC0+dHR5LT50ZXJtaW9zLT5jX2NmbGFnOworCW9sZF90ZXJtLmNfaWZsYWcgPSB+cG9ydC0+dHR5LT50ZXJtaW9zLT5jX2lmbGFnOworCXdoaXRlaGVhdF9zZXRfdGVybWlvcyhwb3J0LCAmb2xkX3Rlcm0pOworCisJLyogV29yayBhcm91bmQgSENEIGJ1Z3MgKi8KKwl1c2JfY2xlYXJfaGFsdChwb3J0LT5zZXJpYWwtPmRldiwgcG9ydC0+cmVhZF91cmItPnBpcGUpOworCXVzYl9jbGVhcl9oYWx0KHBvcnQtPnNlcmlhbC0+ZGV2LCBwb3J0LT53cml0ZV91cmItPnBpcGUpOworCisJLyogU3RhcnQgcmVhZGluZyBmcm9tIHRoZSBkZXZpY2UgKi8KKwlyZXR2YWwgPSBzdGFydF9wb3J0X3JlYWQocG9ydCk7CisJaWYgKHJldHZhbCkgeworCQllcnIoIiVzIC0gZmFpbGVkIHN1Ym1pdHRpbmcgcmVhZCB1cmIsIGVycm9yICVkIiwgX19GVU5DVElPTl9fLCByZXR2YWwpOworCQlmaXJtX2Nsb3NlKHBvcnQpOworCQlzdG9wX2NvbW1hbmRfcG9ydChwb3J0LT5zZXJpYWwpOworCQlnb3RvIGV4aXQ7CisJfQorCitleGl0OgorCWRiZygiJXMgLSBleGl0LCByZXR2YWwgPSAlZCIsIF9fRlVOQ1RJT05fXywgcmV0dmFsKTsKKwlyZXR1cm4gcmV0dmFsOworfQorCisKK3N0YXRpYyB2b2lkIHdoaXRlaGVhdF9jbG9zZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqIGZpbHApCit7CisJc3RydWN0IHdoaXRlaGVhdF9wcml2YXRlICppbmZvID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXN0cnVjdCB3aGl0ZWhlYXRfdXJiX3dyYXAgKndyYXA7CisJc3RydWN0IHVyYiAqdXJiOworCXN0cnVjdCBsaXN0X2hlYWQgKnRtcDsKKwlzdHJ1Y3QgbGlzdF9oZWFkICp0bXAyOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKwkKKwkvKiBmaWxwIGlzIE5VTEwgd2hlbiBjYWxsZWQgZnJvbSB1c2Jfc2VyaWFsX2Rpc2Nvbm5lY3QgKi8KKwlpZiAoZmlscCAmJiAodHR5X2h1bmdfdXBfcChmaWxwKSkpIHsKKwkJcmV0dXJuOworCX0KKworCXBvcnQtPnR0eS0+Y2xvc2luZyA9IDE7CisKKy8qCisgKiBOb3QgY3VycmVudGx5IGluIHVzZTsgdHR5X3dhaXRfdW50aWxfc2VudCgpIGNhbGxzCisgKiBzZXJpYWxfY2hhcnNfaW5fYnVmZmVyKCkgd2hpY2ggZGVhZGxvY2tzIG9uIHRoZSBzZWNvbmQgc2VtYXBob3JlCisgKiBhY3F1aXNpdGlvbi4gVGhpcyBzaG91bGQgYmUgZml4ZWQgYXQgc29tZSBwb2ludC4gR3JlZydzIGJlZW4KKyAqIG5vdGlmaWVkLgorCWlmICgoZmlscC0+Zl9mbGFncyAmIChPX05ERUxBWSB8IE9fTk9OQkxPQ0spKSA9PSAwKSB7CisJCXR0eV93YWl0X3VudGlsX3NlbnQocG9ydC0+dHR5LCBDTE9TSU5HX0RFTEFZKTsKKwl9CisqLworCisJaWYgKHBvcnQtPnR0eS0+ZHJpdmVyLT5mbHVzaF9idWZmZXIpCisJCXBvcnQtPnR0eS0+ZHJpdmVyLT5mbHVzaF9idWZmZXIocG9ydC0+dHR5KTsKKwl0dHlfbGRpc2NfZmx1c2gocG9ydC0+dHR5KTsKKworCWZpcm1fcmVwb3J0X3R4X2RvbmUocG9ydCk7CisKKwlmaXJtX2Nsb3NlKHBvcnQpOworCisJLyogc2h1dGRvd24gb3VyIGJ1bGsgcmVhZHMgYW5kIHdyaXRlcyAqLworCXNwaW5fbG9ja19pcnFzYXZlKCZpbmZvLT5sb2NrLCBmbGFncyk7CisJbGlzdF9mb3JfZWFjaF9zYWZlKHRtcCwgdG1wMiwgJmluZm8tPnJ4X3VyYnNfc3VibWl0dGVkKSB7CisJCXdyYXAgPSBsaXN0X2VudHJ5KHRtcCwgc3RydWN0IHdoaXRlaGVhdF91cmJfd3JhcCwgbGlzdCk7CisJCXVyYiA9IHdyYXAtPnVyYjsKKwkJdXNiX2tpbGxfdXJiKHVyYik7CisJCWxpc3RfZGVsKHRtcCk7CisJCWxpc3RfYWRkKHRtcCwgJmluZm8tPnJ4X3VyYnNfZnJlZSk7CisJfQorCWxpc3RfZm9yX2VhY2hfc2FmZSh0bXAsIHRtcDIsICZpbmZvLT5yeF91cmJfcSkgeworCQlsaXN0X2RlbCh0bXApOworCQlsaXN0X2FkZCh0bXAsICZpbmZvLT5yeF91cmJzX2ZyZWUpOworCX0KKwlsaXN0X2Zvcl9lYWNoX3NhZmUodG1wLCB0bXAyLCAmaW5mby0+dHhfdXJic19zdWJtaXR0ZWQpIHsKKwkJd3JhcCA9IGxpc3RfZW50cnkodG1wLCBzdHJ1Y3Qgd2hpdGVoZWF0X3VyYl93cmFwLCBsaXN0KTsKKwkJdXJiID0gd3JhcC0+dXJiOworCQl1c2Jfa2lsbF91cmIodXJiKTsKKwkJbGlzdF9kZWwodG1wKTsKKwkJbGlzdF9hZGQodG1wLCAmaW5mby0+dHhfdXJic19mcmVlKTsKKwl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW5mby0+bG9jaywgZmxhZ3MpOworCisJc3RvcF9jb21tYW5kX3BvcnQocG9ydC0+c2VyaWFsKTsKKworCXBvcnQtPnR0eS0+Y2xvc2luZyA9IDA7Cit9CisKKworc3RhdGljIGludCB3aGl0ZWhlYXRfd3JpdGUoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpCit7CisJc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCA9IHBvcnQtPnNlcmlhbDsKKwlzdHJ1Y3Qgd2hpdGVoZWF0X3ByaXZhdGUgKmluZm8gPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisJc3RydWN0IHdoaXRlaGVhdF91cmJfd3JhcCAqd3JhcDsKKwlzdHJ1Y3QgdXJiICp1cmI7CisJaW50IHJlc3VsdDsKKwlpbnQgYnl0ZXM7CisJaW50IHNlbnQgPSAwOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc3RydWN0IGxpc3RfaGVhZCAqdG1wOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlpZiAoY291bnQgPT0gMCkgeworCQlkYmcoIiVzIC0gd3JpdGUgcmVxdWVzdCBvZiAwIGJ5dGVzIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuICgwKTsKKwl9CisKKwl3aGlsZSAoY291bnQpIHsKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJmluZm8tPmxvY2ssIGZsYWdzKTsKKwkJaWYgKGxpc3RfZW1wdHkoJmluZm8tPnR4X3VyYnNfZnJlZSkpIHsKKwkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmluZm8tPmxvY2ssIGZsYWdzKTsKKwkJCWJyZWFrOworCQl9CisJCXRtcCA9IGxpc3RfZmlyc3QoJmluZm8tPnR4X3VyYnNfZnJlZSk7CisJCWxpc3RfZGVsKHRtcCk7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmluZm8tPmxvY2ssIGZsYWdzKTsKKworCQl3cmFwID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCB3aGl0ZWhlYXRfdXJiX3dyYXAsIGxpc3QpOworCQl1cmIgPSB3cmFwLT51cmI7CisJCWJ5dGVzID0gKGNvdW50ID4gcG9ydC0+YnVsa19vdXRfc2l6ZSkgPyBwb3J0LT5idWxrX291dF9zaXplIDogY291bnQ7CisJCW1lbWNweSAodXJiLT50cmFuc2Zlcl9idWZmZXIsIGJ1ZiArIHNlbnQsIGJ5dGVzKTsKKworCQl1c2Jfc2VyaWFsX2RlYnVnX2RhdGEoZGVidWcsICZwb3J0LT5kZXYsIF9fRlVOQ1RJT05fXywgYnl0ZXMsIHVyYi0+dHJhbnNmZXJfYnVmZmVyKTsKKworCQl1cmItPmRldiA9IHNlcmlhbC0+ZGV2OworCQl1cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGggPSBieXRlczsKKwkJcmVzdWx0ID0gdXNiX3N1Ym1pdF91cmIodXJiLCBHRlBfQVRPTUlDKTsKKwkJaWYgKHJlc3VsdCkgeworCQkJZXJyKCIlcyAtIGZhaWxlZCBzdWJtaXR0aW5nIHdyaXRlIHVyYiwgZXJyb3IgJWQiLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisJCQlzZW50ID0gcmVzdWx0OworCQkJc3Bpbl9sb2NrX2lycXNhdmUoJmluZm8tPmxvY2ssIGZsYWdzKTsKKwkJCWxpc3RfYWRkKHRtcCwgJmluZm8tPnR4X3VyYnNfZnJlZSk7CisJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpbmZvLT5sb2NrLCBmbGFncyk7CisJCQlicmVhazsKKwkJfSBlbHNlIHsKKwkJCXNlbnQgKz0gYnl0ZXM7CisJCQljb3VudCAtPSBieXRlczsKKwkJCXNwaW5fbG9ja19pcnFzYXZlKCZpbmZvLT5sb2NrLCBmbGFncyk7CisJCQlsaXN0X2FkZCh0bXAsICZpbmZvLT50eF91cmJzX3N1Ym1pdHRlZCk7CisJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpbmZvLT5sb2NrLCBmbGFncyk7CisJCX0KKwl9CisKKwlyZXR1cm4gc2VudDsKK30KKworCitzdGF0aWMgaW50IHdoaXRlaGVhdF93cml0ZV9yb29tKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpCit7CisJc3RydWN0IHdoaXRlaGVhdF9wcml2YXRlICppbmZvID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXN0cnVjdCBsaXN0X2hlYWQgKnRtcDsKKwlpbnQgcm9vbSA9IDA7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCQorCXNwaW5fbG9ja19pcnFzYXZlKCZpbmZvLT5sb2NrLCBmbGFncyk7CisJbGlzdF9mb3JfZWFjaCh0bXAsICZpbmZvLT50eF91cmJzX2ZyZWUpCisJCXJvb20rKzsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpbmZvLT5sb2NrLCBmbGFncyk7CisJcm9vbSAqPSBwb3J0LT5idWxrX291dF9zaXplOworCisJZGJnKCIlcyAtIHJldHVybnMgJWQiLCBfX0ZVTkNUSU9OX18sIHJvb20pOworCXJldHVybiAocm9vbSk7Cit9CisKKworc3RhdGljIGludCB3aGl0ZWhlYXRfdGlvY21nZXQgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXN0cnVjdCB3aGl0ZWhlYXRfcHJpdmF0ZSAqaW5mbyA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwl1bnNpZ25lZCBpbnQgbW9kZW1fc2lnbmFscyA9IDA7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCWZpcm1fZ2V0X2R0cl9ydHMocG9ydCk7CisJaWYgKGluZm8tPm1jciAmIFVBUlRfTUNSX0RUUikKKwkJbW9kZW1fc2lnbmFscyB8PSBUSU9DTV9EVFI7CisJaWYgKGluZm8tPm1jciAmIFVBUlRfTUNSX1JUUykKKwkJbW9kZW1fc2lnbmFscyB8PSBUSU9DTV9SVFM7CisKKwlyZXR1cm4gbW9kZW1fc2lnbmFsczsKK30KKworCitzdGF0aWMgaW50IHdoaXRlaGVhdF90aW9jbXNldCAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKmZpbGUsCisJCQkgICAgICAgdW5zaWduZWQgaW50IHNldCwgdW5zaWduZWQgaW50IGNsZWFyKQoreworCXN0cnVjdCB3aGl0ZWhlYXRfcHJpdmF0ZSAqaW5mbyA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJaWYgKHNldCAmIFRJT0NNX1JUUykKKwkJaW5mby0+bWNyIHw9IFVBUlRfTUNSX1JUUzsKKwlpZiAoc2V0ICYgVElPQ01fRFRSKQorCQlpbmZvLT5tY3IgfD0gVUFSVF9NQ1JfRFRSOworCisJaWYgKGNsZWFyICYgVElPQ01fUlRTKQorCQlpbmZvLT5tY3IgJj0gflVBUlRfTUNSX1JUUzsKKwlpZiAoY2xlYXIgJiBUSU9DTV9EVFIpCisJCWluZm8tPm1jciAmPSB+VUFSVF9NQ1JfRFRSOworCisJZmlybV9zZXRfZHRyKHBvcnQsIGluZm8tPm1jciAmIFVBUlRfTUNSX0RUUik7CisJZmlybV9zZXRfcnRzKHBvcnQsIGluZm8tPm1jciAmIFVBUlRfTUNSX1JUUyk7CisJcmV0dXJuIDA7Cit9CisKKworc3RhdGljIGludCB3aGl0ZWhlYXRfaW9jdGwgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBmaWxlICogZmlsZSwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCit7CisJc3RydWN0IHNlcmlhbF9zdHJ1Y3Qgc2Vyc3RydWN0OworCXZvaWQgX191c2VyICp1c2VyX2FyZyA9ICh2b2lkIF9fdXNlciAqKWFyZzsKKworCWRiZygiJXMgLSBwb3J0ICVkLCBjbWQgMHglLjR4IiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIsIGNtZCk7CisKKwlzd2l0Y2ggKGNtZCkgeworCQljYXNlIFRJT0NHU0VSSUFMOgorCQkJbWVtc2V0KCZzZXJzdHJ1Y3QsIDAsIHNpemVvZihzZXJzdHJ1Y3QpKTsKKwkJCXNlcnN0cnVjdC50eXBlID0gUE9SVF8xNjY1NDsKKwkJCXNlcnN0cnVjdC5saW5lID0gcG9ydC0+c2VyaWFsLT5taW5vcjsKKwkJCXNlcnN0cnVjdC5wb3J0ID0gcG9ydC0+bnVtYmVyOworCQkJc2Vyc3RydWN0LmZsYWdzID0gQVNZTkNfU0tJUF9URVNUIHwgQVNZTkNfQVVUT19JUlE7CisJCQlzZXJzdHJ1Y3QueG1pdF9maWZvX3NpemUgPSBwb3J0LT5idWxrX291dF9zaXplOworCQkJc2Vyc3RydWN0LmN1c3RvbV9kaXZpc29yID0gMDsKKwkJCXNlcnN0cnVjdC5iYXVkX2Jhc2UgPSA0NjA4MDA7CisJCQlzZXJzdHJ1Y3QuY2xvc2VfZGVsYXkgPSBDTE9TSU5HX0RFTEFZOworCQkJc2Vyc3RydWN0LmNsb3Npbmdfd2FpdCA9IENMT1NJTkdfREVMQVk7CisKKwkJCWlmIChjb3B5X3RvX3VzZXIodXNlcl9hcmcsICZzZXJzdHJ1Y3QsIHNpemVvZihzZXJzdHJ1Y3QpKSkKKwkJCQlyZXR1cm4gLUVGQVVMVDsKKworCQkJYnJlYWs7CisKKwkJY2FzZSBUSU9DU1NFUklBTDoKKwkJCWlmIChjb3B5X2Zyb21fdXNlcigmc2Vyc3RydWN0LCB1c2VyX2FyZywgc2l6ZW9mKHNlcnN0cnVjdCkpKQorCQkJCXJldHVybiAtRUZBVUxUOworCisJCQkvKgorCQkJICogRm9yIG5vdyB0aGlzIGlzIGlnbm9yZWQuIGRpcCBzZXRzIHRoZSBBU1lOQ19bVl1ISSBmbGFncworCQkJICogYnV0IHRoaXMgaXNuJ3QgdXNlZCBieSB1cyBhdCBhbGwuIE1heWJlIHNvbWVvbmUgc29tZXdoZXJlCisJCQkgKiB3aWxsIG5lZWQgdGhlIGN1c3RvbV9kaXZpc29yIHNldHRpbmcuCisJCQkgKi8KKworCQkJYnJlYWs7CisKKwkJZGVmYXVsdDoKKwkJCWJyZWFrOworCX0KKworCXJldHVybiAtRU5PSU9DVExDTUQ7Cit9CisKKworc3RhdGljIHZvaWQgd2hpdGVoZWF0X3NldF90ZXJtaW9zIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgdGVybWlvcyAqb2xkX3Rlcm1pb3MpCit7CisJZGJnKCIlcyAtcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCWlmICgoIXBvcnQtPnR0eSkgfHwgKCFwb3J0LT50dHktPnRlcm1pb3MpKSB7CisJCWRiZygiJXMgLSBubyB0dHkgc3RydWN0dXJlcyIsIF9fRlVOQ1RJT05fXyk7CisJCWdvdG8gZXhpdDsKKwl9CisJCisJLyogY2hlY2sgdGhhdCB0aGV5IHJlYWxseSB3YW50IHVzIHRvIGNoYW5nZSBzb21ldGhpbmcgKi8KKwlpZiAob2xkX3Rlcm1pb3MpIHsKKwkJaWYgKChwb3J0LT50dHktPnRlcm1pb3MtPmNfY2ZsYWcgPT0gb2xkX3Rlcm1pb3MtPmNfY2ZsYWcpICYmCisJCSAgICAocG9ydC0+dHR5LT50ZXJtaW9zLT5jX2lmbGFnID09IG9sZF90ZXJtaW9zLT5jX2lmbGFnKSkgeworCQkJZGJnKCIlcyAtIG5vdGhpbmcgdG8gY2hhbmdlLi4uIiwgX19GVU5DVElPTl9fKTsKKwkJCWdvdG8gZXhpdDsKKwkJfQorCX0KKworCWZpcm1fc2V0dXBfcG9ydChwb3J0KTsKKworZXhpdDoKKwlyZXR1cm47Cit9CisKKworc3RhdGljIHZvaWQgd2hpdGVoZWF0X2JyZWFrX2N0bChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBpbnQgYnJlYWtfc3RhdGUpIHsKKwlmaXJtX3NldF9icmVhayhwb3J0LCBicmVha19zdGF0ZSk7Cit9CisKKworc3RhdGljIGludCB3aGl0ZWhlYXRfY2hhcnNfaW5fYnVmZmVyKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpCit7CisJc3RydWN0IHdoaXRlaGVhdF9wcml2YXRlICppbmZvID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXN0cnVjdCBsaXN0X2hlYWQgKnRtcDsKKwlzdHJ1Y3Qgd2hpdGVoZWF0X3VyYl93cmFwICp3cmFwOworCWludCBjaGFycyA9IDA7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmluZm8tPmxvY2ssIGZsYWdzKTsKKwlsaXN0X2Zvcl9lYWNoKHRtcCwgJmluZm8tPnR4X3VyYnNfc3VibWl0dGVkKSB7CisJCXdyYXAgPSBsaXN0X2VudHJ5KHRtcCwgc3RydWN0IHdoaXRlaGVhdF91cmJfd3JhcCwgbGlzdCk7CisJCWNoYXJzICs9IHdyYXAtPnVyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aDsKKwl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW5mby0+bG9jaywgZmxhZ3MpOworCisJZGJnICgiJXMgLSByZXR1cm5zICVkIiwgX19GVU5DVElPTl9fLCBjaGFycyk7CisJcmV0dXJuIChjaGFycyk7Cit9CisKKworc3RhdGljIHZvaWQgd2hpdGVoZWF0X3Rocm90dGxlIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCB3aGl0ZWhlYXRfcHJpdmF0ZSAqaW5mbyA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmaW5mby0+bG9jaywgZmxhZ3MpOworCWluZm8tPmZsYWdzIHw9IFRIUk9UVExFRDsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpbmZvLT5sb2NrLCBmbGFncyk7CisKKwlyZXR1cm47Cit9CisKKworc3RhdGljIHZvaWQgd2hpdGVoZWF0X3VudGhyb3R0bGUgKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpCit7CisJc3RydWN0IHdoaXRlaGVhdF9wcml2YXRlICppbmZvID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCWludCBhY3R1YWxseV90aHJvdHRsZWQ7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCWRiZygiJXMgLSBwb3J0ICVkIiwgX19GVU5DVElPTl9fLCBwb3J0LT5udW1iZXIpOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmluZm8tPmxvY2ssIGZsYWdzKTsKKwlhY3R1YWxseV90aHJvdHRsZWQgPSBpbmZvLT5mbGFncyAmIEFDVFVBTExZX1RIUk9UVExFRDsKKwlpbmZvLT5mbGFncyAmPSB+KFRIUk9UVExFRCB8IEFDVFVBTExZX1RIUk9UVExFRCk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW5mby0+bG9jaywgZmxhZ3MpOworCisJaWYgKGFjdHVhbGx5X3Rocm90dGxlZCkKKwkJcnhfZGF0YV9zb2Z0aW50KHBvcnQpOworCisJcmV0dXJuOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29ubmVjdCBUZWNoJ3MgV2hpdGUgSGVhdCBjYWxsYmFjayByb3V0aW5lcworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHZvaWQgY29tbWFuZF9wb3J0X3dyaXRlX2NhbGxiYWNrIChzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCWRiZygiJXMiLCBfX0ZVTkNUSU9OX18pOworCisJaWYgKHVyYi0+c3RhdHVzKSB7CisJCWRiZyAoIm5vbnplcm8gdXJiIHN0YXR1czogJWQiLCB1cmItPnN0YXR1cyk7CisJCXJldHVybjsKKwl9Cit9CisKKworc3RhdGljIHZvaWQgY29tbWFuZF9wb3J0X3JlYWRfY2FsbGJhY2sgKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqY29tbWFuZF9wb3J0ID0gKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKil1cmItPmNvbnRleHQ7CisJc3RydWN0IHdoaXRlaGVhdF9jb21tYW5kX3ByaXZhdGUgKmNvbW1hbmRfaW5mbzsKKwl1bnNpZ25lZCBjaGFyICpkYXRhID0gdXJiLT50cmFuc2Zlcl9idWZmZXI7CisJaW50IHJlc3VsdDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZGJnKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisKKwlpZiAodXJiLT5zdGF0dXMpIHsKKwkJZGJnKCIlcyAtIG5vbnplcm8gdXJiIHN0YXR1czogJWQiLCBfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzKTsKKwkJcmV0dXJuOworCX0KKworCXVzYl9zZXJpYWxfZGVidWdfZGF0YShkZWJ1ZywgJmNvbW1hbmRfcG9ydC0+ZGV2LCBfX0ZVTkNUSU9OX18sIHVyYi0+YWN0dWFsX2xlbmd0aCwgZGF0YSk7CisKKwljb21tYW5kX2luZm8gPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEoY29tbWFuZF9wb3J0KTsKKwlpZiAoIWNvbW1hbmRfaW5mbykgeworCQlkYmcgKCIlcyAtIGNvbW1hbmRfaW5mbyBpcyBOVUxMLCBleGl0aW5nLiIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybjsKKwl9CisJc3Bpbl9sb2NrX2lycXNhdmUoJmNvbW1hbmRfaW5mby0+bG9jaywgZmxhZ3MpOworCisJaWYgKGRhdGFbMF0gPT0gV0hJVEVIRUFUX0NNRF9DT01QTEVURSkgeworCQljb21tYW5kX2luZm8tPmNvbW1hbmRfZmluaXNoZWQgPSBXSElURUhFQVRfQ01EX0NPTVBMRVRFOworCQl3YWtlX3VwX2ludGVycnVwdGlibGUoJmNvbW1hbmRfaW5mby0+d2FpdF9jb21tYW5kKTsKKwl9IGVsc2UgaWYgKGRhdGFbMF0gPT0gV0hJVEVIRUFUX0NNRF9GQUlMVVJFKSB7CisJCWNvbW1hbmRfaW5mby0+Y29tbWFuZF9maW5pc2hlZCA9IFdISVRFSEVBVF9DTURfRkFJTFVSRTsKKwkJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCZjb21tYW5kX2luZm8tPndhaXRfY29tbWFuZCk7CisJfSBlbHNlIGlmIChkYXRhWzBdID09IFdISVRFSEVBVF9FVkVOVCkgeworCQkvKiBUaGVzZSBhcmUgdW5zb2xpY2l0ZWQgcmVwb3J0cyBmcm9tIHRoZSBmaXJtd2FyZSwgaGVuY2Ugbm8gd2FpdGluZyBjb21tYW5kIHRvIHdha2V1cCAqLworCQlkYmcoIiVzIC0gZXZlbnQgcmVjZWl2ZWQiLCBfX0ZVTkNUSU9OX18pOworCX0gZWxzZSBpZiAoZGF0YVswXSA9PSBXSElURUhFQVRfR0VUX0RUUl9SVFMpIHsKKwkJbWVtY3B5KGNvbW1hbmRfaW5mby0+cmVzdWx0X2J1ZmZlciwgJmRhdGFbMV0sIHVyYi0+YWN0dWFsX2xlbmd0aCAtIDEpOworCQljb21tYW5kX2luZm8tPmNvbW1hbmRfZmluaXNoZWQgPSBXSElURUhFQVRfQ01EX0NPTVBMRVRFOworCQl3YWtlX3VwX2ludGVycnVwdGlibGUoJmNvbW1hbmRfaW5mby0+d2FpdF9jb21tYW5kKTsKKwl9IGVsc2UgeworCQlkYmcoIiVzIC0gYmFkIHJlcGx5IGZyb20gZmlybXdhcmUiLCBfX0ZVTkNUSU9OX18pOworCX0KKwkKKwkvKiBDb250aW51ZSB0cnlpbmcgdG8gYWx3YXlzIHJlYWQgKi8KKwljb21tYW5kX3BvcnQtPnJlYWRfdXJiLT5kZXYgPSBjb21tYW5kX3BvcnQtPnNlcmlhbC0+ZGV2OworCXJlc3VsdCA9IHVzYl9zdWJtaXRfdXJiKGNvbW1hbmRfcG9ydC0+cmVhZF91cmIsIEdGUF9BVE9NSUMpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNvbW1hbmRfaW5mby0+bG9jaywgZmxhZ3MpOworCWlmIChyZXN1bHQpCisJCWRiZygiJXMgLSBmYWlsZWQgcmVzdWJtaXR0aW5nIHJlYWQgdXJiLCBlcnJvciAlZCIsIF9fRlVOQ1RJT05fXywgcmVzdWx0KTsKK30KKworCitzdGF0aWMgdm9pZCB3aGl0ZWhlYXRfcmVhZF9jYWxsYmFjayhzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqKXVyYi0+Y29udGV4dDsKKwlzdHJ1Y3Qgd2hpdGVoZWF0X3VyYl93cmFwICp3cmFwOworCXVuc2lnbmVkIGNoYXIgKmRhdGEgPSB1cmItPnRyYW5zZmVyX2J1ZmZlcjsKKwlzdHJ1Y3Qgd2hpdGVoZWF0X3ByaXZhdGUgKmluZm8gPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7CisKKwlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKKworCXNwaW5fbG9jaygmaW5mby0+bG9jayk7CisJd3JhcCA9IHVyYl90b193cmFwKHVyYiwgJmluZm8tPnJ4X3VyYnNfc3VibWl0dGVkKTsKKwlpZiAoIXdyYXApIHsKKwkJc3Bpbl91bmxvY2soJmluZm8tPmxvY2spOworCQllcnIoIiVzIC0gTm90IG15IHVyYiEiLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm47CisJfQorCWxpc3RfZGVsKCZ3cmFwLT5saXN0KTsKKwlzcGluX3VubG9jaygmaW5mby0+bG9jayk7CisKKwlpZiAodXJiLT5zdGF0dXMpIHsKKwkJZGJnKCIlcyAtIG5vbnplcm8gcmVhZCBidWxrIHN0YXR1cyByZWNlaXZlZDogJWQiLCBfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzKTsKKwkJc3Bpbl9sb2NrKCZpbmZvLT5sb2NrKTsKKwkJbGlzdF9hZGQoJndyYXAtPmxpc3QsICZpbmZvLT5yeF91cmJzX2ZyZWUpOworCQlzcGluX3VubG9jaygmaW5mby0+bG9jayk7CisJCXJldHVybjsKKwl9CisKKwl1c2Jfc2VyaWFsX2RlYnVnX2RhdGEoZGVidWcsICZwb3J0LT5kZXYsIF9fRlVOQ1RJT05fXywgdXJiLT5hY3R1YWxfbGVuZ3RoLCBkYXRhKTsKKworCXNwaW5fbG9jaygmaW5mby0+bG9jayk7CisJbGlzdF9hZGRfdGFpbCgmd3JhcC0+bGlzdCwgJmluZm8tPnJ4X3VyYl9xKTsKKwlpZiAoaW5mby0+ZmxhZ3MgJiBUSFJPVFRMRUQpIHsKKwkJaW5mby0+ZmxhZ3MgfD0gQUNUVUFMTFlfVEhST1RUTEVEOworCQlzcGluX3VubG9jaygmaW5mby0+bG9jayk7CisJCXJldHVybjsKKwl9CisJc3Bpbl91bmxvY2soJmluZm8tPmxvY2spOworCisJc2NoZWR1bGVfd29yaygmaW5mby0+cnhfd29yayk7Cit9CisKKworc3RhdGljIHZvaWQgd2hpdGVoZWF0X3dyaXRlX2NhbGxiYWNrKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCA9IChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICopdXJiLT5jb250ZXh0OworCXN0cnVjdCB3aGl0ZWhlYXRfcHJpdmF0ZSAqaW5mbyA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKKwlzdHJ1Y3Qgd2hpdGVoZWF0X3VyYl93cmFwICp3cmFwOworCisJZGJnKCIlcyAtIHBvcnQgJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnQtPm51bWJlcik7CisKKwlzcGluX2xvY2soJmluZm8tPmxvY2spOworCXdyYXAgPSB1cmJfdG9fd3JhcCh1cmIsICZpbmZvLT50eF91cmJzX3N1Ym1pdHRlZCk7CisJaWYgKCF3cmFwKSB7CisJCXNwaW5fdW5sb2NrKCZpbmZvLT5sb2NrKTsKKwkJZXJyKCIlcyAtIE5vdCBteSB1cmIhIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuOworCX0KKwlsaXN0X2RlbCgmd3JhcC0+bGlzdCk7CisJbGlzdF9hZGQoJndyYXAtPmxpc3QsICZpbmZvLT50eF91cmJzX2ZyZWUpOworCXNwaW5fdW5sb2NrKCZpbmZvLT5sb2NrKTsKKworCWlmICh1cmItPnN0YXR1cykgeworCQlkYmcoIiVzIC0gbm9uemVybyB3cml0ZSBidWxrIHN0YXR1cyByZWNlaXZlZDogJWQiLCBfX0ZVTkNUSU9OX18sIHVyYi0+c3RhdHVzKTsKKwkJcmV0dXJuOworCX0KKworCXVzYl9zZXJpYWxfcG9ydF9zb2Z0aW50KCh2b2lkICopcG9ydCk7CisKKwlzY2hlZHVsZV93b3JrKCZwb3J0LT53b3JrKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvbm5lY3QgVGVjaCdzIFdoaXRlIEhlYXQgZmlybXdhcmUgaW50ZXJmYWNlCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgaW50IGZpcm1fc2VuZF9jb21tYW5kIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBfX3U4IGNvbW1hbmQsIF9fdTggKmRhdGEsIF9fdTggZGF0YXNpemUpCit7CisJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqY29tbWFuZF9wb3J0OworCXN0cnVjdCB3aGl0ZWhlYXRfY29tbWFuZF9wcml2YXRlICpjb21tYW5kX2luZm87CisJc3RydWN0IHdoaXRlaGVhdF9wcml2YXRlICppbmZvOworCV9fdTggKnRyYW5zZmVyX2J1ZmZlcjsKKwlpbnQgcmV0dmFsID0gMDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZGJnKCIlcyAtIGNvbW1hbmQgJWQiLCBfX0ZVTkNUSU9OX18sIGNvbW1hbmQpOworCisJY29tbWFuZF9wb3J0ID0gcG9ydC0+c2VyaWFsLT5wb3J0W0NPTU1BTkRfUE9SVF07CisJY29tbWFuZF9pbmZvID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKGNvbW1hbmRfcG9ydCk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJmNvbW1hbmRfaW5mby0+bG9jaywgZmxhZ3MpOworCWNvbW1hbmRfaW5mby0+Y29tbWFuZF9maW5pc2hlZCA9IEZBTFNFOworCQorCXRyYW5zZmVyX2J1ZmZlciA9IChfX3U4ICopY29tbWFuZF9wb3J0LT53cml0ZV91cmItPnRyYW5zZmVyX2J1ZmZlcjsKKwl0cmFuc2Zlcl9idWZmZXJbMF0gPSBjb21tYW5kOworCW1lbWNweSAoJnRyYW5zZmVyX2J1ZmZlclsxXSwgZGF0YSwgZGF0YXNpemUpOworCWNvbW1hbmRfcG9ydC0+d3JpdGVfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoID0gZGF0YXNpemUgKyAxOworCWNvbW1hbmRfcG9ydC0+d3JpdGVfdXJiLT5kZXYgPSBwb3J0LT5zZXJpYWwtPmRldjsKKwlyZXR2YWwgPSB1c2Jfc3VibWl0X3VyYiAoY29tbWFuZF9wb3J0LT53cml0ZV91cmIsIEdGUF9LRVJORUwpOworCWlmIChyZXR2YWwpIHsKKwkJZGJnKCIlcyAtIHN1Ym1pdCB1cmIgZmFpbGVkIiwgX19GVU5DVElPTl9fKTsKKwkJZ290byBleGl0OworCX0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjb21tYW5kX2luZm8tPmxvY2ssIGZsYWdzKTsKKworCS8qIHdhaXQgZm9yIHRoZSBjb21tYW5kIHRvIGNvbXBsZXRlICovCisJd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlX3RpbWVvdXQoY29tbWFuZF9pbmZvLT53YWl0X2NvbW1hbmQsIAorCQkoY29tbWFuZF9pbmZvLT5jb21tYW5kX2ZpbmlzaGVkICE9IEZBTFNFKSwgQ09NTUFORF9USU1FT1VUKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZjb21tYW5kX2luZm8tPmxvY2ssIGZsYWdzKTsKKworCWlmIChjb21tYW5kX2luZm8tPmNvbW1hbmRfZmluaXNoZWQgPT0gRkFMU0UpIHsKKwkJZGJnKCIlcyAtIGNvbW1hbmQgdGltZWQgb3V0LiIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHZhbCA9IC1FVElNRURPVVQ7CisJCWdvdG8gZXhpdDsKKwl9CisKKwlpZiAoY29tbWFuZF9pbmZvLT5jb21tYW5kX2ZpbmlzaGVkID09IFdISVRFSEVBVF9DTURfRkFJTFVSRSkgeworCQlkYmcoIiVzIC0gY29tbWFuZCBmYWlsZWQuIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dmFsID0gLUVJTzsKKwkJZ290byBleGl0OworCX0KKworCWlmIChjb21tYW5kX2luZm8tPmNvbW1hbmRfZmluaXNoZWQgPT0gV0hJVEVIRUFUX0NNRF9DT01QTEVURSkgeworCQlkYmcoIiVzIC0gY29tbWFuZCBjb21wbGV0ZWQuIiwgX19GVU5DVElPTl9fKTsKKwkJc3dpdGNoIChjb21tYW5kKSB7CisJCQljYXNlIFdISVRFSEVBVF9HRVRfRFRSX1JUUzoKKwkJCQlpbmZvID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCQkJCW1lbWNweSgmaW5mby0+bWNyLCBjb21tYW5kX2luZm8tPnJlc3VsdF9idWZmZXIsIHNpemVvZihzdHJ1Y3Qgd2hpdGVoZWF0X2RyX2luZm8pKTsKKwkJCQlicmVhazsKKwkJfQorCX0KKworZXhpdDoKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjb21tYW5kX2luZm8tPmxvY2ssIGZsYWdzKTsKKwlyZXR1cm4gcmV0dmFsOworfQorCisKK3N0YXRpYyBpbnQgZmlybV9vcGVuKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpIHsKKwlzdHJ1Y3Qgd2hpdGVoZWF0X3NpbXBsZSBvcGVuX2NvbW1hbmQ7CisKKwlvcGVuX2NvbW1hbmQucG9ydCA9IHBvcnQtPm51bWJlciAtIHBvcnQtPnNlcmlhbC0+bWlub3IgKyAxOworCXJldHVybiBmaXJtX3NlbmRfY29tbWFuZChwb3J0LCBXSElURUhFQVRfT1BFTiwgKF9fdTggKikmb3Blbl9jb21tYW5kLCBzaXplb2Yob3Blbl9jb21tYW5kKSk7Cit9CisKKworc3RhdGljIGludCBmaXJtX2Nsb3NlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpIHsKKwlzdHJ1Y3Qgd2hpdGVoZWF0X3NpbXBsZSBjbG9zZV9jb21tYW5kOworCisJY2xvc2VfY29tbWFuZC5wb3J0ID0gcG9ydC0+bnVtYmVyIC0gcG9ydC0+c2VyaWFsLT5taW5vciArIDE7CisJcmV0dXJuIGZpcm1fc2VuZF9jb21tYW5kKHBvcnQsIFdISVRFSEVBVF9DTE9TRSwgKF9fdTggKikmY2xvc2VfY29tbWFuZCwgc2l6ZW9mKGNsb3NlX2NvbW1hbmQpKTsKK30KKworCitzdGF0aWMgaW50IGZpcm1fc2V0dXBfcG9ydChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KSB7CisJc3RydWN0IHdoaXRlaGVhdF9wb3J0X3NldHRpbmdzIHBvcnRfc2V0dGluZ3M7CisJdW5zaWduZWQgaW50IGNmbGFnID0gcG9ydC0+dHR5LT50ZXJtaW9zLT5jX2NmbGFnOworCisJcG9ydF9zZXR0aW5ncy5wb3J0ID0gcG9ydC0+bnVtYmVyICsgMTsKKworCS8qIGdldCB0aGUgYnl0ZSBzaXplICovCisJc3dpdGNoIChjZmxhZyAmIENTSVpFKSB7CisJCWNhc2UgQ1M1Oglwb3J0X3NldHRpbmdzLmJpdHMgPSA1OyAgIGJyZWFrOworCQljYXNlIENTNjoJcG9ydF9zZXR0aW5ncy5iaXRzID0gNjsgICBicmVhazsKKwkJY2FzZSBDUzc6CXBvcnRfc2V0dGluZ3MuYml0cyA9IDc7ICAgYnJlYWs7CisJCWRlZmF1bHQ6CisJCWNhc2UgQ1M4Oglwb3J0X3NldHRpbmdzLmJpdHMgPSA4OyAgIGJyZWFrOworCX0KKwlkYmcoIiVzIC0gZGF0YSBiaXRzID0gJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnRfc2V0dGluZ3MuYml0cyk7CisJCisJLyogZGV0ZXJtaW5lIHRoZSBwYXJpdHkgKi8KKwlpZiAoY2ZsYWcgJiBQQVJFTkIpCisJCWlmIChjZmxhZyAmIENNU1BBUikKKwkJCWlmIChjZmxhZyAmIFBBUk9ERCkKKwkJCQlwb3J0X3NldHRpbmdzLnBhcml0eSA9IFdISVRFSEVBVF9QQVJfTUFSSzsKKwkJCWVsc2UKKwkJCQlwb3J0X3NldHRpbmdzLnBhcml0eSA9IFdISVRFSEVBVF9QQVJfU1BBQ0U7CisJCWVsc2UKKwkJCWlmIChjZmxhZyAmIFBBUk9ERCkKKwkJCQlwb3J0X3NldHRpbmdzLnBhcml0eSA9IFdISVRFSEVBVF9QQVJfT0REOworCQkJZWxzZQorCQkJCXBvcnRfc2V0dGluZ3MucGFyaXR5ID0gV0hJVEVIRUFUX1BBUl9FVkVOOworCWVsc2UKKwkJcG9ydF9zZXR0aW5ncy5wYXJpdHkgPSBXSElURUhFQVRfUEFSX05PTkU7CisJZGJnKCIlcyAtIHBhcml0eSA9ICVjIiwgX19GVU5DVElPTl9fLCBwb3J0X3NldHRpbmdzLnBhcml0eSk7CisKKwkvKiBmaWd1cmUgb3V0IHRoZSBzdG9wIGJpdHMgcmVxdWVzdGVkICovCisJaWYgKGNmbGFnICYgQ1NUT1BCKQorCQlwb3J0X3NldHRpbmdzLnN0b3AgPSAyOworCWVsc2UKKwkJcG9ydF9zZXR0aW5ncy5zdG9wID0gMTsKKwlkYmcoIiVzIC0gc3RvcCBiaXRzID0gJWQiLCBfX0ZVTkNUSU9OX18sIHBvcnRfc2V0dGluZ3Muc3RvcCk7CisKKwkvKiBmaWd1cmUgb3V0IHRoZSBmbG93IGNvbnRyb2wgc2V0dGluZ3MgKi8KKwlpZiAoY2ZsYWcgJiBDUlRTQ1RTKQorCQlwb3J0X3NldHRpbmdzLmhmbG93ID0gKFdISVRFSEVBVF9IRkxPV19DVFMgfCBXSElURUhFQVRfSEZMT1dfUlRTKTsKKwllbHNlCisJCXBvcnRfc2V0dGluZ3MuaGZsb3cgPSBXSElURUhFQVRfSEZMT1dfTk9ORTsKKwlkYmcoIiVzIC0gaGFyZHdhcmUgZmxvdyBjb250cm9sID0gJXMgJXMgJXMgJXMiLCBfX0ZVTkNUSU9OX18sCisJICAgIChwb3J0X3NldHRpbmdzLmhmbG93ICYgV0hJVEVIRUFUX0hGTE9XX0NUUykgPyAiQ1RTIiA6ICIiLAorCSAgICAocG9ydF9zZXR0aW5ncy5oZmxvdyAmIFdISVRFSEVBVF9IRkxPV19SVFMpID8gIlJUUyIgOiAiIiwKKwkgICAgKHBvcnRfc2V0dGluZ3MuaGZsb3cgJiBXSElURUhFQVRfSEZMT1dfRFNSKSA/ICJEU1IiIDogIiIsCisJICAgIChwb3J0X3NldHRpbmdzLmhmbG93ICYgV0hJVEVIRUFUX0hGTE9XX0RUUikgPyAiRFRSIiA6ICIiKTsKKwkKKwkvKiBkZXRlcm1pbmUgc29mdHdhcmUgZmxvdyBjb250cm9sICovCisJaWYgKElfSVhPRkYocG9ydC0+dHR5KSkKKwkJcG9ydF9zZXR0aW5ncy5zZmxvdyA9IFdISVRFSEVBVF9TRkxPV19SWFRYOworCWVsc2UKKwkJcG9ydF9zZXR0aW5ncy5zZmxvdyA9IFdISVRFSEVBVF9TRkxPV19OT05FOworCWRiZygiJXMgLSBzb2Z0d2FyZSBmbG93IGNvbnRyb2wgPSAlYyIsIF9fRlVOQ1RJT05fXywgcG9ydF9zZXR0aW5ncy5zZmxvdyk7CisJCisJcG9ydF9zZXR0aW5ncy54b24gPSBTVEFSVF9DSEFSKHBvcnQtPnR0eSk7CisJcG9ydF9zZXR0aW5ncy54b2ZmID0gU1RPUF9DSEFSKHBvcnQtPnR0eSk7CisJZGJnKCIlcyAtIFhPTiA9ICUyeCwgWE9GRiA9ICUyeCIsIF9fRlVOQ1RJT05fXywgcG9ydF9zZXR0aW5ncy54b24sIHBvcnRfc2V0dGluZ3MueG9mZik7CisKKwkvKiBnZXQgdGhlIGJhdWQgcmF0ZSB3YW50ZWQgKi8KKwlwb3J0X3NldHRpbmdzLmJhdWQgPSB0dHlfZ2V0X2JhdWRfcmF0ZShwb3J0LT50dHkpOworCWRiZygiJXMgLSBiYXVkIHJhdGUgPSAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydF9zZXR0aW5ncy5iYXVkKTsKKworCS8qIGhhbmRsZSBhbnkgc2V0dGluZ3MgdGhhdCBhcmVuJ3Qgc3BlY2lmaWVkIGluIHRoZSB0dHkgc3RydWN0dXJlICovCisJcG9ydF9zZXR0aW5ncy5sbG9vcCA9IDA7CisJCisJLyogbm93IHNlbmQgdGhlIG1lc3NhZ2UgdG8gdGhlIGRldmljZSAqLworCXJldHVybiBmaXJtX3NlbmRfY29tbWFuZChwb3J0LCBXSElURUhFQVRfU0VUVVBfUE9SVCwgKF9fdTggKikmcG9ydF9zZXR0aW5ncywgc2l6ZW9mKHBvcnRfc2V0dGluZ3MpKTsKK30KKworCitzdGF0aWMgaW50IGZpcm1fc2V0X3J0cyhzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBfX3U4IG9ub2ZmKSB7CisJc3RydWN0IHdoaXRlaGVhdF9zZXRfcmRiIHJ0c19jb21tYW5kOworCisJcnRzX2NvbW1hbmQucG9ydCA9IHBvcnQtPm51bWJlciAtIHBvcnQtPnNlcmlhbC0+bWlub3IgKyAxOworCXJ0c19jb21tYW5kLnN0YXRlID0gb25vZmY7CisJcmV0dXJuIGZpcm1fc2VuZF9jb21tYW5kKHBvcnQsIFdISVRFSEVBVF9TRVRfUlRTLCAoX191OCAqKSZydHNfY29tbWFuZCwgc2l6ZW9mKHJ0c19jb21tYW5kKSk7Cit9CisKKworc3RhdGljIGludCBmaXJtX3NldF9kdHIoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgX191OCBvbm9mZikgeworCXN0cnVjdCB3aGl0ZWhlYXRfc2V0X3JkYiBkdHJfY29tbWFuZDsKKworCWR0cl9jb21tYW5kLnBvcnQgPSBwb3J0LT5udW1iZXIgLSBwb3J0LT5zZXJpYWwtPm1pbm9yICsgMTsKKwlkdHJfY29tbWFuZC5zdGF0ZSA9IG9ub2ZmOworCXJldHVybiBmaXJtX3NlbmRfY29tbWFuZChwb3J0LCBXSElURUhFQVRfU0VUX1JUUywgKF9fdTggKikmZHRyX2NvbW1hbmQsIHNpemVvZihkdHJfY29tbWFuZCkpOworfQorCisKK3N0YXRpYyBpbnQgZmlybV9zZXRfYnJlYWsoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgX191OCBvbm9mZikgeworCXN0cnVjdCB3aGl0ZWhlYXRfc2V0X3JkYiBicmVha19jb21tYW5kOworCisJYnJlYWtfY29tbWFuZC5wb3J0ID0gcG9ydC0+bnVtYmVyIC0gcG9ydC0+c2VyaWFsLT5taW5vciArIDE7CisJYnJlYWtfY29tbWFuZC5zdGF0ZSA9IG9ub2ZmOworCXJldHVybiBmaXJtX3NlbmRfY29tbWFuZChwb3J0LCBXSElURUhFQVRfU0VUX1JUUywgKF9fdTggKikmYnJlYWtfY29tbWFuZCwgc2l6ZW9mKGJyZWFrX2NvbW1hbmQpKTsKK30KKworCitzdGF0aWMgaW50IGZpcm1fcHVyZ2Uoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgX191OCByeHR4KSB7CisJc3RydWN0IHdoaXRlaGVhdF9wdXJnZSBwdXJnZV9jb21tYW5kOworCisJcHVyZ2VfY29tbWFuZC5wb3J0ID0gcG9ydC0+bnVtYmVyIC0gcG9ydC0+c2VyaWFsLT5taW5vciArIDE7CisJcHVyZ2VfY29tbWFuZC53aGF0ID0gcnh0eDsKKwlyZXR1cm4gZmlybV9zZW5kX2NvbW1hbmQocG9ydCwgV0hJVEVIRUFUX1BVUkdFLCAoX191OCAqKSZwdXJnZV9jb21tYW5kLCBzaXplb2YocHVyZ2VfY29tbWFuZCkpOworfQorCisKK3N0YXRpYyBpbnQgZmlybV9nZXRfZHRyX3J0cyhzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KSB7CisJc3RydWN0IHdoaXRlaGVhdF9zaW1wbGUgZ2V0X2RyX2NvbW1hbmQ7CisKKwlnZXRfZHJfY29tbWFuZC5wb3J0ID0gcG9ydC0+bnVtYmVyIC0gcG9ydC0+c2VyaWFsLT5taW5vciArIDE7CisJcmV0dXJuIGZpcm1fc2VuZF9jb21tYW5kKHBvcnQsIFdISVRFSEVBVF9HRVRfRFRSX1JUUywgKF9fdTggKikmZ2V0X2RyX2NvbW1hbmQsIHNpemVvZihnZXRfZHJfY29tbWFuZCkpOworfQorCisKK3N0YXRpYyBpbnQgZmlybV9yZXBvcnRfdHhfZG9uZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KSB7CisJc3RydWN0IHdoaXRlaGVhdF9zaW1wbGUgY2xvc2VfY29tbWFuZDsKKworCWNsb3NlX2NvbW1hbmQucG9ydCA9IHBvcnQtPm51bWJlciAtIHBvcnQtPnNlcmlhbC0+bWlub3IgKyAxOworCXJldHVybiBmaXJtX3NlbmRfY29tbWFuZChwb3J0LCBXSElURUhFQVRfUkVQT1JUX1RYX0RPTkUsIChfX3U4ICopJmNsb3NlX2NvbW1hbmQsIHNpemVvZihjbG9zZV9jb21tYW5kKSk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb25uZWN0IFRlY2gncyBXaGl0ZSBIZWF0IHV0aWxpdHkgZnVuY3Rpb25zCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgaW50IHN0YXJ0X2NvbW1hbmRfcG9ydChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKmNvbW1hbmRfcG9ydDsKKwlzdHJ1Y3Qgd2hpdGVoZWF0X2NvbW1hbmRfcHJpdmF0ZSAqY29tbWFuZF9pbmZvOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJaW50IHJldHZhbCA9IDA7CisJCisJY29tbWFuZF9wb3J0ID0gc2VyaWFsLT5wb3J0W0NPTU1BTkRfUE9SVF07CisJY29tbWFuZF9pbmZvID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKGNvbW1hbmRfcG9ydCk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJmNvbW1hbmRfaW5mby0+bG9jaywgZmxhZ3MpOworCWlmICghY29tbWFuZF9pbmZvLT5wb3J0X3J1bm5pbmcpIHsKKwkJLyogV29yayBhcm91bmQgSENEIGJ1Z3MgKi8KKwkJdXNiX2NsZWFyX2hhbHQoc2VyaWFsLT5kZXYsIGNvbW1hbmRfcG9ydC0+cmVhZF91cmItPnBpcGUpOworCisJCWNvbW1hbmRfcG9ydC0+cmVhZF91cmItPmRldiA9IHNlcmlhbC0+ZGV2OworCQlyZXR2YWwgPSB1c2Jfc3VibWl0X3VyYihjb21tYW5kX3BvcnQtPnJlYWRfdXJiLCBHRlBfS0VSTkVMKTsKKwkJaWYgKHJldHZhbCkgeworCQkJZXJyKCIlcyAtIGZhaWxlZCBzdWJtaXR0aW5nIHJlYWQgdXJiLCBlcnJvciAlZCIsIF9fRlVOQ1RJT05fXywgcmV0dmFsKTsKKwkJCWdvdG8gZXhpdDsKKwkJfQorCX0KKwljb21tYW5kX2luZm8tPnBvcnRfcnVubmluZysrOworCitleGl0OgorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNvbW1hbmRfaW5mby0+bG9jaywgZmxhZ3MpOworCXJldHVybiByZXR2YWw7Cit9CisKKworc3RhdGljIHZvaWQgc3RvcF9jb21tYW5kX3BvcnQoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkKK3sKKwlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpjb21tYW5kX3BvcnQ7CisJc3RydWN0IHdoaXRlaGVhdF9jb21tYW5kX3ByaXZhdGUgKmNvbW1hbmRfaW5mbzsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJY29tbWFuZF9wb3J0ID0gc2VyaWFsLT5wb3J0W0NPTU1BTkRfUE9SVF07CisJY29tbWFuZF9pbmZvID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKGNvbW1hbmRfcG9ydCk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJmNvbW1hbmRfaW5mby0+bG9jaywgZmxhZ3MpOworCWNvbW1hbmRfaW5mby0+cG9ydF9ydW5uaW5nLS07CisJaWYgKCFjb21tYW5kX2luZm8tPnBvcnRfcnVubmluZykKKwkJdXNiX2tpbGxfdXJiKGNvbW1hbmRfcG9ydC0+cmVhZF91cmIpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNvbW1hbmRfaW5mby0+bG9jaywgZmxhZ3MpOworfQorCisKK3N0YXRpYyBpbnQgc3RhcnRfcG9ydF9yZWFkKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpCit7CisJc3RydWN0IHdoaXRlaGVhdF9wcml2YXRlICppbmZvID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXN0cnVjdCB3aGl0ZWhlYXRfdXJiX3dyYXAgKndyYXA7CisJc3RydWN0IHVyYiAqdXJiOworCWludCByZXR2YWwgPSAwOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc3RydWN0IGxpc3RfaGVhZCAqdG1wOworCXN0cnVjdCBsaXN0X2hlYWQgKnRtcDI7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmaW5mby0+bG9jaywgZmxhZ3MpOworCisJbGlzdF9mb3JfZWFjaF9zYWZlKHRtcCwgdG1wMiwgJmluZm8tPnJ4X3VyYnNfZnJlZSkgeworCQlsaXN0X2RlbCh0bXApOworCQl3cmFwID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCB3aGl0ZWhlYXRfdXJiX3dyYXAsIGxpc3QpOworCQl1cmIgPSB3cmFwLT51cmI7CisJCXVyYi0+ZGV2ID0gcG9ydC0+c2VyaWFsLT5kZXY7CisJCXJldHZhbCA9IHVzYl9zdWJtaXRfdXJiKHVyYiwgR0ZQX0tFUk5FTCk7CisJCWlmIChyZXR2YWwpIHsKKwkJCWxpc3RfYWRkKHRtcCwgJmluZm8tPnJ4X3VyYnNfZnJlZSk7CisJCQlsaXN0X2Zvcl9lYWNoX3NhZmUodG1wLCB0bXAyLCAmaW5mby0+cnhfdXJic19zdWJtaXR0ZWQpIHsKKwkJCQl3cmFwID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCB3aGl0ZWhlYXRfdXJiX3dyYXAsIGxpc3QpOworCQkJCXVyYiA9IHdyYXAtPnVyYjsKKwkJCQl1c2Jfa2lsbF91cmIodXJiKTsKKwkJCQlsaXN0X2RlbCh0bXApOworCQkJCWxpc3RfYWRkKHRtcCwgJmluZm8tPnJ4X3VyYnNfZnJlZSk7CisJCQl9CisJCQlicmVhazsKKwkJfQorCQlsaXN0X2FkZCh0bXAsICZpbmZvLT5yeF91cmJzX3N1Ym1pdHRlZCk7CisJfQorCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW5mby0+bG9jaywgZmxhZ3MpOworCisJcmV0dXJuIHJldHZhbDsKK30KKworCitzdGF0aWMgc3RydWN0IHdoaXRlaGVhdF91cmJfd3JhcCAqdXJiX3RvX3dyYXAoc3RydWN0IHVyYiogdXJiLCBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQoreworCXN0cnVjdCB3aGl0ZWhlYXRfdXJiX3dyYXAgKndyYXA7CisJc3RydWN0IGxpc3RfaGVhZCAqdG1wOworCisJbGlzdF9mb3JfZWFjaCh0bXAsIGhlYWQpIHsKKwkJd3JhcCA9IGxpc3RfZW50cnkodG1wLCBzdHJ1Y3Qgd2hpdGVoZWF0X3VyYl93cmFwLCBsaXN0KTsKKwkJaWYgKHdyYXAtPnVyYiA9PSB1cmIpCisJCQlyZXR1cm4gd3JhcDsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKworCitzdGF0aWMgc3RydWN0IGxpc3RfaGVhZCAqbGlzdF9maXJzdChzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQoreworCXJldHVybiBoZWFkLT5uZXh0OworfQorCisKK3N0YXRpYyB2b2lkIHJ4X2RhdGFfc29mdGludCh2b2lkICpwcml2YXRlKQoreworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqKXByaXZhdGU7CisJc3RydWN0IHdoaXRlaGVhdF9wcml2YXRlICppbmZvID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXN0cnVjdCB0dHlfc3RydWN0ICp0dHkgPSBwb3J0LT50dHk7CisJc3RydWN0IHdoaXRlaGVhdF91cmJfd3JhcCAqd3JhcDsKKwlzdHJ1Y3QgdXJiICp1cmI7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlzdHJ1Y3QgbGlzdF9oZWFkICp0bXA7CisJc3RydWN0IGxpc3RfaGVhZCAqdG1wMjsKKwlpbnQgcmVzdWx0OworCWludCBzZW50ID0gMDsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZpbmZvLT5sb2NrLCBmbGFncyk7CisJaWYgKGluZm8tPmZsYWdzICYgVEhST1RUTEVEKSB7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmluZm8tPmxvY2ssIGZsYWdzKTsKKwkJcmV0dXJuOworCX0KKworCWxpc3RfZm9yX2VhY2hfc2FmZSh0bXAsIHRtcDIsICZpbmZvLT5yeF91cmJfcSkgeworCQlsaXN0X2RlbCh0bXApOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpbmZvLT5sb2NrLCBmbGFncyk7CisKKwkJd3JhcCA9IGxpc3RfZW50cnkodG1wLCBzdHJ1Y3Qgd2hpdGVoZWF0X3VyYl93cmFwLCBsaXN0KTsKKwkJdXJiID0gd3JhcC0+dXJiOworCisJCWlmICh0dHkgJiYgdXJiLT5hY3R1YWxfbGVuZ3RoKSB7CisJCQlpZiAodXJiLT5hY3R1YWxfbGVuZ3RoID4gVFRZX0ZMSVBCVUZfU0laRSAtIHR0eS0+ZmxpcC5jb3VudCkgeworCQkJCXNwaW5fbG9ja19pcnFzYXZlKCZpbmZvLT5sb2NrLCBmbGFncyk7CisJCQkJbGlzdF9hZGQodG1wLCAmaW5mby0+cnhfdXJiX3EpOworCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmluZm8tPmxvY2ssIGZsYWdzKTsKKwkJCQl0dHlfZmxpcF9idWZmZXJfcHVzaCh0dHkpOworCQkJCXNjaGVkdWxlX3dvcmsoJmluZm8tPnJ4X3dvcmspOworCQkJCXJldHVybjsKKwkJCX0KKworCQkJbWVtY3B5KHR0eS0+ZmxpcC5jaGFyX2J1Zl9wdHIsIHVyYi0+dHJhbnNmZXJfYnVmZmVyLCB1cmItPmFjdHVhbF9sZW5ndGgpOworCQkJdHR5LT5mbGlwLmNoYXJfYnVmX3B0ciArPSB1cmItPmFjdHVhbF9sZW5ndGg7CisJCQl0dHktPmZsaXAuY291bnQgKz0gdXJiLT5hY3R1YWxfbGVuZ3RoOworCQkJc2VudCArPSB1cmItPmFjdHVhbF9sZW5ndGg7CisJCX0KKworCQl1cmItPmRldiA9IHBvcnQtPnNlcmlhbC0+ZGV2OworCQlyZXN1bHQgPSB1c2Jfc3VibWl0X3VyYih1cmIsIEdGUF9BVE9NSUMpOworCQlpZiAocmVzdWx0KSB7CisJCQllcnIoIiVzIC0gZmFpbGVkIHJlc3VibWl0dGluZyByZWFkIHVyYiwgZXJyb3IgJWQiLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisJCQlzcGluX2xvY2tfaXJxc2F2ZSgmaW5mby0+bG9jaywgZmxhZ3MpOworCQkJbGlzdF9hZGQodG1wLCAmaW5mby0+cnhfdXJic19mcmVlKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJmluZm8tPmxvY2ssIGZsYWdzKTsKKwkJbGlzdF9hZGQodG1wLCAmaW5mby0+cnhfdXJic19zdWJtaXR0ZWQpOworCX0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpbmZvLT5sb2NrLCBmbGFncyk7CisKKwlpZiAoc2VudCkKKwkJdHR5X2ZsaXBfYnVmZmVyX3B1c2godHR5KTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvbm5lY3QgVGVjaCdzIFdoaXRlIEhlYXQgbW9kdWxlIGZ1bmN0aW9ucworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIGludCBfX2luaXQgd2hpdGVoZWF0X2luaXQgKHZvaWQpCit7CisJaW50IHJldHZhbDsKKwlyZXR2YWwgPSB1c2Jfc2VyaWFsX3JlZ2lzdGVyKCZ3aGl0ZWhlYXRfZmFrZV9kZXZpY2UpOworCWlmIChyZXR2YWwpCisJCWdvdG8gZmFpbGVkX2Zha2VfcmVnaXN0ZXI7CisJcmV0dmFsID0gdXNiX3NlcmlhbF9yZWdpc3Rlcigmd2hpdGVoZWF0X2RldmljZSk7CisJaWYgKHJldHZhbCkKKwkJZ290byBmYWlsZWRfZGV2aWNlX3JlZ2lzdGVyOworCXJldHZhbCA9IHVzYl9yZWdpc3Rlcigmd2hpdGVoZWF0X2RyaXZlcik7CisJaWYgKHJldHZhbCkKKwkJZ290byBmYWlsZWRfdXNiX3JlZ2lzdGVyOworCWluZm8oRFJJVkVSX0RFU0MgIiAiIERSSVZFUl9WRVJTSU9OKTsKKwlyZXR1cm4gMDsKK2ZhaWxlZF91c2JfcmVnaXN0ZXI6CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyKCZ3aGl0ZWhlYXRfZGV2aWNlKTsKK2ZhaWxlZF9kZXZpY2VfcmVnaXN0ZXI6CisJdXNiX3NlcmlhbF9kZXJlZ2lzdGVyKCZ3aGl0ZWhlYXRfZmFrZV9kZXZpY2UpOworZmFpbGVkX2Zha2VfcmVnaXN0ZXI6CisJcmV0dXJuIHJldHZhbDsKK30KKworCitzdGF0aWMgdm9pZCBfX2V4aXQgd2hpdGVoZWF0X2V4aXQgKHZvaWQpCit7CisJdXNiX2RlcmVnaXN0ZXIgKCZ3aGl0ZWhlYXRfZHJpdmVyKTsKKwl1c2Jfc2VyaWFsX2RlcmVnaXN0ZXIgKCZ3aGl0ZWhlYXRfZmFrZV9kZXZpY2UpOworCXVzYl9zZXJpYWxfZGVyZWdpc3RlciAoJndoaXRlaGVhdF9kZXZpY2UpOworfQorCisKK21vZHVsZV9pbml0KHdoaXRlaGVhdF9pbml0KTsKK21vZHVsZV9leGl0KHdoaXRlaGVhdF9leGl0KTsKKworTU9EVUxFX0FVVEhPUiggRFJJVkVSX0FVVEhPUiApOworTU9EVUxFX0RFU0NSSVBUSU9OKCBEUklWRVJfREVTQyApOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworCittb2R1bGVfcGFyYW0odXJiX3Bvb2xfc2l6ZSwgaW50LCAwKTsKK01PRFVMRV9QQVJNX0RFU0ModXJiX3Bvb2xfc2l6ZSwgIk51bWJlciBvZiB1cmJzIHRvIHVzZSBmb3IgYnVmZmVyaW5nIik7CisKK21vZHVsZV9wYXJhbShkZWJ1ZywgYm9vbCwgU19JUlVHTyB8IFNfSVdVU1IpOworTU9EVUxFX1BBUk1fREVTQyhkZWJ1ZywgIkRlYnVnIGVuYWJsZWQgb3Igbm90Iik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvd2hpdGVoZWF0LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwvd2hpdGVoZWF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDcxNGVmZgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC93aGl0ZWhlYXQuaApAQCAtMCwwICsxLDI4MiBAQAorLyoKKyAqIFVTQiBDb25uZWN0VGVjaCBXaGl0ZUhFQVQgZHJpdmVyCisgKgorICogICAgICBDb3B5cmlnaHQgKEMpIDIwMDIKKyAqICAgICAgICAgIENvbm5lY3QgVGVjaCBJbmMuCQorICoKKyAqICAgICAgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwCisgKiAgICAgICAgICBHcmVnIEtyb2FoLUhhcnRtYW4gKGdyZWdAa3JvYWguY29tKQorICoKKyAqICAgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICAgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICAgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAgICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBTZWUgRG9jdW1lbnRhdGlvbi91c2IvdXNiLXNlcmlhbC50eHQgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdXNpbmcgdGhpcyBkcml2ZXIKKyAqCisgKi8KKworI2lmbmRlZiBfX0xJTlVYX1VTQl9TRVJJQUxfV0hJVEVIRUFUX0gKKyNkZWZpbmUgX19MSU5VWF9VU0JfU0VSSUFMX1dISVRFSEVBVF9ICisKKworI2RlZmluZSBGQUxTRQkwCisjZGVmaW5lIFRSVUUJMQorCisKKy8qIFdoaXRlSEVBVCBjb21tYW5kcyAqLworI2RlZmluZSBXSElURUhFQVRfT1BFTgkJCTEJLyogb3BlbiB0aGUgcG9ydCAqLworI2RlZmluZSBXSElURUhFQVRfQ0xPU0UJCQkyCS8qIGNsb3NlIHRoZSBwb3J0ICovCisjZGVmaW5lIFdISVRFSEVBVF9TRVRVUF9QT1JUCQkzCS8qIGNoYW5nZSBwb3J0IHNldHRpbmdzICovCisjZGVmaW5lIFdISVRFSEVBVF9TRVRfUlRTCQk0CS8qIHR1cm4gUlRTIG9uIG9yIG9mZiAqLworI2RlZmluZSBXSElURUhFQVRfU0VUX0RUUgkJNQkvKiB0dXJuIERUUiBvbiBvciBvZmYgKi8KKyNkZWZpbmUgV0hJVEVIRUFUX1NFVF9CUkVBSwkJNgkvKiB0dXJuIEJSRUFLIG9uIG9yIG9mZiAqLworI2RlZmluZSBXSElURUhFQVRfRFVNUAkJCTcJLyogZHVtcCBtZW1vcnkgKi8KKyNkZWZpbmUgV0hJVEVIRUFUX1NUQVRVUwkJOAkvKiBnZXQgc3RhdHVzICovCisjZGVmaW5lIFdISVRFSEVBVF9QVVJHRQkJCTkJLyogY2xlYXIgdGhlIFVBUlQgZmlmb3MgKi8KKyNkZWZpbmUgV0hJVEVIRUFUX0dFVF9EVFJfUlRTCQkxMAkvKiBnZXQgdGhlIHN0YXRlIG9mIERUUiBhbmQgUlRTIGZvciBhIHBvcnQgKi8KKyNkZWZpbmUgV0hJVEVIRUFUX0dFVF9IV19JTkZPCQkxMQkvKiBnZXQgRUVQUk9NIGluZm8gYW5kIGhhcmR3YXJlIElEICovCisjZGVmaW5lIFdISVRFSEVBVF9SRVBPUlRfVFhfRE9ORQkxMgkvKiBnZXQgdGhlIG5leHQgVFggZG9uZSAqLworI2RlZmluZSBXSElURUhFQVRfRVZFTlQJCQkxMwkvKiB1bnNvbGljaXRlZCBzdGF0dXMgZXZlbnRzICovCisjZGVmaW5lIFdISVRFSEVBVF9FQ0hPCQkJMTQJLyogc2VuZCBkYXRhIHRvIHRoZSBpbmRpY2F0ZWQgSU4gZW5kcG9pbnQgKi8KKyNkZWZpbmUgV0hJVEVIRUFUX0RPX1RFU1QJCTE1CS8qIHBlcmZvcm0gdGhlIHNwZWNpZmllZCB0ZXN0ICovCisjZGVmaW5lIFdISVRFSEVBVF9DTURfQ09NUExFVEUJCTE2CS8qIHJlcGx5IGZvciBjZXJ0YWluIGNvbW1hbmRzICovCisjZGVmaW5lIFdISVRFSEVBVF9DTURfRkFJTFVSRQkJMTcJLyogcmVwbHkgZm9yIGZhaWxlZCBjb21tYW5kcyAqLworCisKKy8qCisgKiBDb21tYW5kcyB0byB0aGUgZmlybXdhcmUKKyAqLworCisKKy8qCisgKiBXSElURUhFQVRfT1BFTgorICogV0hJVEVIRUFUX0NMT1NFCisgKiBXSElURUhFQVRfU1RBVFVTCisgKiBXSElURUhFQVRfR0VUX0RUUl9SVFMKKyAqIFdISVRFSEVBVF9SRVBPUlRfVFhfRE9ORQorKi8KK3N0cnVjdCB3aGl0ZWhlYXRfc2ltcGxlIHsKKwlfX3U4CXBvcnQ7CS8qIHBvcnQgbnVtYmVyICgxIHRvIE4pICovCit9OworCisKKy8qCisgKiBXSElURUhFQVRfU0VUVVBfUE9SVAorICovCisjZGVmaW5lIFdISVRFSEVBVF9QQVJfTk9ORQknbicJLyogbm8gcGFyaXR5ICovCisjZGVmaW5lIFdISVRFSEVBVF9QQVJfRVZFTgknZScJLyogZXZlbiBwYXJpdHkgKi8KKyNkZWZpbmUgV0hJVEVIRUFUX1BBUl9PREQJJ28nCS8qIG9kZCBwYXJpdHkgKi8KKyNkZWZpbmUgV0hJVEVIRUFUX1BBUl9TUEFDRQknMCcJLyogc3BhY2UgKGZvcmNlIDApIHBhcml0eSAqLworI2RlZmluZSBXSElURUhFQVRfUEFSX01BUksJJzEnCS8qIG1hcmsgKGZvcmNlIDEpIHBhcml0eSAqLworCisjZGVmaW5lIFdISVRFSEVBVF9TRkxPV19OT05FCSduJwkvKiBubyBzb2Z0d2FyZSBmbG93IGNvbnRyb2wgKi8KKyNkZWZpbmUgV0hJVEVIRUFUX1NGTE9XX1JYCSdyJwkvKiBYT0ZGL09OIGlzIHNlbnQgd2hlbiBSWCBmaWxscy9lbXB0aWVzICovCisjZGVmaW5lIFdISVRFSEVBVF9TRkxPV19UWAkndCcJLyogd2hlbiByZWNlaXZlZCBYT0ZGL09OIHdpbGwgc3RvcC9zdGFydCBUWCAqLworI2RlZmluZSBXSElURUhFQVRfU0ZMT1dfUlhUWAknYicJLyogYm90aCBTRkxPV19SWCBhbmQgU0ZMT1dfVFggKi8KKworI2RlZmluZSBXSElURUhFQVRfSEZMT1dfTk9ORQkJMHgwMAkvKiBubyBoYXJkd2FyZSBmbG93IGNvbnRyb2wgKi8KKyNkZWZpbmUgV0hJVEVIRUFUX0hGTE9XX1JUU19UT0dHTEUJMHgwMQkvKiBSVFMgaXMgb24gZHVyaW5nIHRyYW5zbWl0LCBvZmYgb3RoZXJ3aXNlICovCisjZGVmaW5lIFdISVRFSEVBVF9IRkxPV19EVFIJCTB4MDIJLyogRFRSIGlzIG9mZi9vbiB3aGVuIFJYIGZpbGxzL2VtcHRpZXMgKi8KKyNkZWZpbmUgV0hJVEVIRUFUX0hGTE9XX0NUUwkJMHgwOAkvKiB3aGVuIHJlY2VpdmVkIENUUyBvZmYvb24gd2lsbCBzdG9wL3N0YXJ0IFRYICovCisjZGVmaW5lIFdISVRFSEVBVF9IRkxPV19EU1IJCTB4MTAJLyogd2hlbiByZWNlaXZlZCBEU1Igb2ZmL29uIHdpbGwgc3RvcC9zdGFydCBUWCAqLworI2RlZmluZSBXSElURUhFQVRfSEZMT1dfUlRTCQkweDgwCS8qIFJUUyBpcyBvZmYvb24gd2hlbiBSWCBmaWxscy9lbXB0aWVzICovCisKK3N0cnVjdCB3aGl0ZWhlYXRfcG9ydF9zZXR0aW5ncyB7CisJX191OAlwb3J0OwkJLyogcG9ydCBudW1iZXIgKDEgdG8gTikgKi8KKwlfX3UzMgliYXVkOwkJLyogYW55IHZhbHVlIDcgLSA0NjA4MDAsIGZpcm13YXJlIGNhbGN1bGF0ZXMgYmVzdCBmaXQ7IGFycml2ZXMgbGl0dGxlIGVuZGlhbiAqLworCV9fdTgJYml0czsJCS8qIDUsIDYsIDcsIG9yIDggKi8KKwlfX3U4CXN0b3A7CQkvKiAxIG9yIDIsIGRlZmF1bHQgMSAoMiA9IDEuNSBpZiBiaXRzID0gNSkgKi8KKwlfX3U4CXBhcml0eTsJCS8qIHNlZSBXSElURUhFQVRfUEFSXyogYWJvdmUgKi8KKwlfX3U4CXNmbG93OwkJLyogc2VlIFdISVRFSEVBVF9TRkxPV18qIGFib3ZlICovCisJX191OAl4b2ZmOwkJLyogWE9GRiBieXRlIHZhbHVlICovCisJX191OAl4b247CQkvKiBYT04gYnl0ZSB2YWx1ZSAqLworCV9fdTgJaGZsb3c7CQkvKiBzZWUgV0hJVEVIRUFUX0hGTE9XXyogYWJvdmUgKi8KKwlfX3U4CWxsb29wOwkJLyogMC8xIHR1cm5zIGxvY2FsIGxvb3BiYWNrIG1vZGUgb2ZmL29uICovCit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKworCisvKgorICogV0hJVEVIRUFUX1NFVF9SVFMKKyAqIFdISVRFSEVBVF9TRVRfRFRSCisgKiBXSElURUhFQVRfU0VUX0JSRUFLCisgKi8KKyNkZWZpbmUgV0hJVEVIRUFUX1JUU19PRkYJMHgwMAorI2RlZmluZSBXSElURUhFQVRfUlRTX09OCTB4MDEKKyNkZWZpbmUgV0hJVEVIRUFUX0RUUl9PRkYJMHgwMAorI2RlZmluZSBXSElURUhFQVRfRFRSX09OCTB4MDEKKyNkZWZpbmUgV0hJVEVIRUFUX0JSRUFLX09GRgkweDAwCisjZGVmaW5lIFdISVRFSEVBVF9CUkVBS19PTgkweDAxCisKK3N0cnVjdCB3aGl0ZWhlYXRfc2V0X3JkYiB7CisJX191OAlwb3J0OwkJLyogcG9ydCBudW1iZXIgKDEgdG8gTikgKi8KKwlfX3U4CXN0YXRlOwkJLyogMC8xIHR1cm5zIHNpZ25hbCBvZmYvb24gKi8KK307CisKKworLyoKKyAqIFdISVRFSEVBVF9EVU1QCisgKi8KKyNkZWZpbmUgV0hJVEVIRUFUX0RVTVBfTUVNX0RBVEEJCSdkJyAgLyogZGF0YSAqLworI2RlZmluZSBXSElURUhFQVRfRFVNUF9NRU1fSURBVEEJJ2knICAvKiBpZGF0YSAqLworI2RlZmluZSBXSElURUhFQVRfRFVNUF9NRU1fQkRBVEEJJ2InICAvKiBiZGF0YSAqLworI2RlZmluZSBXSElURUhFQVRfRFVNUF9NRU1fWERBVEEJJ3gnICAvKiB4ZGF0YSAqLworCisvKgorICogQWxsb3dhYmxlIGFkZHJlc3MgcmFuZ2VzIChmaXJtd2FyZSBjaGVja3MgYWRkcmVzcyk6CisgKiBUeXBlIERBVEE6ICAweDAwIC0gMHhmZgorICogVHlwZSBJREFUQTogMHg4MCAtIDB4ZmYKKyAqIFR5cGUgQkRBVEE6IDB4MjAgLSAweDJmCisgKiBUeXBlIFhEQVRBOiAweDAwMDAgLSAweGZmZmYKKyAqCisgKiBCL0kvREFUQSBhbGwgcmVhZCB0aGUgbG9jYWwgbWVtb3J5IHNwYWNlCisgKiBYREFUQSByZWFkcyB0aGUgZXh0ZXJuYWwgbWVtb3J5IHNwYWNlCisgKiBCREFUQSByZXR1cm5zIGJpdHMgYXMgYnl0ZXMKKyAqCisgKiBOT1RFOiAweDgwIC0gMHhmZiAobG9jYWwgc3BhY2UpIGFyZSB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMKKyAqICAgICAgIG9mIHRoZSA4MDUxLCBhbmQgc29tZSBoYXZlIG9uLXJlYWQgc2lkZS1lZmZlY3RzLgorICovCisKK3N0cnVjdCB3aGl0ZWhlYXRfZHVtcCB7CisJX191OAltZW1fdHlwZTsJLyogc2VlIFdISVRFSEVBVF9EVU1QXyogYWJvdmUgKi8KKwlfX3UxNglhZGRyOwkJLyogYWRkcmVzcywgc2VlIHJlc3RyaWN0aW9ucyBhYm92ZSAqLworCV9fdTE2CWxlbmd0aDsJCS8qIG51bWJlciBvZiBieXRlcyB0byBkdW1wLCBtYXggNjMgYnl0ZXMgKi8KK307CisKKworLyoKKyAqIFdISVRFSEVBVF9QVVJHRQorICovCisjZGVmaW5lIFdISVRFSEVBVF9QVVJHRV9SWAkweDAxCS8qIHB1cmdlIHJ4IGZpZm9zICovCisjZGVmaW5lIFdISVRFSEVBVF9QVVJHRV9UWAkweDAyCS8qIHB1cmdlIHR4IGZpZm9zICovCisKK3N0cnVjdCB3aGl0ZWhlYXRfcHVyZ2UgeworCV9fdTgJcG9ydDsJCS8qIHBvcnQgbnVtYmVyICgxIHRvIE4pICovCisJX191OAl3aGF0OwkJLyogYml0IHBhdHRlcm4gb2Ygd2hhdCB0byBwdXJnZSAqLworfTsKKworCisvKgorICogV0hJVEVIRUFUX0VDSE8KKyAqLworc3RydWN0IHdoaXRlaGVhdF9lY2hvIHsKKwlfX3U4CXBvcnQ7CQkvKiBwb3J0IG51bWJlciAoMSB0byBOKSAqLworCV9fdTgJbGVuZ3RoOwkJLyogbGVuZ3RoIG9mIG1lc3NhZ2UgdG8gZWNobywgbWF4IDYxIGJ5dGVzICovCisJX191OAllY2hvX2RhdGFbNjFdOwkvKiBkYXRhIHRvIGVjaG8gKi8KK307CisKKworLyoKKyAqIFdISVRFSEVBVF9ET19URVNUCisgKi8KKyNkZWZpbmUgV0hJVEVIRUFUX1RFU1RfVUFSVF9SVwkJMHgwMSAgLyogcmVhZC93cml0ZSB1YXJ0IHJlZ2lzdGVycyAqLworI2RlZmluZSBXSElURUhFQVRfVEVTVF9VQVJUX0lOVFIJMHgwMiAgLyogdWFydCBpbnRlcnJ1cHQgKi8KKyNkZWZpbmUgV0hJVEVIRUFUX1RFU1RfU0VUVVBfQ09OVAkweDAzICAvKiBzZXR1cCBmb3IgUE9SVF9DT05UL1BPUlRfRElTQ09OVCAqLworI2RlZmluZSBXSElURUhFQVRfVEVTVF9QT1JUX0NPTlQJMHgwNCAgLyogcG9ydCBjb25uZWN0ICovCisjZGVmaW5lIFdISVRFSEVBVF9URVNUX1BPUlRfRElTQ09OVAkweDA1ICAvKiBwb3J0IGRpc2Nvbm5lY3QgKi8KKyNkZWZpbmUgV0hJVEVIRUFUX1RFU1RfVUFSVF9DTEtfU1RBUlQJMHgwNiAgLyogdWFydCBjbG9jayB0ZXN0IHN0YXJ0ICovCisjZGVmaW5lIFdISVRFSEVBVF9URVNUX1VBUlRfQ0xLX1NUT1AJMHgwNyAgLyogdWFydCBjbG9jayB0ZXN0IHN0b3AgKi8KKyNkZWZpbmUgV0hJVEVIRUFUX1RFU1RfTU9ERU1fRlQJCTB4MDggIC8qIG1vZGVtIHNpZ25hbHMsIHJlcXVpcmVzIGEgbG9vcGJhY2sgY2FibGUvY29ubmVjdG9yICovCisjZGVmaW5lIFdISVRFSEVBVF9URVNUX0VSQVNFX0VFUFJPTQkweDA5ICAvKiBlcmFzZSBlZXByb20gKi8KKyNkZWZpbmUgV0hJVEVIRUFUX1RFU1RfUkVBRF9FRVBST00JMHgwYSAgLyogcmVhZCBlZXByb20gKi8KKyNkZWZpbmUgV0hJVEVIRUFUX1RFU1RfUFJPR1JBTV9FRVBST00JMHgwYiAgLyogcHJvZ3JhbSBlZXByb20gKi8KKworc3RydWN0IHdoaXRlaGVhdF90ZXN0IHsKKwlfX3U4CXBvcnQ7CQkvKiBwb3J0IG51bWJlciAoMSB0byBuKSAqLworCV9fdTgJdGVzdDsJCS8qIHNlZSBXSElURUhFQVRfVEVTVF8qIGFib3ZlKi8KKwlfX3U4CWluZm9bMzJdOwkvKiBhZGRpdGlvbmFsIGluZm8gKi8KK307CisKKworLyoKKyAqIFJlcGxpZXMgZnJvbSB0aGUgZmlybXdhcmUKKyAqLworCisKKy8qCisgKiBXSElURUhFQVRfU1RBVFVTCisgKi8KKyNkZWZpbmUgV0hJVEVIRUFUX0VWRU5UX01PREVNCQkweDAxCS8qIG1vZGVtIGZpZWxkIGlzIHZhbGlkICovCisjZGVmaW5lIFdISVRFSEVBVF9FVkVOVF9FUlJPUgkJMHgwMgkvKiBlcnJvciBmaWVsZCBpcyB2YWxpZCAqLworI2RlZmluZSBXSElURUhFQVRfRVZFTlRfRkxPVwkJMHgwNAkvKiBmbG93IGZpZWxkIGlzIHZhbGlkICovCisjZGVmaW5lIFdISVRFSEVBVF9FVkVOVF9DT05ORUNUCQkweDA4CS8qIGNvbm5lY3QgZmllbGQgaXMgdmFsaWQgKi8KKworI2RlZmluZSBXSElURUhFQVRfRkxPV19OT05FCQkweDAwCS8qIG5vIGZsb3cgY29udHJvbCBhY3RpdmUgKi8KKyNkZWZpbmUgV0hJVEVIRUFUX0ZMT1dfSEFSRF9PVVQJCTB4MDEJLyogVFggaXMgc3RvcHBlZCBieSBDVFMgKHdhaXRpbmcgZm9yIENUUyB0byBnbyBvbikgKi8KKyNkZWZpbmUgV0hJVEVIRUFUX0ZMT1dfSEFSRF9JTgkJMHgwMgkvKiByZW1vdGUgVFggaXMgc3RvcHBlZCBieSBSVFMgKi8KKyNkZWZpbmUgV0hJVEVIRUFUX0ZMT1dfU09GVF9PVVQJCTB4MDQJLyogVFggaXMgc3RvcHBlZCBieSBYT0ZGIHJlY2VpdmVkICh3YWl0aW5nIGZvciBYT04pICovCisjZGVmaW5lIFdISVRFSEVBVF9GTE9XX1NPRlRfSU4JCTB4MDgJLyogcmVtb3RlIFRYIGlzIHN0b3BwZWQgYnkgWE9GRiB0cmFuc21pdHRlZCAqLworI2RlZmluZSBXSElURUhFQVRfRkxPV19UWF9ET05FCQkweDgwCS8qIFRYIGhhcyBjb21wbGV0ZWQgKi8KKworc3RydWN0IHdoaXRlaGVhdF9zdGF0dXNfaW5mbyB7CisJX191OAlwb3J0OwkJLyogcG9ydCBudW1iZXIgKDEgdG8gTikgKi8KKwlfX3U4CWV2ZW50OwkJLyogaW5kaWNhdGVzIHdoYXQgdGhlIGN1cnJlbnQgZXZlbnQgaXMsIHNlZSBXSElURUhFQVRfRVZFTlRfKiBhYm92ZSAqLworCV9fdTgJbW9kZW07CQkvKiBtb2RlbSBzaWduYWwgc3RhdHVzIChjb3B5IG9mIHVhcnQncyBNU1IgcmVnaXN0ZXIpICovCisJX191OAllcnJvcjsJCS8qIGxpbmUgc3RhdHVzIChjb3B5IG9mIHVhcnQncyBMU1IgcmVnaXN0ZXIpICovCisJX191OAlmbG93OwkJLyogZmxvdyBjb250cm9sIHN0YXRlLCBzZWUgV0hJVEVIRUFUX0ZMT1dfKiBhYm92ZSAqLworCV9fdTgJY29ubmVjdDsJLyogMCBtZWFucyBub3QgY29ubmVjdGVkLCBub24temVybyBtZWFucyBjb25uZWN0ZWQgKi8KK307CisKKworLyoKKyAqIFdISVRFSEVBVF9HRVRfRFRSX1JUUworICovCitzdHJ1Y3Qgd2hpdGVoZWF0X2RyX2luZm8geworCV9fdTgJbWNyOwkJLyogY29weSBvZiB1YXJ0J3MgTUNSIHJlZ2lzdGVyICovCit9OworCisKKy8qCisgKiBXSElURUhFQVRfR0VUX0hXX0lORk8KKyAqLworc3RydWN0IHdoaXRlaGVhdF9od19pbmZvIHsKKwlfX3U4CWh3X2lkOwkJLyogaGFyZHdhcmUgaWQgbnVtYmVyLCBXaGl0ZUhFQVQgPSAwICovCisJX191OAlzd19tYWpvcl9yZXY7CS8qIG1ham9yIHZlcnNpb24gbnVtYmVyICovCisJX191OAlzd19taW5vcl9yZXY7CS8qIG1pbm9yIHZlcnNpb24gbnVtYmVyICovCisJc3RydWN0IHdoaXRlaGVhdF9od19lZXByb21faW5mbyB7CisJCV9fdTgJYjA7CQkJLyogQjAgKi8KKwkJX191OAl2ZW5kb3JfaWRfbG93OwkJLyogdmVuZG9yIGlkIChsb3cgYnl0ZSkgKi8KKwkJX191OAl2ZW5kb3JfaWRfaGlnaDsJCS8qIHZlbmRvciBpZCAoaGlnaCBieXRlKSAqLworCQlfX3U4CXByb2R1Y3RfaWRfbG93OwkJLyogcHJvZHVjdCBpZCAobG93IGJ5dGUpICovCisJCV9fdTgJcHJvZHVjdF9pZF9oaWdoOwkvKiBwcm9kdWN0IGlkIChoaWdoIGJ5dGUpICovCisJCV9fdTgJZGV2aWNlX2lkX2xvdzsJCS8qIGRldmljZSBpZCAobG93IGJ5dGUpICovCisJCV9fdTgJZGV2aWNlX2lkX2hpZ2g7CQkvKiBkZXZpY2UgaWQgKGhpZ2ggYnl0ZSkgKi8KKwkJX191OAlub3RfdXNlZF8xOworCQlfX3U4CXNlcmlhbF9udW1iZXJfMDsJLyogc2VyaWFsIG51bWJlciAobG93IGJ5dGUpICovCisJCV9fdTgJc2VyaWFsX251bWJlcl8xOwkvKiBzZXJpYWwgbnVtYmVyICovCisJCV9fdTgJc2VyaWFsX251bWJlcl8yOwkvKiBzZXJpYWwgbnVtYmVyICovCisJCV9fdTgJc2VyaWFsX251bWJlcl8zOwkvKiBzZXJpYWwgbnVtYmVyIChoaWdoIGJ5dGUpICovCisJCV9fdTgJbm90X3VzZWRfMjsKKwkJX191OAlub3RfdXNlZF8zOworCQlfX3U4CWNoZWNrc3VtX2xvdzsJCS8qIGNoZWNrc3VtIChsb3cgYnl0ZSkgKi8KKwkJX191OAljaGVja3N1bV9oaWdoOwkJLyogY2hlY2tzdW0gKGhpZ2ggYnl0ZSAqLworCX0gaHdfZWVwcm9tX2luZm87CS8qIEVFUFJPTSBjb250ZW50cyAqLworfTsKKworCisvKgorICogV0hJVEVIRUFUX0VWRU5UCisgKi8KK3N0cnVjdCB3aGl0ZWhlYXRfZXZlbnRfaW5mbyB7CisJX191OAlwb3J0OwkJLyogcG9ydCBudW1iZXIgKDEgdG8gTikgKi8KKwlfX3U4CWV2ZW50OwkJLyogc2VlIHdoaXRlaGVhdF9zdGF0dXNfaW5mby5ldmVudCAqLworCV9fdTgJaW5mbzsJCS8qIHNlZSB3aGl0ZWhlYXRfc3RhdHVzX2luZm8ubW9kZW0sIC5lcnJvciwgLmZsb3csIC5jb25uZWN0ICovCit9OworCisKKy8qCisgKiBXSElURUhFQVRfRE9fVEVTVAorICovCisjZGVmaW5lIFdISVRFSEVBVF9URVNUX0ZBSUwJMHgwMCAgLyogdGVzdCBmYWlsZWQgKi8KKyNkZWZpbmUgV0hJVEVIRUFUX1RFU1RfVU5LTk9XTgkweDAxICAvKiB1bmtub3duIHRlc3QgcmVxdWVzdGVkICovCisjZGVmaW5lIFdISVRFSEVBVF9URVNUX1BBU1MJMHhmZiAgLyogdGVzdCBwYXNzZWQgKi8KKworc3RydWN0IHdoaXRlaGVhdF90ZXN0X2luZm8geworCV9fdTgJcG9ydDsJCS8qIHBvcnQgbnVtYmVyICgxIHRvIE4pICovCisJX191OAl0ZXN0OwkJLyogaW5kaWNhdGVzIHdoaWNoIHRlc3QgdGhpcyBpcyBhIHJlc3BvbnNlIGZvciwgc2VlIFdISVRFSEVBVF9ET19URVNUIGFib3ZlICovCisJX191OAlzdGF0dXM7CQkvKiBzZWUgV0hJVEVIRUFUX1RFU1RfKiBhYm92ZSAqLworCV9fdTgJcmVzdWx0c1szMl07CS8qIHRlc3QtZGVwZW5kZW50IHJlc3VsdHMgKi8KK307CisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvd2hpdGVoZWF0X2Z3LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwvd2hpdGVoZWF0X2Z3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGUwYmRjNwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC93aGl0ZWhlYXRfZncuaApAQCAtMCwwICsxLDE2NjkgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICAgICAgd2hpdGVoZWF0LmggIC0tICBDb25uZWN0VGVjaCBXaGl0ZUhFQVQgRmlybXdhcmUuCisgKgorICogICAgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMiAgQ29ubmVjdFRlY2ggSW5jIChodHRwOi8vd3d3LmNvbm5lY3R0ZWNoLmNvbS8pCisgKgorICogICAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogICAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogICAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogICAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICAgICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICAgICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgICAgIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgorICoKKyAqICgxMC8wOS8yMDAyKSBTdHVhcnQgTWFjRG9uYWxkCisgKglGaXJtd2FyZSA0LjA2CisgKgorICogKDA0LzA5LzIwMDApIGdraAorICoJVXBkYXRlZCB0aGUgZmlybXdhcmUgd2l0aCB0aGUgbGF0ZXN0IHByb3ZpZGVkIGJ5IENvbm5lY3RUZWNoLgorICoKKyAqICgwMS8xNi8yMDAwKSBna2gKKyAqCUZpeGVkIG15IGludGVsIGhleCBwcm9jZXNzaW5nIHRvb2wsIHNvIG5vdyB0aGUgZmlybXdhcmUgYWN0dWFsbHkKKyAqCW1hdGNoZXMgdGhlIG9yaWdpbmFsIGZpbGUgKHRoaXMgd2FzIGNhdXNpbmcgYSBmZXcgcHJvYmxlbXMuLi4pCisgKgorICogKDAxLzE1LzIwMDApIGdraAorICoJQWRkZWQgZGVidWcgbG9hZGVyIGZpcm13YXJlIGlmIERFQlVHIGlzICNkZWZpbmVkOgorICoJCVBvcnQgMSBMRUQgZmxhc2hlcyB3aGVuIHRoZSB2ZW5kX2F4IHByb2dyYW0gaXMgcnVubmluZworICoJCVBvcnQgMiBMRUQgZmxhc2hlcyB3aGVuIGFueSBTRVRVUCBjb21tYW5kIGFycml2ZXMKKyAqCQlQb3J0IDMgTEVEIGZsYXNoZXMgd2hlbiBhbnkgdmFsaWQgVkVORE9SIHJlcXVlc3Qgb2NjdXJzCisgKgkJUG9ydCA0IExFRCBmbGFzaGVzIHdoZW4gdGhlIEVYVEVSTkFMIFJBTSBET1dOTE9BRCByZXF1ZXN0IG9jY3VycworICoKKyAqIHZlcnNpb24gMS4wICgwMS8wOS8yMDAwKSBna2gKKyAqCU9yaWdpbmFsIGZpcm13YXJlIGZyb20gQ29ubmVjdFRlY2ggbWFzc2FnZWQgYSBsaXR0bGUgdG8gYmUgcHJvZ3JhbQorICoJcmVhZGFibGUuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIHdoaXRlaGVhdF9EQVRFICIyMDAwMDEwNiIKKworc3RydWN0IHdoaXRlaGVhdF9oZXhfcmVjb3JkIHsKKwlfX3UxNglhZGRyZXNzOworCV9fdTgJZGF0YV9zaXplOworCV9fdTgJZGF0YVsxNl07Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHdoaXRlaGVhdF9oZXhfcmVjb3JkIHdoaXRlaGVhdF9maXJtd2FyZVtdID0geworeyAweDAwMDAsCTMsCXsweDAyLCAweDk3LCAweGUzfSB9LAoreyAweDAwMDMsCTMsCXsweDAyLCAweDEzLCAweDEyfSB9LAoreyAweDAwMGIsCTMsCXsweDAyLCAweDBiLCAweGI1fSB9LAoreyAweDAwMzMsCTMsCXsweDAyLCAweDA4LCAweDFjfSB9LAoreyAweDAwNDMsCTMsCXsweDAyLCAweDBhLCAweDAwfSB9LAoreyAweDAwNWIsCTMsCXsweDAyLCAweDgzLCAweDNifSB9LAoreyAweDAzNzAsCTE2LAl7MHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNCwgMHg3MywgMHgxNCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNCwgMHhlNywgMHgyNH0gfSwKK3sgMHgwMzgwLAkxNiwJezB4ZmUsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDUsIDB4NGYsIDB4MjQsIDB4ZmIsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4NjQsIDB4MTQsIDB4NzAsIDB4MDN9IH0sCit7IDB4MDM5MCwJMTYsCXsweDAyLCAweDA0LCAweDUyLCAweDE0LCAweDcwLCAweDAzLCAweDAyLCAweDA0LCAweDNhLCAweDE0LCAweDcwLCAweDAzLCAweDAyLCAweDA0LCAweDQ5LCAweDI0fSB9LAoreyAweDAzYTAsCTE2LAl7MHgwNSwgMHg2MCwgMHgwMywgMHgwMiwgMHgwNSwgMHg5ZSwgMHg5MCwgMHg3ZiwgMHhlYiwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxNiwgMHgxNCwgMHg2MH0gfSwKK3sgMHgwM2IwLAkxNiwJezB4MzYsIDB4MjQsIDB4MDIsIDB4NzAsIDB4N2IsIDB4NzQsIDB4MTIsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4MDAsIDB4OTAsIDB4N2YsIDB4ZDV9IH0sCit7IDB4MDNjMCwJMTYsCXsweGYwLCAweDAyLCAweDA1LCAweGE1LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGZmLCAweDEyLCAweDBhLCAweDk5LCAweGVhLCAweDQ5LCAweDYwLCAweDBkfSB9LAoreyAweDAzZDAsCTE2LAl7MHhlYSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHhlOSwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhNSwgMHg5MCwgMHg3ZiwgMHhiNH0gfSwKK3sgMHgwM2UwLAkxNiwJezB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTUsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MGEsIDB4NTgsIDB4ZWF9IH0sCit7IDB4MDNmMCwJMTYsCXsweDQ5LCAweDYwLCAweDMzLCAweDEyLCAweGEyLCAweDNiLCAweGY1LCAweDRlLCAweDkwLCAweDdmLCAweGVlLCAweGUwLCAweGZmLCAweGU1LCAweDRlLCAweGQzfSB9LAoreyAweDA0MDAsCTE2LAl7MHg5ZiwgMHg0MCwgMHgwMywgMHhlMCwgMHhmNSwgMHg0ZSwgMHhlNSwgMHg0ZSwgMHhkMywgMHg5NCwgMHg0MCwgMHg0MCwgMHgwMywgMHg3NSwgMHg0ZSwgMHg0MH0gfSwKK3sgMHgwNDEwLAkxNiwJezB4YWUsIDB4MDIsIDB4YWYsIDB4MDEsIDB4N2MsIDB4N2YsIDB4N2QsIDB4MDAsIDB4YWIsIDB4NGUsIDB4MTIsIDB4OTEsIDB4MzcsIDB4OTAsIDB4N2YsIDB4YjV9IH0sCit7IDB4MDQyMCwJMTYsCXsweGU1LCAweDRlLCAweGYwLCAweDAyLCAweDA1LCAweGE1LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA1LCAweGE1fSB9LAoreyAweDA0MzAsCTE2LAl7MHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhNSwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhlNSwgMHgyMSwgMHhmMH0gfSwKK3sgMHgwNDQwLAkxNiwJezB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTUsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MjEsIDB4MDJ9IH0sCit7IDB4MDQ1MCwJMTYsCXsweDA1LCAweGE1LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDM1LCAweGQyLCAweDAyLCAweDQzLCAweDg4LCAweDEwLCAweGQyLCAweGViLCAweGQyfSB9LAoreyAweDA0NjAsCTE2LAl7MHhhOCwgMHgwMiwgMHgwNSwgMHhhNSwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhlNSwgMHgzNSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMH0gfSwKK3sgMHgwNDcwLAkxNiwJezB4MDIsIDB4MDUsIDB4YTUsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4N2YsIDB4NjAsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MzEsIDB4MjQsIDB4MDJ9IH0sCit7IDB4MDQ4MCwJMTYsCXsweDcwLCAweDViLCAweGEyLCAweDAwLCAweGU0LCAweDMzLCAweGZmLCAweDI1LCAweGUwLCAweGZmLCAweGEyLCAweDA1LCAweGU0LCAweDMzLCAweDRmLCAweDkwfSB9LAoreyAweDA0OTAsCTE2LAl7MHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhNSwgMHhlNH0gfSwKK3sgMHgwNGEwLAkxNiwJezB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTUsIDB4OTB9IH0sCit7IDB4MDRiMCwJMTYsCXsweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1fSB9LAoreyAweDA0YzAsCTE2LAl7MHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHgwMSwgMHg5MCwgMHg3ZiwgMHgwMH0gfSwKK3sgMHgwNGQwLAkxNiwJezB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTUsIDB4OTAsIDB4N2YsIDB4YjR9IH0sCit7IDB4MDRlMCwJMTYsCXsweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA1LCAweGE1LCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDFkLCAweDI0fSB9LAoreyAweDA0ZjAsCTE2LAl7MHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwNSwgMHhhNSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNSwgMHhjMiwgMHgwMCwgMHgwMn0gfSwKK3sgMHgwNTAwLAkxNiwJezB4MDUsIDB4YTUsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTUsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTB9IH0sCit7IDB4MDUxMCwJMTYsCXsweDcwLCAweDM0LCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGZmLCAweDU0LCAweDA3LCAweGZlLCAweGY1LCAweDRlLCAweGVmLCAweDMwLCAweGU3LCAweDAzfSB9LAoreyAweDA1MjAsCTE2LAl7MHg0MywgMHg0ZSwgMHgxMCwgMHg5MCwgMHg3ZiwgMHhkNywgMHhlNSwgMHg0ZSwgMHhmMCwgMHhlNSwgMHg0ZSwgMHg0NCwgMHgyMCwgMHhmMCwgMHhlZiwgMHhmNH0gfSwKK3sgMHgwNTMwLAkxNiwJezB4NTQsIDB4ODAsIDB4ZmQsIDB4YzQsIDB4NTQsIDB4MGYsIDB4MmUsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2Z9IH0sCit7IDB4MDU0MCwJMTYsCXsweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDgwLCAweDVmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDU2LCAweDkwfSB9LAoreyAweDA1NTAsCTE2LAl7MHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxOCwgMHgyNCwgMHgwMiwgMHg3MCwgMHg0YSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNH0gfSwKK3sgMHgwNTYwLAkxNiwJezB4MDEsIDB4MDQsIDB4ZDIsIDB4MDAsIDB4ODAsIDB4M2YsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MzYsIDB4OTB9IH0sCit7IDB4MDU3MCwJMTYsCXsweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDIwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmfSB9LAoreyAweDA1ODAsCTE2LAl7MHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4M30gfSwKK3sgMHgwNTkwLAkxNiwJezB4NzQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2Z9IH0sCit7IDB4MDVhMCwJMTIsCXsweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwfSB9LAoreyAweDA1YWMsCTEsCXsweDIyfSB9LAoreyAweDA1YWQsCTE2LAl7MHg3NSwgMHg0YSwgMHhmZiwgMHg3NSwgMHg0OSwgMHhmZiwgMHg3NSwgMHg0OCwgMHgwZiwgMHg3NSwgMHg0NywgMHgwMCwgMHhkMiwgMHgwMywgMHhjMiwgMHgwNn0gfSwKK3sgMHgwNWJkLAkxNiwJezB4YzIsIDB4MDIsIDB4YzIsIDB4MDAsIDB4YzIsIDB4MDUsIDB4YzIsIDB4MDEsIDB4OTAsIDB4MDMsIDB4MDAsIDB4NzQsIDB4MTksIDB4ZjAsIDB4ZTQsIDB4OTB9IH0sCit7IDB4MDVjZCwJMTYsCXsweDAxLCAweGJjLCAweGYwLCAweGMyLCAweDA0LCAweDkwLCAweDAxLCAweGMwLCAweGYwLCAweGEzLCAweGYwLCAweGMyLCAweGFmLCAweGMyLCAweGE4LCAweDEyfSB9LAoreyAweDA1ZGQsCTE2LAl7MHgwYywgMHgyMiwgMHhlNCwgMHg5MCwgMHgwMiwgMHhhZiwgMHhmMCwgMHg5MCwgMHgwMSwgMHhiZCwgMHhmMCwgMHg5MCwgMHgwMSwgMHgwMCwgMHhmMCwgMHhhM30gfSwKK3sgMHgwNWVkLAkxNiwJezB4ZjAsIDB4YTMsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4YTN9IH0sCit7IDB4MDVmZCwJMTYsCXsweDc0LCAweDA4LCAweGYwLCAweDdlLCAweDAxLCAweDdmLCAweDAwLCAweDEyLCAweDE5LCAweGMxLCAweDc1LCAweDRjLCAweDEyLCAweDc1LCAweDRkLCAweDBhfSB9LAoreyAweDA2MGQsCTE2LAl7MHg5MCwgMHgwMSwgMHgwYiwgMHhlMCwgMHhmZiwgMHgwNSwgMHg0ZCwgMHhlNSwgMHg0ZCwgMHhhYywgMHg0YywgMHg3MCwgMHgwMiwgMHgwNSwgMHg0YywgMHgxNH0gfSwKK3sgMHgwNjFkLAkxNiwJezB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4MGMsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZmYsIDB4MDUsIDB4NGQsIDB4ZTV9IH0sCit7IDB4MDYyZCwJMTYsCXsweDRkLCAweGFjLCAweDRjLCAweDcwLCAweDAyLCAweDA1LCAweDRjLCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDkwLCAweDAxfSB9LAoreyAweDA2M2QsCTE2LAl7MHgwZCwgMHhlMCwgMHhmZiwgMHgwNSwgMHg0ZCwgMHhlNSwgMHg0ZCwgMHhhYywgMHg0YywgMHg3MCwgMHgwMiwgMHgwNSwgMHg0YywgMHgxNCwgMHhmNSwgMHg4Mn0gfSwKK3sgMHgwNjRkLAkxNiwJezB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4MGUsIDB4ZTAsIDB4ZmYsIDB4MDUsIDB4NGQsIDB4ZTUsIDB4NGQsIDB4YWMsIDB4NGMsIDB4NzB9IH0sCit7IDB4MDY1ZCwJMTYsCXsweDAyLCAweDA1LCAweDRjLCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDkwLCAweDEyLCAweDBhLCAweGU0LCAweDkzLCAweGZmfSB9LAoreyAweDA2NmQsCTE2LAl7MHg3NCwgMHgwMSwgMHg5MywgMHg5MCwgMHgwMSwgMHgxYywgMHhjZiwgMHhmMCwgMHhhMywgMHhlZiwgMHhmMCwgMHg5MCwgMHgwMSwgMHgxYywgMHhlMCwgMHhmZn0gfSwKK3sgMHgwNjdkLAkxNiwJezB4YTMsIDB4ZTAsIDB4ZmUsIDB4ZWYsIDB4NmUsIDB4ZmYsIDB4OTAsIDB4MDEsIDB4MWMsIDB4ZjAsIDB4YTMsIDB4ZTAsIDB4NmYsIDB4ZmYsIDB4ZjAsIDB4OTB9IH0sCit7IDB4MDY4ZCwJMTYsCXsweDAxLCAweDFjLCAweGUwLCAweDZmLCAweGYwLCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweGZmLCAweGU0LCAweGZjLCAweGZkLCAweDc1LCAweDUyLCAweDEwfSB9LAoreyAweDA2OWQsCTE2LAl7MHg3NSwgMHg1MywgMHgwMiwgMHg3NSwgMHg1NCwgMHgxMiwgMHg3NSwgMHg1NSwgMHhhYywgMHgxMiwgMHg5NCwgMHgyNiwgMHg3NSwgMHg0YywgMHgxMiwgMHg3NX0gfSwKK3sgMHgwNmFkLAkxNiwJezB4NGQsIDB4YjIsIDB4OTAsIDB4MDEsIDB4MGQsIDB4ZTAsIDB4ZmYsIDB4MDUsIDB4NGQsIDB4ZTUsIDB4NGQsIDB4YWMsIDB4NGMsIDB4NzAsIDB4MDIsIDB4MDV9IH0sCit7IDB4MDZiZCwJMTYsCXsweDRjLCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDkwLCAweDAxLCAweDBlLCAweGUwLCAweGZmLCAweDA1LCAweDRkLCAweGU1fSB9LAoreyAweDA2Y2QsCTE2LAl7MHg0ZCwgMHhhYywgMHg0YywgMHg3MCwgMHgwMiwgMHgwNSwgMHg0YywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHg5MCwgMHg3Zn0gfSwKK3sgMHgwNmRkLAkxNiwJezB4OTIsIDB4ZTAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4MjQsIDB4NDEsIDB4ZmYsIDB4MDUsIDB4NGQsIDB4ZTUsIDB4NGQsIDB4YWMsIDB4NGMsIDB4NzB9IH0sCit7IDB4MDZlZCwJMTYsCXsweDAyLCAweDA1LCAweDRjLCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDRkLCAweGU1LCAweDRkLCAweGFlLCAweDRjfSB9LAoreyAweDA2ZmQsCTE2LAl7MHg3MCwgMHgwMiwgMHgwNSwgMHg0YywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlNCwgMHhmMCwgMHg3NSwgMHg4MiwgMHgxMCwgMHg3NSwgMHg4M30gfSwKK3sgMHgwNzBkLAkxNiwJezB4MDEsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4OTAsIDB4MDEsIDB4MTgsIDB4MTJ9IH0sCit7IDB4MDcxZCwJMTYsCXsweGEzLCAweGVlLCAweDdlLCAweDAxLCAweDdmLCAweDE4LCAweDEyLCAweDg2LCAweGJlLCAweDkwLCAweDAxLCAweDE4LCAweGUwLCAweGZjLCAweGEzLCAweGUwfSB9LAoreyAweDA3MmQsCTE2LAl7MHhmZCwgMHhhMywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHhmZiwgMHg3NSwgMHg1MiwgMHgwYSwgMHg3NSwgMHg1MywgMHgwNiwgMHg3NSwgMHg1NCwgMHgxMn0gfSwKK3sgMHgwNzNkLAkxNiwJezB4NzUsIDB4NTUsIDB4YjgsIDB4MTIsIDB4OTQsIDB4MjYsIDB4ZDIsIDB4ZTgsIDB4NDMsIDB4ZDgsIDB4MjAsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4ZmZ9IH0sCit7IDB4MDc0ZCwJMTYsCXsweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFmLCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGFlLCAweGUwLCAweDQ0fSB9LAoreyAweDA3NWQsCTE2LAl7MHgxZiwgMHhmMCwgMHhkMiwgMHhhZiwgMHgyMCwgMHgwMSwgMHgyZSwgMHgyMCwgMHgwMSwgMHgyYiwgMHhhMiwgMHgwMywgMHg5MiwgMHgwNywgMHgxMiwgMHgwOX0gfSwKK3sgMHgwNzZkLAkxNiwJezB4YzUsIDB4NzUsIDB4NDYsIDB4NTAsIDB4NzUsIDB4NDUsIDB4NmQsIDB4NzUsIDB4NDQsIDB4MzMsIDB4NzUsIDB4NDMsIDB4MDAsIDB4MjAsIDB4MDEsIDB4ZTR9IH0sCit7IDB4MDc3ZCwJMTYsCXsweDdmLCAweGZmLCAweDdlLCAweGZmLCAweDdkLCAweGZmLCAweDdjLCAweGZmLCAweDc4LCAweDQzLCAweDEyLCAweGEzLCAweGQ3LCAweGVjLCAweDRkLCAweDRlfSB9LAoreyAweDA3OGQsCTE2LAl7MHg0ZiwgMHg2MCwgMHhkMSwgMHg4MCwgMHhlOCwgMHgzMCwgMHgwMSwgMHgwNSwgMHgxMiwgMHgwMywgMHg3MCwgMHhjMiwgMHgwMSwgMHgzMCwgMHgwNiwgMHgwYX0gfSwKK3sgMHgwNzlkLAkxNiwJezB4MTIsIDB4MDksIDB4ZmIsIDB4NTAsIDB4MDMsIDB4MTIsIDB4MGEsIDB4ZTgsIDB4YzIsIDB4MDYsIDB4MTIsIDB4OTYsIDB4NWUsIDB4OTAsIDB4MDEsIDB4YmR9IH0sCit7IDB4MDdhZCwJMTYsCXsweGUwLCAweDYwLCAweDBjLCAweDEyLCAweDkyLCAweDAxLCAweGU0LCAweDkwLCAweDAxLCAweGJkLCAweGYwLCAweDkwLCAweDdmLCAweGQzLCAweGYwLCAweDkwfSB9LAoreyAweDA3YmQsCTE2LAl7MHgwMiwgMHhhZiwgMHhlMCwgMHhiNCwgMHgwZiwgMHgwMywgMHgxMiwgMHg5OSwgMHhiOSwgMHgxMiwgMHhhMCwgMHg5NSwgMHhlNCwgMHhmZiwgMHg3NCwgMHgwMX0gfSwKK3sgMHgwN2NkLAkxNiwJezB4YTgsIDB4MDcsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4ZmUsIDB4OTAsIDB4MDEsIDB4YmMsIDB4ZTAsIDB4NWUsIDB4NjB9IH0sCit7IDB4MDdkZCwJMTYsCXsweDE0LCAweDc0LCAweDI4LCAweDJmLCAweGY4LCAweGU2LCAweGQzLCAweDk0LCAweDBhLCAweDQwLCAweDA0LCAweDdlLCAweDAxLCAweDgwLCAweDAyLCAweDdlfSB9LAoreyAweDA3ZWQsCTE2LAl7MHgwMCwgMHg4ZSwgMHg0YiwgMHg4MCwgMHgwMywgMHg3NSwgMHg0YiwgMHgwMSwgMHg3NCwgMHg2OCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgyMH0gfSwKK3sgMHgwN2ZkLAkxNiwJezB4ZjUsIDB4ODMsIDB4ZTUsIDB4NGIsIDB4ZjAsIDB4MGYsIDB4YmYsIDB4MDQsIDB4YzUsIDB4ZTUsIDB4MmMsIDB4ZDMsIDB4OTQsIDB4MGEsIDB4NDAsIDB4MDR9IH0sCit7IDB4MDgwZCwJMTQsCXsweDdmLCAweDAxLCAweDgwLCAweDAyLCAweDdmLCAweDAwLCAweDkwLCAweDIwLCAweDZjLCAweGVmLCAweGYwLCAweDAyLCAweDA3LCAweDkyfSB9LAoreyAweDA4MWIsCTEsCXsweDIyfSB9LAoreyAweDA4MWMsCTQsCXsweDUzLCAweGQ4LCAweGVmLCAweDMyfSB9LAoreyAweDA4MjAsCTE2LAl7MHhlNSwgMHgzMywgMHhjMywgMHg5NCwgMHgwMSwgMHg0MCwgMHgwZSwgMHg5MCwgMHg3ZiwgMHg5MywgMHhlMCwgMHg0NCwgMHgzMCwgMHhmMCwgMHg5MCwgMHg3Zn0gfSwKK3sgMHgwODMwLAkxNiwJezB4OTUsIDB4ZTAsIDB4NDQsIDB4YzAsIDB4ZjAsIDB4N2YsIDB4ZjQsIDB4N2UsIDB4MDEsIDB4MTIsIDB4MDksIDB4YWUsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTB9IH0sCit7IDB4MDg0MCwJMTYsCXsweDU0LCAweGZlLCAweGYwLCAweDdmLCAweDBhLCAweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlLCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDQ0LCAweDA4fSB9LAoreyAweDA4NTAsCTE2LAl7MHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwOSwgMHhhZSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHg3Zn0gfSwKK3sgMHgwODYwLAkxNiwJezB4MDUsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDksIDB4YWUsIDB4ZTUsIDB4MzMsIDB4YzMsIDB4OTQsIDB4MDEsIDB4NTAsIDB4MGUsIDB4N2YsIDB4MDIsIDB4N2R9IH0sCit7IDB4MDg3MCwJMTYsCXsweGZmLCAweDEyLCAweDgyLCAweGVhLCAweDdmLCAweDA1LCAweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlLCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDQ0fSB9LAoreyAweDA4ODAsCTE2LAl7MHgwMiwgMHhmMCwgMHhlMCwgMHg1NCwgMHg3ZiwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwOSwgMHhhZSwgMHg5MCwgMHg3ZiwgMHg5Nn0gfSwKK3sgMHgwODkwLAkxNiwJezB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4N2YsIDB4MDUsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDksIDB4YWUsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NTR9IH0sCit7IDB4MDhhMCwJMTYsCXsweGJmLCAweGYwLCAweDdmLCAweDMyLCAweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlLCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDQ0LCAweDQwLCAweGYwfSB9LAoreyAweDA4YjAsCTgsCXsweDdmLCAweDMyLCAweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlLCAweDIyfSB9LAoreyAweDA4YjgsCTE2LAl7MHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg3ZiwgMHgwYSwgMHg3ZSwgMHgwMCwgMHgxMn0gfSwKK3sgMHgwOGM4LAkxNiwJezB4MDksIDB4YWUsIDB4ZTUsIDB4MzMsIDB4YzMsIDB4OTQsIDB4MDEsIDB4NTAsIDB4MGUsIDB4N2YsIDB4MDIsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4ODIsIDB4ZWF9IH0sCit7IDB4MDhkOCwJMTYsCXsweDdmLCAweDA1LCAweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlLCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDdmLCAweDA1fSB9LAoreyAweDA4ZTgsCTE2LAl7MHg3ZSwgMHgwMCwgMHgxMiwgMHgwOSwgMHhhZSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg0NCwgMHgwNCwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZSwgMHgwMH0gfSwKK3sgMHgwOGY4LAkxNiwJezB4MTIsIDB4MDksIDB4YWUsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4N2YsIDB4MDUsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDl9IH0sCit7IDB4MDkwOCwJMTYsCXsweGFlLCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDdmLCAweDA1LCAweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlLCAweGU1fSB9LAoreyAweDA5MTgsCTE2LAl7MHgzMywgMHhjMywgMHg5NCwgMHgwMSwgMHg0MCwgMHgwZSwgMHg5MCwgMHg3ZiwgMHg5MywgMHhlMCwgMHg1NCwgMHhjZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NX0gfSwKK3sgMHgwOTI4LAk4LAl7MHhlMCwgMHg1NCwgMHgzZiwgMHhmMCwgMHgxMiwgMHgwYiwgMHgwMCwgMHgyMn0gfSwKK3sgMHgwOTMwLAkxNiwJezB4OTAsIDB4MGEsIDB4ZjQsIDB4ZTQsIDB4OTMsIDB4NzAsIDB4NzYsIDB4OTAsIDB4N2YsIDB4OTMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTR9IH0sCit7IDB4MDk0MCwJMTYsCXsweDc0LCAweDNjLCAweGYwLCAweDkwLCAweDdmLCAweDk1LCAweDc0LCAweGM2LCAweGYwLCAweDdmLCAweDBhLCAweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlfSB9LAoreyAweDA5NTAsCTE2LAl7MHhlNCwgMHg5MCwgMHg3ZiwgMHg5YywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHgwOCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHhjZn0gfSwKK3sgMHgwOTYwLAkxNiwJezB4ZjAsIDB4N2YsIDB4MGEsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDksIDB4YWUsIDB4OTAsIDB4MjAsIDB4NzAsIDB4ZTAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGZ9IH0sCit7IDB4MDk3MCwJMTYsCXsweGY1LCAweDMzLCAweGMzLCAweDk0LCAweDAxLCAweDUwLCAweDA3LCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGU0LCAweDkwfSB9LAoreyAweDA5ODAsCTE2LAl7MHg3ZiwgMHg5NywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHg3NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHgzMywgMHhjMywgMHg5NCwgMHgwMSwgMHg0MCwgMHgwYn0gfSwKK3sgMHgwOTkwLAkxNiwJezB4ZTQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4YzAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4NzQsIDB4MTJ9IH0sCit7IDB4MDlhMCwJMTQsCXsweGYwLCAweDEyLCAweDA4LCAweDIwLCAweDc1LCAweDgyLCAweGY0LCAweDc1LCAweDgzLCAweDBhLCAweDc0LCAweGZmLCAweGYwLCAweDIyfSB9LAoreyAweDA5YWUsCTE2LAl7MHg4ZSwgMHg1ZCwgMHg4ZiwgMHg1ZSwgMHhlNSwgMHg1ZSwgMHgxNSwgMHg1ZSwgMHhhZSwgMHg1ZCwgMHg3MCwgMHgwMiwgMHgxNSwgMHg1ZCwgMHg0ZSwgMHg2MH0gfSwKK3sgMHgwOWJlLAk3LAl7MHgwNSwgMHgxMiwgMHgwOSwgMHhlYSwgMHg4MCwgMHhlZSwgMHgyMn0gfSwKK3sgMHgwOWM1LAkxNiwJezB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MDcsIDB4MDQsIDB4ZTAsIDB4NDR9IH0sCit7IDB4MDlkNSwJMTYsCXsweDAyLCAweGYwLCAweDdmLCAweGQwLCAweDdlLCAweDA3LCAweDEyLCAweDA5LCAweGFlLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGY3LCAweGYwfSB9LAoreyAweDA5ZTUsCTUsCXsweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweDIyfSB9LAoreyAweDA5ZWEsCTE2LAl7MHg3NCwgMHgwMCwgMHhmNSwgMHg4NiwgMHg5MCwgMHhmZCwgMHhhNSwgMHg3YywgMHgwNSwgMHhhMywgMHhlNSwgMHg4MiwgMHg0NSwgMHg4MywgMHg3MCwgMHhmOX0gfSwKK3sgMHgwOWZhLAkxLAl7MHgyMn0gfSwKK3sgMHgwOWZiLAk1LAl7MHgxMiwgMHgwOCwgMHhiOCwgMHhkMywgMHgyMn0gfSwKK3sgMHgwYTAwLAkxNiwJezB4MDIsIDB4MGMsIDB4NGUsIDB4MDAsIDB4MDIsIDB4MGMsIDB4ODEsIDB4MDAsIDB4MDIsIDB4MGMsIDB4NjYsIDB4MDAsIDB4MDIsIDB4MGMsIDB4YzAsIDB4MDB9IH0sCit7IDB4MGExMCwJMTYsCXsweDAyLCAweDBjLCAweGFhLCAweDAwLCAweDAyLCAweDBhLCAweGVkLCAweDAwLCAweDAyLCAweDBhLCAweGVlLCAweDAwLCAweDAyLCAweDBhLCAweGVmLCAweDAwfSB9LAoreyAweDBhMjAsCTE2LAl7MHgwMiwgMHgwYywgMHhkYiwgMHgwMCwgMHgwMiwgMHgwZCwgMHhjYiwgMHgwMCwgMHgwMiwgMHgwZCwgMHgxNywgMHgwMCwgMHgwMiwgMHgwZSwgMHgyYiwgMHgwMH0gfSwKK3sgMHgwYTMwLAkxNiwJezB4MDIsIDB4MGQsIDB4NTMsIDB4MDAsIDB4MDIsIDB4MGUsIDB4OGIsIDB4MDAsIDB4MDIsIDB4MGQsIDB4OGYsIDB4MDAsIDB4MDIsIDB4MGUsIDB4ZWIsIDB4MDB9IH0sCit7IDB4MGE0MCwJMTYsCXsweDAyLCAweDBhLCAweGYwLCAweDAwLCAweDAyLCAweDBhLCAweGYyLCAweDAwLCAweDAyLCAweDBhLCAweGYxLCAweDAwLCAweDAyLCAweDBhLCAweGYzLCAweDAwfSB9LAoreyAweDBhNTAsCTgsCXsweDAyLCAweDBmLCAweDRiLCAweDAwLCAweDAyLCAweDBmLCAweDYxLCAweDAwfSB9LAoreyAweDBhNTgsCTIsCXsweDhmLCAweDRmfSB9LAoreyAweDBhNWEsCTE2LAl7MHhlNCwgMHhmNSwgMHg1MCwgMHg3NSwgMHg1MSwgMHhmZiwgMHg3NSwgMHg1MiwgMHgxMiwgMHg3NSwgMHg1MywgMHg2YSwgMHhhYiwgMHg1MSwgMHhhYSwgMHg1Mn0gfSwKK3sgMHgwYTZhLAkxNiwJezB4YTksIDB4NTMsIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4YTIsIDB4NTQsIDB4YjQsIDB4MDMsIDB4MWQsIDB4YWYsIDB4NTAsIDB4MDUsIDB4NTAsIDB4ZWZ9IH0sCit7IDB4MGE3YSwJMTYsCXsweGI1LCAweDRmLCAweDAxLCAweDIyLCAweDEyLCAweGEyLCAweDNiLCAweDdlLCAweDAwLCAweDI5LCAweGZmLCAweGVlLCAweDNhLCAweGE5LCAweDA3LCAweDc1fSB9LAoreyAweDBhOGEsCTE0LAl7MHg1MSwgMHhmZiwgMHhmNSwgMHg1MiwgMHg4OSwgMHg1MywgMHg4MCwgMHhkNCwgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgwMH0gfSwKK3sgMHgwYTk4LAkxLAl7MHgyMn0gfSwKK3sgMHgwYTk5LAkxNiwJezB4ZTQsIDB4ZmUsIDB4NzUsIDB4NTEsIDB4ZmYsIDB4NzUsIDB4NTIsIDB4MTIsIDB4NzUsIDB4NTMsIDB4MTIsIDB4YWIsIDB4NTEsIDB4YWEsIDB4NTIsIDB4YTl9IH0sCit7IDB4MGFhOSwJMTYsCXsweDUzLCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweGEyLCAweDU0LCAweDY0LCAweDAyLCAweDcwLCAweDJkLCAweGFkLCAweDA2LCAweDBlLCAweGVkLCAweGI1fSB9LAoreyAweDBhYjksCTE2LAl7MHgwNywgMHgwMSwgMHgyMiwgMHg5MCwgMHgwMCwgMHgwMiwgMHgxMiwgMHhhMiwgMHhhZCwgMHg4NSwgMHhmMCwgMHg0ZiwgMHhmNSwgMHg1MCwgMHg2MiwgMHg0Zn0gfSwKK3sgMHgwYWM5LAkxNiwJezB4ZTUsIDB4NGYsIDB4NjIsIDB4NTAsIDB4ZTUsIDB4NTAsIDB4NjIsIDB4NGYsIDB4MjksIDB4ZmQsIDB4ZTUsIDB4NGYsIDB4M2EsIDB4YTksIDB4MDUsIDB4NzV9IH0sCit7IDB4MGFkOSwJMTQsCXsweDUxLCAweGZmLCAweGY1LCAweDUyLCAweDg5LCAweDUzLCAweDgwLCAweGMzLCAweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDAwfSB9LAoreyAweDBhZTcsCTEsCXsweDIyfSB9LAoreyAweDBhZTgsCTUsCXsweDEyLCAweDA4LCAweDIwLCAweGQzLCAweDIyfSB9LAoreyAweDBhZWQsCTEsCXsweDMyfSB9LAoreyAweDBhZWUsCTEsCXsweDMyfSB9LAoreyAweDBhZWYsCTEsCXsweDMyfSB9LAoreyAweDBhZjAsCTEsCXsweDMyfSB9LAoreyAweDBhZjEsCTEsCXsweDMyfSB9LAoreyAweDBhZjIsCTEsCXsweDMyfSB9LAoreyAweDBhZjMsCTEsCXsweDMyfSB9LAoreyAweDBhZjQsCTMsCXsweDAwLCAweDA0LCAweDA3fSB9LAoreyAweDBiMDAsCTksCXsweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDgwLCAweDc0fSB9LAoreyAweDBiN2QsCTE2LAl7MHg0MywgMHg4NywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMn0gfSwKK3sgMHgwYjhkLAkxNiwJezB4NTMsIDB4OGUsIDB4ZjcsIDB4ZTUsIDB4ODksIDB4NTQsIDB4ZjEsIDB4NDQsIDB4MDEsIDB4ZjUsIDB4ODksIDB4NzUsIDB4OGMsIDB4YjEsIDB4ZDIsIDB4YTl9IH0sCit7IDB4MGI5ZCwJMTYsCXsweDc1LCAweDk4LCAweDQwLCAweDc1LCAweGNiLCAweGZmLCAweDc1LCAweGNhLCAweGYzLCAweDc1LCAweGM4LCAweDM0LCAweGU0LCAweGZmLCAweDdmLCAweDA1fSB9LAoreyAweDBiYWQsCTcsCXsweDc4LCAweDI4LCAweGU0LCAweGY2LCAweDA4LCAweGRmLCAweGZjfSB9LAoreyAweDBiYjQsCTEsCXsweDIyfSB9LAoreyAweDBiYjUsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHhkMCwgMHg3NSwgMHhkMCwgMHgwMCwgMHhjMCwgMHgwMCwgMHhjMCwgMHgwNiwgMHhjMH0gfSwKK3sgMHgwYmM1LAkxLAl7MHgwN30gfSwKK3sgMHgwYmM2LAkxNiwJezB4MzAsIDB4MDQsIDB4MTYsIDB4NzUsIDB4OGMsIDB4ZjgsIDB4NzUsIDB4OGEsIDB4MzAsIDB4N2YsIDB4MmYsIDB4YWUsIDB4MDcsIDB4MWYsIDB4ZWUsIDB4NjB9IH0sCit7IDB4MGJkNiwJMTYsCXsweDNjLCAweDkwLCAweDIwLCAweDAwLCAweDc0LCAweDU1LCAweGYwLCAweDgwLCAweGYyLCAweDc1LCAweDhjLCAweGIxLCAweDdmLCAweDI4LCAweGVmLCAweGQzfSB9LAoreyAweDBiZTYsCTE2LAl7MHg5NCwgMHgyYywgMHg1MCwgMHgwOSwgMHhhOCwgMHgwNywgMHhlNiwgMHg2MCwgMHgwMSwgMHgxNiwgMHgwZiwgMHg4MCwgMHhmMSwgMHg5MCwgMHgwMywgMHgwMH0gfSwKK3sgMHgwYmY2LAkxNiwJezB4ZTAsIDB4NjAsIDB4MDIsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4YzAsIDB4ZTAsIDB4NzAsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MGUsIDB4OTB9IH0sCit7IDB4MGMwNiwJMTMsCXsweDAxLCAweGMxLCAweGUwLCAweDI0LCAweGZmLCAweGYwLCAweDkwLCAweDAxLCAweGMwLCAweGUwLCAweDM0LCAweGZmLCAweGYwfSB9LAoreyAweDBjMTMsCTE1LAl7MHhkMCwgMHgwNywgMHhkMCwgMHgwNiwgMHhkMCwgMHgwMCwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKK3sgMHgwYzIyLAkxNiwJezB4ZDIsIDB4MDAsIDB4NzUsIDB4OGUsIDB4MTAsIDB4MTIsIDB4MDksIDB4MzAsIDB4ZTUsIDB4MzMsIDB4YzMsIDB4OTQsIDB4MDEsIDB4NDAsIDB4MDgsIDB4OTB9IH0sCit7IDB4MGMzMiwJMTYsCXsweDdmLCAweDkyLCAweDc0LCAweDAyLCAweGYwLCAweDgwLCAweDA1LCAweGU0LCAweDkwLCAweDdmLCAweDkyLCAweGYwLCAweDEyLCAweDgwLCAweDAwLCAweDEyfSB9LAoreyAweDBjNDIsCTEyLAl7MHgwZiwgMHg3ZCwgMHgxMiwgMHg5NCwgMHhmNywgMHgxMiwgMHgxYiwgMHgwYywgMHgxMiwgMHgwYiwgMHg4ZCwgMHgyMn0gfSwKK3sgMHgwYzRlLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4ZDIsIDB4MDEsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDF9IH0sCit7IDB4MGM1ZSwJOCwJezB4ZjAsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCit7IDB4MGM2NiwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweDkwLCAweDdmLCAweGM0LCAweGU0LCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmfSB9LAoreyAweDBjNzYsCTExLAl7MHhhYiwgMHg3NCwgMHgwNCwgMHhmMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKK3sgMHgwYzgxLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4OTB9IH0sCit7IDB4MGM5MSwJMTYsCXsweDdmLCAweGQ4LCAweGUwLCAweDcwLCAweDBkLCAweDkwLCAweDdmLCAweGQ5LCAweGUwLCAweDcwLCAweDA3LCAweGU1LCAweDJjLCAweDcwLCAweDAzLCAweDc1fSB9LAoreyAweDBjYTEsCTksCXsweDJjLCAweDE0LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoreyAweDBjYWEsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgxMCwgMHhmMCwgMHhkMH0gfSwKK3sgMHgwY2JhLAk2LAl7MHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKK3sgMHgwY2MwLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4MzAsIDB4MDIsIDB4MDIsIDB4ZDIsIDB4MDYsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2Z9IH0sCit7IDB4MGNkMCwJMTEsCXsweGFiLCAweDc0LCAweDA4LCAweGYwLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoreyAweDBjZGIsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHhkMCwgMHg3NSwgMHhkMCwgMHgxMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3Zn0gfSwKK3sgMHgwY2ViLAkxNiwJezB4YTksIDB4NzQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4MzQsIDB4MzAsIDB4ZTAsIDB4MTMsIDB4ZTUsIDB4MzIsIDB4MzAsIDB4ZTAsIDB4MDcsIDB4OTAsIDB4MjB9IH0sCit7IDB4MGNmYiwJMTYsCXsweDA0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDIwLCAweDAxLCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweGU1LCAweDJjLCAweDcwLCAweDAzfSB9LAoreyAweDBkMGIsCTEyLAl7MHg3NSwgMHgyYywgMHgxNCwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKK3sgMHgwZDE3LAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ZDAsIDB4NzUsIDB4ZDAsIDB4MTAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2Z9IH0sCit7IDB4MGQyNywJMTYsCXsweGE5LCAweDc0LCAweDA0LCAweGYwLCAweGU1LCAweDM0LCAweDMwLCAweGUxLCAweDEzLCAweGU1LCAweDMyLCAweDMwLCAweGUxLCAweDA3LCAweDkwLCAweDIwfSB9LAoreyAweDBkMzcsCTE2LAl7MHgwYywgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHgyMCwgMHgwOSwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHhlNSwgMHgyYywgMHg3MCwgMHgwM30gfSwKK3sgMHgwZDQ3LAkxMiwJezB4NzUsIDB4MmMsIDB4MTQsIDB4ZDAsIDB4ZDAsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCit7IDB4MGQ1MywJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweGQwLCAweDc1LCAweGQwLCAweDEwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmfSB9LAoreyAweDBkNjMsCTE2LAl7MHhhOSwgMHg3NCwgMHgwOCwgMHhmMCwgMHhlNSwgMHgzNCwgMHgzMCwgMHhlMiwgMHgxMywgMHhlNSwgMHgzMiwgMHgzMCwgMHhlMiwgMHgwNywgMHg5MCwgMHgyMH0gfSwKK3sgMHgwZDczLAkxNiwJezB4MTQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4MTEsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ZTUsIDB4MmMsIDB4NzAsIDB4MDN9IH0sCit7IDB4MGQ4MywJMTIsCXsweDc1LCAweDJjLCAweDE0LCAweGQwLCAweGQwLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoreyAweDBkOGYsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHhkMCwgMHg3NSwgMHhkMCwgMHgxMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3Zn0gfSwKK3sgMHgwZDlmLAkxNiwJezB4YTksIDB4NzQsIDB4MTAsIDB4ZjAsIDB4ZTUsIDB4MzQsIDB4MzAsIDB4ZTMsIDB4MTMsIDB4ZTUsIDB4MzIsIDB4MzAsIDB4ZTMsIDB4MDcsIDB4OTAsIDB4MjB9IH0sCit7IDB4MGRhZiwJMTYsCXsweDFjLCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDIwLCAweDE5LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweGU1LCAweDJjLCAweDcwLCAweDAzfSB9LAoreyAweDBkYmYsCTEyLAl7MHg3NSwgMHgyYywgMHgxNCwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKK3sgMHgwZGNiLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4YzB9IH0sCit7IDB4MGRkYiwJMTYsCXsweGQwLCAweDc1LCAweGQwLCAweDEwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFhLCAweDc0LCAweDAyLCAweGYwLCAweGU1LCAweDM0LCAweDIwfSB9LAoreyAweDBkZWIsCTE2LAl7MHhlMCwgMHgwNiwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHg4MCwgMHgyMiwgMHhlNSwgMHgzMSwgMHgzMCwgMHhlMCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjN30gfSwKK3sgMHgwZGZiLAkxNiwJezB4ZTAsIDB4OTAsIDB4MDIsIDB4ZjgsIDB4ZjAsIDB4ODAsIDB4MTMsIDB4ZTUsIDB4MjIsIDB4MzAsIDB4ZTAsIDB4MDcsIDB4OTAsIDB4MjAsIDB4MDQsIDB4ZTB9IH0sCit7IDB4MGUwYiwJMTYsCXsweDQ0LCAweDAyLCAweGYwLCAweDkwLCAweDIwLCAweDAxLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDJjLCAweDcwLCAweDAzLCAweDc1LCAweDJjfSB9LAoreyAweDBlMWIsCTE2LAl7MHgxNCwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKK3sgMHgwZTJiLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4YzB9IH0sCit7IDB4MGUzYiwJMTYsCXsweGQwLCAweDc1LCAweGQwLCAweDEwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFhLCAweDc0LCAweDA0LCAweGYwLCAweGU1LCAweDM0LCAweDIwfSB9LAoreyAweDBlNGIsCTE2LAl7MHhlMSwgMHgwNiwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhmMCwgMHg4MCwgMHgyMiwgMHhlNSwgMHgzMSwgMHgzMCwgMHhlMSwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjOX0gfSwKK3sgMHgwZTViLAkxNiwJezB4ZTAsIDB4OTAsIDB4MDIsIDB4ZjksIDB4ZjAsIDB4ODAsIDB4MTMsIDB4ZTUsIDB4MjIsIDB4MzAsIDB4ZTEsIDB4MDcsIDB4OTAsIDB4MjAsIDB4MGMsIDB4ZTB9IH0sCit7IDB4MGU2YiwJMTYsCXsweDQ0LCAweDAyLCAweGYwLCAweDkwLCAweDIwLCAweDA5LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDJjLCAweDcwLCAweDAzLCAweDc1LCAweDJjfSB9LAoreyAweDBlN2IsCTE2LAl7MHgxNCwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKK3sgMHgwZThiLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4YzB9IH0sCit7IDB4MGU5YiwJMTYsCXsweGQwLCAweDc1LCAweGQwLCAweDEwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFhLCAweDc0LCAweDA4LCAweGYwLCAweGU1LCAweDM0LCAweDIwfSB9LAoreyAweDBlYWIsCTE2LAl7MHhlMiwgMHgwNiwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhmMCwgMHg4MCwgMHgyMiwgMHhlNSwgMHgzMSwgMHgzMCwgMHhlMiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjYn0gfSwKK3sgMHgwZWJiLAkxNiwJezB4ZTAsIDB4OTAsIDB4MDIsIDB4ZmEsIDB4ZjAsIDB4ODAsIDB4MTMsIDB4ZTUsIDB4MjIsIDB4MzAsIDB4ZTIsIDB4MDcsIDB4OTAsIDB4MjAsIDB4MTQsIDB4ZTB9IH0sCit7IDB4MGVjYiwJMTYsCXsweDQ0LCAweDAyLCAweGYwLCAweDkwLCAweDIwLCAweDExLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDJjLCAweDcwLCAweDAzLCAweDc1LCAweDJjfSB9LAoreyAweDBlZGIsCTE2LAl7MHgxNCwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKK3sgMHgwZWViLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4YzB9IH0sCit7IDB4MGVmYiwJMTYsCXsweGQwLCAweDc1LCAweGQwLCAweDEwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFhLCAweDc0LCAweDEwLCAweGYwLCAweGU1LCAweDM0LCAweDIwfSB9LAoreyAweDBmMGIsCTE2LAl7MHhlMywgMHgwNiwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhmMCwgMHg4MCwgMHgyMiwgMHhlNSwgMHgzMSwgMHgzMCwgMHhlMywgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjZH0gfSwKK3sgMHgwZjFiLAkxNiwJezB4ZTAsIDB4OTAsIDB4MDIsIDB4ZmIsIDB4ZjAsIDB4ODAsIDB4MTMsIDB4ZTUsIDB4MjIsIDB4MzAsIDB4ZTMsIDB4MDcsIDB4OTAsIDB4MjAsIDB4MWMsIDB4ZTB9IH0sCit7IDB4MGYyYiwJMTYsCXsweDQ0LCAweDAyLCAweGYwLCAweDkwLCAweDIwLCAweDE5LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDJjLCAweDcwLCAweDAzLCAweDc1LCAweDJjfSB9LAoreyAweDBmM2IsCTE2LAl7MHgxNCwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKK3sgMHgwZjRiLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YTksIDB4NzQsIDB4ODAsIDB4ZjAsIDB4ZDB9IH0sCit7IDB4MGY1YiwJNiwJezB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCit7IDB4MGY2MSwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFhLCAweDc0LCAweDgwLCAweGYwLCAweDkwfSB9LAoreyAweDBmNzEsCTEyLAl7MHgwMSwgMHhiZCwgMHg3NCwgMHhmZiwgMHhmMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKK3sgMHgwZjdkLAkxNiwJezB4OTAsIDB4MDEsIDB4MjAsIDB4MTIsIDB4YTMsIDB4ZmEsIDB4MDAsIDB4MDAsIDB4MjUsIDB4ODAsIDB4OTAsIDB4MDEsIDB4MjQsIDB4NzQsIDB4MDgsIDB4ZjB9IH0sCit7IDB4MGY4ZCwJMTYsCXsweGEzLCAweDc0LCAweDAxLCAweGYwLCAweGEzLCAweDc0LCAweDZlLCAweGYwLCAweGEzLCAweGYwLCAweGEzLCAweDc0LCAweDEzLCAweGYwLCAweGEzLCAweDc0fSB9LAoreyAweDBmOWQsCTE2LAl7MHgxMSwgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHhhMywgMHhmMCwgMHg5MCwgMHgwMSwgMHgxZSwgMHhmMCwgMHg5MCwgMHgwMSwgMHgxZSwgMHhlMCwgMHhmZn0gfSwKK3sgMHgwZmFkLAkxNiwJezB4MDQsIDB4YTMsIDB4ZjAsIDB4ZWYsIDB4NzUsIDB4ZjAsIDB4MGQsIDB4YTQsIDB4MjQsIDB4MDEsIDB4ZjksIDB4NzQsIDB4MDMsIDB4MzUsIDB4ZjAsIDB4YTh9IH0sCit7IDB4MGZiZCwJMTYsCXsweDAxLCAweGZjLCAweDdkLCAweDAxLCAweDdiLCAweDAxLCAweDdhLCAweDAxLCAweDc5LCAweDFmLCAweDdlLCAweDAwLCAweDdmLCAweDBkLCAweDEyLCAweGEyfSB9LAoreyAweDBmY2QsCTE2LAl7MHgxMiwgMHg3ZSwgMHgwMSwgMHg3ZiwgMHgxZiwgMHgxMiwgMHg4NywgMHhhNiwgMHg5MCwgMHgwMSwgMHgxZSwgMHhlMCwgMHgwNCwgMHhmMCwgMHhlMCwgMHhjM30gfSwKK3sgMHgwZmRkLAkxNiwJezB4OTQsIDB4MDQsIDB4NDAsIDB4YzcsIDB4ZTQsIDB4ZjUsIDB4MjcsIDB4OTAsIDB4MDEsIDB4MWUsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4MWUsIDB4ZTAsIDB4ZmZ9IH0sCit7IDB4MGZlZCwJMTYsCXsweGMzLCAweDk0LCAweDA0LCAweDUwLCAweDFhLCAweDc0LCAweGY4LCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAyLCAweGY1LCAweDgzLCAweGU0fSB9LAoreyAweDBmZmQsCTE2LAl7MHhmMCwgMHg3NCwgMHgyMywgMHgyZiwgMHhmOCwgMHhlNCwgMHhmNiwgMHg5MCwgMHgwMSwgMHgxZSwgMHhlMCwgMHgwNCwgMHhmMCwgMHg4MCwgMHhkYywgMHhlNH0gfSwKK3sgMHgxMDBkLAkxNiwJezB4ZjUsIDB4MzQsIDB4ZTUsIDB4YzAsIDB4NjAsIDB4MmYsIDB4OTAsIDB4MDEsIDB4MWUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4MWUsIDB4ZTB9IH0sCit7IDB4MTAxZCwJMTYsCXsweGZmLCAweGQzLCAweDk0LCAweDA0LCAweDUwLCAweDFmLCAweGVmLCAweDE0LCAweGZmLCAweDc0LCAweDAxLCAweGE4LCAweDA3LCAweDA4LCAweDgwLCAweDAyfSB9LAoreyAweDEwMmQsCTE2LAl7MHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHg0MiwgMHgzNCwgMHg3ZSwgMHgwMSwgMHg3ZiwgMHgxZSwgMHgxMiwgMHg4NCwgMHg0MSwgMHg5MCwgMHgwMSwgMHgxZX0gfSwKK3sgMHgxMDNkLAkxNiwJezB4ZTAsIDB4MDQsIDB4ZjAsIDB4ODAsIDB4ZDcsIDB4ZTQsIDB4ZjUsIDB4M2UsIDB4ZjUsIDB4MjIsIDB4ZjUsIDB4MzEsIDB4ZjUsIDB4MzIsIDB4OTAsIDB4MDF9IH0sCit7IDB4MTA0ZCwJMTYsCXsweDFlLCAweGYwLCAweDkwLCAweDAxLCAweDFlLCAweGUwLCAweGZmLCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDA2LCAweGY1LCAweDgyLCAweGU0fSB9LAoreyAweDEwNWQsCTE2LAl7MHgzNCwgMHgyMCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmMCwgMHhmZSwgMHg3NCwgMHhjNSwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMX0gfSwKK3sgMHgxMDZkLAkxNiwJezB4ZjUsIDB4ODMsIDB4ZWUsIDB4ZjAsIDB4NzQsIDB4M2EsIDB4MmYsIDB4ZjgsIDB4YTYsIDB4MDYsIDB4NzQsIDB4MzYsIDB4MmYsIDB4ZjgsIDB4ZTQsIDB4ZjZ9IH0sCit7IDB4MTA3ZCwJMTYsCXsweDc0LCAweDJkLCAweDJmLCAweGY4LCAweGU0LCAweGY2LCAweDc0LCAweGZjLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAyLCAweGY1LCAweDgzfSB9LAoreyAweDEwOGQsCTE2LAl7MHhlNCwgMHhmMCwgMHg5MCwgMHgwMSwgMHgxZSwgMHhlMCwgMHgwNCwgMHhmMCwgMHhlMCwgMHhiNCwgMHgwNCwgMHhiNiwgMHg5MCwgMHgyMCwgMHg2MCwgMHhlMH0gfSwKK3sgMHgxMDlkLAk0LAl7MHg1NCwgMHgwZiwgMHhmNSwgMHg0ZX0gfSwKK3sgMHgxMGExLAkxNiwJezB4NzAsIDB4MDMsIDB4MDIsIDB4MTEsIDB4MjYsIDB4ZTQsIDB4OTAsIDB4MDEsIDB4MWUsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4MWUsIDB4ZTAsIDB4ZmYsIDB4YzN9IH0sCit7IDB4MTBiMSwJMTYsCXsweDk0LCAweDA0LCAweDUwLCAweGU0LCAweDc0LCAweDAxLCAweGE4LCAweDA3LCAweDA4LCAweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweDU1fSB9LAoreyAweDEwYzEsCTE2LAl7MHg0ZSwgMHg2MCwgMHg1YSwgMHg5MCwgMHgwMSwgMHgxZSwgMHhlMCwgMHhmZSwgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMiwgMHhmNSwgMHg4Mn0gfSwKK3sgMHgxMGQxLAkxNiwJezB4ZTQsIDB4MzQsIDB4MjAsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZWUsIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDUsIDB4ZjUsIDB4ODJ9IH0sCit7IDB4MTBlMSwJMTYsCXsweGU0LCAweDM0LCAweDIwLCAweGY1LCAweDgzLCAweGUwLCAweGVlLCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDA2LCAweGY1LCAweDgyLCAweGU0fSB9LAoreyAweDEwZjEsCTE2LAl7MHgzNCwgMHgyMCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhhZiwgMHgwNiwgMHhlZSwgMHg3NSwgMHhmMCwgMHgwZCwgMHhhNCwgMHgyNCwgMHgwMiwgMHhmNX0gfSwKK3sgMHgxMTAxLAkxNiwJezB4ODIsIDB4ZTQsIDB4MzQsIDB4MDMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTB9IH0sCit7IDB4MTExMSwJMTYsCXsweGY1LCAweDY2LCAweDhlLCAweDY1LCAweDhkLCAweDY0LCAweDhjLCAweDYzLCAweDdkLCAweDA2LCAweDEyLCAweDgzLCAweGRmLCAweDkwLCAweDAxLCAweDFlfSB9LAoreyAweDExMjEsCTYsCXsweGUwLCAweDA0LCAweGYwLCAweDgwLCAweDg1LCAweDIyfSB9LAoreyAweDExMjcsCTIsCXsweGFjLCAweDA3fSB9LAoreyAweDExMjksCTE2LAl7MHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHhlYywgMHgyNSwgMHhlMCwgMHg0NCwgMHg0MSwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhmMH0gfSwKK3sgMHgxMTM5LAkxNiwJezB4N2IsIDB4M2MsIDB4YWYsIDB4MDMsIDB4MWIsIDB4ZWYsIDB4NzAsIDB4MTYsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4OTB9IH0sCit7IDB4MTE0OSwJMTYsCXsweDdmLCAweGE2LCAweGUwLCAweGZkLCAweDdkLCAweDMyLCAweGFmLCAweDA1LCAweDFkLCAweGVmLCAweDYwLCAweGQ0LCAweDgwLCAweGY4LCAweDkwLCAweDdmfSB9LAoreyAweDExNTksCTE2LAl7MHhhNSwgMHhlMCwgMHhmZCwgMHgzMCwgMHhlMCwgMHhkYywgMHgyMCwgMHhlMSwgMHgwOSwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg3ZSwgMHhmZiwgMHg3Zn0gfSwKK3sgMHgxMTY5LAkxNiwJezB4ZjksIDB4MjIsIDB4ZWQsIDB4MzAsIDB4ZTIsIDB4MGMsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4N2UsIDB4ZmYsIDB4N2Z9IH0sCit7IDB4MTE3OSwJMTYsCXsweGZhLCAweDIyLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDkwLCAweDdmLCAweGE2LCAweGUwLCAweGZkLCAweDdiLCAweDFlfSB9LAoreyAweDExODksCTE2LAl7MHhhZiwgMHgwMywgMHgxYiwgMHhlZiwgMHg3MCwgMHgxNiwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhNn0gfSwKK3sgMHgxMTk5LAkxNiwJezB4ZTAsIDB4ZmQsIDB4N2QsIDB4MzIsIDB4YWYsIDB4MDUsIDB4MWQsIDB4ZWYsIDB4NjAsIDB4ODYsIDB4ODAsIDB4ZjgsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTB9IH0sCit7IDB4MTFhOSwJMTYsCXsweGZkLCAweDIwLCAweGUwLCAweGRjLCAweDdiLCAweDNjLCAweGFmLCAweDAzLCAweDFiLCAweGVmLCAweDcwLCAweDE5LCAweDkwLCAweDdmLCAweGE1LCAweGUwfSB9LAoreyAweDExYjksCTE2LAl7MHg0NCwgMHg0MCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhlMCwgMHhmZCwgMHg3ZCwgMHgzMiwgMHhhZiwgMHgwNSwgMHgxZCwgMHhlZiwgMHg3MCwgMHgwM30gfSwKK3sgMHgxMWM5LAkxNiwJezB4MDIsIDB4MTEsIDB4MjksIDB4ODAsIDB4ZjUsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4ZmQsIDB4MzAsIDB4ZTAsIDB4ZDksIDB4MzAsIDB4ZTIsIDB4MDl9IH0sCit7IDB4MTFkOSwJMTYsCXsweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDdlLCAweGZmLCAweDdmLCAweGZhLCAweDIyLCAweGMyLCAweGFmLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0fSB9LAoreyAweDExZTksCTEyLAl7MHg0MCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhlMCwgMHhmZCwgMHhkMiwgMHhhZiwgMHhmZiwgMHg3ZSwgMHgwMH0gfSwKK3sgMHgxMWY1LAkxLAl7MHgyMn0gfSwKK3sgMHgxMjAwLAkxNiwJezB4MTIsIDB4MDEsIDB4MDAsIDB4MDEsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4NDAsIDB4MTAsIDB4MDcsIDB4MDEsIDB4ODAsIDB4NDIsIDB4MDAsIDB4MDEsIDB4MDJ9IH0sCit7IDB4MTIxMCwJMTYsCXsweDAzLCAweDAxLCAweDA5LCAweDAyLCAweDU4LCAweDAwLCAweDAxLCAweDAxLCAweDA0LCAweDgwLCAweDNjLCAweDA5LCAweDA0LCAweDAwLCAweDAwLCAweDBhfSB9LAoreyAweDEyMjAsCTE2LAl7MHhmZiwgMHhmZiwgMHhmZiwgMHgwNSwgMHgwNywgMHgwNSwgMHg4MSwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMSwgMHgwMiwgMHg0MH0gfSwKK3sgMHgxMjMwLAkxNiwJezB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4ODIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDB9IH0sCit7IDB4MTI0MCwJMTYsCXsweDA3LCAweDA1LCAweDgzLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAzLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1fSB9LAoreyAweDEyNTAsCTE2LAl7MHg4NCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHg4NywgMHgwMn0gfSwKK3sgMHgxMjYwLAkxNiwJezB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDcsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDQsIDB4MDMsIDB4MDksIDB4MDQsIDB4MjQsIDB4MDN9IH0sCit7IDB4MTI3MCwJMTYsCXsweDQzLCAweDAwLCAweDZmLCAweDAwLCAweDZlLCAweDAwLCAweDZlLCAweDAwLCAweDY1LCAweDAwLCAweDYzLCAweDAwLCAweDc0LCAweDAwLCAweDIwLCAweDAwfSB9LAoreyAweDEyODAsCTE2LAl7MHg1NCwgMHgwMCwgMHg2NSwgMHgwMCwgMHg2MywgMHgwMCwgMHg2OCwgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2MywgMHgwMH0gfSwKK3sgMHgxMjkwLAkxNiwJezB4MmUsIDB4MDAsIDB4MTgsIDB4MDMsIDB4NTcsIDB4MDAsIDB4NjgsIDB4MDAsIDB4NjksIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NDgsIDB4MDB9IH0sCit7IDB4MTJhMCwJMTYsCXsweDQ1LCAweDAwLCAweDQxLCAweDAwLCAweDU0LCAweDAwLCAweDJkLCAweDAwLCAweDM0LCAweDAwLCAweDFhLCAweDAzLCAweDU4LCAweDAwLCAweDU4LCAweDAwfSB9LAoreyAweDEyYjAsCTE2LAl7MHgyZCwgMHgwMCwgMHg1OCwgMHgwMCwgMHg1OCwgMHgwMCwgMHgyZCwgMHgwMCwgMHg1OCwgMHgwMCwgMHg1OCwgMHgwMCwgMHg1OCwgMHgwMCwgMHg1OCwgMHgwMH0gfSwKK3sgMHgxMmMwLAkxNiwJezB4NTgsIDB4MDAsIDB4NTgsIDB4MDAsIDB4MmEsIDB4MDMsIDB4NDMsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjYsIDB4MDAsIDB4NjksIDB4MDB9IH0sCit7IDB4MTJkMCwJMTYsCXsweDY3LCAweDAwLCAweDc1LCAweDAwLCAweDcyLCAweDAwLCAweDYxLCAweDAwLCAweDc0LCAweDAwLCAweDY5LCAweDAwLCAweDZmLCAweDAwLCAweDZlLCAweDAwfSB9LAoreyAweDEyZTAsCTE2LAl7MHgyMCwgMHgwMCwgMHg1MywgMHgwMCwgMHg3NCwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2NywgMHgwMCwgMHgyMiwgMHgwM30gfSwKK3sgMHgxMmYwLAkxNiwJezB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjYsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NjMsIDB4MDB9IH0sCit7IDB4MTMwMCwJMTYsCXsweDY1LCAweDAwLCAweDIwLCAweDAwLCAweDUzLCAweDAwLCAweDc0LCAweDAwLCAweDcyLCAweDAwLCAweDY5LCAweDAwLCAweDZlLCAweDAwLCAweDY3LCAweDAwfSB9LAoreyAweDEzMTAsCTIsCXsweDAwLCAweDAwfSB9LAoreyAweDEzMTIsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHhmMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHhjMCwgMHhkMH0gfSwKK3sgMHgxMzIyLAkxNiwJezB4NzUsIDB4ODYsIDB4MDAsIDB4NzUsIDB4ZDAsIDB4MTgsIDB4OTAsIDB4MjAsIDB4NjAsIDB4ZTAsIDB4NTQsIDB4MGYsIDB4ZjUsIDB4ZjAsIDB4NzAsIDB4MTF9IH0sCit7IDB4MTMzMiwJMTYsCXsweGQwLCAweGQwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGYwLCAweGQwLCAweGUwfSB9LAoreyAweDEzNDIsCTE2LAl7MHgzMiwgMHg3NSwgMHg4NiwgMHgwMCwgMHgxMCwgMHhmMCwgMHgwYiwgMHgxMCwgMHhmMSwgMHgxMiwgMHgxMCwgMHhmMiwgMHgxOSwgMHgxMCwgMHhmMywgMHgyMH0gfSwKK3sgMHgxMzUyLAkxNiwJezB4ODAsIDB4ZDQsIDB4ZTUsIDB4MjgsIDB4NzAsIDB4MDMsIDB4NzUsIDB4MjgsIDB4MTQsIDB4MDIsIDB4MTMsIDB4N2MsIDB4ZTUsIDB4MjksIDB4NzAsIDB4MDN9IH0sCit7IDB4MTM2MiwJMTYsCXsweDc1LCAweDI5LCAweDE0LCAweDAyLCAweDE1LCAweDBkLCAweGU1LCAweDJhLCAweDcwLCAweDAzLCAweDc1LCAweDJhLCAweDE0LCAweDAyLCAweDE2LCAweDllfSB9LAoreyAweDEzNzIsCTE2LAl7MHhlNSwgMHgyYiwgMHg3MCwgMHgwMywgMHg3NSwgMHgyYiwgMHgxNCwgMHgwMiwgMHgxOCwgMHgyZiwgMHg5MCwgMHgyMCwgMHgwMiwgMHhlMCwgMHg1NCwgMHgzZn0gfSwKK3sgMHgxMzgyLAkxNiwJezB4MjAsIDB4ZTIsIDB4M2EsIDB4MjAsIDB4ZTEsIDB4MGIsIDB4MjAsIDB4ZTQsIDB4MGIsIDB4MjAsIDB4ZTUsIDB4MTQsIDB4NjAsIDB4MDksIDB4MDIsIDB4MTN9IH0sCit7IDB4MTM5MiwJMTYsCXsweDQzLCAweDAyLCAweDE0LCAweDY1LCAweDAyLCAweDEzLCAweDQzLCAweDQzLCAweDgyLCAweDA0LCAweGUwLCAweGY1LCAweDNhLCAweDAyLCAweDEzLCAweDQzfSB9LAoreyAweDEzYTIsCTE2LAl7MHg0MywgMHg4MiwgMHgwNCwgMHhlMCwgMHg0MywgMHgyZCwgMHgwMSwgMHgwMiwgMHgxMywgMHg0MywgMHg1MywgMHg4MiwgMHhmOCwgMHg0MywgMHg4MiwgMHgwNX0gfSwKK3sgMHgxM2IyLAkxNiwJezB4ZTAsIDB4NDIsIDB4MzYsIDB4NTMsIDB4ODIsIDB4ZmIsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NDMsIDB4MzAsIDB4ZTEsIDB4MDJ9IH0sCit7IDB4MTNjMiwJMTYsCXsweDgwLCAweGU4LCAweGY1LCAweDg1LCAweGU1LCAweDMyLCAweDMwLCAweGUwLCAweDBhLCAweDUzLCAweDgyLCAweGY4LCAweDQzLCAweDgyLCAweDA0LCAweGUwfSB9LAoreyAweDEzZDIsCTE2LAl7MHg1NCwgMHhmZSwgMHhmMCwgMHhlNSwgMHg4NSwgMHgyMCwgMHhlMywgMHg1NiwgMHg5MCwgMHgyMCwgMHg1MCwgMHg3NCwgMHgwMCwgMHhmMCwgMHg5MCwgMHgyMH0gfSwKK3sgMHgxM2UyLAkxNiwJezB4NTgsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTMsIDB4MDUsIDB4ODZ9IH0sCit7IDB4MTNmMiwJMTYsCXsweDkwLCAweDdlLCAweDgwLCAweDA1LCAweDg2LCAweGU1LCAweDg1LCAweGYwLCAweGEzLCAweGU1LCAweDg0LCAweGYwLCAweDA1LCAweDg2LCAweDkwLCAweDdmfSB9LAoreyAweDE0MDIsCTE2LAl7MHhlNSwgMHhlNSwgMHgzZiwgMHhmZCwgMHgwMywgMHgwMywgMHgwMywgMHhmZSwgMHhmMCwgMHhmMCwgMHhmMCwgMHhmMCwgMHhmMCwgMHhmMCwgMHhmMCwgMHhmMH0gfSwKK3sgMHgxNDEyLAkxNiwJezB4ZGUsIDB4ZjYsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4NTgsIDB4NzQsIDB4MDAsIDB4ZjAsIDB4OTB9IH0sCit7IDB4MTQyMiwJMTYsCXsweDdmLCAweGI3LCAweGVkLCAweGYwLCAweDkwLCAweDIwLCAweDAxLCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweDAyLCAweDEzLCAweDQzLCAweDdmLCAweDQwfSB9LAoreyAweDE0MzIsCTE2LAl7MHg5MCwgMHg3ZSwgMHg4MCwgMHgwNSwgMHg4NiwgMHg5MCwgMHgyMCwgMHgwMCwgMHhlNSwgMHg4NCwgMHhmZSwgMHgyNCwgMHgwNSwgMHhmZCwgMHg4ZCwgMHg4NH0gfSwKK3sgMHgxNDQyLAkxNiwJezB4ZTAsIDB4OGUsIDB4ODQsIDB4MzAsIDB4ZTAsIDB4MDksIDB4ZTAsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZWYsIDB4MDV9IH0sCit7IDB4MTQ1MiwJMTYsCXsweDg2LCAweGMzLCAweDc0LCAweDQwLCAweDlmLCAweDkwLCAweDdmLCAweGI3LCAweGYwLCAweDA1LCAweDg2LCAweGEzLCAweGUwLCAweDU0LCAweGZlLCAweGYwfSB9LAoreyAweDE0NjIsCTE2LAl7MHgwMiwgMHgxMywgMHg0MywgMHg1MywgMHgyZCwgMHhmYSwgMHhlNSwgMHgyMywgMHg2MCwgMHgwOCwgMHg3NSwgMHgyMywgMHgwMCwgMHhkMiwgMHhlNywgMHhmZX0gfSwKK3sgMHgxNDcyLAkxNiwJezB4ODAsIDB4MGEsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4ZmUsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MTQsIDB4ZmYsIDB4OTAsIDB4MjAsIDB4NTAsIDB4NzR9IH0sCit7IDB4MTQ4MiwJMTYsCXsweDAwLCAweGYwLCAweDkwLCAweDIwLCAweDU4LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGUyLCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDkwfSB9LAoreyAweDE0OTIsCTE2LAl7MHg3ZiwgMHhlMywgMHgwNSwgMHg4NiwgMHg5MCwgMHg3ZSwgMHg0MCwgMHgwNSwgMHg4NiwgMHhlNSwgMHg4NSwgMHhmMCwgMHhhMywgMHhlNSwgMHg4NCwgMHhmMH0gfSwKK3sgMHgxNGEyLAkxNiwJezB4MDUsIDB4ODYsIDB4OTAsIDB4N2YsIDB4ZTUsIDB4ZWUsIDB4MzAsIDB4ZTcsIDB4MDgsIDB4MDUsIDB4ODYsIDB4ZTAsIDB4MjQsIDB4MzgsIDB4ZjAsIDB4MDV9IH0sCit7IDB4MTRiMiwJMTYsCXsweDg2LCAweGVlLCAweDU0LCAweDdmLCAweGZlLCAweDU0LCAweDA3LCAweGZiLCAweGVlLCAweDU0LCAweDc4LCAweDYwLCAweDMwLCAweDAzLCAweDAzLCAweDAzfSB9LAoreyAweDE0YzIsCTE2LAl7MHgzMCwgMHhlMywgMHgwNCwgMHg3NCwgMHgwNywgMHg3YiwgMHgwOCwgMHhmZCwgMHhmYywgMHhlMCwgMHhlMCwgMHhlMCwgMHhlMCwgMHhlMCwgMHhlMCwgMHhlMH0gfSwKK3sgMHgxNGQyLAkxNiwJezB4ZTAsIDB4ZGQsIDB4ZjYsIDB4ZWIsIDB4ZmUsIDB4NjAsIDB4MTksIDB4ZWMsIDB4NjQsIDB4MDcsIDB4NzAsIDB4MTEsIDB4OGIsIDB4MjMsIDB4OTAsIDB4N2Z9IH0sCit7IDB4MTRlMiwJMTYsCXsweGUyLCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDkwLCAweDIwLCAweDU4LCAweDc0LCAweDAwLCAweGYwLCAweDgwLCAweDFiLCAweGUwLCAweGRlLCAweGZkfSB9LAoreyAweDE0ZjIsCTE2LAl7MHg5MCwgMHg3ZiwgMHhlMiwgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHgyMCwgMHg1OCwgMHg3NCwgMHgwMCwgMHhmMCwgMHg5MCwgMHgyMCwgMHgwMX0gfSwKK3sgMHgxNTAyLAkxNiwJezB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NDMsIDB4OTAsIDB4MjAsIDB4MGEsIDB4ZTAsIDB4NTR9IH0sCit7IDB4MTUxMiwJMTYsCXsweDNmLCAweDIwLCAweGUyLCAweDNhLCAweDIwLCAweGUxLCAweDBiLCAweDIwLCAweGU0LCAweDBiLCAweDIwLCAweGU1LCAweDE0LCAweDYwLCAweDA5LCAweDAyfSB9LAoreyAweDE1MjIsCTE2LAl7MHgxMywgMHg0MywgMHgwMiwgMHgxNSwgMHhmNiwgMHgwMiwgMHgxMywgMHg0MywgMHg0MywgMHg4MiwgMHgwNCwgMHhlMCwgMHhmNSwgMHgzYiwgMHgwMiwgMHgxM30gfSwKK3sgMHgxNTMyLAkxNiwJezB4NDMsIDB4NDMsIDB4ODIsIDB4MDQsIDB4ZTAsIDB4NDMsIDB4MmUsIDB4MDEsIDB4MDIsIDB4MTMsIDB4NDMsIDB4NTMsIDB4ODIsIDB4ZjgsIDB4NDMsIDB4ODJ9IH0sCit7IDB4MTU0MiwJMTYsCXsweDA1LCAweGUwLCAweDQyLCAweDM3LCAweDUzLCAweDgyLCAweGZiLCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweDAyLCAweDEzLCAweDQzLCAweDMwLCAweGUxfSB9LAoreyAweDE1NTIsCTE2LAl7MHgwMiwgMHg4MCwgMHhlOCwgMHhmNSwgMHg4NSwgMHhlNSwgMHgzMiwgMHgzMCwgMHhlMSwgMHgwYSwgMHg1MywgMHg4MiwgMHhmOCwgMHg0MywgMHg4MiwgMHgwNH0gfSwKK3sgMHgxNTYyLAkxNiwJezB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4ZTUsIDB4ODUsIDB4MjAsIDB4ZTMsIDB4NTYsIDB4OTAsIDB4MjAsIDB4NTAsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTB9IH0sCit7IDB4MTU3MiwJMTYsCXsweDIwLCAweDU4LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGUyLCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDkwLCAweDdmLCAweGUzLCAweDA1fSB9LAoreyAweDE1ODIsCTE2LAl7MHg4NiwgMHg5MCwgMHg3ZSwgMHgwMCwgMHgwNSwgMHg4NiwgMHhlNSwgMHg4NSwgMHhmMCwgMHhhMywgMHhlNSwgMHg4NCwgMHhmMCwgMHgwNSwgMHg4NiwgMHg5MH0gfSwKK3sgMHgxNTkyLAkxNiwJezB4N2YsIDB4ZTUsIDB4ZTUsIDB4NDAsIDB4ZmQsIDB4MDMsIDB4MDMsIDB4MDMsIDB4ZmUsIDB4ZjAsIDB4ZjAsIDB4ZjAsIDB4ZjAsIDB4ZjAsIDB4ZjAsIDB4ZjB9IH0sCit7IDB4MTVhMiwJMTYsCXsweGYwLCAweGRlLCAweGY2LCAweDkwLCAweDdmLCAweGUyLCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDkwLCAweDIwLCAweDU4LCAweDc0LCAweDAwLCAweGYwfSB9LAoreyAweDE1YjIsCTE2LAl7MHg5MCwgMHg3ZiwgMHhiOSwgMHhlZCwgMHhmMCwgMHg5MCwgMHgyMCwgMHgwOSwgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHgwMiwgMHgxMywgMHg0MywgMHg3Zn0gfSwKK3sgMHgxNWMyLAkxNiwJezB4NDAsIDB4OTAsIDB4N2UsIDB4MDAsIDB4MDUsIDB4ODYsIDB4OTAsIDB4MjAsIDB4MDgsIDB4ZTUsIDB4ODQsIDB4ZmUsIDB4MjQsIDB4MDUsIDB4ZmQsIDB4OGR9IH0sCit7IDB4MTVkMiwJMTYsCXsweDg0LCAweGUwLCAweDhlLCAweDg0LCAweDMwLCAweGUwLCAweDA5LCAweGUwLCAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweGRmLCAweGVmfSB9LAoreyAweDE1ZTIsCTE2LAl7MHgwNSwgMHg4NiwgMHhjMywgMHg3NCwgMHg0MCwgMHg5ZiwgMHg5MCwgMHg3ZiwgMHhiOSwgMHhmMCwgMHgwNSwgMHg4NiwgMHhhMywgMHhlMCwgMHg1NCwgMHhmZX0gfSwKK3sgMHgxNWYyLAkxNiwJezB4ZjAsIDB4MDIsIDB4MTMsIDB4NDMsIDB4NTMsIDB4MmUsIDB4ZmEsIDB4ZTUsIDB4MjQsIDB4NjAsIDB4MDgsIDB4NzUsIDB4MjQsIDB4MDAsIDB4ZDIsIDB4ZTd9IH0sCit7IDB4MTYwMiwJMTYsCXsweGZlLCAweDgwLCAweDBhLCAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweGZlLCAweDcwLCAweDAzLCAweDAyLCAweDE2LCAweDkwLCAweDkwLCAweDIwLCAweDUwfSB9LAoreyAweDE2MTIsCTE2LAl7MHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHgyMCwgMHg1OCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlMiwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMH0gfSwKK3sgMHgxNjIyLAkxNiwJezB4OTAsIDB4N2YsIDB4ZTMsIDB4MDUsIDB4ODYsIDB4OTAsIDB4N2QsIDB4YzAsIDB4MDUsIDB4ODYsIDB4ZTUsIDB4ODUsIDB4ZjAsIDB4YTMsIDB4ZTUsIDB4ODR9IH0sCit7IDB4MTYzMiwJMTYsCXsweGYwLCAweDA1LCAweDg2LCAweDkwLCAweDdmLCAweGU1LCAweGVlLCAweDMwLCAweGU3LCAweDA4LCAweDA1LCAweDg2LCAweGUwLCAweDI0LCAweDM4LCAweGYwfSB9LAoreyAweDE2NDIsCTE2LAl7MHgwNSwgMHg4NiwgMHhlZSwgMHg1NCwgMHg3ZiwgMHhmZSwgMHg1NCwgMHgwNywgMHhmYiwgMHhlZSwgMHg1NCwgMHg3OCwgMHg2MCwgMHgzMCwgMHgwMywgMHgwM30gfSwKK3sgMHgxNjUyLAkxNiwJezB4MDMsIDB4MzAsIDB4ZTMsIDB4MDQsIDB4NzQsIDB4MDcsIDB4N2IsIDB4MDgsIDB4ZmQsIDB4ZmMsIDB4ZTAsIDB4ZTAsIDB4ZTAsIDB4ZTAsIDB4ZTAsIDB4ZTB9IH0sCit7IDB4MTY2MiwJMTYsCXsweGUwLCAweGUwLCAweGRkLCAweGY2LCAweGViLCAweGZlLCAweDYwLCAweDE5LCAweGVjLCAweDY0LCAweDA3LCAweDcwLCAweDExLCAweDhiLCAweDI0LCAweDkwfSB9LAoreyAweDE2NzIsCTE2LAl7MHg3ZiwgMHhlMiwgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHgyMCwgMHg1OCwgMHg3NCwgMHgwMCwgMHhmMCwgMHg4MCwgMHgxYiwgMHhlMCwgMHhkZX0gfSwKK3sgMHgxNjgyLAkxNCwJezB4ZmQsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4NTgsIDB4NzQsIDB4MDAsIDB4ZjB9IH0sCit7IDB4MTY5MCwJMTYsCXsweDkwLCAweDIwLCAweDA5LCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweDAyLCAweDEzLCAweDQzLCAweDkwLCAweDIwfSB9LAoreyAweDE2YTAsCTE2LAl7MHgxMiwgMHhlMCwgMHg1NCwgMHgzZiwgMHgyMCwgMHhlMiwgMHgzYSwgMHgyMCwgMHhlMSwgMHgwYiwgMHgyMCwgMHhlNCwgMHgwYiwgMHgyMCwgMHhlNSwgMHgxNH0gfSwKK3sgMHgxNmIwLAkxNiwJezB4NjAsIDB4MDksIDB4MDIsIDB4MTMsIDB4NDMsIDB4MDIsIDB4MTcsIDB4ODcsIDB4MDIsIDB4MTMsIDB4NDMsIDB4NDMsIDB4ODIsIDB4MDQsIDB4ZTAsIDB4ZjV9IH0sCit7IDB4MTZjMCwJMTYsCXsweDNjLCAweDAyLCAweDEzLCAweDQzLCAweDQzLCAweDgyLCAweDA0LCAweGUwLCAweDQzLCAweDJmLCAweDAxLCAweDAyLCAweDEzLCAweDQzLCAweDUzLCAweDgyfSB9LAoreyAweDE2ZDAsCTE2LAl7MHhmOCwgMHg0MywgMHg4MiwgMHgwNSwgMHhlMCwgMHg0MiwgMHgzOCwgMHg1MywgMHg4MiwgMHhmYiwgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHgwMiwgMHgxM30gfSwKK3sgMHgxNmUwLAkxNiwJezB4NDMsIDB4MzAsIDB4ZTEsIDB4MDIsIDB4ODAsIDB4ZTgsIDB4ZjUsIDB4ODUsIDB4ZTUsIDB4MzIsIDB4MzAsIDB4ZTIsIDB4MGEsIDB4NTMsIDB4ODIsIDB4Zjh9IH0sCit7IDB4MTZmMCwJMTYsCXsweDQzLCAweDgyLCAweDA0LCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweGU1LCAweDg1LCAweDIwLCAweGUzLCAweDU2LCAweDkwLCAweDIwLCAweDUwLCAweDc0fSB9LAoreyAweDE3MDAsCTE2LAl7MHgwMiwgMHhmMCwgMHg5MCwgMHgyMCwgMHg1OCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlMiwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg5MH0gfSwKK3sgMHgxNzEwLAkxNiwJezB4N2YsIDB4ZTMsIDB4MDUsIDB4ODYsIDB4OTAsIDB4N2QsIDB4ODAsIDB4MDUsIDB4ODYsIDB4ZTUsIDB4ODUsIDB4ZjAsIDB4YTMsIDB4ZTUsIDB4ODQsIDB4ZjB9IH0sCit7IDB4MTcyMCwJMTYsCXsweDA1LCAweDg2LCAweDkwLCAweDdmLCAweGU1LCAweGU1LCAweDQxLCAweGZkLCAweDAzLCAweDAzLCAweDAzLCAweGZlLCAweGYwLCAweGYwLCAweGYwLCAweGYwfSB9LAoreyAweDE3MzAsCTE2LAl7MHhmMCwgMHhmMCwgMHhmMCwgMHhmMCwgMHhkZSwgMHhmNiwgMHg5MCwgMHg3ZiwgMHhlMiwgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHgyMCwgMHg1OH0gfSwKK3sgMHgxNzQwLAkxNiwJezB4NzQsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YmIsIDB4ZWQsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4MTEsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4MDJ9IH0sCit7IDB4MTc1MCwJMTYsCXsweDEzLCAweDQzLCAweDdmLCAweDQwLCAweDkwLCAweDdkLCAweDgwLCAweDA1LCAweDg2LCAweDkwLCAweDIwLCAweDEwLCAweGU1LCAweDg0LCAweGZlLCAweDI0fSB9LAoreyAweDE3NjAsCTE2LAl7MHgwNSwgMHhmZCwgMHg4ZCwgMHg4NCwgMHhlMCwgMHg4ZSwgMHg4NCwgMHgzMCwgMHhlMCwgMHgwOSwgMHhlMCwgMHgwNSwgMHg4NiwgMHhmMCwgMHhhMywgMHgwNX0gfSwKK3sgMHgxNzcwLAkxNiwJezB4ODYsIDB4ZGYsIDB4ZWYsIDB4MDUsIDB4ODYsIDB4YzMsIDB4NzQsIDB4NDAsIDB4OWYsIDB4OTAsIDB4N2YsIDB4YmIsIDB4ZjAsIDB4MDUsIDB4ODYsIDB4YTN9IH0sCit7IDB4MTc4MCwJMTYsCXsweGUwLCAweDU0LCAweGZlLCAweGYwLCAweDAyLCAweDEzLCAweDQzLCAweDUzLCAweDJmLCAweGZhLCAweGU1LCAweDI1LCAweDYwLCAweDA4LCAweDc1LCAweDI1fSB9LAoreyAweDE3OTAsCTE2LAl7MHgwMCwgMHhkMiwgMHhlNywgMHhmZSwgMHg4MCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhlMCwgMHhmZSwgMHg3MCwgMHgwMywgMHgwMiwgMHgxOCwgMHgyMX0gfSwKK3sgMHgxN2EwLAkxNiwJezB4OTAsIDB4MjAsIDB4NTAsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4NTgsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTB9IH0sCit7IDB4MTdiMCwJMTYsCXsweDQ0LCAweDQwLCAweGYwLCAweDkwLCAweDdmLCAweGUzLCAweDA1LCAweDg2LCAweDkwLCAweDdkLCAweDQwLCAweDA1LCAweDg2LCAweGU1LCAweDg1LCAweGYwfSB9LAoreyAweDE3YzAsCTE2LAl7MHhhMywgMHhlNSwgMHg4NCwgMHhmMCwgMHgwNSwgMHg4NiwgMHg5MCwgMHg3ZiwgMHhlNSwgMHhlZSwgMHgzMCwgMHhlNywgMHgwOCwgMHgwNSwgMHg4NiwgMHhlMH0gfSwKK3sgMHgxN2QwLAkxNiwJezB4MjQsIDB4MzgsIDB4ZjAsIDB4MDUsIDB4ODYsIDB4ZWUsIDB4NTQsIDB4N2YsIDB4ZmUsIDB4NTQsIDB4MDcsIDB4ZmIsIDB4ZWUsIDB4NTQsIDB4NzgsIDB4NjB9IH0sCit7IDB4MTdlMCwJMTYsCXsweDMwLCAweDAzLCAweDAzLCAweDAzLCAweDMwLCAweGUzLCAweDA0LCAweDc0LCAweDA3LCAweDdiLCAweDA4LCAweGZkLCAweGZjLCAweGUwLCAweGUwLCAweGUwfSB9LAoreyAweDE3ZjAsCTE2LAl7MHhlMCwgMHhlMCwgMHhlMCwgMHhlMCwgMHhlMCwgMHhkZCwgMHhmNiwgMHhlYiwgMHhmZSwgMHg2MCwgMHgxOSwgMHhlYywgMHg2NCwgMHgwNywgMHg3MCwgMHgxMX0gfSwKK3sgMHgxODAwLAkxNiwJezB4OGIsIDB4MjUsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4NTgsIDB4NzQsIDB4MDAsIDB4ZjAsIDB4ODB9IH0sCit7IDB4MTgxMCwJMTYsCXsweDFiLCAweGUwLCAweGRlLCAweGZkLCAweDkwLCAweDdmLCAweGUyLCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDkwLCAweDIwLCAweDU4LCAweDc0LCAweDAwfSB9LAoreyAweDE4MjAsCTE2LAl7MHhmMCwgMHg5MCwgMHgyMCwgMHgxMSwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhmMCwgMHgwMiwgMHgxMywgMHg0MywgMHg5MH0gfSwKK3sgMHgxODMwLAkxNiwJezB4MjAsIDB4MWEsIDB4ZTAsIDB4NTQsIDB4M2YsIDB4MjAsIDB4ZTIsIDB4M2EsIDB4MjAsIDB4ZTEsIDB4MGIsIDB4MjAsIDB4ZTQsIDB4MGIsIDB4MjAsIDB4ZTV9IH0sCit7IDB4MTg0MCwJMTYsCXsweDE0LCAweDYwLCAweDA5LCAweDAyLCAweDEzLCAweDQzLCAweDAyLCAweDE5LCAweDE4LCAweDAyLCAweDEzLCAweDQzLCAweDQzLCAweDgyLCAweDA0LCAweGUwfSB9LAoreyAweDE4NTAsCTE2LAl7MHhmNSwgMHgzZCwgMHgwMiwgMHgxMywgMHg0MywgMHg0MywgMHg4MiwgMHgwNCwgMHhlMCwgMHg0MywgMHgzMCwgMHgwMSwgMHgwMiwgMHgxMywgMHg0MywgMHg1M30gfSwKK3sgMHgxODYwLAkxNiwJezB4ODIsIDB4ZjgsIDB4NDMsIDB4ODIsIDB4MDUsIDB4ZTAsIDB4NDIsIDB4MzksIDB4NTMsIDB4ODIsIDB4ZmIsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4MDJ9IH0sCit7IDB4MTg3MCwJMTYsCXsweDEzLCAweDQzLCAweDMwLCAweGUxLCAweDAyLCAweDgwLCAweGU4LCAweGY1LCAweDg1LCAweGU1LCAweDMyLCAweDMwLCAweGUzLCAweDBhLCAweDUzLCAweDgyfSB9LAoreyAweDE4ODAsCTE2LAl7MHhmOCwgMHg0MywgMHg4MiwgMHgwNCwgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHhlNSwgMHg4NSwgMHgyMCwgMHhlMywgMHg1NiwgMHg5MCwgMHgyMCwgMHg1MH0gfSwKK3sgMHgxODkwLAkxNiwJezB4NzQsIDB4MDMsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4NTgsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjB9IH0sCit7IDB4MThhMCwJMTYsCXsweDkwLCAweDdmLCAweGUzLCAweDA1LCAweDg2LCAweDkwLCAweDdkLCAweDAwLCAweDA1LCAweDg2LCAweGU1LCAweDg1LCAweGYwLCAweGEzLCAweGU1LCAweDg0fSB9LAoreyAweDE4YjAsCTE2LAl7MHhmMCwgMHgwNSwgMHg4NiwgMHg5MCwgMHg3ZiwgMHhlNSwgMHhlNSwgMHg0MiwgMHhmZCwgMHgwMywgMHgwMywgMHgwMywgMHhmZSwgMHhmMCwgMHhmMCwgMHhmMH0gfSwKK3sgMHgxOGMwLAkxNiwJezB4ZjAsIDB4ZjAsIDB4ZjAsIDB4ZjAsIDB4ZjAsIDB4ZGUsIDB4ZjYsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4MjB9IH0sCit7IDB4MThkMCwJMTYsCXsweDU4LCAweDc0LCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweGJkLCAweGVkLCAweGYwLCAweDkwLCAweDIwLCAweDE5LCAweGUwLCAweDU0LCAweGZlLCAweGYwfSB9LAoreyAweDE4ZTAsCTE2LAl7MHgwMiwgMHgxMywgMHg0MywgMHg3ZiwgMHg0MCwgMHg5MCwgMHg3ZCwgMHgwMCwgMHgwNSwgMHg4NiwgMHg5MCwgMHgyMCwgMHgxOCwgMHhlNSwgMHg4NCwgMHhmZX0gfSwKK3sgMHgxOGYwLAkxNiwJezB4MjQsIDB4MDUsIDB4ZmQsIDB4OGQsIDB4ODQsIDB4ZTAsIDB4OGUsIDB4ODQsIDB4MzAsIDB4ZTAsIDB4MDksIDB4ZTAsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTN9IH0sCit7IDB4MTkwMCwJMTYsCXsweDA1LCAweDg2LCAweGRmLCAweGVmLCAweDA1LCAweDg2LCAweGMzLCAweDc0LCAweDQwLCAweDlmLCAweDkwLCAweDdmLCAweGJkLCAweGYwLCAweDA1LCAweDg2fSB9LAoreyAweDE5MTAsCTE2LAl7MHhhMywgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHgwMiwgMHgxMywgMHg0MywgMHg1MywgMHgzMCwgMHhmYSwgMHhlNSwgMHgyNiwgMHg2MCwgMHgwOCwgMHg3NX0gfSwKK3sgMHgxOTIwLAkxNiwJezB4MjYsIDB4MDAsIDB4ZDIsIDB4ZTcsIDB4ZmUsIDB4ODAsIDB4MGEsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTAsIDB4ZmUsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MTl9IH0sCit7IDB4MTkzMCwJMTYsCXsweGIyLCAweDkwLCAweDIwLCAweDUwLCAweDc0LCAweDAzLCAweGYwLCAweDkwLCAweDIwLCAweDU4LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGUyfSB9LAoreyAweDE5NDAsCTE2LAl7MHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlMywgMHgwNSwgMHg4NiwgMHg5MCwgMHg3YywgMHhjMCwgMHgwNSwgMHg4NiwgMHhlNSwgMHg4NX0gfSwKK3sgMHgxOTUwLAkxNiwJezB4ZjAsIDB4YTMsIDB4ZTUsIDB4ODQsIDB4ZjAsIDB4MDUsIDB4ODYsIDB4OTAsIDB4N2YsIDB4ZTUsIDB4ZWUsIDB4MzAsIDB4ZTcsIDB4MDgsIDB4MDUsIDB4ODZ9IH0sCit7IDB4MTk2MCwJMTYsCXsweGUwLCAweDI0LCAweDM4LCAweGYwLCAweDA1LCAweDg2LCAweGVlLCAweDU0LCAweDdmLCAweGZlLCAweDU0LCAweDA3LCAweGZiLCAweGVlLCAweDU0LCAweDc4fSB9LAoreyAweDE5NzAsCTE2LAl7MHg2MCwgMHgzMCwgMHgwMywgMHgwMywgMHgwMywgMHgzMCwgMHhlMywgMHgwNCwgMHg3NCwgMHgwNywgMHg3YiwgMHgwOCwgMHhmZCwgMHhmYywgMHhlMCwgMHhlMH0gfSwKK3sgMHgxOTgwLAkxNiwJezB4ZTAsIDB4ZTAsIDB4ZTAsIDB4ZTAsIDB4ZTAsIDB4ZTAsIDB4ZGQsIDB4ZjYsIDB4ZWIsIDB4ZmUsIDB4NjAsIDB4MTksIDB4ZWMsIDB4NjQsIDB4MDcsIDB4NzB9IH0sCit7IDB4MTk5MCwJMTYsCXsweDExLCAweDhiLCAweDI2LCAweDkwLCAweDdmLCAweGUyLCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDkwLCAweDIwLCAweDU4LCAweDc0LCAweDAwLCAweGYwfSB9LAoreyAweDE5YTAsCTE2LAl7MHg4MCwgMHgxYiwgMHhlMCwgMHhkZSwgMHhmZCwgMHg5MCwgMHg3ZiwgMHhlMiwgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHgyMCwgMHg1OCwgMHg3NH0gfSwKK3sgMHgxOWIwLAkxNiwJezB4MDAsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4MTksIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NDN9IH0sCit7IDB4MTljMCwJMSwJezB4MzJ9IH0sCit7IDB4MTljMSwJNCwJezB4YWQsIDB4MDcsIDB4YWMsIDB4MDZ9IH0sCit7IDB4MTljNSwJMTYsCXsweDc5LCAweDA2LCAweGVkLCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDNjLCAweGY1LCAweDgzLCAweGUwLCAweGZhLCAweGEzLCAweGUwLCAweGZifSB9LAoreyAweDE5ZDUsCTE2LAl7MHg0YSwgMHg3MCwgMHgwMywgMHgwMiwgMHgxYiwgMHgwOSwgMHhlOSwgMHhiNCwgMHgwNywgMHgwMCwgMHg0MCwgMHgwMywgMHgwMiwgMHgxYSwgMHhkYiwgMHg5MH0gfSwKK3sgMHgxOWU1LAkxNiwJezB4MTksIDB4ZWIsIDB4ZjgsIDB4MjgsIDB4MjgsIDB4NzMsIDB4MDIsIDB4MWEsIDB4YjksIDB4MDIsIDB4MWEsIDB4NzEsIDB4MDIsIDB4MWEsIDB4NWEsIDB4MDJ9IH0sCit7IDB4MTlmNSwJMTYsCXsweDFhLCAweDQwLCAweDAyLCAweDFhLCAweDJmLCAweDAyLCAweDFhLCAweDFhLCAweDAyLCAweDFhLCAweDAwLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0fSB9LAoreyAweDFhMDUsCTE2LAl7MHg4MCwgMHhmMCwgMHg4ZCwgMHg4MiwgMHg4YywgMHg4MywgMHhhMywgMHhlMCwgMHhmZiwgMHgyNSwgMHhlMCwgMHg0NCwgMHhhMCwgMHg5MCwgMHg3ZiwgMHhhNn0gfSwKK3sgMHgxYTE1LAkxNiwJezB4ZjAsIDB4MTksIDB4MDIsIDB4MWEsIDB4ZGIsIDB4MTksIDB4OGQsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZTAsIDB4YzMsIDB4OTQsIDB4MjAsIDB4NDAsIDB4MGF9IH0sCit7IDB4MWEyNSwJMTYsCXsweGEzLCAweGEzLCAweGUwLCAweDkwLCAweDdmLCAweGE2LCAweGYwLCAweDAyLCAweDFhLCAweGRiLCAweDhkLCAweDgyLCAweDhjLCAweDgzLCAweGEzLCAweGEzfSB9LAoreyAweDFhMzUsCTE2LAl7MHhlMCwgMHhhMywgMHhlMCwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhmMCwgMHgxOSwgMHgwMiwgMHgxYSwgMHhkYiwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NH0gfSwKK3sgMHgxYTQ1LAkxNiwJezB4ODAsIDB4ZjAsIDB4OGQsIDB4ODIsIDB4OGMsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MjUsIDB4ZTAsIDB4NDQsIDB4YTEsIDB4OTAsIDB4N2YsIDB4YTZ9IH0sCit7IDB4MWE1NSwJMTYsCXsweGYwLCAweDE5LCAweDAyLCAweDFhLCAweGRiLCAweGViLCAweDY0LCAweDAxLCAweDRhLCAweDcwLCAweDA4LCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0fSB9LAoreyAweDFhNjUsCTE2LAl7MHgyMCwgMHhmMCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhlMCwgMHhmNSwgMHg1OSwgMHgxOSwgMHg4MCwgMHg2YSwgMHhlZCwgMHgyNCwgMHgwNCwgMHhmNX0gfSwKK3sgMHgxYTc1LAkxNiwJezB4ODIsIDB4ZTQsIDB4M2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4NjQsIDB4MDIsIDB4NGUsIDB4NzAsIDB4MDgsIDB4OTAsIDB4N2Z9IH0sCit7IDB4MWE4NSwJMTYsCXsweGE1LCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDE5LCAweDkwLCAweDdmLCAweGE2LCAweGUwLCAweGZmLCAweGVkLCAweDI0LCAweDA2LCAweGY1LCAweDgyfSB9LAoreyAweDFhOTUsCTE2LAl7MHhlNCwgMHgzYywgMHhmNSwgMHg4MywgMHhlNCwgMHg3NSwgMHhmMCwgMHgwMSwgMHgxMiwgMHhhMiwgMHg5NywgMHg4NSwgMHhmMCwgMHg4MiwgMHhmNSwgMHg4M30gfSwKK3sgMHgxYWE1LAkxNiwJezB4ZWYsIDB4ZjAsIDB4ZWQsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4M2MsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4ZmYsIDB4ZjUsIDB4ZjAsIDB4MTJ9IH0sCit7IDB4MWFiNSwJMTYsCXsweGEyLCAweDgxLCAweDgwLCAweDIyLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDkwLCAweDdmLCAweGE2LCAweGUwLCAweGZmfSB9LAoreyAweDFhYzUsCTE2LAl7MHhlZCwgMHgyNCwgMHgwNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzYywgMHhmNSwgMHg4MywgMHhlMCwgMHhmYSwgMHhhMywgMHhlMCwgMHhmNSwgMHg4MiwgMHg4YX0gfSwKK3sgMHgxYWQ1LAkxNiwJezB4ODMsIDB4ZWYsIDB4ZjAsIDB4N2YsIDB4MDgsIDB4MjIsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4ZjUsIDB4NTksIDB4MzAsIDB4ZTAsIDB4ZjcsIDB4MzB9IH0sCit7IDB4MWFlNSwJMTYsCXsweGUyLCAweDA3LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDdmLCAweDA2LCAweDIyLCAweGU5LCAweGQzLCAweDk0LCAweDAyLCAweDUwLCAweDAzLCAweDAyfSB9LAoreyAweDFhZjUsCTE2LAl7MHgxOSwgMHhjNywgMHhlNSwgMHg1OSwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgxOSwgMHhjNywgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg0MH0gfSwKK3sgMHgxYjA1LAk2LAl7MHhmMCwgMHg3ZiwgMHgwNywgMHgyMiwgMHg3ZiwgMHgwOH0gfSwKK3sgMHgxYjBiLAkxLAl7MHgyMn0gfSwKK3sgMHgxYjBjLAkxNiwJezB4ZTUsIDB4MzMsIDB4YzMsIDB4OTQsIDB4MDEsIDB4NTAsIDB4MWMsIDB4N2YsIDB4MDUsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDksIDB4YWUsIDB4N2YsIDB4MDJ9IH0sCit7IDB4MWIxYywJMTYsCXsweDdkLCAweGZmLCAweDEyLCAweDgyLCAweGVhLCAweDdmLCAweDA1LCAweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlLCAweDdmLCAweDAzLCAweDdkLCAweGZmfSB9LAoreyAweDFiMmMsCTQsCXsweDEyLCAweDgyLCAweGVhLCAweDIyfSB9LAoreyAweDgwMDAsCTE2LAl7MHg3YiwgMHhmZiwgMHg3YSwgMHgxMiwgMHg3OSwgMHgxYiwgMHg5MCwgMHgwMCwgMHgwNCwgMHgxMiwgMHhhMiwgMHg1NCwgMHhmZCwgMHg4YiwgMHg1MCwgMHg3NX0gfSwKK3sgMHg4MDEwLAkxNiwJezB4NTEsIDB4MTIsIDB4NzUsIDB4NTIsIDB4MjQsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4ZTEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTAsIDB4ZjAsIDB4ZjUsIDB4NGV9IH0sCit7IDB4ODAyMCwJMTYsCXsweGY1LCAweDRmLCAweDkwLCAweDAyLCAweGFlLCAweGYwLCAweDkwLCAweDdmLCAweGRmLCAweGYwLCAweDkwLCAweDdmLCAweGRlLCAweGYwLCAweDkwLCAweDdmfSB9LAoreyAweDgwMzAsCTE2LAl7MHhhOSwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYSwgMHhmMCwgMHhlNCwgMHhmYywgMHhlYywgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNX0gfSwKK3sgMHg4MDQwLAkxNiwJezB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4MGMsIDB4YmMsIDB4MTAsIDB4ZWUsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4ZGR9IH0sCit7IDB4ODA1MCwJMTYsCXsweGYwLCAweGFmLCAweDA1LCAweDFkLCAweGVmLCAweDcwLCAweDAzLCAweDAyLCAweDgxLCAweGM2LCAweGFiLCAweDUwLCAweGFhLCAweDUxLCAweGE5LCAweDUyfSB9LAoreyAweDgwNjAsCTE2LAl7MHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHhhMiwgMHg1NCwgMHg2NCwgMHgwNSwgMHg2MCwgMHgwMywgMHgwMiwgMHg4MSwgMHhiNSwgMHg5MCwgMHgwMCwgMHgwM30gfSwKK3sgMHg4MDcwLAkxNiwJezB4MTIsIDB4YTIsIDB4NTQsIDB4NjQsIDB4MDEsIDB4NjAsIDB4MDMsIDB4MDIsIDB4ODEsIDB4M2MsIDB4OTAsIDB4MDAsIDB4MDIsIDB4MTIsIDB4YTIsIDB4NTR9IH0sCit7IDB4ODA4MCwJMTYsCXsweGZmLCAweDU0LCAweDdmLCAweGZjLCAweGQzLCAweDk0LCAweDA3LCAweDUwLCAweDAzLCAweDAyLCAweDgxLCAweDE2LCAweGVjLCAweGMzLCAweDk0LCAweDEwfSB9LAoreyAweDgwOTAsCTE2LAl7MHg0MCwgMHgwMywgMHgwMiwgMHg4MSwgMHgxNiwgMHhlZiwgMHgzMCwgMHhlNywgMHg0MiwgMHhlNSwgMHg0ZiwgMHhhZSwgMHg0ZSwgMHg3OCwgMHgwMiwgMHhjZX0gfSwKK3sgMHg4MGEwLAkxNiwJezB4YzMsIDB4MTMsIDB4Y2UsIDB4MTMsIDB4ZDgsIDB4ZjksIDB4ZmYsIDB4NzQsIDB4ZjAsIDB4MmMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjV9IH0sCit7IDB4ODBiMCwJMTYsCXsweDgzLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweGUwLCAweGUwLCAweGZmLCAweGVjLCAweDI0LCAweGY4LCAweGZlLCAweDc0LCAweDAxLCAweGE4LCAweDA2fSB9LAoreyAweDgwYzAsCTE2LAl7MHgwOCwgMHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHg0ZiwgMHg5MCwgMHg3ZiwgMHhlMCwgMHhmMCwgMHg5MCwgMHgwMiwgMHhhZSwgMHhlMH0gfSwKK3sgMHg4MGQwLAkxNiwJezB4MDQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGQsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ODAsIDB4M2UsIDB4ZTUsIDB4NGYsIDB4YWUsIDB4NGUsIDB4Nzh9IH0sCit7IDB4ODBlMCwJMTYsCXsweDAyLCAweGNlLCAweGMzLCAweDEzLCAweGNlLCAweDEzLCAweGQ4LCAweGY5LCAweGZmLCAweDc0LCAweGU4LCAweDJjLCAweGY1LCAweDgyLCAweGU0LCAweDM0fSB9LAoreyAweDgwZjAsCTE2LAl7MHg3ZiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlMSwgMHhlMCwgMHhmZiwgMHhlYywgMHgyNCwgMHhmOCwgMHhmZSwgMHg3NCwgMHgwMX0gfSwKK3sgMHg4MTAwLAkxNiwJezB4YTgsIDB4MDYsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4NGYsIDB4OTAsIDB4N2YsIDB4ZTEsIDB4ZjAsIDB4OTAsIDB4MDJ9IH0sCit7IDB4ODExMCwJMTYsCXsweGFlLCAweGUwLCAweDA0LCAweGYwLCAweDgwLCAweDAzLCAweDdmLCAweGZmLCAweDIyLCAweDkwLCAweDAwLCAweDA0LCAweDEyLCAweGEyLCAweDU0LCAweDI1fSB9LAoreyAweDgxMjAsCTE2LAl7MHg0ZiwgMHhmNSwgMHg0ZiwgMHhlNCwgMHgzNSwgMHg0ZSwgMHhmNSwgMHg0ZSwgMHg5MCwgMHgwMCwgMHgwNSwgMHgxMiwgMHhhMiwgMHg1NCwgMHhmZSwgMHhlNH0gfSwKK3sgMHg4MTMwLAkxNiwJezB4MjUsIDB4NGYsIDB4ZjUsIDB4NGYsIDB4ZWUsIDB4MzUsIDB4NGUsIDB4ZjUsIDB4NGUsIDB4MDIsIDB4ODEsIDB4YjgsIDB4YWIsIDB4NTAsIDB4YWEsIDB4NTF9IH0sCit7IDB4ODE0MCwJMTYsCXsweGE5LCAweDUyLCAweDkwLCAweDAwLCAweDAzLCAweDEyLCAweGEyLCAweDU0LCAweGZmLCAweDY0LCAweDAyLCAweDYwLCAweDA1LCAweGVmLCAweDY0LCAweDAzfSB9LAoreyAweDgxNTAsCTE2LAl7MHg3MCwgMHg2MCwgMHg5MCwgMHgwMCwgMHgwMiwgMHgxMiwgMHhhMiwgMHg1NCwgMHhmZiwgMHg1NCwgMHg3ZiwgMHhmYywgMHhkMywgMHg5NCwgMHgwNywgMHg1MH0gfSwKK3sgMHg4MTYwLAkxNiwJezB4NGUsIDB4ZWYsIDB4MzAsIDB4ZTcsIDB4MWUsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4ZTAsIDB4ZmYsIDB4NzQsIDB4MDEsIDB4YTgsIDB4MDQsIDB4MDgsIDB4ODB9IH0sCit7IDB4ODE3MCwJMTYsCXsweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweGZlLCAweDRmLCAweDkwLCAweDdmLCAweGRlLCAweGYwLCAweDkwLCAweDdmLCAweGFjLCAweGUwLCAweDRlfSB9LAoreyAweDgxODAsCTE2LAl7MHhmMCwgMHg4MCwgMHgzNSwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhlMCwgMHhmZiwgMHg3NCwgMHgwMSwgMHhhOCwgMHgwNCwgMHgwOCwgMHg4MCwgMHgwMiwgMHhjM30gfSwKK3sgMHg4MTkwLAkxNiwJezB4MzMsIDB4ZDgsIDB4ZmMsIDB4ZmUsIDB4NGYsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWQsIDB4ZTAsIDB4NGUsIDB4ZjAsIDB4ZWN9IH0sCit7IDB4ODFhMCwJMTYsCXsweDI1LCAweGUwLCAweDI0LCAweGM1LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGVjLCAweGYwLCAweDgwLCAweDA5LCAweDdmfSB9LAoreyAweDgxYjAsCTE2LAl7MHhmZiwgMHgyMiwgMHg3ZiwgMHhmZiwgMHgyMiwgMHg3ZiwgMHhmZiwgMHgyMiwgMHg3NCwgMHgwNywgMHgyNSwgMHg1MiwgMHhmNSwgMHg1MiwgMHhlNCwgMHgzNX0gfSwKK3sgMHg4MWMwLAkxNiwJezB4NTEsIDB4ZjUsIDB4NTEsIDB4MDIsIDB4ODAsIDB4NTEsIDB4MjAsIDB4MDMsIDB4MGQsIDB4OTAsIDB4MDIsIDB4YWUsIDB4ZTAsIDB4NjAsIDB4MDcsIDB4OTB9IH0sCit7IDB4ODFkMCwJOCwJezB4N2YsIDB4YWUsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4N2YsIDB4MDB9IH0sCit7IDB4ODFkOCwJMSwJezB4MjJ9IH0sCit7IDB4ODFkOSwJNCwJezB4OGUsIDB4NTksIDB4OGYsIDB4NWF9IH0sCit7IDB4ODFkZCwJMTYsCXsweDc1LCAweDViLCAweDAzLCAweGU1LCAweDVhLCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU5LCAweGY1LCAweDgzLCAweGUwLCAweGZlfSB9LAoreyAweDgxZWQsCTE2LAl7MHhhMywgMHhlMCwgMHg0ZSwgMHg3MCwgMHgwMywgMHgwMiwgMHg4MiwgMHhlNywgMHhlNSwgMHg1YiwgMHg2MCwgMHg0ZSwgMHgxNCwgMHg2MCwgMHgzOCwgMHgxNH0gfSwKK3sgMHg4MWZkLAkxNiwJezB4NjAsIDB4MjAsIDB4MTQsIDB4NjAsIDB4MDMsIDB4MDIsIDB4ODIsIDB4OGIsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ODV9IH0sCit7IDB4ODIwZCwJMTYsCXsweDVhLCAweDgyLCAweDg1LCAweDU5LCAweDgzLCAweGEzLCAweGUwLCAweGZmLCAweDI1LCAweGUwLCAweDQ0LCAweGEwLCAweDkwLCAweDdmLCAweGE2LCAweGYwfSB9LAoreyAweDgyMWQsCTE2LAl7MHg4MCwgMHg2YywgMHg4NSwgMHg1YSwgMHg4MiwgMHg4NSwgMHg1OSwgMHg4MywgMHhlMCwgMHhjMywgMHg5NCwgMHgyMCwgMHg0MCwgMHgwOSwgMHhhMywgMHhhM30gfSwKK3sgMHg4MjJkLAkxNiwJezB4ZTAsIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZjAsIDB4ODAsIDB4NTcsIDB4MTUsIDB4NWIsIDB4ODUsIDB4NWEsIDB4ODIsIDB4ODUsIDB4NTksIDB4ODMsIDB4YTN9IH0sCit7IDB4ODIzZCwJMTYsCXsweGEzLCAweGUwLCAweGEzLCAweGUwLCAweDkwLCAweDdmLCAweGE2LCAweGYwLCAweDgwLCAweDQ0LCAweGU1LCAweDVhLCAweDI0LCAweDA2LCAweGY1LCAweDgyfSB9LAoreyAweDgyNGQsCTE2LAl7MHhlNCwgMHgzNSwgMHg1OSwgMHhmNSwgMHg4MywgMHhlNCwgMHg3NSwgMHhmMCwgMHgwMSwgMHgxMiwgMHhhMiwgMHg5NywgMHg4NSwgMHhmMCwgMHg4MiwgMHhmNX0gfSwKK3sgMHg4MjVkLAkxNiwJezB4ODMsIDB4ZTAsIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4ZTUsIDB4NWEsIDB4MjR9IH0sCit7IDB4ODI2ZCwJMTYsCXsweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU5LCAweGY1LCAweDgzLCAweDc0LCAweGZmLCAweGY1LCAweGYwLCAweDEyLCAweGEyLCAweDgxLCAweDg1fSB9LAoreyAweDgyN2QsCTE2LAl7MHg1YSwgMHg4MiwgMHg4NSwgMHg1OSwgMHg4MywgMHhhMywgMHhhMywgMHhlNCwgMHg3NSwgMHhmMCwgMHgwMSwgMHgxMiwgMHhhMiwgMHg4MSwgMHg5MCwgMHg3Zn0gfSwKK3sgMHg4MjhkLAkxNiwJezB4YTUsIDB4ZTAsIDB4ZjUsIDB4NWMsIDB4MzAsIDB4ZTAsIDB4ZjcsIDB4MzAsIDB4ZTIsIDB4MDcsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4N2YsIDB4MDZ9IH0sCit7IDB4ODI5ZCwJMTYsCXsweDIyLCAweGU1LCAweDVjLCAweDIwLCAweGUxLCAweDBhLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDdmLCAweDA3LCAweDIyfSB9LAoreyAweDgyYWQsCTE2LAl7MHhlNSwgMHg1YiwgMHg3MCwgMHgzMSwgMHg3ZiwgMHgwMSwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwOSwgMHhhZSwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NH0gfSwKK3sgMHg4MmJkLAkxNiwJezB4ODAsIDB4ZjAsIDB4ODUsIDB4NWEsIDB4ODIsIDB4ODUsIDB4NTksIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MjUsIDB4ZTAsIDB4NDQsIDB4YTAsIDB4OTB9IH0sCit7IDB4ODJjZCwJMTYsCXsweDdmLCAweGE2LCAweGYwLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweGY1LCAweDVjLCAweDMwLCAweGUwLCAweGY3LCAweDMwLCAweGUxLCAweGQ1LCAweDc1fSB9LAoreyAweDgyZGQsCTEyLAl7MHg1YiwgMHgwMywgMHgwMiwgMHg4MSwgMHhlMCwgMHgxNSwgMHg1YiwgMHgwMiwgMHg4MSwgMHhlMCwgMHg3ZiwgMHgwOH0gfSwKK3sgMHg4MmU5LAkxLAl7MHgyMn0gfSwKK3sgMHg4MmVhLAkyLAl7MHhhZSwgMHgwN30gfSwKK3sgMHg4MmVjLAkxNiwJezB4N2MsIDB4MDIsIDB4ZWMsIDB4MTQsIDB4NjAsIDB4MTUsIDB4MTQsIDB4NzAsIDB4MWUsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjB9IH0sCit7IDB4ODJmYywJMTYsCXsweGVlLCAweDI1LCAweGUwLCAweDQ0LCAweDQwLCAweDkwLCAweDdmLCAweGE2LCAweGYwLCAweDgwLCAweDBjLCAweDkwLCAweDdmLCAweGE2LCAweGVkLCAweGYwfSB9LAoreyAweDgzMGMsCTE2LAl7MHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHhmYiwgMHgzMCwgMHhlMCwgMHhmOCwgMHhiY30gfSwKK3sgMHg4MzFjLAkxNiwJezB4MDIsIDB4MGEsIDB4MjAsIDB4ZTEsIDB4MDcsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4N2YsIDB4MDcsIDB4MjIsIDB4ZWIsIDB4MzAsIDB4ZTIsIDB4MGF9IH0sCit7IDB4ODMyYywJMTQsCXsweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDdmLCAweDA2LCAweDIyLCAweGRjLCAweGI2LCAweDdmLCAweDA4fSB9LAoreyAweDgzM2EsCTEsCXsweDIyfSB9LAoreyAweDgzM2IsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMiwgMHhhOSwgMHg5MCwgMHgwMywgMHgwMCwgMHg3NCwgMHgxOSwgMHhmMCwgMHhkMiwgMHhhOX0gfSwKK3sgMHg4MzRiLAkxNSwJezB4NTMsIDB4OTEsIDB4N2YsIDB4OTAsIDB4MDEsIDB4YzQsIDB4ZTQsIDB4ZjAsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCit7IDB4ODM1YSwJMTYsCXsweGVmLCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAwLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDIwLCAweGFiLCAweDgyLCAweGZhLCAweGY1fSB9LAoreyAweDgzNmEsCTE2LAl7MHg4MywgMHhhMywgMHhlNCwgMHhmMCwgMHg4YiwgMHg4MiwgMHg4YSwgMHg4MywgMHhhMywgMHhhMywgMHhhMywgMHhlMCwgMHhmNSwgMHg2MSwgMHg3NCwgMHhiZn0gfSwKK3sgMHg4MzdhLAkxNiwJezB4ZjAsIDB4OGIsIDB4ODIsIDB4OGEsIDB4ODMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4NDQsIDB4MTAsIDB4ZjAsIDB4OGIsIDB4ODIsIDB4OGEsIDB4ODMsIDB4YTN9IH0sCit7IDB4ODM4YSwJMTYsCXsweGEzLCAweGEzLCAweGU0LCAweGYwLCAweDhiLCAweDgyLCAweDhhLCAweDgzLCAweGEzLCAweGYwLCAweGY5LCAweGVkLCAweDYwLCAweDFkLCAweDc0LCAweDAxfSB9LAoreyAweDgzOWEsCTE2LAl7MHg3ZSwgMHgwMCwgMHhhOCwgMHgwNywgMHgwOCwgMHg4MCwgMHgwNSwgMHhjMywgMHgzMywgMHhjZSwgMHgzMywgMHhjZSwgMHhkOCwgMHhmOSwgMHhmZiwgMHhlNH0gfSwKK3sgMHg4M2FhLAkxNiwJezB4ZWYsIDB4NTUsIDB4MzEsIDB4NjAsIDB4MDQsIDB4NzksIDB4MDksIDB4ODAsIDB4MDIsIDB4NzksIDB4MGQsIDB4OGIsIDB4ODIsIDB4OGEsIDB4ODMsIDB4YTN9IH0sCit7IDB4ODNiYSwJMTYsCXsweGEzLCAweGEzLCAweDc0LCAweGJmLCAweGYwLCAweDhiLCAweDgyLCAweDhhLCAweDgzLCAweGEzLCAweGEzLCAweGUwLCAweDU0LCAweGVmLCAweGYwLCAweDhifSB9LAoreyAweDgzY2EsCTE2LAl7MHg4MiwgMHg4YSwgMHg4MywgMHhhMywgMHhhMywgMHhhMywgMHhlNSwgMHg2MSwgMHhmMCwgMHhhZSwgMHgwMiwgMHhhZiwgMHgwMywgMHg4ZiwgMHg4MiwgMHg4ZX0gfSwKK3sgMHg4M2RhLAk0LAl7MHg4MywgMHhhMywgMHhlOSwgMHhmMH0gfSwKK3sgMHg4M2RlLAkxLAl7MHgyMn0gfSwKK3sgMHg4M2RmLAk0LAl7MHg4ZiwgMHg2MSwgMHg4ZCwgMHg2Mn0gfSwKK3sgMHg4M2UzLAkxNiwJezB4ZTQsIDB4ZjUsIDB4NjcsIDB4NzQsIDB4M2YsIDB4MmYsIDB4ZjgsIDB4NzYsIDB4MDgsIDB4N2YsIDB4ODAsIDB4N2UsIDB4MjUsIDB4N2QsIDB4MDAsIDB4N2N9IH0sCit7IDB4ODNmMywJMTYsCXsweDAwLCAweGFiLCAweDY2LCAweGFhLCAweDY1LCAweGE5LCAweDY0LCAweGE4LCAweDYzLCAweGQzLCAweDEyLCAweGEzLCAweGIzLCAweDQwLCAweDI2LCAweDdmfSB9LAoreyAweDg0MDMsCTE2LAl7MHgwMCwgMHg3ZSwgMHg5NiwgMHg3ZCwgMHgwMCwgMHg3YywgMHgwMCwgMHhhOCwgMHg2MywgMHhkMywgMHgxMiwgMHhhMywgMHhiMywgMHg1MCwgMHgwYywgMHg3NX0gfSwKK3sgMHg4NDEzLAkxNiwJezB4NjcsIDB4NDAsIDB4NzQsIDB4M2YsIDB4MjUsIDB4NjEsIDB4ZjgsIDB4NzYsIDB4MTAsIDB4ODAsIDB4MGEsIDB4NzUsIDB4NjcsIDB4ODAsIDB4NzQsIDB4M2Z9IH0sCit7IDB4ODQyMywJMTYsCXsweDI1LCAweDYxLCAweGY4LCAweDc2LCAweDM4LCAweGU1LCAweDY3LCAweDQ1LCAweDYyLCAweDQ0LCAweDAxLCAweGZmLCAweGU1LCAweDYxLCAweDc1LCAweGYwfSB9LAoreyAweDg0MzMsCTEzLAl7MHgwOCwgMHhhNCwgMHgyNCwgMHgwMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgyMCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMH0gfSwKK3sgMHg4NDQwLAkxLAl7MHgyMn0gfSwKK3sgMHg4NDQxLAkxNiwJezB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4NTcsIDB4YzMsIDB4OTQsIDB4MDQsIDB4NDAsIDB4MDMsIDB4N2YsIDB4ZmYsIDB4MjJ9IH0sCit7IDB4ODQ1MSwJMTYsCXsweGU1LCAweDU3LCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAwLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDIwLCAweGFmLCAweDgyLCAweGY1fSB9LAoreyAweDg0NjEsCTE2LAl7MHg1OCwgMHg4ZiwgMHg1OSwgMHhlNSwgMHg1NywgMHgyNSwgMHhlMCwgMHgyNCwgMHhjNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4M30gfSwKK3sgMHg4NDcxLAkxNiwJezB4ZTAsIDB4MjAsIDB4ZTEsIDB4MGYsIDB4ZTUsIDB4NTcsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjV9IH0sCit7IDB4ODQ4MSwJMTYsCXsweDgzLCAweGU0LCAweGYwLCAweDc0LCAweDIzLCAweDI1LCAweDU3LCAweGY4LCAweGU0LCAweGY2LCAweGU1LCAweDU5LCAweDI0LCAweDA0LCAweGY1LCAweDgyfSB9LAoreyAweDg0OTEsCTE2LAl7MHhlNCwgMHgzNSwgMHg1OCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwMywgMHhmMCwgMHhlNSwgMHg1NywgMHg3NSwgMHhmMCwgMHgwZCwgMHhhNCwgMHgyNH0gfSwKK3sgMHg4NGExLAkxNiwJezB4MDIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4YTMsIDB4ZTAsIDB4ZmV9IH0sCit7IDB4ODRiMSwJMTYsCXsweGEzLCAweGUwLCAweGY1LCAweDY2LCAweDhlLCAweDY1LCAweDhkLCAweDY0LCAweDhjLCAweDYzLCAweDdkLCAweDA2LCAweGFmLCAweDU3LCAweDEyLCAweDgzfSB9LAoreyAweDg0YzEsCTE2LAl7MHhkZiwgMHhhZiwgMHg1NywgMHg3ZCwgMHgwMSwgMHgxMiwgMHg4MywgMHg1YSwgMHg4NSwgMHg1OSwgMHg4MiwgMHg4NSwgMHg1OCwgMHg4MywgMHhhMywgMHhhM30gfSwKK3sgMHg4NGQxLAkxNiwJezB4ZTAsIDB4MjAsIDB4ZTAsIDB4NDMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4NTksIDB4MjQsIDB4MDUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTgsIDB4ZjV9IH0sCit7IDB4ODRlMSwJMTYsCXsweDgzLCAweGUwLCAweGU1LCAweDU5LCAweDI0LCAweDA2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU4LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1fSB9LAoreyAweDg0ZjEsCTE2LAl7MHg1NywgMHg3NSwgMHhmMCwgMHgwZCwgMHhhNCwgMHgyNCwgMHgwMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMywgMHhmNSwgMHg4MywgMHhlMCwgMHhmY30gfSwKK3sgMHg4NTAxLAkxNiwJezB4YTMsIDB4ZTAsIDB4ZmQsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4NjYsIDB4OGUsIDB4NjUsIDB4OGQsIDB4NjQsIDB4OGMsIDB4NjN9IH0sCit7IDB4ODUxMSwJMTYsCXsweDdkLCAweDA2LCAweGFmLCAweDU3LCAweDEyLCAweDgzLCAweGRmLCAweDc0LCAweGY4LCAweDI1LCAweDU3LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAyfSB9LAoreyAweDg1MjEsCTE2LAl7MHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHhlNSwgMHg1NywgMHgyNSwgMHhlMCwgMHhmZiwgMHhjMywgMHg3NCwgMHgwYywgMHg5ZiwgMHg3NSwgMHhmMCwgMHg0MH0gfSwKK3sgMHg4NTMxLAkxNiwJezB4YTQsIDB4MjQsIDB4NDAsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ZjAsIDB4MzQsIDB4N2IsIDB4YWYsIDB4ODIsIDB4ZmUsIDB4ZTUsIDB4NTcsIDB4MjUsIDB4ZTB9IH0sCit7IDB4ODU0MSwJMTYsCXsweDI0LCAweGVmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAyLCAweGY1LCAweDgzLCAweGVlLCAweGYwLCAweGEzLCAweGVmLCAweGYwLCAweGFmLCAweDU3fSB9LAoreyAweDg1NTEsCTE1LAl7MHg3NCwgMHgwMSwgMHhhOCwgMHgwNywgMHgwOCwgMHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHg0MiwgMHgzNCwgMHg3ZiwgMHgwMH0gfSwKK3sgMHg4NTYwLAkxLAl7MHgyMn0gfSwKK3sgMHg4NTYxLAkxNiwJezB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4NTcsIDB4YzMsIDB4OTQsIDB4MDQsIDB4NDAsIDB4MDMsIDB4N2YsIDB4ZmYsIDB4MjJ9IH0sCit7IDB4ODU3MSwJMTYsCXsweGFmLCAweDU3LCAweGU0LCAweGZkLCAweDEyLCAweDgzLCAweDVhLCAweDc0LCAweGY4LCAweDI1LCAweDU3LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAyfSB9LAoreyAweDg1ODEsCTE2LAl7MHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHhlNSwgMHg1NywgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNH0gfSwKK3sgMHg4NTkxLAkxNiwJezB4MjAsIDB4YWYsIDB4ODIsIDB4ZjUsIDB4NTksIDB4OGYsIDB4NWEsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4ODIsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTR9IH0sCit7IDB4ODVhMSwJMTYsCXsweDM1LCAweDgzLCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZjLCAweGYwLCAweGU1LCAweDU3LCAweDc1LCAweGYwLCAweDBkLCAweGE0LCAweDI0LCAweDBjfSB9LAoreyAweDg1YjEsCTE2LAl7MHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMywgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHhlNSwgMHg1NywgMHg3NSwgMHhmMCwgMHgwZCwgMHhhNCwgMHgyNH0gfSwKK3sgMHg4NWMxLAkxNiwJezB4MDIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4YTMsIDB4ZTAsIDB4ZmV9IH0sCit7IDB4ODVkMSwJMTYsCXsweGEzLCAweGUwLCAweGY1LCAweDY2LCAweDhlLCAweDY1LCAweDhkLCAweDY0LCAweDhjLCAweDYzLCAweDdkLCAweDA2LCAweGFmLCAweDU3LCAweDEyLCAweDgzfSB9LAoreyAweDg1ZTEsCTE2LAl7MHhkZiwgMHhlNSwgMHg1YSwgMHgyNCwgMHgwNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1OSwgMHhmNSwgMHg4MywgMHhlMCwgMHgzMCwgMHhlMCwgMHgwOX0gfSwKK3sgMHg4NWYxLAkxNiwJezB4ODUsIDB4NWEsIDB4ODIsIDB4ODUsIDB4NTksIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4NTgsIDB4YWYsIDB4NTcsIDB4NzQsIDB4MDEsIDB4YTgsIDB4MDcsIDB4MDh9IH0sCit7IDB4ODYwMSwJMTYsCXsweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweGY0LCAweDUyLCAweDM0LCAweGU1LCAweDU3LCAweDI1LCAweGUwLCAweDI0LCAweGM2LCAweGY1fSB9LAoreyAweDg2MTEsCTE2LAl7MHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHgyMCwgMHhlMSwgMHgwZiwgMHhlNSwgMHg1NywgMHgyNSwgMHhlMCwgMHgyNCwgMHhjN30gfSwKK3sgMHg4NjIxLAkxMSwJezB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4N2YsIDB4MDB9IH0sCit7IDB4ODYyYywJMSwJezB4MjJ9IH0sCit7IDB4ODYyZCwJNCwJezB4OGUsIDB4NTcsIDB4OGYsIDB4NTh9IH0sCit7IDB4ODYzMSwJMTYsCXsweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGUwLCAweDE0LCAweGY1LCAweDU5LCAweGMzLCAweDk0LCAweDA0LCAweDQwLCAweDAzLCAweDdmLCAweGZmLCAweDIyfSB9LAoreyAweDg2NDEsCTE2LAl7MHhlNSwgMHg1OSwgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgyMCwgMHhmNSwgMHg4MywgMHhlMH0gfSwKK3sgMHg4NjUxLAkxNiwJezB4NTQsIDB4MDMsIDB4NzAsIDB4NjYsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4MzAsIDB4ZTAsIDB4MjgsIDB4ZTV9IH0sCit7IDB4ODY2MSwJMTYsCXsweDU5LCAweDc1LCAweGYwLCAweDBkLCAweGE0LCAweDI0LCAweDAyLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAzLCAweGY1LCAweDgzLCAweGUwLCAweGZjfSB9LAoreyAweDg2NzEsCTE2LAl7MHhhMywgMHhlMCwgMHhmZCwgMHhhMywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHhmNSwgMHg2NiwgMHg4ZSwgMHg2NSwgMHg4ZCwgMHg2NCwgMHg4YywgMHg2M30gfSwKK3sgMHg4NjgxLAkxNiwJezB4N2QsIDB4MDIsIDB4YWYsIDB4NTksIDB4MTIsIDB4ODMsIDB4ZGYsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4MzB9IH0sCit7IDB4ODY5MSwJMTYsCXsweGUxLCAweDI4LCAweGU1LCAweDU5LCAweDc1LCAweGYwLCAweDBkLCAweGE0LCAweDI0LCAweDAyLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAzLCAweGY1fSB9LAoreyAweDg2YTEsCTE2LAl7MHg4MywgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmZCwgMHhhMywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHhmNSwgMHg2NiwgMHg4ZSwgMHg2NSwgMHg4ZH0gfSwKK3sgMHg4NmIxLAkxMiwJezB4NjQsIDB4OGMsIDB4NjMsIDB4N2QsIDB4MDQsIDB4YWYsIDB4NTksIDB4MTIsIDB4ODMsIDB4ZGYsIDB4N2YsIDB4MDB9IH0sCit7IDB4ODZiZCwJMSwJezB4MjJ9IH0sCit7IDB4ODZiZSwJMTYsCXsweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGUwLCAweGZkLCAweGEzLCAweGEzLCAweGEzLCAweGUwLCAweGZjLCAweGVkfSB9LAoreyAweDg2Y2UsCTE2LAl7MHg2YywgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhmMCwgMHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhhMywgMHhhMywgMHhhMywgMHhjMCwgMHg4MywgMHhjMH0gfSwKK3sgMHg4NmRlLAkxNiwJezB4ODIsIDB4ZTAsIDB4ZmQsIDB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4ZmMsIDB4ZWQsIDB4NmMsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZjB9IH0sCit7IDB4ODZlZSwJMTYsCXsweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGEzLCAweGEzLCAweGEzLCAweGUwLCAweGZkLCAweGVjLCAweDZkLCAweGQwfSB9LAoreyAweDg2ZmUsCTE2LAl7MHg4MiwgMHhkMCwgMHg4MywgMHhmMCwgMHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhhMywgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhlMCwgMHhmZCwgMHg4Zn0gfSwKK3sgMHg4NzBlLAkxNiwJezB4ODIsIDB4OGUsIDB4ODMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZmMsIDB4ZWQsIDB4NmMsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZjAsIDB4OGYsIDB4ODJ9IH0sCit7IDB4ODcxZSwJMTYsCXsweDhlLCAweDgzLCAweGEzLCAweGEzLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGUwLCAweGZkLCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGEzLCAweGUwfSB9LAoreyAweDg3MmUsCTE2LAl7MHhmYywgMHhlZCwgMHg2YywgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhmMCwgMHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhhMywgMHhjMCwgMHg4MywgMHhjMH0gfSwKK3sgMHg4NzNlLAkxNiwJezB4ODIsIDB4ZTAsIDB4ZmQsIDB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4ZWQsIDB4NmYsIDB4ZDAsIDB4ODIsIDB4ZDB9IH0sCit7IDB4ODc0ZSwJMywJezB4ODMsIDB4ZjAsIDB4MjJ9IH0sCit7IDB4ODc1MSwJNCwJezB4YWQsIDB4MDcsIDB4YWMsIDB4MDZ9IH0sCit7IDB4ODc1NSwJMTYsCXsweDc5LCAweDBkLCAweDhkLCAweDgyLCAweDhjLCAweDgzLCAweGUwLCAweDE0LCAweGZlLCAweGMzLCAweDk0LCAweDA0LCAweDQwLCAweDAzLCAweDdmLCAweGZmfSB9LAoreyAweDg3NjUsCTE2LAl7MHgyMiwgMHg4YywgMHg1NywgMHg4ZCwgMHg1OCwgMHhlZSwgMHg3NSwgMHhmMCwgMHgwZCwgMHhhNCwgMHgyNCwgMHgwMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNH0gfSwKK3sgMHg4Nzc1LAkxNiwJezB4MDMsIDB4YWYsIDB4ODIsIDB4ZmUsIDB4YWQsIDB4MDEsIDB4MTksIDB4ZWQsIDB4NjAsIDB4MjQsIDB4MGYsIDB4ZWYsIDB4YWMsIDB4MDYsIDB4NzAsIDB4MDF9IH0sCit7IDB4ODc4NSwJMTYsCXsweDBlLCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGUwLCAweGZkLCAweDA1LCAweDU4LCAweGU1LCAweDU4LCAweGFhLCAweDU3LCAweDcwLCAweDAyfSB9LAoreyAweDg3OTUsCTE2LAl7MHgwNSwgMHg1NywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHg2ZCwgMHg2MCwgMHhkOSwgMHg3ZiwgMHgwMSwgMHgyMiwgMHg3ZiwgMHgwMH0gfSwKK3sgMHg4N2E1LAkxLAl7MHgyMn0gfSwKK3sgMHg4N2E2LAk0LAl7MHg4ZSwgMHg1NywgMHg4ZiwgMHg1OH0gfSwKK3sgMHg4N2FhLAkxNiwJezB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4NWUsIDB4YzMsIDB4OTQsIDB4MDQsIDB4NDAsIDB4MDMsIDB4N2YsIDB4ZmYsIDB4MjJ9IH0sCit7IDB4ODdiYSwJMTYsCXsweGU1LCAweDVlLCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAwLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDIwLCAweGFmLCAweDgyLCAweGY1fSB9LAoreyAweDg3Y2EsCTE2LAl7MHg1ZiwgMHg4ZiwgMHg2MCwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhMywgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmZCwgMHhhM30gfSwKK3sgMHg4N2RhLAkxNiwJezB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4N2IsIDB4MDgsIDB4N2EsIDB4MDAsIDB4NzksIDB4MDAsIDB4NzgsIDB4MDAsIDB4ZDMsIDB4MTIsIDB4YTN9IH0sCit7IDB4ODdlYSwJMTYsCXsweGIzLCAweDQwLCAweDEwLCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGEzLCAweDEyLCAweGEzLCAweGZhLCAweDAwLCAweDAwLCAweDAwfSB9LAoreyAweDg3ZmEsCTE2LAl7MHgwOCwgMHg4MCwgMHgyZSwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhMywgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmZCwgMHhhM30gfSwKK3sgMHg4ODBhLAkxNiwJezB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDgsIDB4NzksIDB4MDcsIDB4NzgsIDB4MDAsIDB4YzMsIDB4MTIsIDB4YTN9IH0sCit7IDB4ODgxYSwJMTYsCXsweGIzLCAweDUwLCAweDBlLCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGEzLCAweDEyLCAweGEzLCAweGZhLCAweDAwLCAweDA3LCAweDA4fSB9LAoreyAweDg4MmEsCTE2LAl7MHgwMCwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhMywgMHhlMCwgMHhmOCwgMHhhMywgMHhlMCwgMHhmOSwgMHhhMywgMHhlMCwgMHhmYX0gfSwKK3sgMHg4ODNhLAkxNiwJezB4YTMsIDB4ZTAsIDB4ZmIsIDB4N2YsIDB4MDAsIDB4N2UsIDB4NTAsIDB4N2QsIDB4NDYsIDB4N2MsIDB4MDAsIDB4MTIsIDB4YTMsIDB4MjEsIDB4OGYsIDB4NWN9IH0sCit7IDB4ODg0YSwJMTYsCXsweDhlLCAweDViLCAweDhkLCAweDVhLCAweDhjLCAweDU5LCAweDdiLCAweDBhLCAweDdhLCAweDAwLCAweDc5LCAweDAwLCAweDc4LCAweDAwLCAweDEyLCAweGEzfSB9LAoreyAweDg4NWEsCTE2LAl7MHgyMSwgMHhhZiwgMHgwMywgMHg4ZiwgMHg1ZCwgMHhhZiwgMHg1YywgMHhhZSwgMHg1YiwgMHhhZCwgMHg1YSwgMHhhYywgMHg1OSwgMHg3YiwgMHgwYSwgMHg3YX0gfSwKK3sgMHg4ODZhLAkxNiwJezB4MDAsIDB4NzksIDB4MDAsIDB4NzgsIDB4MDAsIDB4MTIsIDB4YTMsIDB4MjEsIDB4OGYsIDB4NWMsIDB4OGUsIDB4NWIsIDB4OGQsIDB4NWEsIDB4OGMsIDB4NTl9IH0sCit7IDB4ODg3YSwJMTYsCXsweGU1LCAweDVkLCAweGMzLCAweDk0LCAweDA1LCAweDQwLCAweDE1LCAweGU1LCAweDVjLCAweDI0LCAweDAxLCAweGY1LCAweDVjLCAweGU0LCAweDM1LCAweDVifSB9LAoreyAweDg4OGEsCTE2LAl7MHhmNSwgMHg1YiwgMHhlNCwgMHgzNSwgMHg1YSwgMHhmNSwgMHg1YSwgMHhlNCwgMHgzNSwgMHg1OSwgMHhmNSwgMHg1OSwgMHg4NSwgMHg2MCwgMHg4MiwgMHg4NX0gfSwKK3sgMHg4ODlhLAkxNiwJezB4NWYsIDB4ODMsIDB4YTMsIDB4ZTQsIDB4ZjAsIDB4ODUsIDB4NjAsIDB4ODIsIDB4ODUsIDB4NWYsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4NDR9IH0sCit7IDB4ODhhYSwJMTYsCXsweDgwLCAweGYwLCAweDg1LCAweDYwLCAweDgyLCAweDg1LCAweDVmLCAweDgzLCAweGU1LCAweDVjLCAweGYwLCAweGFmLCAweDVjLCAweGFlLCAweDViLCAweGFkfSB9LAoreyAweDg4YmEsCTE2LAl7MHg1YSwgMHhhYywgMHg1OSwgMHg3OCwgMHgwOCwgMHgxMiwgMHhhMywgMHhjNCwgMHg4NSwgMHg2MCwgMHg4MiwgMHg4NSwgMHg1ZiwgMHg4MywgMHhhMywgMHhlZn0gfSwKK3sgMHg4OGNhLAkxNiwJezB4ZjAsIDB4ODUsIDB4NjAsIDB4ODIsIDB4ODUsIDB4NWYsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4ZTQsIDB4ZjV9IH0sCit7IDB4ODhkYSwJMTYsCXsweDVkLCAweGU1LCAweDU4LCAweDI0LCAweDBiLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU3LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDMwLCAweGUwfSB9LAoreyAweDg4ZWEsCTE2LAl7MHgyMywgMHg1NCwgMHgwMSwgMHhmMCwgMHhlNSwgMHg2MCwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1ZiwgMHhmNSwgMHg4MywgMHhlMH0gfSwKK3sgMHg4OGZhLAkxNiwJezB4NTQsIDB4ZmQsIDB4ZjAsIDB4YWYsIDB4NWUsIDB4NzQsIDB4MDEsIDB4YTgsIDB4MDcsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmN9IH0sCit7IDB4ODkwYSwJMTYsCXsweDQyLCAweDIyLCAweDgwLCAweDM2LCAweDc0LCAweDAxLCAweDdlLCAweDAwLCAweGE4LCAweDVlLCAweDA4LCAweDgwLCAweDA1LCAweGMzLCAweDMzLCAweGNlfSB9LAoreyAweDg5MWEsCTE2LAl7MHgzMywgMHhjZSwgMHhkOCwgMHhmOSwgMHhmZiwgMHhlNCwgMHhlZiwgMHg1NSwgMHgyMiwgMHg2MCwgMHgxZiwgMHhlNSwgMHg2MCwgMHgyNCwgMHgwNCwgMHhmNX0gfSwKK3sgMHg4OTJhLAkxNiwJezB4ODIsIDB4ZTQsIDB4MzUsIDB4NWYsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4YWYsIDB4NWUsIDB4NzQsIDB4MDEsIDB4YTgsIDB4MDd9IH0sCit7IDB4ODkzYSwJMTYsCXsweDA4LCAweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweGY0LCAweDUyLCAweDIyLCAweGU1LCAweDU4LCAweDI0LCAweDA4LCAweGY1LCAweDgyfSB9LAoreyAweDg5NGEsCTE2LAl7MHhlNCwgMHgzNSwgMHg1NywgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhiNCwgMHg2MiwgMHgwNSwgMHg0MywgMHg1ZCwgMHgwYSwgMHg4MCwgMHgxYSwgMHhlZn0gfSwKK3sgMHg4OTVhLAkxNiwJezB4YjQsIDB4NzIsIDB4MDUsIDB4NDMsIDB4NWQsIDB4MDgsIDB4ODAsIDB4MTEsIDB4ZWYsIDB4YjQsIDB4NzQsIDB4MDUsIDB4NDMsIDB4NWQsIDB4MDIsIDB4ODB9IH0sCit7IDB4ODk2YSwJMTYsCXsweDA4LCAweGVmLCAweDY0LCAweDZlLCAweDYwLCAweDAzLCAweDdmLCAweGZmLCAweDIyLCAweGU1LCAweDU4LCAweDI0LCAweDBiLCAweGY1LCAweDgyLCAweGU0fSB9LAoreyAweDg5N2EsCTE2LAl7MHgzNSwgMHg1NywgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHgzMCwgMHhlMywgMHgwMywgMHg0MywgMHg1ZCwgMHg4MCwgMHhlZiwgMHgzMCwgMHhlNywgMHgxMn0gfSwKK3sgMHg4OThhLAkxNiwJezB4NDMsIDB4NWQsIDB4NDAsIDB4ZTUsIDB4NjAsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NWYsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDR9IH0sCit7IDB4ODk5YSwJMTYsCXsweDAyLCAweGYwLCAweGU1LCAweDU4LCAweDI0LCAweDBiLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU3LCAweGY1LCAweDgzLCAweGUwLCAweDMwLCAweGUxfSB9LAoreyAweDg5YWEsCTE2LAl7MHgyMCwgMHhhZiwgMHg1ZSwgMHg3NCwgMHgwMSwgMHhhOCwgMHgwNywgMHgwOCwgMHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHg0MiwgMHgzMn0gfSwKK3sgMHg4OWJhLAkxNiwJezB4ZTUsIDB4NjAsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NWYsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODB9IH0sCit7IDB4ODljYSwJMTYsCXsweDEwLCAweGFmLCAweDVlLCAweDc0LCAweDAxLCAweGE4LCAweDA3LCAweDA4LCAweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweGY0LCAweDUyfSB9LAoreyAweDg5ZGEsCTE2LAl7MHgzMiwgMHhlNSwgMHg1OCwgMHgyNCwgMHgwYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1NywgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHgzMCwgMHhlNH0gfSwKK3sgMHg4OWVhLAkxNiwJezB4MTEsIDB4YWUsIDB4NWUsIDB4NzQsIDB4MDEsIDB4YTgsIDB4MDYsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4NDIsIDB4MzF9IH0sCit7IDB4ODlmYSwJMTYsCXsweDgwLCAweDEwLCAweGFlLCAweDVlLCAweDc0LCAweDAxLCAweGE4LCAweDA2LCAweDA4LCAweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweGY0fSB9LAoreyAweDhhMGEsCTE2LAl7MHg1MiwgMHgzMSwgMHhlZiwgMHgyMCwgMHhlMSwgMHgwMywgMHgzMCwgMHhlNCwgMHgwMywgMHhlNCwgMHhmNSwgMHg1ZCwgMHg4NSwgMHg2MCwgMHg4MiwgMHg4NX0gfSwKK3sgMHg4YTFhLAkxNiwJezB4NWYsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4ODUsIDB4NjAsIDB4ODIsIDB4ODUsIDB4NWYsIDB4ODMsIDB4YTMsIDB4YTN9IH0sCit7IDB4OGEyYSwJMTYsCXsweGU0LCAweGYwLCAweGU1LCAweDVkLCAweGYwLCAweGU1LCAweDU4LCAweDI0LCAweDBhLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU3LCAweGY1LCAweDgzfSB9LAoreyAweDhhM2EsCTE2LAl7MHhlMCwgMHhmZiwgMHhlNSwgMHg2MCwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1ZiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHhlNX0gfSwKK3sgMHg4YTRhLAkxNiwJezB4NTgsIDB4MjQsIDB4MGEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTcsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4NjAsIDB4MjQsIDB4MDV9IH0sCit7IDB4OGE1YSwJMTYsCXsweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDVmLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweGU1LCAweDU4LCAweDI0LCAweDA5LCAweGY1LCAweDgyLCAweGU0fSB9LAoreyAweDhhNmEsCTE2LAl7MHgzNSwgMHg1NywgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHg2MCwgMHgyNCwgMHgwNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1ZiwgMHhmNX0gfSwKK3sgMHg4YTdhLAkxNiwJezB4ODMsIDB4ZWYsIDB4ZjAsIDB4ZTUsIDB4NTgsIDB4MjQsIDB4MDksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTcsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmZ9IH0sCit7IDB4OGE4YSwJMTYsCXsweGU1LCAweDYwLCAweDI0LCAweDA3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDVmLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDg1LCAweDYwLCAweDgyfSB9LAoreyAweDhhOWEsCTE2LAl7MHg4NSwgMHg1ZiwgMHg4MywgMHhhMywgMHhhMywgMHhhMywgMHhlNCwgMHhmMCwgMHg4NSwgMHg2MCwgMHg4MiwgMHg4NSwgMHg1ZiwgMHg4MywgMHhhMywgMHhhM30gfSwKK3sgMHg4YWFhLAkxNiwJezB4ZjAsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4YTMsIDB4ZTAsIDB4ZmV9IH0sCit7IDB4OGFiYSwJMTYsCXsweGEzLCAweGUwLCAweGY1LCAweDY2LCAweDhlLCAweDY1LCAweDhkLCAweDY0LCAweDhjLCAweDYzLCAweDdkLCAweDA2LCAweGFmLCAweDVlLCAweDEyLCAweDgzfSB9LAoreyAweDhhY2EsCTE2LAl7MHhkZiwgMHg3NSwgMHg1ZCwgMHgwOCwgMHhlNSwgMHg1OCwgMHgyNCwgMHgwYywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1NywgMHhmNSwgMHg4MywgMHhlMH0gfSwKK3sgMHg4YWRhLAkxNiwJezB4NjAsIDB4MDMsIDB4NDMsIDB4NWQsIDB4MTAsIDB4ZTUsIDB4NjAsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NWYsIDB4ZjUsIDB4ODN9IH0sCit7IDB4OGFlYSwJMTYsCXsweGUwLCAweDU0LCAweDAzLCAweDQ1LCAweDVkLCAweGYwLCAweGU1LCAweDU4LCAweDI0LCAweDA1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU3LCAweGY1fSB9LAoreyAweDhhZmEsCTE2LAl7MHg4MywgMHhlMCwgMHhmZSwgMHhjMywgMHg5NCwgMHgwNSwgMHg0MCwgMHgwNiwgMHhlZSwgMHhkMywgMHg5NCwgMHgwOCwgMHg0MCwgMHgwMywgMHg3ZiwgMHhmZn0gfSwKK3sgMHg4YjBhLAkxNiwJezB4MjIsIDB4ZTUsIDB4NTgsIDB4MjQsIDB4MDYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTcsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmQsIDB4YzMsIDB4OTR9IH0sCit7IDB4OGIxYSwJMTYsCXsweDAxLCAweDQwLCAweDA2LCAweGVkLCAweGQzLCAweDk0LCAweDAyLCAweDQwLCAweDAzLCAweDdmLCAweGZmLCAweDIyLCAweGVkLCAweDE0LCAweGZmLCAweDI1fSB9LAoreyAweDhiMmEsCTE2LAl7MHhlMCwgMHgyNSwgMHhlMCwgMHhmZiwgMHhlZSwgMHgyNCwgMHhmYiwgMHg0ZiwgMHhmNSwgMHg1ZCwgMHhlNSwgMHg1OCwgMHgyNCwgMHgwNywgMHhmNSwgMHg4Mn0gfSwKK3sgMHg4YjNhLAkxNiwJezB4ZTQsIDB4MzUsIDB4NTcsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjQsIDB4ZDAsIDB4NjAsIDB4MTgsIDB4MTQsIDB4NjAsIDB4MWEsIDB4MjQsIDB4YzMsIDB4NjB9IH0sCit7IDB4OGI0YSwJMTYsCXsweDFlLCAweDE0LCAweDYwLCAweDA5LCAweDI0LCAweDBhLCAweDcwLCAweDE0LCAweDQzLCAweDVkLCAweDE4LCAweDgwLCAweDEyLCAweDQzLCAweDVkLCAweDA4fSB9LAoreyAweDhiNWEsCTE2LAl7MHg4MCwgMHgwZCwgMHg0MywgMHg1ZCwgMHgzOCwgMHg4MCwgMHgwOCwgMHg0MywgMHg1ZCwgMHgyOCwgMHg4MCwgMHgwMywgMHg3ZiwgMHhmZiwgMHgyMiwgMHg4NX0gfSwKK3sgMHg4YjZhLAkxNiwJezB4NjAsIDB4ODIsIDB4ODUsIDB4NWYsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZTUsIDB4NWQsIDB4ZjAsIDB4NzQsIDB4MDEsIDB4N2UsIDB4MDAsIDB4YTh9IH0sCit7IDB4OGI3YSwJMTYsCXsweDVlLCAweDA4LCAweDgwLCAweDA1LCAweGMzLCAweDMzLCAweGNlLCAweDMzLCAweGNlLCAweGQ4LCAweGY5LCAweGZmLCAweGU0LCAweGVmLCAweDU1LCAweDM0fSB9LAoreyAweDhiOGEsCTE2LAl7MHg2MCwgMHgwNywgMHhhZiwgMHg1ZSwgMHg3ZCwgMHgwMSwgMHgxMiwgMHg4MywgMHg1YSwgMHhhYSwgMHg1NywgMHhhOSwgMHg1OCwgMHg3YiwgMHgwMSwgMHhjMH0gfSwKK3sgMHg4YjlhLAkxNiwJezB4MDMsIDB4YzAsIDB4MDEsIDB4ZTUsIDB4NWUsIDB4NzUsIDB4ZjAsIDB4MGQsIDB4YTQsIDB4MjQsIDB4MDEsIDB4ZjksIDB4NzQsIDB4MDMsIDB4MzUsIDB4ZjB9IH0sCit7IDB4OGJhYSwJMTYsCXsweGE4LCAweDAxLCAweGZjLCAweGFkLCAweDAzLCAweGQwLCAweDAxLCAweGQwLCAweDAzLCAweDdlLCAweDAwLCAweDdmLCAweDBkLCAweDEyLCAweGEyLCAweDEyfSB9LAoreyAweDhiYmEsCTIsCXsweDdmLCAweDAwfSB9LAoreyAweDhiYmMsCTEsCXsweDIyfSB9LAoreyAweDhiYmQsCTE2LAl7MHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlMCwgMHgxNCwgMHhmZSwgMHhjMywgMHg5NCwgMHgwNCwgMHg0MCwgMHgwMywgMHg3ZiwgMHhmZiwgMHgyMiwgMHhlZX0gfSwKK3sgMHg4YmNkLAkxNiwJezB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDAsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MjAsIDB4YWQsIDB4ODIsIDB4ZmMsIDB4OTAsIDB4MDF9IH0sCit7IDB4OGJkZCwJMTYsCXsweDJjLCAweDc0LCAweDA4LCAweGYwLCAweGVlLCAweDA0LCAweGEzLCAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDhkLCAweDgyLCAweDhjLCAweDgzLCAweGU1fSB9LAoreyAweDhiZWQsCTE2LAl7MHg4MiwgMHgyNCwgMHgwNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg4MywgMHhmNSwgMHg4MywgMHhlMCwgMHg5MCwgMHgwMSwgMHgyZiwgMHhmMCwgMHg4ZH0gfSwKK3sgMHg4YmZkLAkxNiwJezB4ODIsIDB4OGMsIDB4ODMsIDB4ZTUsIDB4ODIsIDB4MjQsIDB4MDUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4ODMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTR9IH0sCit7IDB4OGMwZCwJMTYsCXsweDFlLCAweDkwLCAweDAxLCAweDMwLCAweGYwLCAweDc0LCAweDJkLCAweDJlLCAweGY4LCAweGU2LCAweGEzLCAweGYwLCAweGFmLCAweDA2LCAweDc0LCAweDAxfSB9LAoreyAweDhjMWQsCTE2LAl7MHhhOCwgMHgwNywgMHgwOCwgMHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHhmNSwgMHg1NywgMHhlNSwgMHgzMywgMHhjMywgMHg5NCwgMHgwMX0gfSwKK3sgMHg4YzJkLAkxNiwJezB4NDAsIDB4MGQsIDB4OTAsIDB4MjAsIDB4NzgsIDB4ZTAsIDB4NTQsIDB4MGYsIDB4NzUsIDB4NTgsIDB4MDAsIDB4ZjUsIDB4NTksIDB4ODAsIDB4MDksIDB4N2Z9IH0sCit7IDB4OGMzZCwJMTYsCXsweDAyLCAweDEyLCAweDExLCAweDI3LCAweDhlLCAweDU4LCAweDhmLCAweDU5LCAweGMzLCAweGU1LCAweDU4LCAweDY0LCAweDgwLCAweDk0LCAweDgwLCAweDQwfSB9LAoreyAweDhjNGQsCTE2LAl7MHhkYSwgMHhlNSwgMHg1NywgMHg1NSwgMHg1OSwgMHg5MCwgMHgwMSwgMHgzMiwgMHhmMCwgMHg3ZSwgMHgwMSwgMHg3ZiwgMHgyYywgMHg3ZCwgMHgwNywgMHgxMn0gfSwKK3sgMHg4YzVkLAk0LAl7MHg5MSwgMHg2YSwgMHg3ZiwgMHgwMH0gfSwKK3sgMHg4YzYxLAkxLAl7MHgyMn0gfSwKK3sgMHg4YzYyLAkxNiwJezB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4ZmUsIDB4YzMsIDB4OTQsIDB4MDQsIDB4NDAsIDB4MDMsIDB4N2YsIDB4ZmYsIDB4MjIsIDB4ZWV9IH0sCit7IDB4OGM3MiwJMTYsCXsweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAwLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDIwLCAweGFmLCAweDgyLCAweGZlLCAweDkwLCAweDAxfSB9LAoreyAweDhjODIsCTE2LAl7MHgzMywgMHg3NCwgMHgwYSwgMHhmMCwgMHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlNSwgMHg4MiwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNX0gfSwKK3sgMHg4YzkyLAkxNiwJezB4ODMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4OTAsIDB4MDEsIDB4MzQsIDB4ZjAsIDB4N2UsIDB4MDEsIDB4N2YsIDB4MzMsIDB4N2QsIDB4MDIsIDB4MTIsIDB4OTF9IH0sCit7IDB4OGNhMiwJMywJezB4NmEsIDB4N2YsIDB4MDB9IH0sCit7IDB4OGNhNSwJMSwJezB4MjJ9IH0sCit7IDB4OGNhNiwJNCwJezB4OGUsIDB4NTcsIDB4OGYsIDB4NTh9IH0sCit7IDB4OGNhYSwJMTYsCXsweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGUwLCAweDE0LCAweGZlLCAweGMzLCAweDk0LCAweDA0LCAweDQwLCAweDAzLCAweDdmLCAweGZmLCAweDIyLCAweGVlfSB9LAoreyAweDhjYmEsCTE2LAl7MHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgyMCwgMHhhZCwgMHg4MiwgMHhmYywgMHg4NSwgMHg1OH0gfSwKK3sgMHg4Y2NhLAkxNiwJezB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4ZWQsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4M2MsIDB4ZjV9IH0sCit7IDB4OGNkYSwJMTYsCXsweDgzLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDgwLCAweDQzLCAweGVlLCAweDc1LCAweGYwLCAweDBkLCAweGE0LCAweDI0LCAweDBjLCAweGY1LCAweDgyfSB9LAoreyAweDhjZWEsCTE2LAl7MHhlNCwgMHgzNCwgMHgwMywgMHhmNSwgMHg4MywgMHhlMCwgMHgzMCwgMHhlMCwgMHgyMCwgMHhlZSwgMHgyNSwgMHhlMCwgMHgyNCwgMHhjNiwgMHhmNSwgMHg4Mn0gfSwKK3sgMHg4Y2ZhLAkxNiwJezB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4ZjAsIDB4N2YsIDB4NjAsIDB4ZWQsIDB4MjQsIDB4MDUsIDB4ZjUsIDB4ODJ9IH0sCit7IDB4OGQwYSwJMTYsCXsweGU0LCAweDNjLCAweGY1LCAweDgzLCAweGUwLCAweDVmLCAweGI1LCAweDA3LCAweGYyLCAweGFlLCAweDA0LCAweGFmLCAweDA1LCAweGVmLCAweDI0LCAweDA0fSB9LAoreyAweDhkMWEsCTEyLAl7MHhmNSwgMHg4MiwgMHhlNCwgMHgzZSwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg3ZiwgMHgwMH0gfSwKK3sgMHg4ZDI2LAkxLAl7MHgyMn0gfSwKK3sgMHg4ZDI3LAk0LAl7MHhhZCwgMHgwNywgMHhhYywgMHgwNn0gfSwKK3sgMHg4ZDJiLAkxNiwJezB4OGQsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4ZmUsIDB4YzMsIDB4OTQsIDB4MDQsIDB4NDAsIDB4MDMsIDB4N2YsIDB4ZmYsIDB4MjIsIDB4ZWV9IH0sCit7IDB4OGQzYiwJMTYsCXsweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAwLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDIwLCAweGFmLCAweDgyLCAweGZlLCAweDhkLCAweDgyfSB9LAoreyAweDhkNGIsCTE2LAl7MHg4YywgMHg4MywgMHhhMywgMHhlMCwgMHg2MCwgMHgwZiwgMHhlZiwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzZSwgMHhmNSwgMHg4MywgMHhlMH0gfSwKK3sgMHg4ZDViLAkxNiwJezB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MGQsIDB4ZWYsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4M2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTR9IH0sCit7IDB4OGQ2YiwJNCwJezB4ZmUsIDB4ZjAsIDB4N2YsIDB4MDB9IH0sCit7IDB4OGQ2ZiwJMSwJezB4MjJ9IH0sCit7IDB4OGQ3MCwJNCwJezB4YWQsIDB4MDcsIDB4YWMsIDB4MDZ9IH0sCit7IDB4OGQ3NCwJMTYsCXsweDhkLCAweDgyLCAweDhjLCAweDgzLCAweGUwLCAweDE0LCAweGZlLCAweGMzLCAweDk0LCAweDA0LCAweDQwLCAweDAzLCAweDdmLCAweGZmLCAweDIyLCAweGVlfSB9LAoreyAweDhkODQsCTE2LAl7MHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgyMCwgMHhhZiwgMHg4MiwgMHhmZSwgMHg4ZCwgMHg4Mn0gfSwKK3sgMHg4ZDk0LAkxNiwJezB4OGMsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MGQsIDB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4NDQsIDB4NDB9IH0sCit7IDB4OGRhNCwJMTYsCXsweGYwLCAweDgwLCAweDBiLCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGEzLCAweGEzLCAweGEzLCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDdmLCAweDAwfSB9LAoreyAweDhkYjQsCTEsCXsweDIyfSB9LAoreyAweDhkYjUsCTE2LAl7MHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlMCwgMHgxNCwgMHhmZSwgMHhjMywgMHg5NCwgMHgwNCwgMHg0MCwgMHgwMywgMHg3ZiwgMHhmZiwgMHgyMiwgMHhhZn0gfSwKK3sgMHg4ZGM1LAkxNiwJezB4MDYsIDB4NzQsIDB4MDEsIDB4YTgsIDB4MDcsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4NDIsIDB4M2UsIDB4N2YsIDB4MDB9IH0sCit7IDB4OGRkNSwJMSwJezB4MjJ9IH0sCit7IDB4OGRkNiwJNCwJezB4OGUsIDB4NTcsIDB4OGYsIDB4NTh9IH0sCit7IDB4OGRkYSwJMTYsCXsweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGEzLCAweGUwLCAweGY1LCAweDVjLCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGUwLCAweGY1LCAweDU5LCAweGQzfSB9LAoreyAweDhkZWEsCTE2LAl7MHg5NCwgMHgwNCwgMHg0MCwgMHgwMywgMHg3ZiwgMHhmZiwgMHgyMiwgMHhlNSwgMHg1OSwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxNiwgMHgxNCwgMHg2MCwgMHgxZn0gfSwKK3sgMHg4ZGZhLAkxNiwJezB4MTQsIDB4NjAsIDB4MjgsIDB4MjQsIDB4MDMsIDB4NzAsIDB4MmUsIDB4N2UsIDB4N2UsIDB4N2YsIDB4ODAsIDB4NzUsIDB4NWEsIDB4N2UsIDB4NzUsIDB4NWJ9IH0sCit7IDB4OGUwYSwJMTYsCXsweDgwLCAweDgwLCAweDIyLCAweDdlLCAweDdlLCAweDdmLCAweDAwLCAweDc1LCAweDVhLCAweDdlLCAweDc1LCAweDViLCAweDAwLCAweDgwLCAweDE2LCAweDdlfSB9LAoreyAweDhlMWEsCTE2LAl7MHg3ZCwgMHg3ZiwgMHg4MCwgMHg3NSwgMHg1YSwgMHg3ZCwgMHg3NSwgMHg1YiwgMHg4MCwgMHg4MCwgMHgwYSwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHgwMCwgMHg3NX0gfSwKK3sgMHg4ZTJhLAkxNiwJezB4NWEsIDB4N2QsIDB4NzUsIDB4NWIsIDB4MDAsIDB4ZTUsIDB4NWMsIDB4NzAsIDB4MWIsIDB4ODUsIDB4NWIsIDB4ODIsIDB4ODUsIDB4NWEsIDB4ODMsIDB4NzR9IH0sCit7IDB4OGUzYSwJMTYsCXsweGZmLCAweGYwLCAweGU1LCAweDU5LCAweDI1LCAweGUwLCAweDI0LCAweGI1LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweDc0fSB9LAoreyAweDhlNGEsCTE2LAl7MHgwMSwgMHhmMCwgMHg4MCwgMHg0OCwgMHhlNSwgMHg1OCwgMHgyNCwgMHgwMiwgMHhmZiwgMHhlNCwgMHgzNSwgMHg1NywgMHhmZSwgMHhlNSwgMHg1YywgMHg2MH0gfSwKK3sgMHg4ZTVhLAkxNiwJezB4MjMsIDB4MGYsIDB4ZWYsIDB4YWMsIDB4MDYsIDB4NzAsIDB4MDEsIDB4MGUsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZTAsIDB4ZmQsIDB4MDV9IH0sCit7IDB4OGU2YSwJMTYsCXsweDViLCAweGU1LCAweDViLCAweGFhLCAweDVhLCAweDcwLCAweDAyLCAweDA1LCAweDVhLCAweDE0LCAweGY1LCAweDgyLCAweDhhLCAweDgzLCAweGVkLCAweGYwfSB9LAoreyAweDhlN2EsCTE2LAl7MHgxNSwgMHg1YywgMHg4MCwgMHhkOSwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhMywgMHhlMCwgMHhmZiwgMHhlNSwgMHg1OSwgMHgyNX0gfSwKK3sgMHg4ZThhLAkxNCwJezB4ZTAsIDB4MjQsIDB4YjUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4N2YsIDB4MDB9IH0sCit7IDB4OGU5OCwJMSwJezB4MjJ9IH0sCit7IDB4OGU5OSwJMTYsCXsweGVmLCAweDI0LCAweDA1LCAweGY1LCAweDU4LCAweGU0LCAweDNlLCAweGY1LCAweDU3LCAweDkwLCAweDAxLCAweDM1LCAweDc0LCAweDA3LCAweGYwLCAweDkwfSB9LAoreyAweDhlYTksCTE2LAl7MHgwMSwgMHg3YSwgMHg3NCwgMHgwMSwgMHhmMCwgMHhhMywgMHg3NCwgMHgzNiwgMHhmMCwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhM30gfSwKK3sgMHg4ZWI5LAkxNiwJezB4YTMsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4OGUsIDB4NTksIDB4ZjUsIDB4NWEsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODN9IH0sCit7IDB4OGVjOSwJMTYsCXsweGUwLCAweDI0LCAweDllLCAweDYwLCAweDYxLCAweDI0LCAweGY5LCAweDYwLCAweDBlLCAweDI0LCAweGYxLCAweDcwLCAweDAzLCAweDAyLCAweDhmLCAweDdhfSB9LAoreyAweDhlZDksCTE2LAl7MHgyNCwgMHgxNCwgMHg2MCwgMHgwMywgMHgwMiwgMHg4ZiwgMHhjOCwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhMywgMHhlMCwgMHhmZX0gfSwKK3sgMHg4ZWU5LAkxNiwJezB4YTMsIDB4ZTAsIDB4ZmYsIDB4YzMsIDB4ZTQsIDB4OWYsIDB4ZjUsIDB4NWMsIDB4NzQsIDB4MDEsIDB4OWUsIDB4ZjUsIDB4NWIsIDB4ZDMsIDB4ZTUsIDB4NWN9IH0sCit7IDB4OGVmOSwJMTYsCXsweDk0LCAweDNmLCAweGU1LCAweDViLCAweDk0LCAweDAwLCAweDQwLCAweDA2LCAweDc1LCAweDViLCAweDAwLCAweDc1LCAweDVjLCAweDNmLCAweGQzLCAweGU1fSB9LAoreyAweDhmMDksCTE2LAl7MHg1YSwgMHg5NSwgMHg1YywgMHhlNSwgMHg1OSwgMHg5NSwgMHg1YiwgMHg1MCwgMHgwMywgMHgwMiwgMHg4ZiwgMHhjYiwgMHhhZSwgMHg1YiwgMHhhZiwgMHg1Y30gfSwKK3sgMHg4ZjE5LAkxNiwJezB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZWUsIDB4ZjAsIDB4ZmUsIDB4YTMsIDB4ZWYsIDB4ZjAsIDB4OGV9IH0sCit7IDB4OGYyOSwJMTYsCXsweDU5LCAweGY1LCAweDVhLCAweDAyLCAweDhmLCAweGNiLCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGEzLCAweGUwLCAweGZlLCAweGEzfSB9LAoreyAweDhmMzksCTE2LAl7MHhlMCwgMHhmZiwgMHhjMywgMHg3NCwgMHgzMCwgMHg5ZiwgMHhmNSwgMHg1YywgMHhlNCwgMHg5ZSwgMHhmNSwgMHg1YiwgMHhkMywgMHhlNSwgMHg1YywgMHg5NH0gfSwKK3sgMHg4ZjQ5LAkxNiwJezB4MTAsIDB4ZTUsIDB4NWIsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDYsIDB4NzUsIDB4NWIsIDB4MDAsIDB4NzUsIDB4NWMsIDB4MTAsIDB4ZDMsIDB4ZTUsIDB4NWF9IH0sCit7IDB4OGY1OSwJMTYsCXsweDk1LCAweDVjLCAweGU1LCAweDU5LCAweDk1LCAweDViLCAweDQwLCAweDZhLCAweGFlLCAweDViLCAweGFmLCAweDVjLCAweDg1LCAweDU4LCAweDgyLCAweDg1fSB9LAoreyAweDhmNjksCTE2LAl7MHg1NywgMHg4MywgMHhhMywgMHhhMywgMHhhMywgMHhlZSwgMHhmMCwgMHhmZSwgMHhhMywgMHhlZiwgMHhmMCwgMHg4ZSwgMHg1OSwgMHhmNSwgMHg1YSwgMHg4MH0gfSwKK3sgMHg4Zjc5LAkxNiwJezB4NTEsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4YzMsIDB4ZTQsIDB4OWZ9IH0sCit7IDB4OGY4OSwJMTYsCXsweGY1LCAweDVjLCAweGU0LCAweDllLCAweGY1LCAweDViLCAweDQ1LCAweDVjLCAweDYwLCAweDBiLCAweGQzLCAweGU1LCAweDVjLCAweDk0LCAweDNmLCAweGU1fSB9LAoreyAweDhmOTksCTE2LAl7MHg1YiwgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNiwgMHg3NSwgMHg1YiwgMHgwMCwgMHg3NSwgMHg1YywgMHgzZiwgMHhkMywgMHhlNSwgMHg1YSwgMHg5NSwgMHg1Y30gfSwKK3sgMHg4ZmE5LAkxNiwJezB4ZTUsIDB4NTksIDB4OTUsIDB4NWIsIDB4NDAsIDB4MWMsIDB4YWUsIDB4NWIsIDB4YWYsIDB4NWMsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODN9IH0sCit7IDB4OGZiOSwJMTYsCXsweGEzLCAweGEzLCAweGEzLCAweGVlLCAweGYwLCAweGZlLCAweGEzLCAweGVmLCAweGYwLCAweDhlLCAweDU5LCAweGY1LCAweDVhLCAweDgwLCAweDAzLCAweDdmfSB9LAoreyAweDhmYzksCTE2LAl7MHgwMSwgMHgyMiwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhlMCwgMHgyNCwgMHg5ZSwgMHg3MCwgMHgwMywgMHgwMiwgMHg5MCwgMHg4Yn0gfSwKK3sgMHg4ZmQ5LAkxNiwJezB4MjQsIDB4ZjksIDB4NjAsIDB4NTgsIDB4MjQsIDB4ZjEsIDB4NzAsIDB4MDMsIDB4MDIsIDB4OTAsIDB4ZGIsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MDMsIDB4MDJ9IH0sCit7IDB4OGZlOSwJMTYsCXsweDkxLCAweDFmLCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGEzLCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweGZmLCAweGQzLCAweDk0fSB9LAoreyAweDhmZjksCTE2LAl7MHhmZiwgMHhlZSwgMHg5NCwgMHgwMCwgMHg0MCwgMHgwMywgMHgwMiwgMHg5MSwgMHgxZiwgMHg5MCwgMHgwMSwgMHg3NSwgMHhlZiwgMHhmMCwgMHhlNSwgMHg1YX0gfSwKK3sgMHg5MDA5LAkxNiwJezB4MTUsIDB4NWEsIDB4YWUsIDB4NTksIDB4NzAsIDB4MDIsIDB4MTUsIDB4NTksIDB4NGUsIDB4NzAsIDB4MDMsIDB4MDIsIDB4OTEsIDB4MWYsIDB4OTAsIDB4MDF9IH0sCit7IDB4OTAxOSwJMTYsCXsweDc1LCAweGUwLCAweGZmLCAweDA0LCAweGYwLCAweGE4LCAweDA3LCAweGU2LCAweGZmLCAweDkwLCAweDAxLCAweDdhLCAweGU0LCAweDc1LCAweGYwLCAweDAxfSB9LAoreyAweDkwMjksCTE2LAl7MHgxMiwgMHhhMiwgMHg5NywgMHg4NSwgMHhmMCwgMHg4MiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHg4MCwgMHhkMiwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NX0gfSwKK3sgMHg5MDM5LAkxNiwJezB4NTcsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4YzMsIDB4OTQsIDB4ODAsIDB4ZWUsIDB4OTQsIDB4MDAsIDB4NTAsIDB4MDN9IH0sCit7IDB4OTA0OSwJMTYsCXsweDAyLCAweDkxLCAweDFmLCAweGQzLCAweGVmLCAweDk0LCAweGZmLCAweGVlLCAweDk0LCAweDAwLCAweDQwLCAweDAzLCAweDAyLCAweDkxLCAweDFmLCAweDkwfSB9LAoreyAweDkwNTksCTE2LAl7MHgwMSwgMHg3NiwgMHhlZiwgMHhmMCwgMHhlNSwgMHg1YSwgMHgxNSwgMHg1YSwgMHhhZSwgMHg1OSwgMHg3MCwgMHgwMiwgMHgxNSwgMHg1OSwgMHg0ZSwgMHg3MH0gfSwKK3sgMHg5MDY5LAkxNiwJezB4MDMsIDB4MDIsIDB4OTEsIDB4MWYsIDB4OTAsIDB4MDEsIDB4NzYsIDB4ZTAsIDB4ZmYsIDB4MDQsIDB4ZjAsIDB4YTgsIDB4MDcsIDB4ZTYsIDB4ZmYsIDB4OTB9IH0sCit7IDB4OTA3OSwJMTYsCXsweDAxLCAweDdhLCAweGU0LCAweDc1LCAweGYwLCAweDAxLCAweDEyLCAweGEyLCAweDk3LCAweDg1LCAweGYwLCAweDgyLCAweGY1LCAweDgzLCAweGVmLCAweGYwfSB9LAoreyAweDkwODksCTE2LAl7MHg4MCwgMHhkMiwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhMywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHhmZiwgMHhjMywgMHg5NH0gfSwKK3sgMHg5MDk5LAkxNiwJezB4MjAsIDB4ZWUsIDB4OTQsIDB4MDAsIDB4NTAsIDB4MDMsIDB4MDIsIDB4OTEsIDB4MWYsIDB4ZDMsIDB4ZWYsIDB4OTQsIDB4MmYsIDB4ZWUsIDB4OTQsIDB4MDB9IH0sCit7IDB4OTBhOSwJMTYsCXsweDUwLCAweDc0LCAweDkwLCAweDAxLCAweDc3LCAweGVmLCAweGYwLCAweGU1LCAweDVhLCAweDE1LCAweDVhLCAweGFlLCAweDU5LCAweDcwLCAweDAyLCAweDE1fSB9LAoreyAweDkwYjksCTE2LAl7MHg1OSwgMHg0ZSwgMHg2MCwgMHg2MiwgMHg5MCwgMHgwMSwgMHg3NywgMHhlMCwgMHhmZiwgMHgwNCwgMHhmMCwgMHhhOCwgMHgwNywgMHhlNiwgMHhmZiwgMHg5MH0gfSwKK3sgMHg5MGM5LAkxNiwJezB4MDEsIDB4N2EsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDEsIDB4MTIsIDB4YTIsIDB4OTcsIDB4ODUsIDB4ZjAsIDB4ODIsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjB9IH0sCit7IDB4OTBkOSwJMTYsCXsweDgwLCAweGQ1LCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGEzLCAweGUwLCAweGZmLCAweGEzLCAweGUwLCAweDkwLCAweDAxLCAweDc4fSB9LAoreyAweDkwZTksCTE2LAl7MHhjZiwgMHhmMCwgMHhhMywgMHhlZiwgMHhmMCwgMHhlNSwgMHg1YSwgMHgxNSwgMHg1YSwgMHhhZSwgMHg1OSwgMHg3MCwgMHgwMiwgMHgxNSwgMHg1OSwgMHg0ZX0gfSwKK3sgMHg5MGY5LAkxNiwJezB4NjAsIDB4MjQsIDB4OTAsIDB4MDEsIDB4NzgsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDEsIDB4MTIsIDB4YTIsIDB4OTcsIDB4ODUsIDB4ZjAsIDB4ODIsIDB4ZjV9IH0sCit7IDB4OTEwOSwJMTYsCXsweDgzLCAweGUwLCAweGZmLCAweDkwLCAweDAxLCAweDdhLCAweGU0LCAweDc1LCAweGYwLCAweDAxLCAweDEyLCAweGEyLCAweDk3LCAweDg1LCAweGYwLCAweDgyfSB9LAoreyAweDkxMTksCTE2LAl7MHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHg4MCwgMHhjZiwgMHg3ZSwgMHgwMSwgMHg3ZiwgMHgzNSwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4M30gfSwKK3sgMHg5MTI5LAkxMywJezB4YTMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4MDQsIDB4ZmQsIDB4MTIsIDB4OTEsIDB4NmEsIDB4N2YsIDB4MDB9IH0sCit7IDB4OTEzNiwJMSwJezB4MjJ9IH0sCit7IDB4OTEzNywJMTYsCXsweDhlLCAweDYyLCAweDhmLCAweDYzLCAweDhjLCAweDY0LCAweDhkLCAweDY1LCAweGFmLCAweDAzLCAweDFiLCAweGVmLCAweDYwLCAweDI0LCAweDA1LCAweDYzfSB9LAoreyAweDkxNDcsCTE2LAl7MHhlNSwgMHg2MywgMHhhZSwgMHg2MiwgMHg3MCwgMHgwMiwgMHgwNSwgMHg2MiwgMHgxNCwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlMCwgMHhmZiwgMHgwNX0gfSwKK3sgMHg5MTU3LAkxNiwJezB4NjUsIDB4ZTUsIDB4NjUsIDB4YWMsIDB4NjQsIDB4NzAsIDB4MDIsIDB4MDUsIDB4NjQsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjB9IH0sCit7IDB4OTE2NywJMywJezB4ODAsIDB4ZDYsIDB4MjJ9IH0sCit7IDB4OTE2YSwJNiwJezB4OGQsIDB4NWQsIDB4YWIsIDB4MDcsIDB4YWEsIDB4MDZ9IH0sCit7IDB4OTE3MCwJMTYsCXsweDc1LCAweDYxLCAweDQwLCAweDc1LCAweDYwLCAweDBkLCAweDc1LCAweDVmLCAweDAzLCAweDc1LCAweDVlLCAweDAwLCAweDkwLCAweDdmLCAweGMyLCAweGUwfSB9LAoreyAweDkxODAsCTE2LAl7MHgyMCwgMHhlMSwgMHhmOSwgMHhhZiwgMHg2MSwgMHhhZSwgMHg2MCwgMHhhZCwgMHg1ZiwgMHhhYywgMHg1ZSwgMHhlYywgMHg0ZCwgMHg0ZSwgMHg0ZiwgMHg3MH0gfSwKK3sgMHg5MTkwLAkxNiwJezB4MDgsIDB4OTAsIDB4N2YsIDB4YzIsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4ODAsIDB4ZDcsIDB4OTAsIDB4N2YsIDB4YzIsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MTZ9IH0sCit7IDB4OTFhMCwJMTYsCXsweGFmLCAweDAzLCAweGFlLCAweDAyLCAweDdjLCAweDdiLCAweDdkLCAweDgwLCAweGFiLCAweDVkLCAweDEyLCAweDkxLCAweDM3LCAweDkwLCAweDdmLCAweGMzfSB9LAoreyAweDkxYjAsCTgsCXsweGU1LCAweDVkLCAweGYwLCAweDdmLCAweDAxLCAweDIyLCAweDdmLCAweDAwfSB9LAoreyAweDkxYjgsCTEsCXsweDIyfSB9LAoreyAweDkxYjksCTE2LAl7MHg5MCwgMHgwMSwgMHg4NCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhhMywgMHhlNSwgMHgzMywgMHhmMCwgMHg5MCwgMHgwYSwgMHhmNSwgMHhlNCwgMHg5MywgMHg5MH0gfSwKK3sgMHg5MWM5LAkxNiwJezB4MDEsIDB4ODYsIDB4ZjAsIDB4OTAsIDB4MGEsIDB4ZjYsIDB4ZTQsIDB4OTMsIDB4OTAsIDB4MDEsIDB4ODcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4MDEsIDB4N2N9IH0sCit7IDB4OTFkOSwJMTYsCXsweGYwLCAweGEzLCAweGYwLCAweGEzLCAweGYwLCAweGEzLCAweGYwLCAweGEzLCAweGYwLCAweGEzLCAweDc0LCAweDEwLCAweGYwLCAweGEzLCAweDc0LCAweDAxfSB9LAoreyAweDkxZTksCTE2LAl7MHhmMCwgMHhhMywgMHg3NCwgMHg4OCwgMHhmMCwgMHg3ZSwgMHgwMSwgMHg3ZiwgMHg3YywgMHgxMiwgMHgxOSwgMHhjMSwgMHg3ZSwgMHgwMSwgMHg3ZiwgMHg4NH0gfSwKK3sgMHg5MWY5LAk3LAl7MHg3ZCwgMHgxNCwgMHgxMiwgMHg5MSwgMHg2YSwgMHg3ZiwgMHgwMH0gfSwKK3sgMHg5MjAwLAkxLAl7MHgyMn0gfSwKK3sgMHg5MjAxLAkxNiwJezB4N2UsIDB4N2IsIDB4N2YsIDB4NDAsIDB4NzUsIDB4NGUsIDB4N2IsIDB4NzUsIDB4NGYsIDB4NDAsIDB4OTAsIDB4N2YsIDB4ZDMsIDB4ZTAsIDB4ZmYsIDB4ODV9IH0sCit7IDB4OTIxMSwJMTYsCXsweDRlLCAweDUxLCAweDg1LCAweDRmLCAweDUyLCAweGU1LCAweDUyLCAweDI0LCAweDAxLCAweGY1LCAweDU2LCAweGU0LCAweDM1LCAweDUxLCAweGY1LCAweDU1fSB9LAoreyAweDkyMjEsCTE2LAl7MHhlNCwgMHhmNSwgMHg1MCwgMHg4NSwgMHg1MiwgMHg4MiwgMHg4NSwgMHg1MSwgMHg4MywgMHhlMCwgMHhmZSwgMHgxNCwgMHhiNCwgMHgwYywgMHgwMCwgMHg1MH0gfSwKK3sgMHg5MjMxLAkxNiwJezB4NWIsIDB4OTAsIDB4OTIsIDB4MzksIDB4ZjgsIDB4MjgsIDB4MjgsIDB4NzMsIDB4MDIsIDB4OTIsIDB4NWQsIDB4MDIsIDB4OTIsIDB4NWQsIDB4MDIsIDB4OTJ9IH0sCit7IDB4OTI0MSwJMTYsCXsweDY3LCAweDAyLCAweDkyLCAweDcxLCAweDAyLCAweDkyLCAweDcxLCAweDAyLCAweDkyLCAweDcxLCAweDAyLCAweDkyLCAweDg1LCAweDAyLCAweDkyLCAweDVkfSB9LAoreyAweDkyNTEsCTE2LAl7MHgwMiwgMHg5MiwgMHg3YiwgMHgwMiwgMHg5MiwgMHg1ZCwgMHgwMiwgMHg5MiwgMHg4ZCwgMHgwMiwgMHg5MiwgMHg1ZCwgMHhlZiwgMHg2NCwgMHgwMiwgMHg2MH0gfSwKK3sgMHg5MjYxLAkxNiwJezB4MmIsIDB4NzUsIDB4NTAsIDB4ZmYsIDB4ODAsIDB4MjYsIDB4ZWYsIDB4NjQsIDB4MGUsIDB4NjAsIDB4MjEsIDB4NzUsIDB4NTAsIDB4ZmYsIDB4ODAsIDB4MWN9IH0sCit7IDB4OTI3MSwJMTYsCXsweGVmLCAweDY0LCAweDAzLCAweDYwLCAweDE3LCAweDc1LCAweDUwLCAweGZmLCAweDgwLCAweDEyLCAweGVmLCAweDY0LCAweDAzLCAweDYwLCAweDBkLCAweDc1fSB9LAoreyAweDkyODEsCTE2LAl7MHg1MCwgMHhmZiwgMHg4MCwgMHgwOCwgMHhlZiwgMHg2NCwgMHgwNiwgMHg2MCwgMHgwMywgMHg3NSwgMHg1MCwgMHhmZiwgMHhlNSwgMHg1MCwgMHg2MCwgMHgxNX0gfSwKK3sgMHg5MjkxLAkxNiwJezB4OTAsIDB4MDEsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4YTMsIDB4ZWUsIDB4ZjAsIDB4N2UsIDB4MDEsIDB4N2YsIDB4OTgsIDB4N2QsIDB4MDIsIDB4MTJ9IH0sCit7IDB4OTJhMSwJMTYsCXsweDkxLCAweDZhLCAweGFmLCAweDUwLCAweDIyLCAweGU0LCAweGY1LCAweDUwLCAweDg1LCAweDUyLCAweDgyLCAweDg1LCAweDUxLCAweDgzLCAweGUwLCAweDE0fSB9LAoreyAweDkyYjEsCTE2LAl7MHhiNCwgMHgwZiwgMHgwMCwgMHg0MCwgMHgwMywgMHgwMiwgMHg5MywgMHhjZiwgMHg5MCwgMHg5MiwgMHhjMCwgMHhmOCwgMHgyOCwgMHgyOCwgMHg3MywgMHgwMn0gfSwKK3sgMHg5MmMxLAkxNiwJezB4OTIsIDB4ZWQsIDB4MDIsIDB4OTIsIDB4ZjksIDB4MDIsIDB4OTMsIDB4MDUsIDB4MDIsIDB4OTMsIDB4NTMsIDB4MDIsIDB4OTMsIDB4NWUsIDB4MDIsIDB4OTN9IH0sCit7IDB4OTJkMSwJMTYsCXsweDY5LCAweDAyLCAweDkzLCAweDc0LCAweDAyLCAweDkzLCAweDdmLCAweDAyLCAweDkzLCAweDhhLCAweDAyLCAweDkzLCAweDk1LCAweDAyLCAweDkzLCAweGEwfSB9LAoreyAweDkyZTEsCTE2LAl7MHgwMiwgMHg5MywgMHhhNywgMHgwMiwgMHg5MywgMHhjZiwgMHgwMiwgMHg5MywgMHhiMiwgMHgwMiwgMHg5MywgMHhiZCwgMHhhZiwgMHg1NiwgMHhhZSwgMHg1NX0gfSwKK3sgMHg5MmYxLAkxNiwJezB4MTIsIDB4ODQsIDB4NDEsIDB4OGYsIDB4NTAsIDB4MDIsIDB4OTMsIDB4ZDIsIDB4YWYsIDB4NTYsIDB4YWUsIDB4NTUsIDB4MTIsIDB4ODUsIDB4NjEsIDB4OGZ9IH0sCit7IDB4OTMwMSwJMTYsCXsweDUwLCAweDAyLCAweDkzLCAweGQyLCAweDg1LCAweDU1LCAweDUzLCAweDg1LCAweDU2LCAweDU0LCAweGU1LCAweDU0LCAweDI0LCAweDAxLCAweGZmLCAweGU0fSB9LAoreyAweDkzMTEsCTE2LAl7MHgzNSwgMHg1MywgMHhmZSwgMHgxMiwgMHg4NiwgMHhiZSwgMHhhZiwgMHg1NCwgMHhhZSwgMHg1MywgMHgxMiwgMHg4NywgMHg1MSwgMHg4ZiwgMHg1MCwgMHhlZn0gfSwKK3sgMHg5MzIxLAkxNiwJezB4NjQsIDB4MDEsIDB4NjAsIDB4MDMsIDB4MDIsIDB4OTMsIDB4ZDIsIDB4YWYsIDB4NTQsIDB4YWUsIDB4NTMsIDB4MTIsIDB4ODcsIDB4YTYsIDB4OGYsIDB4NTB9IH0sCit7IDB4OTMzMSwJMTYsCXsweGU1LCAweDUwLCAweDcwLCAweDAzLCAweDAyLCAweDkzLCAweGQyLCAweDg1LCAweDU0LCAweDgyLCAweDg1LCAweDUzLCAweDgzLCAweGUwLCAweDc1LCAweGYwfSB9LAoreyAweDkzNDEsCTE2LAl7MHgwZCwgMHhhNCwgMHgyNCwgMHhmNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMiwgMHhhZiwgMHg4MiwgMHhmZSwgMHgxMiwgMHg4NywgMHhhNiwgMHgwMn0gfSwKK3sgMHg5MzUxLAkxNiwJezB4OTMsIDB4ZDIsIDB4YWYsIDB4NTYsIDB4YWUsIDB4NTUsIDB4MTIsIDB4OGMsIDB4YTYsIDB4OGYsIDB4NTAsIDB4ODAsIDB4NzQsIDB4YWYsIDB4NTYsIDB4YWV9IH0sCit7IDB4OTM2MSwJMTYsCXsweDU1LCAweDEyLCAweDhkLCAweDI3LCAweDhmLCAweDUwLCAweDgwLCAweDY5LCAweGFmLCAweDU2LCAweGFlLCAweDU1LCAweDEyLCAweDhkLCAweDcwLCAweDhmfSB9LAoreyAweDkzNzEsCTE2LAl7MHg1MCwgMHg4MCwgMHg1ZSwgMHhhZiwgMHg0ZiwgMHhhZSwgMHg0ZSwgMHgxMiwgMHg4ZSwgMHg5OSwgMHg4ZiwgMHg1MCwgMHg4MCwgMHg1MywgMHhhZiwgMHg1Nn0gfSwKK3sgMHg5MzgxLAkxNiwJezB4YWUsIDB4NTUsIDB4MTIsIDB4OGIsIDB4YmQsIDB4OGYsIDB4NTAsIDB4ODAsIDB4NDgsIDB4YWYsIDB4NTYsIDB4YWUsIDB4NTUsIDB4MTIsIDB4ODYsIDB4MmR9IH0sCit7IDB4OTM5MSwJMTYsCXsweDhmLCAweDUwLCAweDgwLCAweDNkLCAweGFmLCAweDU2LCAweGFlLCAweDU1LCAweDEyLCAweDhjLCAweDYyLCAweDhmLCAweDUwLCAweDgwLCAweDMyLCAweDEyfSB9LAoreyAweDkzYTEsCTE2LAl7MHg5MSwgMHhiOSwgMHg4ZiwgMHg1MCwgMHg4MCwgMHgyYiwgMHhhZiwgMHg1NiwgMHhhZSwgMHg1NSwgMHgxMiwgMHg4ZCwgMHhiNSwgMHg4ZiwgMHg1MCwgMHg4MH0gfSwKK3sgMHg5M2IxLAkxNiwJezB4MjAsIDB4YWYsIDB4NTYsIDB4YWUsIDB4NTUsIDB4MTIsIDB4OGQsIDB4ZDYsIDB4OGYsIDB4NTAsIDB4ODAsIDB4MTUsIDB4YWYsIDB4NGYsIDB4YWUsIDB4NGV9IH0sCit7IDB4OTNjMSwJMTYsCXsweDdjLCAweDAyLCAweDdkLCAweGFmLCAweDdiLCAweDQwLCAweDEyLCAweDkxLCAweDM3LCAweGU0LCAweGY1LCAweDUwLCAweDgwLCAweDAzLCAweDc1LCAweDUwfSB9LAoreyAweDkzZDEsCTE2LAl7MHhmZiwgMHhlNSwgMHg1MCwgMHg2MCwgMHgxZCwgMHg5MCwgMHgwMSwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg4NSwgMHg1MiwgMHg4MiwgMHg4NSwgMHg1MX0gfSwKK3sgMHg5M2UxLAkxNiwJezB4ODMsIDB4ZTAsIDB4OTAsIDB4MDEsIDB4OTksIDB4ZjAsIDB4N2UsIDB4MDEsIDB4N2YsIDB4OTgsIDB4N2QsIDB4MDIsIDB4MTIsIDB4OTEsIDB4NmEsIDB4YWZ9IH0sCit7IDB4OTNmMSwJMTYsCXsweDUwLCAweDIyLCAweDg1LCAweDUyLCAweDgyLCAweDg1LCAweDUxLCAweDgzLCAweGUwLCAweGZmLCAweDE0LCAweDI0LCAweGZhLCAweDUwLCAweDA0LCAweDI0fSB9LAoreyAweDk0MDEsCTE2LAl7MHhmZSwgMHg3MCwgMHgxZiwgMHg5MCwgMHgwMSwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHhhMywgMHhlZiwgMHhmMCwgMHg4NSwgMHg1NiwgMHg4MiwgMHg4NX0gfSwKK3sgMHg5NDExLAkxNiwJezB4NTUsIDB4ODMsIDB4ZTAsIDB4OTAsIDB4MDEsIDB4OWEsIDB4ZjAsIDB4N2UsIDB4MDEsIDB4N2YsIDB4OTgsIDB4N2QsIDB4MDMsIDB4MTIsIDB4OTEsIDB4NmF9IH0sCit7IDB4OTQyMSwJNCwJezB4OGYsIDB4NTAsIDB4YWYsIDB4NTB9IH0sCit7IDB4OTQyNSwJMSwJezB4MjJ9IH0sCit7IDB4OTQyNiwJOCwJezB4OGYsIDB4NTEsIDB4OGUsIDB4NTAsIDB4OGQsIDB4NGYsIDB4OGMsIDB4NGV9IH0sCit7IDB4OTQyZSwJMTYsCXsweDc1LCAweDU4LCAweDAxLCAweDc1LCAweDU5LCAweDljLCAweGU0LCAweGY1LCAweDU3LCAweGFmLCAweDUzLCAweDE1LCAweDUzLCAweGVmLCAweDcwLCAweDAzfSB9LAoreyAweDk0M2UsCTE2LAl7MHgwMiwgMHg5NCwgMHhjNCwgMHhhZiwgMHg1MiwgMHhlNCwgMHhmYywgMHhmZCwgMHhmZSwgMHhmOCwgMHhmOSwgMHhmYSwgMHhhYiwgMHgwNywgMHhhZiwgMHg1MX0gfSwKK3sgMHg5NDRlLAkxNiwJezB4YWUsIDB4NTAsIDB4YWQsIDB4NGYsIDB4YWMsIDB4NGUsIDB4MTIsIDB4YTMsIDB4MjEsIDB4YWYsIDB4MDMsIDB4OGYsIDB4NTYsIDB4YWYsIDB4NTEsIDB4YWV9IH0sCit7IDB4OTQ1ZSwJMTYsCXsweDUwLCAweGFkLCAweDRmLCAweGFjLCAweDRlLCAweGMwLCAweDA0LCAweGMwLCAweDA1LCAweGMwLCAweDA2LCAweGMwLCAweDA3LCAweGFmLCAweDUyLCAweGU0fSB9LAoreyAweDk0NmUsCTE2LAl7MHhmYywgMHhmZCwgMHhmZSwgMHhmOCwgMHhmOSwgMHhmYSwgMHhhYiwgMHgwNywgMHhkMCwgMHgwNywgMHhkMCwgMHgwNiwgMHhkMCwgMHgwNSwgMHhkMCwgMHgwNH0gfSwKK3sgMHg5NDdlLAkxNiwJezB4MTIsIDB4YTMsIDB4MjEsIDB4OGYsIDB4NTEsIDB4OGUsIDB4NTAsIDB4OGQsIDB4NGYsIDB4OGMsIDB4NGUsIDB4ZTUsIDB4NTYsIDB4MjQsIDB4MzAsIDB4ZjV9IH0sCit7IDB4OTQ4ZSwJMTYsCXsweDU2LCAweGQzLCAweDk0LCAweDM5LCAweDQwLCAweDA2LCAweDc0LCAweDA3LCAweDI1LCAweDU2LCAweGY1LCAweDU2LCAweDA1LCAweDU5LCAweGU1LCAweDU5fSB9LAoreyAweDk0OWUsCTE2LAl7MHhhZSwgMHg1OCwgMHg3MCwgMHgwMiwgMHgwNSwgMHg1OCwgMHgxNCwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlNCwgMHhmMCwgMHgwNSwgMHg1OSwgMHhlNX0gfSwKK3sgMHg5NGFlLAkxNiwJezB4NTksIDB4YWUsIDB4NTgsIDB4NzAsIDB4MDIsIDB4MDUsIDB4NTgsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTUsIDB4NTYsIDB4ZjAsIDB4MDV9IH0sCit7IDB4OTRiZSwJMTYsCXsweDU3LCAweDA1LCAweDU3LCAweDAyLCAweDk0LCAweDM3LCAweGU1LCAweDU5LCAweDE1LCAweDU5LCAweDcwLCAweDAyLCAweDE1LCAweDU4LCAweGFmLCAweDU3fSB9LAoreyAweDk0Y2UsCTE2LAl7MHgxNSwgMHg1NywgMHhlZiwgMHg2MCwgMHgyMywgMHhlNSwgMHg1OSwgMHgxNSwgMHg1OSwgMHhhZSwgMHg1OCwgMHg3MCwgMHgwMiwgMHgxNSwgMHg1OCwgMHhmNX0gfSwKK3sgMHg5NGRlLAkxNiwJezB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4MDUsIDB4NTUsIDB4ZTUsIDB4NTUsIDB4YWMsIDB4NTQsIDB4NzAsIDB4MDIsIDB4MDUsIDB4NTQsIDB4MTR9IH0sCit7IDB4OTRlZSwJOCwJezB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4ZDZ9IH0sCit7IDB4OTRmNiwJMSwJezB4MjJ9IH0sCit7IDB4OTRmNywJMTYsCXsweGU0LCAweDkwLCAweDAxLCAweGM5LCAweGYwLCAweDdlLCAweDAxLCAweDdmLCAweGNhLCAweDkwLCAweDAxLCAweGJlLCAweGVlLCAweGYwLCAweGEzLCAweGVmfSB9LAoreyAweDk1MDcsCTEwLAl7MHhmMCwgMHg5MCwgMHgwMSwgMHhjMiwgMHhlZSwgMHhmMCwgMHhhMywgMHhlZiwgMHhmMCwgMHgyMn0gfSwKK3sgMHg5NTExLAkxNiwJezB4YWEsIDB4MDcsIDB4YTksIDB4MDUsIDB4OTAsIDB4MDEsIDB4YzksIDB4ZTAsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4NjEsIDB4YWMsIDB4MDIsIDB4NzR9IH0sCit7IDB4OTUyMSwJMTYsCXsweDAxLCAweDdlLCAweDAwLCAweGE4LCAweDA0LCAweDA4LCAweDgwLCAweDA1LCAweGMzLCAweDMzLCAweGNlLCAweDMzLCAweGNlLCAweGQ4LCAweGY5LCAweGZmfSB9LAoreyAweDk1MzEsCTE2LAl7MHhlNCwgMHhlZiwgMHg1NSwgMHgzNCwgMHg2MCwgMHg0NSwgMHhlYSwgMHgwNCwgMHhmZiwgMHg5MCwgMHgwMSwgMHhjMiwgMHhlMCwgMHhmYywgMHhhMywgMHhlMH0gfSwKK3sgMHg5NTQxLAkxNiwJezB4ZmQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4YTMsIDB4ZTksIDB4ZjAsIDB4OGQsIDB4ODIsIDB4OGMsIDB4ODMsIDB4YTMsIDB4YTN9IH0sCit7IDB4OTU1MSwJMTYsCXsweGViLCAweGYwLCAweDkwLCAweDAxLCAweGMyLCAweGU0LCAweDc1LCAweGYwLCAweDAzLCAweDEyLCAweGEyLCAweDgxLCAweGZjLCAweGQzLCAweGU1LCAweGYwfSB9LAoreyAweDk1NjEsCTE2LAl7MHg5NCwgMHg4NywgMHhlYywgMHg5NCwgMHgwMiwgMHg0MCwgMHgwYSwgMHg5MCwgMHgwMSwgMHhjMiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhhMywgMHg3NCwgMHhjYX0gfSwKK3sgMHg5NTcxLAkxNiwJezB4ZjAsIDB4YzIsIDB4YWYsIDB4OTAsIDB4MDEsIDB4YzksIDB4ZTAsIDB4MDQsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4N2YsIDB4MDEsIDB4MjIsIDB4N2YsIDB4MDB9IH0sCit7IDB4OTU4MSwJMSwJezB4MjJ9IH0sCit7IDB4OTU4MiwJMTYsCXsweDkwLCAweDAxLCAweGM5LCAweGUwLCAweGQzLCAweDk0LCAweDAwLCAweDQwLCAweDU1LCAweDkwLCAweDAxLCAweGJlLCAweGUwLCAweGZjLCAweGEzLCAweGUwfSB9LAoreyAweDk1OTIsCTE2LAl7MHhhYSwgMHgwNCwgMHhmOSwgMHg3YiwgMHgwMSwgMHhjMCwgMHgwMywgMHhjMCwgMHgwMiwgMHhjMCwgMHgwMSwgMHhhYSwgMHgwNiwgMHhhOSwgMHgwNywgMHhhOH0gfSwKK3sgMHg5NWEyLAkxNiwJezB4MDEsIDB4YWMsIDB4MDIsIDB4YWQsIDB4MDMsIDB4ZDAsIDB4MDEsIDB4ZDAsIDB4MDIsIDB4ZDAsIDB4MDMsIDB4N2UsIDB4MDAsIDB4N2YsIDB4MDMsIDB4MTJ9IH0sCit7IDB4OTViMiwJMTYsCXsweGEyLCAweDEyLCAweDkwLCAweDAxLCAweGJlLCAweGU0LCAweDc1LCAweGYwLCAweDAzLCAweDEyLCAweGEyLCAweDgxLCAweGZjLCAweGQzLCAweGU1LCAweGYwfSB9LAoreyAweDk1YzIsCTE2LAl7MHg5NCwgMHg4NywgMHhlYywgMHg5NCwgMHgwMiwgMHg0MCwgMHgwYSwgMHg5MCwgMHgwMSwgMHhiZSwgMHg3NCwgMHgwMSwgMHhmMCwgMHhhMywgMHg3NCwgMHhjYX0gfSwKK3sgMHg5NWQyLAkxNiwJezB4ZjAsIDB4YzIsIDB4YWYsIDB4OTAsIDB4MDEsIDB4YzksIDB4ZTAsIDB4MTQsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4N2YsIDB4MDEsIDB4MjIsIDB4N2YsIDB4MDB9IH0sCit7IDB4OTVlMiwJMSwJezB4MjJ9IH0sCit7IDB4OTVlMywJMTYsCXsweDkwLCAweDdmLCAweGMyLCAweGUwLCAweDIwLCAweGUxLCAweDczLCAweDdlLCAweDdiLCAweDdmLCAweDgwLCAweDc1LCAweDUzLCAweDdiLCAweDc1LCAweDU0fSB9LAoreyAweDk1ZjMsCTE2LAl7MHg4MCwgMHhlNSwgMHg1NCwgMHgyNCwgMHgwMSwgMHhmZiwgMHhlNCwgMHgzNSwgMHg1MywgMHhhOSwgMHgwNywgMHg3YiwgMHgwMSwgMHg4YiwgMHg1NSwgMHhmNX0gfSwKK3sgMHg5NjAzLAkxNiwJezB4NTYsIDB4ODksIDB4NTcsIDB4ZmUsIDB4MTIsIDB4OTUsIDB4ODIsIDB4ZWYsIDB4NjAsIDB4NTAsIDB4YWIsIDB4NTUsIDB4YWEsIDB4NTYsIDB4YTksIDB4NTd9IH0sCit7IDB4OTYxMywJMTYsCXsweDEyLCAweGEyLCAweDNiLCAweDE0LCAweGZmLCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweGEyLCAweDU0LCAweGI0LCAweDAyLCAweDE2LCAweGMyLCAweGFmfSB9LAoreyAweDk2MjMsCTE2LAl7MHhlZiwgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgyMCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NH0gfSwKK3sgMHg5NjMzLAkxNiwJezB4MDQsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4NzQsIDB4MDEsIDB4N2UsIDB4MDAsIDB4YTgsIDB4MDcsIDB4MDgsIDB4ODAsIDB4MDUsIDB4YzMsIDB4MzMsIDB4Y2V9IH0sCit7IDB4OTY0MywJMTYsCXsweDMzLCAweGNlLCAweGQ4LCAweGY5LCAweGZmLCAweGU0LCAweGVmLCAweDU1LCAweDM0LCAweDYwLCAweDBmLCAweDg1LCAweDU0LCAweDgyLCAweDg1LCAweDUzfSB9LAoreyAweDk2NTMsCTEwLAl7MHg4MywgMHg3NCwgMHgwZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwNCwgMHhmMH0gfSwKK3sgMHg5NjVkLAkxLAl7MHgyMn0gfSwKK3sgMHg5NjVlLAkxNiwJezB4MTIsIDB4OTUsIDB4ZTMsIDB4ZTQsIDB4ZjUsIDB4NGUsIDB4NzQsIDB4M2EsIDB4MjUsIDB4NGUsIDB4ZjgsIDB4ZTYsIDB4NTQsIDB4ZjAsIDB4ZjUsIDB4NGZ9IH0sCit7IDB4OTY2ZSwJMTYsCXsweDc0LCAweGM1LCAweDI1LCAweDRlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAxLCAweGY1LCAweDgzLCAweGUwLCAweDY1LCAweDRmLCAweGZmLCAweGM0fSB9LAoreyAweDk2N2UsCTE2LAl7MHg1NCwgMHgwZiwgMHhmNSwgMHg1MCwgMHg2MCwgMHgyMiwgMHg3NCwgMHhjNSwgMHgyNSwgMHg0ZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMSwgMHhmNX0gfSwKK3sgMHg5NjhlLAkxNiwJezB4ODMsIDB4ZTUsIDB4NGYsIDB4ZjAsIDB4YWYsIDB4NGUsIDB4N2QsIDB4MDEsIDB4ZTUsIDB4NGYsIDB4NDUsIDB4NTAsIDB4ZmIsIDB4MTIsIDB4OTUsIDB4MTF9IH0sCit7IDB4OTY5ZSwJMTYsCXsweGVmLCAweDcwLCAweDA1LCAweDEyLCAweDk1LCAweGUzLCAweDgwLCAweGVjLCAweDA1LCAweDRlLCAweGU1LCAweDRlLCAweGMzLCAweDk0LCAweDA0LCAweDQwfSB9LAoreyAweDk2YWUsCTE2LAl7MHhiNSwgMHgxMiwgMHg5NSwgMHhlMywgMHhlNSwgMHgzZSwgMHg2MCwgMHg0OCwgMHhlNCwgMHhmNSwgMHg0ZSwgMHhhZiwgMHg0ZSwgMHg3NCwgMHgwMSwgMHhhOH0gfSwKK3sgMHg5NmJlLAkxNiwJezB4MDcsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4ZjUsIDB4NGYsIDB4NTUsIDB4M2UsIDB4NjAsIDB4MjksIDB4ZTUsIDB4NGV9IH0sCit7IDB4OTZjZSwJMTYsCXsweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDA1LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDIwLCAweGY1LCAweDgzLCAweGUwLCAweDMwLCAweGU2fSB9LAoreyAweDk2ZGUsCTE2LAl7MHgxNiwgMHhhZiwgMHg0ZSwgMHg3ZCwgMHgwNCwgMHg3YiwgMHg4MCwgMHgxMiwgMHg5NSwgMHgxMSwgMHhlZiwgMHg3MCwgMHgwNSwgMHgxMiwgMHg5NSwgMHhlM30gfSwKK3sgMHg5NmVlLAkxNiwJezB4ODAsIDB4ZWYsIDB4ZTUsIDB4NGYsIDB4ZjQsIDB4NTIsIDB4M2UsIDB4MDUsIDB4NGUsIDB4ZTUsIDB4NGUsIDB4YzMsIDB4OTQsIDB4MDQsIDB4NDAsIDB4YmJ9IH0sCit7IDB4OTZmZSwJMTYsCXsweDkwLCAweDAzLCAweDAwLCAweGUwLCAweDYwLCAweDAzLCAweDAyLCAweDk3LCAweGRmLCAweDc0LCAweDE5LCAweGYwLCAweGU1LCAweDMzLCAweGMzLCAweDk0fSB9LAoreyAweDk3MGUsCTE2LAl7MHgwMSwgMHg0MCwgMHgwZCwgMHg5MCwgMHgyMCwgMHg3OCwgMHhlMCwgMHg1NCwgMHgwZiwgMHg3NSwgMHg1MSwgMHgwMCwgMHhmNSwgMHg1MiwgMHg4MCwgMHgwOX0gfSwKK3sgMHg5NzFlLAkxNiwJezB4N2YsIDB4MDIsIDB4MTIsIDB4MTEsIDB4MjcsIDB4OGUsIDB4NTEsIDB4OGYsIDB4NTIsIDB4YzMsIDB4ZTUsIDB4NTEsIDB4NjQsIDB4ODAsIDB4OTQsIDB4ODB9IH0sCit7IDB4OTcyZSwJMTYsCXsweDQwLCAweGRhLCAweDkwLCAweDAxLCAweGJjLCAweGUwLCAweDY1LCAweDUyLCAweGYwLCAweDYwLCAweDM3LCAweGU0LCAweGY1LCAweDRlLCAweGFmLCAweDRlfSB9LAoreyAweDk3M2UsCTE2LAl7MHg3NCwgMHgwMSwgMHhhOCwgMHgwNywgMHgwOCwgMHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHhmNSwgMHg0ZiwgMHg5MCwgMHgwMSwgMHhiY30gfSwKK3sgMHg5NzRlLAkxNiwJezB4ZTAsIDB4NTUsIDB4NGYsIDB4NjAsIDB4MTQsIDB4YWYsIDB4NGUsIDB4N2QsIDB4MDgsIDB4ZTUsIDB4NGYsIDB4NTUsIDB4NTIsIDB4ZmIsIDB4MTIsIDB4OTV9IH0sCit7IDB4OTc1ZSwJMTYsCXsweDExLCAweGVmLCAweDcwLCAweDA1LCAweDEyLCAweDk1LCAweGUzLCAweDgwLCAweGVjLCAweDA1LCAweDRlLCAweGU1LCAweDRlLCAweGMzLCAweDk0LCAweDA0fSB9LAoreyAweDk3NmUsCTE2LAl7MHg0MCwgMHhjYywgMHg5MCwgMHgwMSwgMHhiYywgMHhlNSwgMHg1MiwgMHhmMCwgMHhlNCwgMHhmNSwgMHg0ZSwgMHhjMiwgMHhhZiwgMHg3NCwgMHgzNiwgMHgyNX0gfSwKK3sgMHg5NzdlLAkxNiwJezB4NGUsIDB4ZjgsIDB4ZTYsIDB4ZjUsIDB4NGYsIDB4ZTQsIDB4ZjYsIDB4ZDIsIDB4YWYsIDB4NTMsIDB4NGYsIDB4MWUsIDB4ZTUsIDB4NGYsIDB4NjAsIDB4MTF9IH0sCit7IDB4OTc4ZSwJMTYsCXsweGFmLCAweDRlLCAweDdkLCAweDAyLCAweGFiLCAweDRmLCAweDEyLCAweDk1LCAweDExLCAweGVmLCAweDcwLCAweDA1LCAweDEyLCAweDk1LCAweGUzLCAweDgwfSB9LAoreyAweDk3OWUsCTE2LAl7MHhlZiwgMHg3NCwgMHgyZCwgMHgyNSwgMHg0ZSwgMHhmOCwgMHhlNiwgMHhmNSwgMHg0ZiwgMHg3NCwgMHhmYywgMHgyNSwgMHg0ZSwgMHhmNSwgMHg4MiwgMHhlNH0gfSwKK3sgMHg5N2FlLAkxNiwJezB4MzQsIDB4MDIsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjUsIDB4NGYsIDB4NjAsIDB4MTEsIDB4YWYsIDB4NGUsIDB4N2QsIDB4MDQsIDB4YWIsIDB4NGYsIDB4MTJ9IH0sCit7IDB4OTdiZSwJMTYsCXsweDk1LCAweDExLCAweGVmLCAweDcwLCAweDA1LCAweDEyLCAweDk1LCAweGUzLCAweDgwLCAweGVmLCAweDc0LCAweGZjLCAweDI1LCAweDRlLCAweGY1LCAweDgyfSB9LAoreyAweDk3Y2UsCTE2LAl7MHhlNCwgMHgzNCwgMHgwMiwgMHhmNSwgMHg4MywgMHhlNSwgMHg0ZiwgMHhmMCwgMHgwNSwgMHg0ZSwgMHhlNSwgMHg0ZSwgMHhjMywgMHg5NCwgMHgwNCwgMHg0MH0gfSwKK3sgMHg5N2RlLAk0LAl7MHg5YSwgMHgxMiwgMHg5NSwgMHhlM30gfSwKK3sgMHg5N2UyLAkxLAl7MHgyMn0gfSwKK3sgMHg5N2UzLAkxMiwJezB4NzgsIDB4N2YsIDB4ZTQsIDB4ZjYsIDB4ZDgsIDB4ZmQsIDB4NzUsIDB4ODEsIDB4NjcsIDB4MDIsIDB4OTgsIDB4MmF9IH0sCit7IDB4OTdlZiwJMTYsCXsweDAyLCAweDA1LCAweGFkLCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweDQwLCAweDAzLCAweGY2LCAweDgwLCAweDAxLCAweGYyfSB9LAoreyAweDk3ZmYsCTE2LAl7MHgwOCwgMHhkZiwgMHhmNCwgMHg4MCwgMHgyOSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHg1NCwgMHgwNywgMHgyNCwgMHgwYywgMHhjOCwgMHhjMywgMHgzM30gfSwKK3sgMHg5ODBmLAkxNiwJezB4YzQsIDB4NTQsIDB4MGYsIDB4NDQsIDB4MjAsIDB4YzgsIDB4ODMsIDB4NDAsIDB4MDQsIDB4ZjQsIDB4NTYsIDB4ODAsIDB4MDEsIDB4NDYsIDB4ZjYsIDB4ZGZ9IH0sCit7IDB4OTgxZiwJMTYsCXsweGU0LCAweDgwLCAweDBiLCAweDAxLCAweDAyLCAweDA0LCAweDA4LCAweDEwLCAweDIwLCAweDQwLCAweDgwLCAweDkwLCAweDk4LCAweDZmLCAweGU0LCAweDdlfSB9LAoreyAweDk4MmYsCTE2LAl7MHgwMSwgMHg5MywgMHg2MCwgMHhiYywgMHhhMywgMHhmZiwgMHg1NCwgMHgzZiwgMHgzMCwgMHhlNSwgMHgwOSwgMHg1NCwgMHgxZiwgMHhmZSwgMHhlNCwgMHg5M30gfSwKK3sgMHg5ODNmLAkxNiwJezB4YTMsIDB4NjAsIDB4MDEsIDB4MGUsIDB4Y2YsIDB4NTQsIDB4YzAsIDB4MjUsIDB4ZTAsIDB4NjAsIDB4YTgsIDB4NDAsIDB4YjgsIDB4ZTQsIDB4OTMsIDB4YTN9IH0sCit7IDB4OTg0ZiwJMTYsCXsweGZhLCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhfSB9LAoreyAweDk4NWYsCTE2LAl7MHhmMCwgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhkZiwgMHhlOSwgMHhkZSwgMHhlNywgMHg4MCwgMHhiZX0gfSwKK3sgMHg5ODZmLAkxNiwJezB4NjAsIDB4MjQsIDB4MDIsIDB4OGEsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4ODEsIDB4ODIsIDB4ODQsIDB4ODh9IH0sCit7IDB4OTg3ZiwJMTYsCXsweDkwLCAweGEwLCAweGMwLCAweGMxLCAweGMyLCAweGM0LCAweGM4LCAweGQwLCAweGUwLCAweGUxLCAweGUyLCAweGU0LCAweGU4LCAweGYwLCAweGYxLCAweGYyfSB9LAoreyAweDk4OGYsCTgsCXsweGY0LCAweGY4LCAweGY5LCAweGZhLCAweGZjLCAweGZkLCAweGZlLCAweGZmfSB9LAoreyAweDk4OTcsCTEsCXsweDAwfSB9LAoreyAweDk4OTgsCTgsCXsweDhiLCAweDU5LCAweDhhLCAweDVhLCAweDg5LCAweDViLCAweDhkLCAweDVjfSB9LAoreyAweDk4YTAsCTE2LAl7MHhlNCwgMHhmNSwgMHg1ZCwgMHhmNSwgMHg1ZSwgMHhhZiwgMHg1YywgMHgxNSwgMHg1YywgMHhlZiwgMHg2MCwgMHgzNiwgMHhhYiwgMHg1OSwgMHgwNSwgMHg1Yn0gfSwKK3sgMHg5OGIwLAkxNiwJezB4ZTUsIDB4NWIsIDB4YWEsIDB4NWEsIDB4NzAsIDB4MDIsIDB4MDUsIDB4NWEsIDB4MTQsIDB4ZjksIDB4MTIsIDB4YTIsIDB4M2IsIDB4ZmYsIDB4ZTUsIDB4NWR9IH0sCit7IDB4OThjMCwJMTYsCXsweGU1LCAweDVlLCAweDZmLCAweDI1LCAweGUwLCAweGZmLCAweGU0LCAweDMzLCAweGZlLCAweDc0LCAweDk1LCAweDJmLCAweGY1LCAweDgyLCAweGVlLCAweDM0fSB9LAoreyAweDk4ZDAsCTE2LAl7MHg5ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg1ZCwgMHhmZiwgMHhlNCwgMHg5MywgMHhmNSwgMHg1ZCwgMHg3NCwgMHgwMSwgMHg5MywgMHg2ZiwgMHhmNSwgMHg1ZX0gfSwKK3sgMHg5OGUwLAk2LAl7MHg4MCwgMHhjMywgMHhhZSwgMHg1ZCwgMHhhZiwgMHg1ZX0gfSwKK3sgMHg5OGU2LAkxLAl7MHgyMn0gfSwKK3sgMHg5OGU3LAkxMSwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ZDAsIDB4NzUsIDB4ZDAsIDB4MTh9IH0sCit7IDB4OThmMiwJMTYsCXsweDkwLCAweDIwLCAweDYwLCAweGUwLCAweDU0LCAweDBmLCAweGZlLCAweDMwLCAweGUwLCAweDA1LCAweDkwLCAweDIwLCAweDAyLCAweGUwLCAweGZmLCAweGVlfSB9LAoreyAweDk5MDIsCTE2LAl7MHgzMCwgMHhlMSwgMHgwNSwgMHg5MCwgMHgyMCwgMHgwYSwgMHhlMCwgMHhmZiwgMHhlZSwgMHgzMCwgMHhlMiwgMHgwNSwgMHg5MCwgMHgyMCwgMHgxMiwgMHhlMH0gfSwKK3sgMHg5OTEyLAkxNiwJezB4ZmYsIDB4ZWUsIDB4MzAsIDB4ZTMsIDB4MDUsIDB4OTAsIDB4MjAsIDB4MWEsIDB4ZTAsIDB4ZmYsIDB4OTAsIDB4MDEsIDB4YzQsIDB4ZTAsIDB4YjUsIDB4MWV9IH0sCit7IDB4OTkyMiwJMTAsCXsweDA0LCAweGU0LCAweGYwLCAweDgwLCAweDA1LCAweDkwLCAweDAxLCAweGM0LCAweGVlLCAweGYwfSB9LAoreyAweDk5MmMsCTksCXsweGQwLCAweGQwLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoreyAweDk5MzUsCTIsCXsweGE5LCAweDAzfSB9LAoreyAweDk5MzcsCTE2LAl7MHhlZiwgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgyMCwgMHhhYiwgMHg4MiwgMHhmYSwgMHhlNX0gfSwKK3sgMHg5OTQ3LAkxNiwJezB4NWMsIDB4NDUsIDB4NWQsIDB4ZjUsIDB4NWUsIDB4ZTksIDB4NjAsIDB4MTQsIDB4OGEsIDB4ODMsIDB4ZTUsIDB4ODIsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODJ9IH0sCit7IDB4OTk1NywJMTYsCXsweGU0LCAweDM1LCAweDgzLCAweGY1LCAweDgzLCAweGUwLCAweDRkLCAweGYwLCAweGU0LCAweGZlLCAweDgwLCAweDEzLCAweGViLCAweDI0LCAweDA0LCAweGY1fSB9LAoreyAweDk5NjcsCTE2LAl7MHg4MiwgMHhlNCwgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlZCwgMHhmNCwgMHhmYywgMHhlZiwgMHg1YywgMHhmMCwgMHhhZSwgMHg1ZSwgMHhlYn0gfSwKK3sgMHg5OTc3LAkxNiwJezB4MjQsIDB4MDYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTUsIDB4NWUsIDB4ZmMsIDB4YjUsIDB4MDYsIDB4MDMsIDB4YWZ9IH0sCit7IDB4OTk4NywJMTYsCXsweDA1LCAweDIyLCAweGU1LCAweDVjLCAweDVjLCAweGZlLCAweGU1LCAweDVkLCAweDVjLCAweGZkLCAweGU5LCAweDYwLCAweDE2LCAweGVlLCAweDcwLCAweDA0fSB9LAoreyAweDk5OTcsCTE2LAl7MHg3ZiwgMHgwMSwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgwMCwgMHhhZSwgMHgwNywgMHhlZCwgMHg3MCwgMHgwNCwgMHg3ZiwgMHgwMSwgMHg4MCwgMHgwMiwgMHg3Zn0gfSwKK3sgMHg5OWE3LAkxNiwJezB4MDAsIDB4YWQsIDB4MDcsIDB4ZWUsIDB4NjAsIDB4MDMsIDB4YWYsIDB4NWMsIDB4MjIsIDB4ZWQsIDB4NjAsIDB4MDMsIDB4YWYsIDB4NWQsIDB4MjIsIDB4N2Z9IH0sCit7IDB4OTliNywJMSwJezB4MDB9IH0sCit7IDB4OTliOCwJMSwJezB4MjJ9IH0sCit7IDB4OTliOSwJMTYsCXsweDc1LCAweDU1LCAweDAyLCAweDc1LCAweDU2LCAweGIwLCAweDkwLCAweDAzLCAweDM1LCAweDc0LCAweDBmLCAweGYwLCAweDg1LCAweDU2LCAweDgyLCAweDg1fSB9LAoreyAweDk5YzksCTE2LAl7MHg1NSwgMHg4MywgMHhhMywgMHhlMCwgMHhmZiwgMHg5MCwgMHgwMywgMHgzNywgMHhmMCwgMHg4NSwgMHg1NiwgMHg4MiwgMHg4NSwgMHg1NSwgMHg4MywgMHhlMH0gfSwKK3sgMHg5OWQ5LAkxNiwJezB4OTAsIDB4MDMsIDB4MzYsIDB4ZjAsIDB4OTAsIDB4MDMsIDB4MzgsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4NzUsIDB4NTcsIDB4MDMsIDB4NzUsIDB4NTgsIDB4Mzl9IH0sCit7IDB4OTllOSwJMTYsCXsweGVmLCAweDE0LCAweGI0LCAweDBiLCAweDAwLCAweDQwLCAweDAzLCAweDAyLCAweDllLCAweDVkLCAweDkwLCAweDk5LCAweGZhLCAweGY4LCAweDI4LCAweDI4fSB9LAoreyAweDk5ZjksCTE2LAl7MHg3MywgMHgwMiwgMHg5YSwgMHgxYiwgMHgwMiwgMHg5YSwgMHhiYSwgMHgwMiwgMHg5YiwgMHhiZiwgMHgwMiwgMHg5YiwgMHhkZSwgMHgwMiwgMHg5YiwgMHhkZX0gfSwKK3sgMHg5YTA5LAkxNiwJezB4MDIsIDB4OWMsIDB4OTQsIDB4MDIsIDB4OWMsIDB4Y2YsIDB4MDIsIDB4OWMsIDB4ZjQsIDB4MDIsIDB4OWQsIDB4YjIsIDB4MDIsIDB4OWQsIDB4ZTIsIDB4MDJ9IH0sCit7IDB4OWExOSwJMTYsCXsweDllLCAweDBlLCAweGU0LCAweGY1LCAweDRlLCAweGU1LCAweDRlLCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAwLCAweGY1LCAweDgyLCAweGU0fSB9LAoreyAweDlhMjksCTE2LAl7MHgzNCwgMHgyMCwgMHhhZiwgMHg4MiwgMHhmNSwgMHg1MywgMHg4ZiwgMHg1NCwgMHhlNCwgMHhmZiwgMHhlNCwgMHhmZSwgMHhlZiwgMHg2MCwgMHgxMCwgMHg3NH0gfSwKK3sgMHg5YTM5LAkxNiwJezB4OGEsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDIsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjQsIDB4ZjUsIDB4NGYsIDB4ODAsIDB4MGQsIDB4NzR9IH0sCit7IDB4OWE0OSwJMTYsCXsweDhhLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAyLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDRmLCAweGU1LCAweDU0LCAweDI0LCAweDA3fSB9LAoreyAweDlhNTksCTE2LAl7MHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1MywgMHhmNSwgMHg4MywgMHhlNSwgMHg0ZiwgMHhmMCwgMHhlMCwgMHhmNSwgMHg1MCwgMHg2NSwgMHg0ZiwgMHg2MH0gfSwKK3sgMHg5YTY5LAkxNiwJezB4MzgsIDB4ZTQsIDB4OTAsIDB4MDMsIDB4MzgsIDB4ZjAsIDB4ZTUsIDB4NGUsIDB4MDQsIDB4ZmQsIDB4MDUsIDB4NTgsIDB4ZTUsIDB4NTgsIDB4YWEsIDB4NTd9IH0sCit7IDB4OWE3OSwJMTYsCXsweDcwLCAweDAyLCAweDA1LCAweDU3LCAweDE0LCAweGY1LCAweDgyLCAweDhhLCAweDgzLCAweGVkLCAweGYwLCAweDA1LCAweDU4LCAweGU1LCAweDU4LCAweGFjfSB9LAoreyAweDlhODksCTE2LAl7MHg1NywgMHg3MCwgMHgwMiwgMHgwNSwgMHg1NywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlNSwgMHg0ZiwgMHhmMCwgMHg4NSwgMHg1OCwgMHg4Mn0gfSwKK3sgMHg5YTk5LAkxNiwJezB4ODUsIDB4NTcsIDB4ODMsIDB4ZTUsIDB4NTAsIDB4ZjAsIDB4MDIsIDB4OWUsIDB4NjMsIDB4MGUsIDB4YmUsIDB4MjQsIDB4OGYsIDB4MGYsIDB4ZWYsIDB4NjR9IH0sCit7IDB4OWFhOSwJMTYsCXsweDAyLCAweDcwLCAweDg3LCAweDA1LCAweDRlLCAweGU1LCAweDRlLCAweDY0LCAweDA0LCAweDYwLCAweDAzLCAweDAyLCAweDlhLCAweDFlLCAweDAyLCAweDllfSB9LAoreyAweDlhYjksCTE2LAl7MHg2MywgMHhlNCwgMHhmNSwgMHg0ZSwgMHhhZiwgMHg0ZSwgMHhlNCwgMHhmZCwgMHgxMiwgMHg4MywgMHg1YSwgMHgwNSwgMHg0ZSwgMHhlNSwgMHg0ZSwgMHhkM30gfSwKK3sgMHg5YWM5LAkxNiwJezB4OTQsIDB4MDMsIDB4NDAsIDB4ZjAsIDB4OTAsIDB4MDAsIDB4MDQsIDB4NzQsIDB4OTgsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4ZTcsIDB4ZjAsIDB4ZTQsIDB4ZjV9IH0sCit7IDB4OWFkOSwJMTYsCXsweDUwLCAweDdlLCAweDIwLCAweDdmLCAweDAwLCAweDc1LCAweDUzLCAweDIwLCAweDc1LCAweDU0LCAweDAwLCAweGY1LCAweDRlLCAweGFmLCAweDRlLCAweDc0fSB9LAoreyAweDlhZTksCTE2LAl7MHgwMSwgMHhhOCwgMHgwNywgMHgwOCwgMHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHhmNSwgMHg0ZiwgMHg5MCwgMHgwMSwgMHhjNCwgMHhmMH0gfSwKK3sgMHg5YWY5LAkxNiwJezB4OTAsIDB4MDEsIDB4YzAsIDB4ZTQsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MGEsIDB4ZjAsIDB4ODUsIDB4NTQsIDB4ODIsIDB4ODUsIDB4NTMsIDB4ODMsIDB4YTN9IH0sCit7IDB4OWIwOSwJMTYsCXsweDc0LCAweDAyLCAweGYwLCAweDkwLCAweDAxLCAweGM0LCAweGUwLCAweGI1LCAweDRmLCAweDM0LCAweDkwLCAweDAxLCAweGMwLCAweGUwLCAweDcwLCAweDAyfSB9LAoreyAweDliMTksCTE2LAl7MHhhMywgMHhlMCwgMHg3MCwgMHhlZiwgMHg5MCwgMHgwMywgMHgzOCwgMHhmMCwgMHhlNSwgMHg0ZSwgMHgwNCwgMHhmZiwgMHgwNSwgMHg1OCwgMHhlNSwgMHg1OH0gfSwKK3sgMHg5YjI5LAkxNiwJezB4YWMsIDB4NTcsIDB4NzAsIDB4MDIsIDB4MDUsIDB4NTcsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ODUsIDB4NTgsIDB4ODJ9IH0sCit7IDB4OWIzOSwJMTYsCXsweDg1LCAweDU3LCAweDgzLCAweDc0LCAweGZmLCAweGYwLCAweGU0LCAweDkwLCAweDAxLCAweGM0LCAweGYwLCAweDc1LCAweDUwLCAweGZmLCAweDkwLCAweDAxfSB9LAoreyAweDliNDksCTE2LAl7MHhjNCwgMHhlMCwgMHhmZiwgMHg2MCwgMHgzNywgMHhlNCwgMHg5MCwgMHgwMywgMHgzOCwgMHhmMCwgMHhlNSwgMHg0ZSwgMHgwNCwgMHhmZSwgMHgwNSwgMHg1OH0gfSwKK3sgMHg5YjU5LAkxNiwJezB4ZTUsIDB4NTgsIDB4YWMsIDB4NTcsIDB4NzAsIDB4MDIsIDB4MDUsIDB4NTcsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWUsIDB4ZjAsIDB4MDV9IH0sCit7IDB4OWI2OSwJMTYsCXsweDU4LCAweGU1LCAweDU4LCAweGFjLCAweDU3LCAweDcwLCAweDAyLCAweDA1LCAweDU3LCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwfSB9LAoreyAweDliNzksCTE2LAl7MHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhlNSwgMHg0ZiwgMHhmMCwgMHg3NSwgMHg1MCwgMHhmZiwgMHhlNSwgMHg1MCwgMHg3MCwgMHgxNn0gfSwKK3sgMHg5Yjg5LAkxNiwJezB4NzQsIDB4MDgsIDB4MjUsIDB4NTQsIDB4ZjUsIDB4NTQsIDB4ZTQsIDB4MzUsIDB4NTMsIDB4ZjUsIDB4NTMsIDB4MDUsIDB4NGUsIDB4ZTUsIDB4NGUsIDB4NjR9IH0sCit7IDB4OWI5OSwJMTYsCXsweDA0LCAweDYwLCAweDAzLCAweDAyLCAweDlhLCAweGU2LCAweGU0LCAweGY1LCAweDRlLCAweGFmLCAweDRlLCAweDdkLCAweDAxLCAweDEyLCAweDgzLCAweDVhfSB9LAoreyAweDliYTksCTE2LAl7MHgwNSwgMHg0ZSwgMHhlNSwgMHg0ZSwgMHhkMywgMHg5NCwgMHgwMywgMHg0MCwgMHhmMCwgMHg5MCwgMHgwMCwgMHgwNCwgMHg3NCwgMHgxMywgMHhmMCwgMHhhM30gfSwKK3sgMHg5YmI5LAkxNiwJezB4NzQsIDB4MTIsIDB4ZjAsIDB4MDIsIDB4OWUsIDB4NjMsIDB4ODUsIDB4NTYsIDB4ODIsIDB4ODUsIDB4NTUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4ZmYsIDB4NzR9IH0sCit7IDB4OWJjOSwJMTYsCXsweDAxLCAweGE4LCAweDA3LCAweDA4LCAweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweDkwLCAweDAyLCAweGY3LCAweGYwLCAweDkwLCAweDAxfSB9LAoreyAweDliZDksCTE2LAl7MHhjNCwgMHhmMCwgMHgwMiwgMHg5ZSwgMHg2MywgMHg5MCwgMHgwMSwgMHhjMCwgMHg3NCwgMHgwMywgMHhmMCwgMHhhMywgMHg3NCwgMHhlOCwgMHhmMCwgMHhlNH0gfSwKK3sgMHg5YmU5LAkxNiwJezB4ZjUsIDB4NTAsIDB4OTAsIDB4MDIsIDB4ZjcsIDB4ZTAsIDB4ZmYsIDB4OTAsIDB4MDEsIDB4YzQsIDB4ZTAsIDB4YjUsIDB4MDcsIDB4MTksIDB4OTAsIDB4MDF9IH0sCit7IDB4OWJmOSwJMTYsCXsweGMwLCAweGUwLCAweDcwLCAweDAyLCAweGEzLCAweGUwLCAweDcwLCAweGVhLCAweDkwLCAweDAzLCAweDM4LCAweGYwLCAweDg1LCAweDU4LCAweDgyLCAweDg1fSB9LAoreyAweDljMDksCTE2LAl7MHg1NywgMHg4MywgMHg3NCwgMHhmZiwgMHhmMCwgMHhmNSwgMHg1MCwgMHhlNSwgMHg1MCwgMHg2MCwgMHgwMywgMHgwMiwgMHg5ZSwgMHg2MywgMHg5MCwgMHgwMX0gfSwKK3sgMHg5YzE5LAkxNiwJezB4YzAsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4OTYsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4YzAsIDB4ZTAsIDB4NzAsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4NzAsIDB4ZjZ9IH0sCit7IDB4OWMyOSwJMTYsCXsweGU1LCAweDMzLCAweGMzLCAweDk0LCAweDAxLCAweDQwLCAweDBkLCAweDkwLCAweDIwLCAweDc4LCAweGUwLCAweDU0LCAweDBmLCAweDc1LCAweDUxLCAweDAwfSB9LAoreyAweDljMzksCTE2LAl7MHhmNSwgMHg1MiwgMHg4MCwgMHgwOSwgMHg3ZiwgMHgwMiwgMHgxMiwgMHgxMSwgMHgyNywgMHg4ZSwgMHg1MSwgMHg4ZiwgMHg1MiwgMHhjMywgMHhlNSwgMHg1MX0gfSwKK3sgMHg5YzQ5LAkxNiwJezB4NjQsIDB4ODAsIDB4OTQsIDB4ODAsIDB4NDAsIDB4ZGEsIDB4ZTUsIDB4NTIsIDB4NTQsIDB4MGYsIDB4ZjUsIDB4NTAsIDB4OTAsIDB4MDIsIDB4ZjcsIDB4ZTB9IH0sCit7IDB4OWM1OSwJMTYsCXsweDU1LCAweDUwLCAweDcwLCAweDA0LCAweDdmLCAweDAxLCAweDgwLCAweDAyLCAweDdmLCAweDAwLCAweDhmLCAweDRmLCAweDg1LCAweDU2LCAweDgyLCAweDg1fSB9LAoreyAweDljNjksCTE2LAl7MHg1NSwgMHg4MywgMHhhMywgMHhlMCwgMHhiNCwgMHgwNSwgMHgwYywgMHhlNSwgMHg0ZiwgMHg3MCwgMHgwNCwgMHg3ZiwgMHgwMSwgMHg4MCwgMHgwMiwgMHg3Zn0gfSwKK3sgMHg5Yzc5LAkxNiwJezB4MDAsIDB4OGYsIDB4NGYsIDB4ZTUsIDB4NGYsIDB4NzAsIDB4MDMsIDB4MDIsIDB4OWUsIDB4NjMsIDB4ZTQsIDB4OTAsIDB4MDMsIDB4MzgsIDB4ZjAsIDB4ODV9IH0sCit7IDB4OWM4OSwJMTYsCXsweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGU1LCAweDUwLCAweGYwLCAweDAyLCAweDllLCAweDYzLCAweGU0LCAweGZmLCAweGZkLCAweDEyLCAweDgzfSB9LAoreyAweDljOTksCTE2LAl7MHg1YSwgMHg3ZSwgMHgyMCwgMHg3ZiwgMHgwMCwgMHg3NSwgMHg1MywgMHgyMCwgMHg3NSwgMHg1NCwgMHgwMCwgMHg4NSwgMHg1NCwgMHg4MiwgMHg4NSwgMHg1M30gfSwKK3sgMHg5Y2E5LAkxNiwJezB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ODUsIDB4NTQsIDB4ODIsIDB4ODUsIDB4NTMsIDB4ODMsIDB4NzQsIDB4MDF9IH0sCit7IDB4OWNiOSwJMTYsCXsweGYwLCAweGEzLCAweGU0LCAweGYwLCAweDg1LCAweDU0LCAweDgyLCAweDg1LCAweDUzLCAweDgzLCAweGEzLCAweGEzLCAweGEzLCAweGUwLCAweDU0LCAweDdmfSB9LAoreyAweDljYzksCTE2LAl7MHhmMCwgMHhkMiwgMHgwNCwgMHgwMiwgMHg5ZSwgMHg2MywgMHhjMiwgMHgwNCwgMHg3ZSwgMHgyMCwgMHg3ZiwgMHgwMCwgMHg3NSwgMHg1MywgMHgyMCwgMHg3NX0gfSwKK3sgMHg5Y2Q5LAkxNiwJezB4NTQsIDB4MDAsIDB4ZTUsIDB4NTQsIDB4MjQsIDB4MDUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MzAsIDB4ZTZ9IH0sCit7IDB4OWNlOSwJMTYsCXsweGYxLCAweGU0LCAweGZmLCAweDdkLCAweDAxLCAweDEyLCAweDgzLCAweDVhLCAweDAyLCAweDllLCAweDYzLCAweGU0LCAweGY1LCAweDUwLCAweGY1LCAweDRlfSB9LAoreyAweDljZjksCTE2LAl7MHhhZiwgMHg0ZSwgMHhlNCwgMHhmZCwgMHgxMiwgMHg4MywgMHg1YSwgMHhlNSwgMHg0ZSwgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMCwgMHhmNX0gfSwKK3sgMHg5ZDA5LAkxNiwJezB4ODIsIDB4ZTQsIDB4MzQsIDB4MjAsIDB4YWYsIDB4ODIsIDB4ZjUsIDB4NTMsIDB4OGYsIDB4NTQsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4ODIsIDB4MjQsIDB4MDR9IH0sCit7IDB4OWQxOSwJMTYsCXsweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDgzLCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZjLCAweGYwLCAweGFmLCAweDRlLCAweDdkLCAweDAxLCAweDdifSB9LAoreyAweDlkMjksCTE2LAl7MHgwMSwgMHg3NSwgMHg1YywgMHg4MCwgMHg3NSwgMHg1ZCwgMHg0MCwgMHgxMiwgMHg5OSwgMHgzNSwgMHg4ZiwgMHg1MCwgMHhlNSwgMHg1MCwgMHg3MCwgMHgxMX0gfSwKK3sgMHg5ZDM5LAkxNiwJezB4YWYsIDB4NGUsIDB4N2QsIDB4MDIsIDB4N2IsIDB4MDEsIDB4NzUsIDB4NWMsIDB4MTAsIDB4NzUsIDB4NWQsIDB4MjAsIDB4MTIsIDB4OTksIDB4MzUsIDB4OGZ9IH0sCit7IDB4OWQ0OSwJMTYsCXsweDUwLCAweGU1LCAweDUwLCAweDcwLCAweDEwLCAweGFmLCAweDRlLCAweDdkLCAweDAxLCAweGZiLCAweDc1LCAweDVjLCAweDgwLCAweDc1LCAweDVkLCAweDQwfSB9LAoreyAweDlkNTksCTE2LAl7MHgxMiwgMHg5OSwgMHgzNSwgMHg4ZiwgMHg1MCwgMHhlNSwgMHg1MCwgMHg3MCwgMHgxMCwgMHhhZiwgMHg0ZSwgMHg3ZCwgMHgwMiwgMHhmYiwgMHg3NSwgMHg1Y30gfSwKK3sgMHg5ZDY5LAkxNiwJezB4MTAsIDB4NzUsIDB4NWQsIDB4MjAsIDB4MTIsIDB4OTksIDB4MzUsIDB4OGYsIDB4NTAsIDB4YWYsIDB4NGUsIDB4N2QsIDB4MDEsIDB4MTIsIDB4ODMsIDB4NWF9IH0sCit7IDB4OWQ3OSwJMTYsCXsweGU1LCAweDUwLCAweDYwLCAweDI2LCAweGU0LCAweDkwLCAweDAzLCAweDM4LCAweGYwLCAweGU1LCAweDRlLCAweDA0LCAweGZmLCAweDA1LCAweDU4LCAweGU1fSB9LAoreyAweDlkODksCTE2LAl7MHg1OCwgMHhhYywgMHg1NywgMHg3MCwgMHgwMiwgMHgwNSwgMHg1NywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHg4NSwgMHg1OH0gfSwKK3sgMHg5ZDk5LAkxNiwJezB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4ZTUsIDB4NTAsIDB4ZjAsIDB4MDIsIDB4OWUsIDB4NjMsIDB4MDUsIDB4NGUsIDB4ZTUsIDB4NGUsIDB4ZDMsIDB4OTR9IH0sCit7IDB4OWRhOSwJMTYsCXsweDAzLCAweDUwLCAweDAzLCAweDAyLCAweDljLCAweGY5LCAweDAyLCAweDllLCAweDYzLCAweGU0LCAweDkwLCAweDAzLCAweDU5LCAweGYwLCAweGEzLCAweGYwfSB9LAoreyAweDlkYjksCTE2LAl7MHhhMywgMHhmMCwgMHhhMywgMHhmMCwgMHhhMywgMHhmMCwgMHhhMywgMHg3NCwgMHgxMCwgMHhmMCwgMHhhMywgMHg3NCwgMHg5ZSwgMHhmMCwgMHhhMywgMHg3NH0gfSwKK3sgMHg5ZGM5LAkxNiwJezB4ODUsIDB4ZjAsIDB4N2UsIDB4MDMsIDB4N2YsIDB4NTksIDB4MTIsIDB4ODEsIDB4ZDksIDB4ZWYsIDB4NjQsIDB4MDgsIDB4NzAsIDB4MDMsIDB4MDIsIDB4OWV9IH0sCit7IDB4OWRkOSwJMTYsCXsweDYzLCAweGU0LCAweDkwLCAweDAzLCAweDM4LCAweGYwLCAweDAyLCAweDllLCAweDYzLCAweGU0LCAweDkwLCAweDAzLCAweDU5LCAweGYwLCAweGEzLCAweGYwfSB9LAoreyAweDlkZTksCTE2LAl7MHhhMywgMHhmMCwgMHhhMywgMHhmMCwgMHhhMywgMHhmMCwgMHhhMywgMHg3NCwgMHgxMCwgMHhmMCwgMHhhMywgMHhlNSwgMHg1NywgMHhmMCwgMHhhMywgMHhlNX0gfSwKK3sgMHg5ZGY5LAkxNiwJezB4NTgsIDB4ZjAsIDB4N2UsIDB4MDMsIDB4N2YsIDB4NTksIDB4MTIsIDB4MTksIDB4YzEsIDB4ZWYsIDB4NjQsIDB4MDgsIDB4NjAsIDB4NWMsIDB4ZTQsIDB4OTB9IH0sCit7IDB4OWUwOSwJMTYsCXsweDAzLCAweDM4LCAweGYwLCAweDgwLCAweDU1LCAweGU1LCAweDU2LCAweDI0LCAweDAyLCAweGZmLCAweGU0LCAweDM1LCAweDU1LCAweGZhLCAweGE5LCAweDA3fSB9LAoreyAweDllMTksCTE2LAl7MHg3YiwgMHgwMSwgMHg3ZCwgMHgxMCwgMHgxMiwgMHg5OCwgMHg5OCwgMHhlZiwgMHg0ZSwgMHg3MCwgMHgzMiwgMHg5MCwgMHgwMywgMHg1OSwgMHhmMCwgMHhhM30gfSwKK3sgMHg5ZTI5LAkxNiwJezB4ZjAsIDB4YTMsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4ZTUsIDB4NTYsIDB4MjQsIDB4MDIsIDB4OTB9IH0sCit7IDB4OWUzOSwJMTYsCXsweDAzLCAweDYwLCAweGYwLCAweGU0LCAweDM1LCAweDU1LCAweDkwLCAweDAzLCAweDVmLCAweGYwLCAweDdlLCAweDAzLCAweDdmLCAweDU5LCAweDEyLCAweDgxfSB9LAoreyAweDllNDksCTE2LAl7MHhkOSwgMHhlZiwgMHg2NCwgMHgwOCwgMHg2MCwgMHgxNCwgMHhlNCwgMHg5MCwgMHgwMywgMHgzOCwgMHhmMCwgMHg4MCwgMHgwZCwgMHhlNCwgMHg5MCwgMHgwM30gfSwKK3sgMHg5ZTU5LAkxNiwJezB4MzgsIDB4ZjAsIDB4ODAsIDB4MDYsIDB4OTAsIDB4MDMsIDB4MzgsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4YzAsIDB4ZTQsIDB4ZjAsIDB4YTN9IH0sCit7IDB4OWU2OSwJMTYsCXsweDc0LCAweDBhLCAweGYwLCAweDkwLCAweDAxLCAweGMwLCAweGUwLCAweDcwLCAweDAyLCAweGEzLCAweGUwLCAweDcwLCAweGY2LCAweDdlLCAweDAzLCAweDdmfSB9LAoreyAweDllNzksCTExLAl7MHgzNSwgMHg3ZCwgMHgyNCwgMHgxMiwgMHg5MSwgMHg2YSwgMHhlNCwgMHg5MCwgMHgwMiwgMHhhZiwgMHhmMH0gfSwKK3sgMHg5ZTg0LAkxLAl7MHgyMn0gfSwKK3sgMHg5ZTg1LAkxNiwJezB4ZmYsIDB4ZmUsIDB4ZmMsIDB4ZjgsIDB4ZjAsIDB4ZTAsIDB4YzAsIDB4ODAsIDB4MDAsIDB4MDEsIDB4MDMsIDB4MDcsIDB4MGYsIDB4MWYsIDB4M2YsIDB4N2Z9IH0sCit7IDB4OWU5NSwJMTYsCXsweDAwLCAweDAwLCAweGMwLCAweGMxLCAweGMxLCAweDgxLCAweDAxLCAweDQwLCAweGMzLCAweDAxLCAweDAzLCAweGMwLCAweDAyLCAweDgwLCAweGMyLCAweDQxfSB9LAoreyAweDllYTUsCTE2LAl7MHhjNiwgMHgwMSwgMHgwNiwgMHhjMCwgMHgwNywgMHg4MCwgMHhjNywgMHg0MSwgMHgwNSwgMHgwMCwgMHhjNSwgMHhjMSwgMHhjNCwgMHg4MSwgMHgwNCwgMHg0MH0gfSwKK3sgMHg5ZWI1LAkxNiwJezB4Y2MsIDB4MDEsIDB4MGMsIDB4YzAsIDB4MGQsIDB4ODAsIDB4Y2QsIDB4NDEsIDB4MGYsIDB4MDAsIDB4Y2YsIDB4YzEsIDB4Y2UsIDB4ODEsIDB4MGUsIDB4NDB9IH0sCit7IDB4OWVjNSwJMTYsCXsweDBhLCAweDAwLCAweGNhLCAweGMxLCAweGNiLCAweDgxLCAweDBiLCAweDQwLCAweGM5LCAweDAxLCAweDA5LCAweGMwLCAweDA4LCAweDgwLCAweGM4LCAweDQxfSB9LAoreyAweDllZDUsCTE2LAl7MHhkOCwgMHgwMSwgMHgxOCwgMHhjMCwgMHgxOSwgMHg4MCwgMHhkOSwgMHg0MSwgMHgxYiwgMHgwMCwgMHhkYiwgMHhjMSwgMHhkYSwgMHg4MSwgMHgxYSwgMHg0MH0gfSwKK3sgMHg5ZWU1LAkxNiwJezB4MWUsIDB4MDAsIDB4ZGUsIDB4YzEsIDB4ZGYsIDB4ODEsIDB4MWYsIDB4NDAsIDB4ZGQsIDB4MDEsIDB4MWQsIDB4YzAsIDB4MWMsIDB4ODAsIDB4ZGMsIDB4NDF9IH0sCit7IDB4OWVmNSwJMTYsCXsweDE0LCAweDAwLCAweGQ0LCAweGMxLCAweGQ1LCAweDgxLCAweDE1LCAweDQwLCAweGQ3LCAweDAxLCAweDE3LCAweGMwLCAweDE2LCAweDgwLCAweGQ2LCAweDQxfSB9LAoreyAweDlmMDUsCTE2LAl7MHhkMiwgMHgwMSwgMHgxMiwgMHhjMCwgMHgxMywgMHg4MCwgMHhkMywgMHg0MSwgMHgxMSwgMHgwMCwgMHhkMSwgMHhjMSwgMHhkMCwgMHg4MSwgMHgxMCwgMHg0MH0gfSwKK3sgMHg5ZjE1LAkxNiwJezB4ZjAsIDB4MDEsIDB4MzAsIDB4YzAsIDB4MzEsIDB4ODAsIDB4ZjEsIDB4NDEsIDB4MzMsIDB4MDAsIDB4ZjMsIDB4YzEsIDB4ZjIsIDB4ODEsIDB4MzIsIDB4NDB9IH0sCit7IDB4OWYyNSwJMTYsCXsweDM2LCAweDAwLCAweGY2LCAweGMxLCAweGY3LCAweDgxLCAweDM3LCAweDQwLCAweGY1LCAweDAxLCAweDM1LCAweGMwLCAweDM0LCAweDgwLCAweGY0LCAweDQxfSB9LAoreyAweDlmMzUsCTE2LAl7MHgzYywgMHgwMCwgMHhmYywgMHhjMSwgMHhmZCwgMHg4MSwgMHgzZCwgMHg0MCwgMHhmZiwgMHgwMSwgMHgzZiwgMHhjMCwgMHgzZSwgMHg4MCwgMHhmZSwgMHg0MX0gfSwKK3sgMHg5ZjQ1LAkxNiwJezB4ZmEsIDB4MDEsIDB4M2EsIDB4YzAsIDB4M2IsIDB4ODAsIDB4ZmIsIDB4NDEsIDB4MzksIDB4MDAsIDB4ZjksIDB4YzEsIDB4ZjgsIDB4ODEsIDB4MzgsIDB4NDB9IH0sCit7IDB4OWY1NSwJMTYsCXsweDI4LCAweDAwLCAweGU4LCAweGMxLCAweGU5LCAweDgxLCAweDI5LCAweDQwLCAweGViLCAweDAxLCAweDJiLCAweGMwLCAweDJhLCAweDgwLCAweGVhLCAweDQxfSB9LAoreyAweDlmNjUsCTE2LAl7MHhlZSwgMHgwMSwgMHgyZSwgMHhjMCwgMHgyZiwgMHg4MCwgMHhlZiwgMHg0MSwgMHgyZCwgMHgwMCwgMHhlZCwgMHhjMSwgMHhlYywgMHg4MSwgMHgyYywgMHg0MH0gfSwKK3sgMHg5Zjc1LAkxNiwJezB4ZTQsIDB4MDEsIDB4MjQsIDB4YzAsIDB4MjUsIDB4ODAsIDB4ZTUsIDB4NDEsIDB4MjcsIDB4MDAsIDB4ZTcsIDB4YzEsIDB4ZTYsIDB4ODEsIDB4MjYsIDB4NDB9IH0sCit7IDB4OWY4NSwJMTYsCXsweDIyLCAweDAwLCAweGUyLCAweGMxLCAweGUzLCAweDgxLCAweDIzLCAweDQwLCAweGUxLCAweDAxLCAweDIxLCAweGMwLCAweDIwLCAweDgwLCAweGUwLCAweDQxfSB9LAoreyAweDlmOTUsCTE2LAl7MHhhMCwgMHgwMSwgMHg2MCwgMHhjMCwgMHg2MSwgMHg4MCwgMHhhMSwgMHg0MSwgMHg2MywgMHgwMCwgMHhhMywgMHhjMSwgMHhhMiwgMHg4MSwgMHg2MiwgMHg0MH0gfSwKK3sgMHg5ZmE1LAkxNiwJezB4NjYsIDB4MDAsIDB4YTYsIDB4YzEsIDB4YTcsIDB4ODEsIDB4NjcsIDB4NDAsIDB4YTUsIDB4MDEsIDB4NjUsIDB4YzAsIDB4NjQsIDB4ODAsIDB4YTQsIDB4NDF9IH0sCit7IDB4OWZiNSwJMTYsCXsweDZjLCAweDAwLCAweGFjLCAweGMxLCAweGFkLCAweDgxLCAweDZkLCAweDQwLCAweGFmLCAweDAxLCAweDZmLCAweGMwLCAweDZlLCAweDgwLCAweGFlLCAweDQxfSB9LAoreyAweDlmYzUsCTE2LAl7MHhhYSwgMHgwMSwgMHg2YSwgMHhjMCwgMHg2YiwgMHg4MCwgMHhhYiwgMHg0MSwgMHg2OSwgMHgwMCwgMHhhOSwgMHhjMSwgMHhhOCwgMHg4MSwgMHg2OCwgMHg0MH0gfSwKK3sgMHg5ZmQ1LAkxNiwJezB4NzgsIDB4MDAsIDB4YjgsIDB4YzEsIDB4YjksIDB4ODEsIDB4NzksIDB4NDAsIDB4YmIsIDB4MDEsIDB4N2IsIDB4YzAsIDB4N2EsIDB4ODAsIDB4YmEsIDB4NDF9IH0sCit7IDB4OWZlNSwJMTYsCXsweGJlLCAweDAxLCAweDdlLCAweGMwLCAweDdmLCAweDgwLCAweGJmLCAweDQxLCAweDdkLCAweDAwLCAweGJkLCAweGMxLCAweGJjLCAweDgxLCAweDdjLCAweDQwfSB9LAoreyAweDlmZjUsCTE2LAl7MHhiNCwgMHgwMSwgMHg3NCwgMHhjMCwgMHg3NSwgMHg4MCwgMHhiNSwgMHg0MSwgMHg3NywgMHgwMCwgMHhiNywgMHhjMSwgMHhiNiwgMHg4MSwgMHg3NiwgMHg0MH0gfSwKK3sgMHhhMDA1LAkxNiwJezB4NzIsIDB4MDAsIDB4YjIsIDB4YzEsIDB4YjMsIDB4ODEsIDB4NzMsIDB4NDAsIDB4YjEsIDB4MDEsIDB4NzEsIDB4YzAsIDB4NzAsIDB4ODAsIDB4YjAsIDB4NDF9IH0sCit7IDB4YTAxNSwJMTYsCXsweDUwLCAweDAwLCAweDkwLCAweGMxLCAweDkxLCAweDgxLCAweDUxLCAweDQwLCAweDkzLCAweDAxLCAweDUzLCAweGMwLCAweDUyLCAweDgwLCAweDkyLCAweDQxfSB9LAoreyAweGEwMjUsCTE2LAl7MHg5NiwgMHgwMSwgMHg1NiwgMHhjMCwgMHg1NywgMHg4MCwgMHg5NywgMHg0MSwgMHg1NSwgMHgwMCwgMHg5NSwgMHhjMSwgMHg5NCwgMHg4MSwgMHg1NCwgMHg0MH0gfSwKK3sgMHhhMDM1LAkxNiwJezB4OWMsIDB4MDEsIDB4NWMsIDB4YzAsIDB4NWQsIDB4ODAsIDB4OWQsIDB4NDEsIDB4NWYsIDB4MDAsIDB4OWYsIDB4YzEsIDB4OWUsIDB4ODEsIDB4NWUsIDB4NDB9IH0sCit7IDB4YTA0NSwJMTYsCXsweDVhLCAweDAwLCAweDlhLCAweGMxLCAweDliLCAweDgxLCAweDViLCAweDQwLCAweDk5LCAweDAxLCAweDU5LCAweGMwLCAweDU4LCAweDgwLCAweDk4LCAweDQxfSB9LAoreyAweGEwNTUsCTE2LAl7MHg4OCwgMHgwMSwgMHg0OCwgMHhjMCwgMHg0OSwgMHg4MCwgMHg4OSwgMHg0MSwgMHg0YiwgMHgwMCwgMHg4YiwgMHhjMSwgMHg4YSwgMHg4MSwgMHg0YSwgMHg0MH0gfSwKK3sgMHhhMDY1LAkxNiwJezB4NGUsIDB4MDAsIDB4OGUsIDB4YzEsIDB4OGYsIDB4ODEsIDB4NGYsIDB4NDAsIDB4OGQsIDB4MDEsIDB4NGQsIDB4YzAsIDB4NGMsIDB4ODAsIDB4OGMsIDB4NDF9IH0sCit7IDB4YTA3NSwJMTYsCXsweDQ0LCAweDAwLCAweDg0LCAweGMxLCAweDg1LCAweDgxLCAweDQ1LCAweDQwLCAweDg3LCAweDAxLCAweDQ3LCAweGMwLCAweDQ2LCAweDgwLCAweDg2LCAweDQxfSB9LAoreyAweGEwODUsCTE2LAl7MHg4MiwgMHgwMSwgMHg0MiwgMHhjMCwgMHg0MywgMHg4MCwgMHg4MywgMHg0MSwgMHg0MSwgMHgwMCwgMHg4MSwgMHhjMSwgMHg4MCwgMHg4MSwgMHg0MCwgMHg0MH0gfSwKK3sgMHhhMDk1LAkxNiwJezB4ZTQsIDB4ZmYsIDB4NzQsIDB4ZjgsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDIsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NzAsIDB4MDMsIDB4MDJ9IH0sCit7IDB4YTBhNSwJMTYsCXsweGExLCAweDM4LCAweDc0LCAweDNhLCAweDJmLCAweGY4LCAweGU2LCAweDIwLCAweGU1LCAweDAzLCAweDAyLCAweGExLCAweDM4LCAweGVmLCAweDc1LCAweGYwfSB9LAoreyAweGEwYjUsCTE2LAl7MHgwOCwgMHhhNCwgMHgyNCwgMHgwMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgyMCwgMHhhZCwgMHg4MiwgMHhmYywgMHhmNSwgMHg4MywgMHhlNSwgMHg4Mn0gfSwKK3sgMHhhMGM1LAkxNiwJezB4MjQsIDB4MDUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4ODMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4NjAsIDB4NjQsIDB4NjAsIDB4NzAsIDB4NjN9IH0sCit7IDB4YTBkNSwJMTYsCXsweGVmLCAweDI1LCAweGUwLCAweDI0LCAweGVmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAyLCAweGY1LCAweDgzLCAweGU0LCAweDc1LCAweGYwLCAweDAxfSB9LAoreyAweGEwZTUsCTE2LAl7MHgxMiwgMHhhMiwgMHg5NywgMHg4NSwgMHhmMCwgMHg4MiwgMHhmNSwgMHg4MywgMHhlMCwgMHg4ZCwgMHg4MiwgMHg4YywgMHg4MywgMHhmMCwgMHg3NCwgMHhmOH0gfSwKK3sgMHhhMGY1LAkxNiwJezB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDIsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4ZjAsIDB4NzAsIDB4MzYsIDB4ZWYsIDB4MjUsIDB4ZTB9IH0sCit7IDB4YTEwNSwJMTYsCXsweDI0LCAweGM3LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweGVmLCAweDI1LCAweGUwLCAweGZlLCAweGMzfSB9LAoreyAweGExMTUsCTE2LAl7MHg3NCwgMHgwYywgMHg5ZSwgMHg3NSwgMHhmMCwgMHg0MCwgMHhhNCwgMHgyNCwgMHg0MCwgMHhmNSwgMHg4MiwgMHhlNSwgMHhmMCwgMHgzNCwgMHg3YiwgMHhhZH0gfSwKK3sgMHhhMTI1LAkxNiwJezB4ODIsIDB4ZmMsIDB4ZWYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4ZWYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDIsIDB4ZjUsIDB4ODMsIDB4ZWMsIDB4ZjB9IH0sCit7IDB4YTEzNSwJMTIsCXsweGEzLCAweGVkLCAweGYwLCAweDBmLCAweGVmLCAweDY0LCAweDA0LCAweDYwLCAweDAzLCAweDAyLCAweGEwLCAweDk3fSB9LAoreyAweGExNDEsCTEsCXsweDIyfSB9LAoreyAweGExNDIsCTE2LAl7MHhlNywgMHgwOSwgMHhmNiwgMHgwOCwgMHhkZiwgMHhmYSwgMHg4MCwgMHg0NiwgMHhlNywgMHgwOSwgMHhmMiwgMHgwOCwgMHhkZiwgMHhmYSwgMHg4MCwgMHgzZX0gfSwKK3sgMHhhMTUyLAkxNiwJezB4ODgsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZTcsIDB4MDksIDB4ZjAsIDB4YTMsIDB4ZGYsIDB4ZmEsIDB4ODAsIDB4MzIsIDB4ZTMsIDB4MDksIDB4ZjYsIDB4MDh9IH0sCit7IDB4YTE2MiwJMTYsCXsweGRmLCAweGZhLCAweDgwLCAweDc4LCAweGUzLCAweDA5LCAweGYyLCAweDA4LCAweGRmLCAweGZhLCAweDgwLCAweDcwLCAweDg4LCAweDgyLCAweDhjLCAweDgzfSB9LAoreyAweGExNzIsCTE2LAl7MHhlMywgMHgwOSwgMHhmMCwgMHhhMywgMHhkZiwgMHhmYSwgMHg4MCwgMHg2NCwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHhhMywgMHhmNiwgMHgwOH0gfSwKK3sgMHhhMTgyLAkxNiwJezB4ZGYsIDB4ZmEsIDB4ODAsIDB4NTgsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4YTMsIDB4ZjIsIDB4MDgsIDB4ZGYsIDB4ZmEsIDB4ODAsIDB4NGN9IH0sCit7IDB4YTE5MiwJMTYsCXsweDgwLCAweGQyLCAweDgwLCAweGZhLCAweDgwLCAweGM2LCAweDgwLCAweGQ0LCAweDgwLCAweDY5LCAweDgwLCAweGYyLCAweDgwLCAweDMzLCAweDgwLCAweDEwfSB9LAoreyAweGExYTIsCTE2LAl7MHg4MCwgMHhhNiwgMHg4MCwgMHhlYSwgMHg4MCwgMHg5YSwgMHg4MCwgMHhhOCwgMHg4MCwgMHhkYSwgMHg4MCwgMHhlMiwgMHg4MCwgMHhjYSwgMHg4MCwgMHgzM30gfSwKK3sgMHhhMWIyLAkxNiwJezB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZWMsIDB4ZmEsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2MsIDB4YzUsIDB4ODN9IH0sCit7IDB4YTFjMiwJMTYsCXsweGNjLCAweGYwLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNjLCAweGM1LCAweDgzLCAweGNjLCAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwfSB9LAoreyAweGExZDIsCTE2LAl7MHgwZCwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHhhMywgMHhmNiwgMHgwOCwgMHhkZiwgMHhmOSwgMHhlYywgMHhmYSwgMHhhOSwgMHhmMH0gfSwKK3sgMHhhMWUyLAkxNiwJezB4ZWQsIDB4ZmIsIDB4MjIsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZWMsIDB4ZmEsIDB4ZTAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2N9IH0sCit7IDB4YTFmMiwJMTYsCXsweGM1LCAweDgzLCAweGNjLCAweGYwLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNjLCAweGM1LCAweDgzLCAweGNjLCAweGRmLCAweGVhLCAweGRlfSB9LAoreyAweGEyMDIsCTE2LAl7MHhlOCwgMHg4MCwgMHhkYiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHhhMywgMHhmMiwgMHgwOCwgMHhkZiwgMHhmOSwgMHg4MCwgMHhjY30gfSwKK3sgMHhhMjEyLAkxNiwJezB4ODgsIDB4ZjAsIDB4ZWQsIDB4MjQsIDB4MDIsIDB4YjQsIDB4MDQsIDB4MDAsIDB4NTAsIDB4YzIsIDB4ZjUsIDB4ODIsIDB4ZWIsIDB4MjQsIDB4MDIsIDB4YjR9IH0sCit7IDB4YTIyMiwJMTYsCXsweDA0LCAweDAwLCAweDUwLCAweGI4LCAweDIzLCAweDIzLCAweDQ1LCAweDgyLCAweGY1LCAweDgyLCAweGVmLCAweDRlLCAweDYwLCAweGFlLCAweGVmLCAweDYwfSB9LAoreyAweGEyMzIsCTksCXsweDAxLCAweDBlLCAweGU1LCAweDgyLCAweDIzLCAweDkwLCAweGExLCAweDkyLCAweDczfSB9LAoreyAweGEyM2IsCTE2LAl7MHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhlNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMn0gfSwKK3sgMHhhMjRiLAk5LAl7MHhlMywgMHgyMiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMn0gfSwKK3sgMHhhMjU0LAkxNiwJezB4YmIsIDB4MDEsIDB4MGMsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTB9IH0sCit7IDB4YTI2NCwJMTYsCXsweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGU2LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyfSB9LAoreyAweGEyNzQsCTEzLAl7MHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMn0gfSwKK3sgMHhhMjgxLAkxNiwJezB4YzUsIDB4ZjAsIDB4ZjgsIDB4YTMsIDB4ZTAsIDB4MjgsIDB4ZjAsIDB4YzUsIDB4ZjAsIDB4ZjgsIDB4ZTUsIDB4ODIsIDB4MTUsIDB4ODIsIDB4NzAsIDB4MDJ9IH0sCit7IDB4YTI5MSwJNiwJezB4MTUsIDB4ODMsIDB4ZTAsIDB4MzgsIDB4ZjAsIDB4MjJ9IH0sCit7IDB4YTI5NywJMTYsCXsweGEzLCAweGY4LCAweGUwLCAweGM1LCAweGYwLCAweDI1LCAweGYwLCAweGYwLCAweGU1LCAweDgyLCAweDE1LCAweDgyLCAweDcwLCAweDAyLCAweDE1LCAweDgzfSB9LAoreyAweGEyYTcsCTYsCXsweGUwLCAweGM4LCAweDM4LCAweGYwLCAweGU4LCAweDIyfSB9LAoreyAweGEyYWQsCTE2LAl7MHhiYiwgMHgwMSwgMHgxMCwgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHhmMH0gfSwKK3sgMHhhMmJkLAkxNiwJezB4YTMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDksIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ODYsIDB4ZjAsIDB4MDgsIDB4ZTYsIDB4MjIsIDB4YmIsIDB4ZmV9IH0sCit7IDB4YTJjZCwJMTYsCXsweDBhLCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweGY1LCAweGYwLCAweDA4LCAweGUyLCAweDIyLCAweGU1LCAweDgzLCAweDJhLCAweGY1LCAweDgzfSB9LAoreyAweGEyZGQsCTgsCXsweGU5LCAweDkzLCAweGY1LCAweGYwLCAweGEzLCAweGU5LCAweDkzLCAweDIyfSB9LAoreyAweGEyZTUsCTE2LAl7MHg3NSwgMHhmMCwgMHgwOCwgMHg3NSwgMHg4MiwgMHgwMCwgMHhlZiwgMHgyZiwgMHhmZiwgMHhlZSwgMHgzMywgMHhmZSwgMHhjZCwgMHgzMywgMHhjZCwgMHhjY30gfSwKK3sgMHhhMmY1LAkxNiwJezB4MzMsIDB4Y2MsIDB4YzUsIDB4ODIsIDB4MzMsIDB4YzUsIDB4ODIsIDB4OWIsIDB4ZWQsIDB4OWEsIDB4ZWMsIDB4OTksIDB4ZTUsIDB4ODIsIDB4OTgsIDB4NDB9IH0sCit7IDB4YTMwNSwJMTYsCXsweDBjLCAweGY1LCAweDgyLCAweGVlLCAweDliLCAweGZlLCAweGVkLCAweDlhLCAweGZkLCAweGVjLCAweDk5LCAweGZjLCAweDBmLCAweGQ1LCAweGYwLCAweGQ2fSB9LAoreyAweGEzMTUsCTE2LAl7MHhlNCwgMHhjZSwgMHhmYiwgMHhlNCwgMHhjZCwgMHhmYSwgMHhlNCwgMHhjYywgMHhmOSwgMHhhOCwgMHg4MiwgMHgyMiwgMHhiOCwgMHgwMCwgMHhjMSwgMHhiOX0gfSwKK3sgMHhhMzI1LAkxNiwJezB4MDAsIDB4NTksIDB4YmEsIDB4MDAsIDB4MmQsIDB4ZWMsIDB4OGIsIDB4ZjAsIDB4ODQsIDB4Y2YsIDB4Y2UsIDB4Y2QsIDB4ZmMsIDB4ZTUsIDB4ZjAsIDB4Y2J9IH0sCit7IDB4YTMzNSwJMTYsCXsweGY5LCAweDc4LCAweDE4LCAweGVmLCAweDJmLCAweGZmLCAweGVlLCAweDMzLCAweGZlLCAweGVkLCAweDMzLCAweGZkLCAweGVjLCAweDMzLCAweGZjLCAweGVifSB9LAoreyAweGEzNDUsCTE2LAl7MHgzMywgMHhmYiwgMHgxMCwgMHhkNywgMHgwMywgMHg5OSwgMHg0MCwgMHgwNCwgMHhlYiwgMHg5OSwgMHhmYiwgMHgwZiwgMHhkOCwgMHhlNSwgMHhlNCwgMHhmOX0gfSwKK3sgMHhhMzU1LAkxNiwJezB4ZmEsIDB4MjIsIDB4NzgsIDB4MTgsIDB4ZWYsIDB4MmYsIDB4ZmYsIDB4ZWUsIDB4MzMsIDB4ZmUsIDB4ZWQsIDB4MzMsIDB4ZmQsIDB4ZWMsIDB4MzMsIDB4ZmN9IH0sCit7IDB4YTM2NSwJMTYsCXsweGM5LCAweDMzLCAweGM5LCAweDEwLCAweGQ3LCAweDA1LCAweDliLCAweGU5LCAweDlhLCAweDQwLCAweDA3LCAweGVjLCAweDliLCAweGZjLCAweGU5LCAweDlhfSB9LAoreyAweGEzNzUsCTE2LAl7MHhmOSwgMHgwZiwgMHhkOCwgMHhlMCwgMHhlNCwgMHhjOSwgMHhmYSwgMHhlNCwgMHhjYywgMHhmYiwgMHgyMiwgMHg3NSwgMHhmMCwgMHgxMCwgMHhlZiwgMHgyZn0gfSwKK3sgMHhhMzg1LAkxNiwJezB4ZmYsIDB4ZWUsIDB4MzMsIDB4ZmUsIDB4ZWQsIDB4MzMsIDB4ZmQsIDB4Y2MsIDB4MzMsIDB4Y2MsIDB4YzgsIDB4MzMsIDB4YzgsIDB4MTAsIDB4ZDcsIDB4MDd9IH0sCit7IDB4YTM5NSwJMTYsCXsweDliLCAweGVjLCAweDlhLCAweGU4LCAweDk5LCAweDQwLCAweDBhLCAweGVkLCAweDliLCAweGZkLCAweGVjLCAweDlhLCAweGZjLCAweGU4LCAweDk5LCAweGY4fSB9LAoreyAweGEzYTUsCTE0LAl7MHgwZiwgMHhkNSwgMHhmMCwgMHhkYSwgMHhlNCwgMHhjZCwgMHhmYiwgMHhlNCwgMHhjYywgMHhmYSwgMHhlNCwgMHhjOCwgMHhmOSwgMHgyMn0gfSwKK3sgMHhhM2IzLAkxNiwJezB4ZWIsIDB4OWYsIDB4ZjUsIDB4ZjAsIDB4ZWEsIDB4OWUsIDB4NDIsIDB4ZjAsIDB4ZTksIDB4OWQsIDB4NDIsIDB4ZjAsIDB4ZTgsIDB4OWMsIDB4NDUsIDB4ZjB9IH0sCit7IDB4YTNjMywJMSwJezB4MjJ9IH0sCit7IDB4YTNjNCwJMTYsCXsweGU4LCAweDYwLCAweDBmLCAweGVjLCAweGMzLCAweDEzLCAweGZjLCAweGVkLCAweDEzLCAweGZkLCAweGVlLCAweDEzLCAweGZlLCAweGVmLCAweDEzLCAweGZmfSB9LAoreyAweGEzZDQsCTMsCXsweGQ4LCAweGYxLCAweDIyfSB9LAoreyAweGEzZDcsCTE2LAl7MHgwOCwgMHgwOCwgMHgwOCwgMHhlNiwgMHhjZiwgMHgyZiwgMHhmNiwgMHgxOCwgMHhlNiwgMHhjZSwgMHgzZSwgMHhmNiwgMHgxOCwgMHhlNiwgMHhjZCwgMHgzZH0gfSwKK3sgMHhhM2U3LAk3LAl7MHhmNiwgMHgxOCwgMHhlNiwgMHhjYywgMHgzYywgMHhmNiwgMHgyMn0gfSwKK3sgMHhhM2VlLAkxMiwJezB4ZWMsIDB4ZjAsIDB4YTMsIDB4ZWQsIDB4ZjAsIDB4YTMsIDB4ZWUsIDB4ZjAsIDB4YTMsIDB4ZWYsIDB4ZjAsIDB4MjJ9IH0sCit7IDB4YTNmYSwJMTYsCXsweGE4LCAweDgyLCAweDg1LCAweDgzLCAweGYwLCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweDEyLCAweGE0LCAweDExLCAweDEyLCAweGE0LCAweDExLCAweDEyfSB9LAoreyAweGE0MGEsCTE2LAl7MHhhNCwgMHgxMSwgMHgxMiwgMHhhNCwgMHgxMSwgMHhlNCwgMHg3MywgMHhlNCwgMHg5MywgMHhhMywgMHhjNSwgMHg4MywgMHhjNSwgMHhmMCwgMHhjNSwgMHg4M30gfSwKK3sgMHhhNDFhLAkxNiwJezB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4ZjAsIDB4YTMsIDB4YzUsIDB4ODMsIDB4YzUsIDB4ZjAsIDB4YzUsIDB4ODMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4Yzh9IH0sCit7IDB4YTQyYSwJMSwJezB4MjJ9IH0sCit7IDB4ZmZmZiwJMCwJezB4MDB9IH0KK307CisKKyNpZmRlZiBERUJVRworc3RhdGljIGNvbnN0IHN0cnVjdCB3aGl0ZWhlYXRfaGV4X3JlY29yZCB3aGl0ZWhlYXRfbG9hZGVyW10gPSB7Cit7IDB4MDAwMCwJMywJezB4MDIsIDB4MDksIDB4OGR9IH0sCit7IDB4MDAzMywJMywJezB4MDIsIDB4MGUsIDB4NzB9IH0sCit7IDB4MDA0MywJMywJezB4MDIsIDB4MGIsIDB4MDB9IH0sCit7IDB4MDA0YiwJMywJezB4MDIsIDB4MDUsIDB4YjN9IH0sCit7IDB4MDEwMCwJMTYsCXsweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDU0LCAweDEwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDUwLCAweGY1LCAweDBmLCAweDEzLCAweGU0fSB9LAoreyAweDAxMTAsCTE2LAl7MHgzMywgMHhmNSwgMHgxMSwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHgyNCwgMHg1ZSwgMHhiNCwgMHgwNywgMHgwMCwgMHg0MCwgMHgwMywgMHgwMiwgMHgwM30gfSwKK3sgMHgwMTIwLAkxNiwJezB4N2MsIDB4OTAsIDB4MDEsIDB4MjgsIDB4ZjgsIDB4MjgsIDB4MjgsIDB4NzMsIDB4MDIsIDB4MDEsIDB4YmMsIDB4MDIsIDB4MDEsIDB4YmMsIDB4MDIsIDB4MDF9IH0sCit7IDB4MDEzMCwJMTYsCXsweDkxLCAweDAyLCAweDAxLCAweDNkLCAweDAyLCAweDAxLCAweDUzLCAweDAyLCAweDAxLCAweDZmLCAweDAyLCAweDAxLCAweDlhLCAweDkwLCAweDdmLCAweDAwfSB9LAoreyAweDAxNDAsCTE2LAl7MHhlNSwgMHgxMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMH0gfSwKK3sgMHgwMTUwLAkxNiwJezB4MDIsIDB4MDMsIDB4N2MsIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4OTB9IH0sCit7IDB4MDE2MCwJMTYsCXsweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDAyLCAweDAzLCAweDdjLCAweDEyfSB9LAoreyAweDAxNzAsCTE2LAl7MHgwYSwgMHg4OSwgMHg1MCwgMHgwNywgMHhlNCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHg4MCwgMHgwNiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHg3NCwgMHgwZn0gfSwKK3sgMHgwMTgwLAkxNiwJezB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDN9IH0sCit7IDB4MDE5MCwJMTYsCXsweDdjLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDBmLCAweDAyLCAweDAzLCAweDdjLCAweDkwLCAweDdmLCAweDAwLCAweDc0LCAweDA3LCAweGYwfSB9LAoreyAweDAxYTAsCTE2LAl7MHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg3ZiwgMHhlOCwgMHg3ZX0gfSwKK3sgMHgwMWIwLAkxNiwJezB4MDMsIDB4MTIsIDB4MGQsIDB4ZDUsIDB4ZDIsIDB4MDYsIDB4MTIsIDB4MGQsIDB4MGQsIDB4MDIsIDB4MDMsIDB4N2MsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTB9IH0sCit7IDB4MDFjMCwJMTYsCXsweDc1LCAweDI5LCAweDAwLCAweGY1LCAweDJhLCAweGEzLCAweGUwLCAweGZlLCAweGU0LCAweGVlLCAweDQyLCAweDI5LCAweDkwLCAweDdmLCAweGVlLCAweGUwfSB9LAoreyAweDAxZDAsCTE2LAl7MHg3NSwgMHgyYiwgMHgwMCwgMHhmNSwgMHgyYywgMHhhMywgMHhlMCwgMHhmZSwgMHhlNCwgMHhlZSwgMHg0MiwgMHgyYiwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMH0gfSwKK3sgMHgwMWUwLAkxNiwJezB4NjQsIDB4YzAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDIsIDB4YzksIDB4ZTUsIDB4MmMsIDB4NDUsIDB4MmIsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDMsIDB4N2N9IH0sCit7IDB4MDFmMCwJMTYsCXsweGMzLCAweGU1LCAweDJjLCAweDk0LCAweDQwLCAweGU1LCAweDJiLCAweDk0LCAweDAwLCAweDUwLCAweDA4LCAweDg1LCAweDJiLCAweDJkLCAweDg1LCAweDJjfSB9LAoreyAweDAyMDAsCTE2LAl7MHgyZSwgMHg4MCwgMHgwNiwgMHg3NSwgMHgyZCwgMHgwMCwgMHg3NSwgMHgyZSwgMHg0MCwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHg2NCwgMHhhMywgMHg3MH0gfSwKK3sgMHgwMjEwLAkxNiwJezB4MzQsIDB4ZjUsIDB4MzEsIDB4ZjUsIDB4MzIsIDB4YzMsIDB4ZTUsIDB4MzIsIDB4OTUsIDB4MmUsIDB4ZTUsIDB4MzEsIDB4OTUsIDB4MmQsIDB4NTAsIDB4NWN9IH0sCit7IDB4MDIyMCwJMTYsCXsweGU1LCAweDJhLCAweDI1LCAweDMyLCAweGY1LCAweDgyLCAweGU1LCAweDMxLCAweDM1LCAweDI5LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDc0LCAweDAwfSB9LAoreyAweDAyMzAsCTE2LAl7MHgyNSwgMHgzMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgzMiwgMHhlNSwgMHgzMiwgMHg3MH0gfSwKK3sgMHgwMjQwLAkxNiwJezB4MDIsIDB4MDUsIDB4MzEsIDB4ODAsIDB4ZDAsIDB4ZTQsIDB4ZjUsIDB4MzEsIDB4ZjUsIDB4MzIsIDB4YzMsIDB4ZTUsIDB4MzIsIDB4OTUsIDB4MmUsIDB4ZTV9IH0sCit7IDB4MDI1MCwJMTYsCXsweDMxLCAweDk1LCAweDJkLCAweDUwLCAweDE4LCAweDc0LCAweDAwLCAweDI1LCAweDMyLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzfSB9LAoreyAweDAyNjAsCTE2LAl7MHg3NCwgMHhjZCwgMHhmMCwgMHgwNSwgMHgzMiwgMHhlNSwgMHgzMiwgMHg3MCwgMHgwMiwgMHgwNSwgMHgzMSwgMHg4MCwgMHhkZCwgMHhhZiwgMHgyYSwgMHhhZX0gfSwKK3sgMHgwMjcwLAkxNiwJezB4MjksIDB4YWQsIDB4MmUsIDB4N2EsIDB4N2YsIDB4NzksIDB4MDAsIDB4N2IsIDB4MDAsIDB4MTIsIDB4MGIsIDB4ZjQsIDB4OTAsIDB4N2YsIDB4YjUsIDB4ZTV9IH0sCit7IDB4MDI4MCwJMTYsCXsweDJlLCAweGYwLCAweGU1LCAweDJlLCAweDI1LCAweDJhLCAweGY1LCAweDJhLCAweGU1LCAweDJkLCAweDM1LCAweDI5LCAweGY1LCAweDI5LCAweGMzLCAweGU1fSB9LAoreyAweDAyOTAsCTE2LAl7MHgyYywgMHg5NSwgMHgyZSwgMHhmNSwgMHgyYywgMHhlNSwgMHgyYiwgMHg5NSwgMHgyZCwgMHhmNSwgMHgyYiwgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHhmZn0gfSwKK3sgMHgwMmEwLAkxNiwJezB4YzQsIDB4NTQsIDB4MGYsIDB4NzUsIDB4MmYsIDB4MDAsIDB4ZjUsIDB4MzAsIDB4ZDMsIDB4OTQsIDB4MDAsIDB4ZTUsIDB4MmYsIDB4OTQsIDB4MDAsIDB4NTB9IH0sCit7IDB4MDJiMCwJMTYsCXsweDBjLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDIwLCAweGUxLCAweDAzLCAweDAyLCAweDAxLCAweGU3LCAweDgwLCAweGY0LCAweDkwLCAweDdmLCAweGI0fSB9LAoreyAweDAyYzAsCTE2LAl7MHhlMCwgMHgyMCwgMHhlMiwgMHgwMywgMHgwMiwgMHgwMSwgMHhlNywgMHg4MCwgMHhmNCwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHg2NCwgMHg0MCwgMHg2MH0gfSwKK3sgMHgwMmQwLAkxNiwJezB4MDMsIDB4MDIsIDB4MDMsIDB4N2MsIDB4ZTUsIDB4MmMsIDB4NDUsIDB4MmIsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDMsIDB4N2MsIDB4ZTQsIDB4OTAsIDB4N2Z9IH0sCit7IDB4MDJlMCwJMTYsCXsweGM1LCAweGYwLCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweDc1LCAweDJmLCAweDAwLCAweGY1LCAweDMwLCAweGQzfSB9LAoreyAweDAyZjAsCTE2LAl7MHg5NCwgMHgwMCwgMHhlNSwgMHgyZiwgMHg5NCwgMHgwMCwgMHg1MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhjNCwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwOSwgMHg4MH0gfSwKK3sgMHgwMzAwLAkxNiwJezB4ZjcsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4MjAsIDB4ZTMsIDB4ZjksIDB4OTAsIDB4N2YsIDB4YzUsIDB4ZTAsIDB4NzUsIDB4MmQsIDB4MDAsIDB4ZjV9IH0sCit7IDB4MDMxMCwJMTYsCXsweDJlLCAweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDY0LCAweGEzLCAweDcwLCAweDM4LCAweDkwLCAweDIwLCAweDZiLCAweGYwLCAweGY1LCAweDMxLCAweGY1fSB9LAoreyAweDAzMjAsCTE2LAl7MHgzMiwgMHhjMywgMHhlNSwgMHgzMiwgMHg5NSwgMHgyZSwgMHhlNSwgMHgzMSwgMHg5NSwgMHgyZCwgMHg1MCwgMHgzNCwgMHg3NCwgMHhjMCwgMHgyNSwgMHgzMn0gfSwKK3sgMHgwMzMwLAkxNiwJezB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MmEsIDB4MjUsIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTV9IH0sCit7IDB4MDM0MCwJMTYsCXsweDMxLCAweDM1LCAweDI5LCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDMyLCAweGU1LCAweDMyLCAweDcwLCAweDAyLCAweDA1LCAweDMxLCAweDgwfSB9LAoreyAweDAzNTAsCTE2LAl7MHhkMCwgMHhhZiwgMHgyYSwgMHhhZSwgMHgyOSwgMHhhZCwgMHgyZSwgMHg3YSwgMHg3ZSwgMHg3OSwgMHhjMCwgMHg3YiwgMHhjMCwgMHgxMiwgMHgwYywgMHg4MH0gfSwKK3sgMHgwMzYwLAkxNiwJezB4ZTUsIDB4MmUsIDB4MjUsIDB4MmEsIDB4ZjUsIDB4MmEsIDB4ZTUsIDB4MmQsIDB4MzUsIDB4MjksIDB4ZjUsIDB4MjksIDB4YzMsIDB4ZTUsIDB4MmMsIDB4OTV9IH0sCit7IDB4MDM3MCwJMTMsCXsweDJlLCAweGY1LCAweDJjLCAweGU1LCAweDJiLCAweDk1LCAweDJkLCAweGY1LCAweDJiLCAweDAyLCAweDAyLCAweGQ0LCAweGMzfSB9LAoreyAweDAzN2QsCTEsCXsweDIyfSB9LAoreyAweDAzN2UsCTE2LAl7MHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNCwgMHg1NiwgMHgxNCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNCwgMHhkMiwgMHgyNH0gfSwKK3sgMHgwMzhlLAkxNiwJezB4ZmUsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDUsIDB4NDYsIDB4MjQsIDB4ZmIsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4NTAsIDB4MTQsIDB4NzAsIDB4MDN9IH0sCit7IDB4MDM5ZSwJMTYsCXsweDAyLCAweDA0LCAweDRhLCAweDE0LCAweDcwLCAweDAzLCAweDAyLCAweDA0LCAweDNlLCAweDE0LCAweDcwLCAweDAzLCAweDAyLCAweDA0LCAweDQ0LCAweDI0fSB9LAoreyAweDAzYWUsCTE2LAl7MHgwNSwgMHg2MCwgMHgwMywgMHgwMiwgMHgwNSwgMHg5YSwgMHgxMiwgMHgwZSwgMHg3YiwgMHg0MCwgMHgwMywgMHgwMiwgMHgwNSwgMHhhYiwgMHg5MCwgMHg3Zn0gfSwKK3sgMHgwM2JlLAkxNiwJezB4ZWIsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTYsIDB4MTQsIDB4NjAsIDB4NDAsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NjksIDB4NzQsIDB4MTEsIDB4OTB9IH0sCit7IDB4MDNjZSwJMTYsCXsweDdmLCAweGQ0LCAweGYwLCAweDc0LCAweDAwLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDA1LCAweGFiLCAweDkwLCAweDdmLCAweGVhLCAweGUwfSB9LAoreyAweDAzZGUsCTE2LAl7MHhmZiwgMHgxMiwgMHgwYiwgMHg1OCwgMHg4YiwgMHgyNiwgMHg4YSwgMHgyNywgMHg4OSwgMHgyOCwgMHhlYSwgMHg0OSwgMHg2MCwgMHgxMSwgMHhhZSwgMHgwMn0gfSwKK3sgMHgwM2VlLAkxNiwJezB4ZWUsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4YWYsIDB4MDEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YWIsIDB4OTB9IH0sCit7IDB4MDNmZSwJMTYsCXsweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA1LCAweGFiLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGZmLCAweDEyLCAweDBjfSB9LAoreyAweDA0MGUsCTE2LAl7MHgzZiwgMHg4YiwgMHgyNiwgMHg4YSwgMHgyNywgMHg4OSwgMHgyOCwgMHhlYSwgMHg0OSwgMHg2MCwgMHgxMSwgMHhhZSwgMHgwMiwgMHhlZSwgMHg5MCwgMHg3Zn0gfSwKK3sgMHgwNDFlLAkxNiwJezB4ZDQsIDB4ZjAsIDB4YWYsIDB4MDEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YWIsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTB9IH0sCit7IDB4MDQyZSwJMTYsCXsweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA1LCAweGFiLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA1LCAweGFifSB9LAoreyAweDA0M2UsCTE2LAl7MHgxMiwgMHgwZSwgMHg1MiwgMHgwMiwgMHgwNSwgMHhhYiwgMHgxMiwgMHgwZSwgMHg2MCwgMHgwMiwgMHgwNSwgMHhhYiwgMHgxMiwgMHgwYSwgMHhmNywgMHgwMn0gfSwKK3sgMHgwNDRlLAkxNiwJezB4MDUsIDB4YWIsIDB4MTIsIDB4MDgsIDB4ZjEsIDB4MDIsIDB4MDUsIDB4YWIsIDB4MTIsIDB4MGUsIDB4N2QsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDUsIDB4YWJ9IH0sCit7IDB4MDQ1ZSwJMTYsCXsweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweDdmLCAweDYwLCAweDI0LCAweDE0LCAweDYwLCAweDMxLCAweDI0LCAweDAyLCAweDcwLCAweDViLCAweGEyfSB9LAoreyAweDA0NmUsCTE2LAl7MHgwMCwgMHhlNCwgMHgzMywgMHhmZiwgMHgyNSwgMHhlMCwgMHhmZiwgMHhhMiwgMHgwMiwgMHhlNCwgMHgzMywgMHg0ZiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMH0gfSwKK3sgMHgwNDdlLAkxNiwJezB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YWIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4MDB9IH0sCit7IDB4MDQ4ZSwJMTYsCXsweGYwLCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA1LCAweGFiLCAweDkwLCAweDdmLCAweGVjLCAweGUwfSB9LAoreyAweDA0OWUsCTE2LAl7MHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNH0gfSwKK3sgMHgwNGFlLAkxNiwJezB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTN9IH0sCit7IDB4MDRiZSwJMTYsCXsweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA1LCAweGFiLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxfSB9LAoreyAweDA0Y2UsCTE2LAl7MHhmMCwgMHgwMiwgMHgwNSwgMHhhYiwgMHgxMiwgMHgwZSwgMHg3ZiwgMHg0MCwgMHgwMywgMHgwMiwgMHgwNSwgMHhhYiwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMH0gfSwKK3sgMHgwNGRlLAkxNiwJezB4MjQsIDB4ZmUsIDB4NjAsIDB4MWQsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDUsIDB4YWIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjR9IH0sCit7IDB4MDRlZSwJMTYsCXsweDAxLCAweDA1LCAweGMyLCAweDAwLCAweDAyLCAweDA1LCAweGFiLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA1fSB9LAoreyAweDA0ZmUsCTE2LAl7MHhhYiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgzOCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNH0gfSwKK3sgMHgwNTBlLAkxNiwJezB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2Z9IH0sCit7IDB4MDUxZSwJMTYsCXsweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweDU0LCAweDgwLCAweGZmLCAweDEzLCAweDEzLCAweDEzLCAweDU0LCAweDFmfSB9LAoreyAweDA1MmUsCTE2LAl7MHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHg5MCwgMHg3ZiwgMHhkNywgMHhmMCwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg4MCwgMHg2ZSwgMHg5MH0gfSwKK3sgMHgwNTNlLAkxNiwJezB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4NjUsIDB4MTIsIDB4MGUsIDB4ODEsIDB4NTAsIDB4NjAsIDB4OTAsIDB4N2YsIDB4ZTh9IH0sCit7IDB4MDU0ZSwJMTYsCXsweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE4LCAweDI0LCAweDAyLCAweDcwLCAweDU0LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDA0fSB9LAoreyAweDA1NWUsCTE2LAl7MHhkMiwgMHgwMCwgMHg4MCwgMHg0OSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHg0MCwgMHg5MCwgMHg3ZiwgMHhlYX0gfSwKK3sgMHgwNTZlLAkxNiwJezB4ZTAsIDB4NzAsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTB9IH0sCit7IDB4MDU3ZSwJMTYsCXsweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweDc0LCAweDAxfSB9LAoreyAweDA1OGUsCTE2LAl7MHhmMCwgMHg4MCwgMHgxYSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgxMSwgMHhlNCwgMHg5MCwgMHgyMCwgMHg2YX0gfSwKK3sgMHgwNTllLAkxNiwJezB4ZjAsIDB4MTIsIDB4MDEsIDB4MDAsIDB4NTAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjR9IH0sCit7IDB4MDVhZSwJNCwJezB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjB9IH0sCit7IDB4MDViMiwJMSwJezB4MjJ9IH0sCit7IDB4MDViMywJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGMwfSB9LAoreyAweDA1YzMsCTE2LAl7MHhkMCwgMHhjMCwgMHgwMCwgMHhjMCwgMHgwMSwgMHhjMCwgMHgwMiwgMHhjMCwgMHgwMywgMHhjMCwgMHgwNiwgMHhjMCwgMHgwNywgMHg5MCwgMHg3ZiwgMHhhNX0gfSwKK3sgMHgwNWQzLAkxNiwJezB4ZTAsIDB4MzAsIDB4ZTIsIDB4MDYsIDB4NzUsIDB4MGQsIDB4MDYsIDB4MDIsIDB4MDYsIDB4N2YsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4MjAsIDB4ZTF9IH0sCit7IDB4MDVlMywJMTYsCXsweDBjLCAweGU1LCAweDBkLCAweDY0LCAweDAyLCAweDYwLCAweDA2LCAweDc1LCAweDBkLCAweDA3LCAweDAyLCAweDA2LCAweDdmLCAweGFmLCAweDBkLCAweGVmfSB9LAoreyAweDA1ZjMsCTE2LAl7MHgyNCwgMHhmZSwgMHg2MCwgMHg0OCwgMHgxNCwgMHg2MCwgMHgyYywgMHgyNCwgMHhmZSwgMHg2MCwgMHg3NywgMHgyNCwgMHgwNCwgMHg2MCwgMHgwMywgMHgwMn0gfSwKK3sgMHgwNjAzLAkxNiwJezB4MDYsIDB4N2YsIDB4YWIsIDB4MDksIDB4YWEsIDB4MGEsIDB4YTksIDB4MGIsIDB4YWYsIDB4MGMsIDB4MDUsIDB4MGMsIDB4OGYsIDB4ODIsIDB4NzUsIDB4ODN9IH0sCit7IDB4MDYxMywJMTYsCXsweDAwLCAweDEyLCAweDA3LCAweDg1LCAweDkwLCAweDdmLCAweGE2LCAweGYwLCAweGU1LCAweDBjLCAweDY1LCAweDA4LCAweDcwLCAweDVlLCAweDc1LCAweDBkfSB9LAoreyAweDA2MjMsCTE2LAl7MHgwNSwgMHg4MCwgMHg1OSwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhlMCwgMHhhYiwgMHgwOSwgMHhhYSwgMHgwYSwgMHhhOSwgMHgwYiwgMHhhZSwgMHgwYywgMHg4ZX0gfSwKK3sgMHgwNjMzLAkxNiwJezB4ODIsIDB4NzUsIDB4ODMsIDB4MDAsIDB4MTIsIDB4MDcsIDB4YjIsIDB4NzUsIDB4MGQsIDB4MDIsIDB4ODAsIDB4NDAsIDB4ZTUsIDB4MDgsIDB4MjQsIDB4ZmV9IH0sCit7IDB4MDY0MywJMTYsCXsweGI1LCAweDBjLCAweDA3LCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweGU1LCAweDA4LCAweDE0LCAweGI1LCAweDBjLCAweDBhfSB9LAoreyAweDA2NTMsCTE2LAl7MHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHhlNCwgMHhmNSwgMHgwZCwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhlMCwgMHhhYiwgMHgwOX0gfSwKK3sgMHgwNjYzLAkxNiwJezB4YWEsIDB4MGEsIDB4YTksIDB4MGIsIDB4YWUsIDB4MGMsIDB4OGUsIDB4ODIsIDB4NzUsIDB4ODMsIDB4MDAsIDB4MTIsIDB4MDcsIDB4YjIsIDB4MDUsIDB4MGN9IH0sCit7IDB4MDY3MywJMTYsCXsweDgwLCAweDBhLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweGU0LCAweGY1LCAweDBkLCAweDUzLCAweDkxLCAweGRmLCAweGQwfSB9LAoreyAweDA2ODMsCTE2LAl7MHgwNywgMHhkMCwgMHgwNiwgMHhkMCwgMHgwMywgMHhkMCwgMHgwMiwgMHhkMCwgMHgwMSwgMHhkMCwgMHgwMCwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4NiwgMHhkMH0gfSwKK3sgMHgwNjkzLAkxMCwJezB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCit7IDB4MDY5ZCwJMTYsCXsweGMyLCAweDA0LCAweGQyLCAweDA1LCAweGU0LCAweGY1LCAweDI1LCAweGMyLCAweDAzLCAweGMyLCAweDAwLCAweGMyLCAweDAyLCAweGMyLCAweDAxLCAweDEyfSB9LAoreyAweDA2YWQsCTE2LAl7MHgwZSwgMHg3NCwgMHhkMiwgMHhlOCwgMHg0MywgMHhkOCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOX0gfSwKK3sgMHgwNmJkLAkxNiwJezB4ZjAsIDB4OTAsIDB4N2YsIDB4YWEsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZTAsIDB4NDQsIDB4YzAsIDB4ZjAsIDB4OTB9IH0sCit7IDB4MDZjZCwJMTYsCXsweDdmLCAweDkzLCAweDc0LCAweDMwLCAweGYwLCAweDEyLCAweDBhLCAweDE5LCAweDc1LCAweDI0LCAweDQ4LCAweDc1LCAweDIzLCAweDkyLCAweDc1LCAweDIyfSB9LAoreyAweDA2ZGQsCTE2LAl7MHgwMCwgMHg3NSwgMHgyMSwgMHgwMCwgMHhlNCwgMHhmZiwgMHhmZSwgMHg3ZSwgMHgwNSwgMHg5MCwgMHgyMCwgMHg2OCwgMHg3NCwgMHgwMSwgMHhmMCwgMHhhM30gfSwKK3sgMHgwNmVkLAkxNiwJezB4ZGUsIDB4ZmMsIDB4N2UsIDB4MDAsIDB4N2YsIDB4MDUsIDB4OTAsIDB4N2YsIDB4YWYsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWV9IH0sCit7IDB4MDZmZCwJMTYsCXsweGUwLCAweDQ0LCAweDBkLCAweGYwLCAweGQyLCAweGFmLCAweDEyLCAweDBlLCAweDY4LCAweDMwLCAweDAxLCAweDBhLCAweGU0LCAweDkwLCAweDIwLCAweDY5fSB9LAoreyAweDA3MGQsCTE2LAl7MHhmMCwgMHgxMiwgMHgwMywgMHg3ZSwgMHhjMiwgMHgwMSwgMHgzMCwgMHgwNCwgMHgxYSwgMHgxMiwgMHgwZSwgMHg3NywgMHg1MCwgMHgxMywgMHgxMiwgMHgwOX0gfSwKK3sgMHgwNzFkLAkxNiwJezB4MDAsIDB4MzAsIDB4MDAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4MzAsIDB4ZTcsIDB4ZjMsIDB4MTIsIDB4MGQsIDB4OGIsIDB4MTIsIDB4MGV9IH0sCit7IDB4MDcyZCwJMTYsCXsweDc5LCAweGMyLCAweDAzLCAweDdmLCAweGZmLCAweDdlLCAweGZmLCAweDdkLCAweGZmLCAweDdjLCAweGZmLCAweDc4LCAweDIxLCAweDEyLCAweDA4LCAweDFkfSB9LAoreyAweDA3M2QsCTE2LAl7MHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgwMCwgMHg3OCwgMHgwMCwgMHhjMywgMHgxMiwgMHgwOCwgMHgwYywgMHg3MCwgMHgxYiwgMHg3NSwgMHgyNH0gfSwKK3sgMHgwNzRkLAkxNiwJezB4NDgsIDB4NzUsIDB4MjMsIDB4OTIsIDB4ZjUsIDB4MjIsIDB4ZjUsIDB4MjEsIDB4NjMsIDB4MjUsIDB4ZmYsIDB4OTAsIDB4MjAsIDB4NjgsIDB4ZTUsIDB4MjV9IH0sCit7IDB4MDc1ZCwJMTQsCXsweGYwLCAweGEzLCAweDc0LCAweDAxLCAweGYwLCAweGEzLCAweGYwLCAweGEzLCAweGYwLCAweDEyLCAweDA4LCAweGZmLCAweDgwLCAweDlifSB9LAoreyAweDA3NmIsCTEsCXsweDIyfSB9LAoreyAweDA3NmMsCTE2LAl7MHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhlNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMn0gfSwKK3sgMHgwNzdjLAk5LAl7MHhlMywgMHgyMiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMn0gfSwKK3sgMHgwNzg1LAkxNiwJezB4YmIsIDB4MDEsIDB4MGMsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTB9IH0sCit7IDB4MDc5NSwJMTYsCXsweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGU2LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyfSB9LAoreyAweDA3YTUsCTEzLAl7MHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMn0gfSwKK3sgMHgwN2IyLAkxNiwJezB4ZjgsIDB4YmIsIDB4MDEsIDB4MGQsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTgsIDB4ZjB9IH0sCit7IDB4MDdjMiwJMTYsCXsweDIyLCAweDUwLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGM4LCAweGY2LCAweDIyLCAweGJiLCAweGZlLCAweDA1LCAweGU5LCAweDI1LCAweDgyLCAweGM4fSB9LAoreyAweDA3ZDIsCTIsCXsweGYyLCAweDIyfSB9LAoreyAweDA3ZDQsCTE2LAl7MHhiYiwgMHgwMSwgMHgxMCwgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHhmMH0gfSwKK3sgMHgwN2U0LAkxNiwJezB4YTMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDksIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ODYsIDB4ZjAsIDB4MDgsIDB4ZTYsIDB4MjIsIDB4YmIsIDB4ZmV9IH0sCit7IDB4MDdmNCwJMTYsCXsweDBhLCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweGY1LCAweGYwLCAweDA4LCAweGUyLCAweDIyLCAweGU1LCAweDgzLCAweDJhLCAweGY1LCAweDgzfSB9LAoreyAweDA4MDQsCTgsCXsweGU5LCAweDkzLCAweGY1LCAweGYwLCAweGEzLCAweGU5LCAweDkzLCAweDIyfSB9LAoreyAweDA4MGMsCTE2LAl7MHhlYiwgMHg5ZiwgMHhmNSwgMHhmMCwgMHhlYSwgMHg5ZSwgMHg0MiwgMHhmMCwgMHhlOSwgMHg5ZCwgMHg0MiwgMHhmMCwgMHhlOCwgMHg5YywgMHg0NSwgMHhmMH0gfSwKK3sgMHgwODFjLAkxLAl7MHgyMn0gfSwKK3sgMHgwODFkLAkxNiwJezB4MDgsIDB4MDgsIDB4MDgsIDB4ZTYsIDB4MmYsIDB4ZmYsIDB4ZjYsIDB4MTgsIDB4ZTYsIDB4M2UsIDB4ZmUsIDB4ZjYsIDB4MTgsIDB4ZTYsIDB4M2QsIDB4ZmR9IH0sCit7IDB4MDgyZCwJNywJezB4ZjYsIDB4MTgsIDB4ZTYsIDB4M2MsIDB4ZmMsIDB4ZjYsIDB4MjJ9IH0sCit7IDB4MDgzNCwJNCwJezB4OGMsIDB4MzQsIDB4OGQsIDB4MzV9IH0sCit7IDB4MDgzOCwJMTYsCXsweDkwLCAweDdmLCAweDk1LCAweGUwLCAweDQ0LCAweGMwLCAweGYwLCAweGU0LCAweGY1LCAweDM2LCAweGY1LCAweDM3LCAweGMzLCAweGU1LCAweDM3LCAweDk1fSB9LAoreyAweDA4NDgsCTE2LAl7MHgzNSwgMHhlNSwgMHgzNiwgMHg5NSwgMHgzNCwgMHg1MCwgMHg2OSwgMHhlZiwgMHgyNSwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNSwgMHgzNiwgMHgzZSwgMHhmNX0gfSwKK3sgMHgwODU4LAkxNiwJezB4ODMsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4ZjQsIDB4NjAsIDB4MDIsIDB4YzMsIDB4MjIsIDB4ZWYsIDB4MjUsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MzZ9IH0sCit7IDB4MDg2OCwJMTYsCXsweDNlLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDYwLCAweDAyLCAweGMzLCAweDIyLCAweGVmLCAweDI1LCAweDM3LCAweGY1LCAweDgyLCAweGU1LCAweDM2fSB9LAoreyAweDA4NzgsCTE2LAl7MHgzZSwgMHhmNSwgMHg4MywgMHg3NCwgMHhhYSwgMHhmMCwgMHg2NCwgMHhhYSwgMHg2MCwgMHgwMiwgMHhjMywgMHgyMiwgMHhlZiwgMHgyNSwgMHgzNywgMHhmNX0gfSwKK3sgMHgwODg4LAkxNiwJezB4ODIsIDB4ZTUsIDB4MzYsIDB4M2UsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4NTUsIDB4ZjAsIDB4NjQsIDB4NTUsIDB4NjAsIDB4MDIsIDB4YzMsIDB4MjIsIDB4YWR9IH0sCit7IDB4MDg5OCwJMTYsCXsweDM3LCAweGU1LCAweDM3LCAweDJmLCAweGY1LCAweDgyLCAweGU1LCAweDM2LCAweDNlLCAweGY1LCAweDgzLCAweGVkLCAweGYwLCAweGZjLCAweGFjLCAweDA1fSB9LAoreyAweDA4YTgsCTE2LAl7MHhlZCwgMHg2YywgMHg2MCwgMHgwMiwgMHhjMywgMHgyMiwgMHgwNSwgMHgzNywgMHhlNSwgMHgzNywgMHg3MCwgMHgwMiwgMHgwNSwgMHgzNiwgMHg4MCwgMHg4Y30gfSwKK3sgMHgwOGI4LAkxNiwJezB4ZTQsIDB4ZjUsIDB4MzYsIDB4ZjUsIDB4MzcsIDB4YzMsIDB4ZTUsIDB4MzcsIDB4OTUsIDB4MzUsIDB4ZTUsIDB4MzYsIDB4OTUsIDB4MzQsIDB4NTAsIDB4Mjd9IH0sCit7IDB4MDhjOCwJMTYsCXsweGVmLCAweDI1LCAweDM3LCAweGY1LCAweDgyLCAweGU1LCAweDM2LCAweDNlLCAweGY1LCAweDgzLCAweGUwLCAweDY1LCAweDM3LCAweDYwLCAweDAyLCAweGMzfSB9LAoreyAweDA4ZDgsCTE2LAl7MHgyMiwgMHhlZiwgMHgyNSwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNSwgMHgzNiwgMHgzZSwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHgwNSwgMHgzNywgMHhlNX0gfSwKK3sgMHgwOGU4LAk4LAl7MHgzNywgMHg3MCwgMHgwMiwgMHgwNSwgMHgzNiwgMHg4MCwgMHhjZSwgMHhkM30gfSwKK3sgMHgwOGYwLAkxLAl7MHgyMn0gfSwKK3sgMHgwOGYxLAkxNCwJezB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MTAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDMsIDB4MjJ9IH0sCit7IDB4MDhmZiwJMSwJezB4MjJ9IH0sCit7IDB4MDkwMCwJOSwJezB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ODAsIDB4NzR9IH0sCit7IDB4MDk3ZCwJMTYsCXsweDQzLCAweDg3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDIyfSB9LAoreyAweDA5OGQsCTEyLAl7MHg3OCwgMHg3ZiwgMHhlNCwgMHhmNiwgMHhkOCwgMHhmZCwgMHg3NSwgMHg4MSwgMHgzYSwgMHgwMiwgMHgwOSwgMHhkNH0gfSwKK3sgMHgwOTk5LAkxNiwJezB4MDIsIDB4MDYsIDB4OWQsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NDAsIDB4MDMsIDB4ZjYsIDB4ODAsIDB4MDEsIDB4ZjJ9IH0sCit7IDB4MDlhOSwJMTYsCXsweDA4LCAweGRmLCAweGY0LCAweDgwLCAweDI5LCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweDU0LCAweDA3LCAweDI0LCAweDBjLCAweGM4LCAweGMzLCAweDMzfSB9LAoreyAweDA5YjksCTE2LAl7MHhjNCwgMHg1NCwgMHgwZiwgMHg0NCwgMHgyMCwgMHhjOCwgMHg4MywgMHg0MCwgMHgwNCwgMHhmNCwgMHg1NiwgMHg4MCwgMHgwMSwgMHg0NiwgMHhmNiwgMHhkZn0gfSwKK3sgMHgwOWM5LAkxNiwJezB4ZTQsIDB4ODAsIDB4MGIsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4OTAsIDB4MGUsIDB4MmQsIDB4ZTQsIDB4N2V9IH0sCit7IDB4MDlkOSwJMTYsCXsweDAxLCAweDkzLCAweDYwLCAweGJjLCAweGEzLCAweGZmLCAweDU0LCAweDNmLCAweDMwLCAweGU1LCAweDA5LCAweDU0LCAweDFmLCAweGZlLCAweGU0LCAweDkzfSB9LAoreyAweDA5ZTksCTE2LAl7MHhhMywgMHg2MCwgMHgwMSwgMHgwZSwgMHhjZiwgMHg1NCwgMHhjMCwgMHgyNSwgMHhlMCwgMHg2MCwgMHhhOCwgMHg0MCwgMHhiOCwgMHhlNCwgMHg5MywgMHhhM30gfSwKK3sgMHgwOWY5LAkxNiwJezB4ZmEsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2F9IH0sCit7IDB4MGEwOSwJMTYsCXsweGYwLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweGJlfSB9LAoreyAweDBhMTksCTE2LAl7MHhlNCwgMHg5MCwgMHg3ZiwgMHg5YywgMHhmMCwgMHg3ZiwgMHgwYSwgMHhmZSwgMHgxMiwgMHgwZCwgMHhkNSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHg4OX0gfSwKK3sgMHgwYTI5LAkxNiwJezB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4Y2YsIDB4ZjAsIDB4N2YsIDB4ZjQsIDB4N2UsIDB4MDEsIDB4MTIsIDB4MGQsIDB4ZDUsIDB4OTAsIDB4N2Z9IH0sCit7IDB4MGEzOSwJMTYsCXsweDk2LCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweDdmLCAweDBhLCAweDdlLCAweDAwLCAweDEyLCAweDBkLCAweGQ1LCAweDdmLCAweDA1LCAweDdlLCAweDAwfSB9LAoreyAweDBhNDksCTE2LAl7MHgxMiwgMHgwZCwgMHhkNSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlMCwgMHg1NCwgMHg3ZiwgMHhmMCwgMHg3ZiwgMHgwNX0gfSwKK3sgMHgwYTU5LAkxNiwJezB4N2UsIDB4MDAsIDB4MTIsIDB4MGQsIDB4ZDUsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4N2YsIDB4MDUsIDB4N2UsIDB4MDB9IH0sCit7IDB4MGE2OSwJMTYsCXsweDEyLCAweDBkLCAweGQ1LCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDdmLCAweDMyLCAweDdlLCAweDAwLCAweDEyLCAweDBkfSB9LAoreyAweDBhNzksCTE2LAl7MHhkNSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg3ZiwgMHgzMiwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwZCwgMHhkNSwgMHgyMn0gfSwKK3sgMHgwYTg5LAkxNiwJezB4NzUsIDB4MzMsIDB4MDEsIDB4ZTUsIDB4MzMsIDB4NjAsIDB4MWIsIDB4N2YsIDB4MDEsIDB4MTIsIDB4MGUsIDB4MTgsIDB4N2YsIDB4MDAsIDB4N2UsIDB4MGV9IH0sCit7IDB4MGE5OSwJMTYsCXsweDdkLCAweDAwLCAweDdjLCAweDAxLCAweDEyLCAweDA4LCAweDM0LCAweGU0LCAweDMzLCAweGY1LCAweDMzLCAweDcwLCAweDA1LCAweDdmLCAweDBmLCAweDEyfSB9LAoreyAweDBhYTksCTE2LAl7MHgwZSwgMHgxOCwgMHhlNSwgMHgzMywgMHg2MCwgMHgxYiwgMHg3ZiwgMHgwMiwgMHgxMiwgMHgwZSwgMHgxOCwgMHg3ZiwgMHgwMCwgMHg3ZSwgMHg4MCwgMHg3ZH0gfSwKK3sgMHgwYWI5LAkxNiwJezB4MDAsIDB4N2MsIDB4ODAsIDB4MTIsIDB4MDgsIDB4MzQsIDB4ZTQsIDB4MzMsIDB4ZjUsIDB4MzMsIDB4NzAsIDB4MDUsIDB4N2YsIDB4MGYsIDB4MTIsIDB4MGV9IH0sCit7IDB4MGFjOSwJMTYsCXsweDE4LCAweGU1LCAweDMzLCAweDYwLCAweDFiLCAweDdmLCAweDAzLCAweDEyLCAweDBlLCAweDE4LCAweDdmLCAweDAwLCAweDdlLCAweDIwLCAweDdkLCAweDQwfSB9LAoreyAweDBhZDksCTE2LAl7MHg3YywgMHg1YiwgMHgxMiwgMHgwOCwgMHgzNCwgMHhlNCwgMHgzMywgMHhmNSwgMHgzMywgMHg3MCwgMHgwNSwgMHg3ZiwgMHgwZiwgMHgxMiwgMHgwZSwgMHgxOH0gfSwKK3sgMHgwYWU5LAkxMywJezB4ZTUsIDB4MzMsIDB4NjAsIDB4MDUsIDB4ZTQsIDB4ZmYsIDB4MTIsIDB4MGUsIDB4MTgsIDB4ZTUsIDB4MzMsIDB4MjQsIDB4ZmZ9IH0sCit7IDB4MGFmNiwJMSwJezB4MjJ9IH0sCit7IDB4MGFmNywJOCwJezB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MTAsIDB4ZDMsIDB4MjJ9IH0sCit7IDB4MGFmZiwJMSwJezB4MzJ9IH0sCit7IDB4MGIwMCwJMTYsCXsweDAyLCAweDBkLCAweGE1LCAweDAwLCAweDAyLCAweDBkLCAweGVjLCAweDAwLCAweDAyLCAweDBkLCAweDcwLCAweDAwLCAweDAyLCAweDBkLCAweGJkLCAweDAwfSB9LAoreyAweDBiMTAsCTE2LAl7MHgwMiwgMHgwZSwgMHgwMiwgMHgwMCwgMHgwMiwgMHgwYSwgMHhmZiwgMHgwMCwgMHgwMiwgMHgwZSwgMHg4MywgMHgwMCwgMHgwMiwgMHgwZSwgMHg4NCwgMHgwMH0gfSwKK3sgMHgwYjIwLAkxNiwJezB4MDIsIDB4MGUsIDB4ODUsIDB4MDAsIDB4MDIsIDB4MGUsIDB4ODYsIDB4MDAsIDB4MDIsIDB4MGUsIDB4ODcsIDB4MDAsIDB4MDIsIDB4MGUsIDB4ODgsIDB4MDB9IH0sCit7IDB4MGIzMCwJMTYsCXsweDAyLCAweDBlLCAweDg5LCAweDAwLCAweDAyLCAweDBlLCAweDhhLCAweDAwLCAweDAyLCAweDBlLCAweDhiLCAweDAwLCAweDAyLCAweDBlLCAweDhjLCAweDAwfSB9LAoreyAweDBiNDAsCTE2LAl7MHgwMiwgMHgwZSwgMHg4ZCwgMHgwMCwgMHgwMiwgMHgwZSwgMHg4ZSwgMHgwMCwgMHgwMiwgMHgwZSwgMHg4ZiwgMHgwMCwgMHgwMiwgMHgwZSwgMHg5MCwgMHgwMH0gfSwKK3sgMHgwYjUwLAk4LAl7MHgwMiwgMHgwZSwgMHg5MSwgMHgwMCwgMHgwMiwgMHgwZSwgMHg5MiwgMHgwMH0gfSwKK3sgMHgwYjU4LAkxNiwJezB4ZTQsIDB4ZmUsIDB4NzUsIDB4MmIsIDB4ZmYsIDB4NzUsIDB4MmMsIDB4MTEsIDB4NzUsIDB4MmQsIDB4MTIsIDB4YWIsIDB4MmIsIDB4YWEsIDB4MmMsIDB4YTl9IH0sCit7IDB4MGI2OCwJMTYsCXsweDJkLCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweDA3LCAweDg1LCAweDY0LCAweDAyLCAweDcwLCAweDJkLCAweGFkLCAweDA2LCAweDBlLCAweGVkLCAweGI1fSB9LAoreyAweDBiNzgsCTE2LAl7MHgwNywgMHgwMSwgMHgyMiwgMHg5MCwgMHgwMCwgMHgwMiwgMHgxMiwgMHgwNywgMHhkNCwgMHg4NSwgMHhmMCwgMHgyOSwgMHhmNSwgMHgyYSwgMHg2MiwgMHgyOX0gfSwKK3sgMHgwYjg4LAkxNiwJezB4ZTUsIDB4MjksIDB4NjIsIDB4MmEsIDB4ZTUsIDB4MmEsIDB4NjIsIDB4MjksIDB4MjksIDB4ZmQsIDB4ZTUsIDB4MjksIDB4M2EsIDB4YTksIDB4MDUsIDB4NzV9IH0sCit7IDB4MGI5OCwJMTQsCXsweDJiLCAweGZmLCAweGY1LCAweDJjLCAweDg5LCAweDJkLCAweDgwLCAweGMzLCAweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDAwfSB9LAoreyAweDBiYTYsCTEsCXsweDIyfSB9LAoreyAweDBiYTcsCTYsCXsweGFiLCAweDA3LCAweGFhLCAweDA2LCAweGFjLCAweDA1fSB9LAoreyAweDBiYWQsCTE2LAl7MHhlNCwgMHhmZCwgMHhlNSwgMHgxMSwgMHg2MCwgMHgxMSwgMHhlYSwgMHhmZiwgMHhhZSwgMHgwNSwgMHgwZCwgMHhlZSwgMHgyNCwgMHgxMCwgMHhmNSwgMHg4Mn0gfSwKK3sgMHgwYmJkLAkxNiwJezB4ZTQsIDB4MzQsIDB4MGYsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ZWIsIDB4YWUsIDB4MDUsIDB4MGQsIDB4NzQsIDB4MTAsIDB4MmUsIDB4ZjUsIDB4ODJ9IH0sCit7IDB4MGJjZCwJMTYsCXsweGU0LCAweDM0LCAweDBmLCAweGY1LCAweDgzLCAweGViLCAweGYwLCAweGFmLCAweDA1LCAweDBkLCAweDc0LCAweDEwLCAweDJmLCAweGY1LCAweDgyLCAweGU0fSB9LAoreyAweDBiZGQsCTE2LAl7MHgzNCwgMHgwZiwgMHhmNSwgMHg4MywgMHhlYywgMHhmMCwgMHhhZiwgMHgwZiwgMHg3YSwgMHgwZiwgMHg3YiwgMHgxMCwgMHgxMiwgMHgwZCwgMHg1MSwgMHg3Zn0gfSwKK3sgMHgwYmVkLAk2LAl7MHgwYSwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwZCwgMHhkNX0gfSwKK3sgMHgwYmYzLAkxLAl7MHgyMn0gfSwKK3sgMHgwYmY0LAkxMCwJezB4OGUsIDB4MzMsIDB4OGYsIDB4MzQsIDB4OGQsIDB4MzUsIDB4OGEsIDB4MzYsIDB4OGIsIDB4Mzd9IH0sCit7IDB4MGJmZSwJMTYsCXsweGU0LCAweGZkLCAweGY1LCAweDM4LCAweGU1LCAweDExLCAweDYwLCAweDEyLCAweGU1LCAweDMzLCAweGZmLCAweGFlLCAweDA1LCAweDBkLCAweGVlLCAweDI0fSB9LAoreyAweDBjMGUsCTE2LAl7MHgxMywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwZiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHhlNSwgMHgzNCwgMHhhZSwgMHgwNSwgMHgwZCwgMHg3NH0gfSwKK3sgMHgwYzFlLAkxNiwJezB4MTMsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MGYsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4MzQsIDB4ZjAsIDB4YWYsIDB4MGYsIDB4N2EsIDB4MGZ9IH0sCit7IDB4MGMyZSwJMTYsCXsweDdiLCAweDEzLCAweDEyLCAweDBkLCAweDUxLCAweGFmLCAweDBmLCAweGFkLCAweDM1LCAweGFiLCAweDM3LCAweGFhLCAweDM2LCAweDEyLCAweDBkLCAweDMyfSB9LAoreyAweDBjM2UsCTEsCXsweDIyfSB9LAoreyAweDBjM2YsCTIsCXsweDhmLCAweDI5fSB9LAoreyAweDBjNDEsCTE2LAl7MHhlNCwgMHhmNSwgMHgyYSwgMHg3NSwgMHgyYiwgMHhmZiwgMHg3NSwgMHgyYywgMHgxMSwgMHg3NSwgMHgyZCwgMHgzMiwgMHhhYiwgMHgyYiwgMHhhYSwgMHgyY30gfSwKK3sgMHgwYzUxLAkxNiwJezB4YTksIDB4MmQsIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4MDcsIDB4ODUsIDB4YjQsIDB4MDMsIDB4MWQsIDB4YWYsIDB4MmEsIDB4MDUsIDB4MmEsIDB4ZWZ9IH0sCit7IDB4MGM2MSwJMTYsCXsweGI1LCAweDI5LCAweDAxLCAweDIyLCAweDEyLCAweDA3LCAweDZjLCAweDdlLCAweDAwLCAweDI5LCAweGZmLCAweGVlLCAweDNhLCAweGE5LCAweDA3LCAweDc1fSB9LAoreyAweDBjNzEsCTE0LAl7MHgyYiwgMHhmZiwgMHhmNSwgMHgyYywgMHg4OSwgMHgyZCwgMHg4MCwgMHhkNCwgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgwMH0gfSwKK3sgMHgwYzdmLAkxLAl7MHgyMn0gfSwKK3sgMHgwYzgwLAkxMCwJezB4OGUsIDB4MzMsIDB4OGYsIDB4MzQsIDB4OGQsIDB4MzUsIDB4OGEsIDB4MzYsIDB4OGIsIDB4Mzd9IH0sCit7IDB4MGM4YSwJMTYsCXsweGU0LCAweGY1LCAweDM4LCAweGU1LCAweDM4LCAweGMzLCAweDk1LCAweDM1LCAweDUwLCAweDIwLCAweDA1LCAweDM0LCAweGU1LCAweDM0LCAweGFlLCAweDMzfSB9LAoreyAweDBjOWEsCTE2LAl7MHg3MCwgMHgwMiwgMHgwNSwgMHgzMywgMHgxNCwgMHhmZiwgMHhlNSwgMHgzNywgMHgyNSwgMHgzOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgzNiwgMHhmNX0gfSwKK3sgMHgwY2FhLAkxMCwJezB4ODMsIDB4ZTAsIDB4ZmQsIDB4MTIsIDB4MGIsIDB4YTcsIDB4MDUsIDB4MzgsIDB4ODAsIDB4ZDl9IH0sCit7IDB4MGNiNCwJMSwJezB4MjJ9IH0sCit7IDB4MGNiNSwJMTYsCXsweGE5LCAweDA3LCAweGU1LCAweDBkLCAweDcwLCAweDI1LCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGU5LCAweDI1LCAweGUwfSB9LAoreyAweDBjYzUsCTE2LAl7MHg0NCwgMHgwMSwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhmMCwgMHg4ZCwgMHgwOCwgMHhhZiwgMHgwMywgMHhhOSwgMHgwNywgMHg3NSwgMHgwOSwgMHgwMSwgMHg4YX0gfSwKK3sgMHgwY2Q1LAkxMywJezB4MGEsIDB4ODksIDB4MGIsIDB4ZTQsIDB4ZjUsIDB4MGMsIDB4NzUsIDB4MGQsIDB4MDMsIDB4ZDMsIDB4MjIsIDB4YzMsIDB4MjJ9IH0sCit7IDB4MGNlMiwJMTYsCXsweGE5LCAweDA3LCAweGU1LCAweDBkLCAweDcwLCAweDIzLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGU5LCAweDI1LCAweGUwfSB9LAoreyAweDBjZjIsCTE2LAl7MHg5MCwgMHg3ZiwgMHhhNiwgMHhmMCwgMHg4ZCwgMHgwOCwgMHhhZiwgMHgwMywgMHhhOSwgMHgwNywgMHg3NSwgMHgwOSwgMHgwMSwgMHg4YSwgMHgwYSwgMHg4OX0gfSwKK3sgMHgwZDAyLAkxMSwJezB4MGIsIDB4ZTQsIDB4ZjUsIDB4MGMsIDB4NzUsIDB4MGQsIDB4MDEsIDB4ZDMsIDB4MjIsIDB4YzMsIDB4MjJ9IH0sCit7IDB4MGQwZCwJMTYsCXsweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDMwLCAweDA2LCAweDA0LCAweGUwLCAweDQ0fSB9LAoreyAweDBkMWQsCTE2LAl7MHgwMiwgMHhmMCwgMHg3ZiwgMHhkMCwgMHg3ZSwgMHgwNywgMHgxMiwgMHgwZCwgMHhkNSwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMH0gfSwKK3sgMHgwZDJkLAk1LAl7MHhlMCwgMHg0NCwgMHgwNCwgMHhmMCwgMHgyMn0gfSwKK3sgMHgwZDMyLAkxNiwJezB4MTIsIDB4MGMsIDB4YjUsIDB4ZTUsIDB4MGQsIDB4MjQsIDB4ZmEsIDB4NjAsIDB4MTAsIDB4MTQsIDB4NjAsIDB4MDcsIDB4MjQsIDB4MDcsIDB4NzAsIDB4ZjN9IH0sCit7IDB4MGQ0MiwJMTUsCXsweDdmLCAweDA4LCAweDIyLCAweGU0LCAweGY1LCAweDBkLCAweDdmLCAweDA3LCAweDIyLCAweGU0LCAweGY1LCAweDBkLCAweDdmLCAweDA2LCAweDIyfSB9LAoreyAweDBkNTEsCTE2LAl7MHgxMiwgMHgwYywgMHhlMiwgMHhlNSwgMHgwZCwgMHgyNCwgMHhmYSwgMHg2MCwgMHgxMCwgMHgxNCwgMHg2MCwgMHgwNywgMHgyNCwgMHgwNywgMHg3MCwgMHhmM30gfSwKK3sgMHgwZDYxLAkxNSwJezB4N2YsIDB4MDgsIDB4MjIsIDB4ZTQsIDB4ZjUsIDB4MGQsIDB4N2YsIDB4MDcsIDB4MjIsIDB4ZTQsIDB4ZjUsIDB4MGQsIDB4N2YsIDB4MDYsIDB4MjJ9IH0sCit7IDB4MGQ3MCwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweDkwLCAweDdmLCAweGM0LCAweGU0LCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmfSB9LAoreyAweDBkODAsCTExLAl7MHhhYiwgMHg3NCwgMHgwNCwgMHhmMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKK3sgMHgwZDhiLAkxNiwJezB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4MzAsIDB4ZTcsIDB4MTIsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4N2YsIDB4MTQsIDB4N2UsIDB4MDAsIDB4MTJ9IH0sCit7IDB4MGQ5YiwJMTAsCXsweDBkLCAweGQ1LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweDIyfSB9LAoreyAweDBkYTUsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhkMiwgMHgwMSwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwMX0gfSwKK3sgMHgwZGI1LAk4LAl7MHhmMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKK3sgMHgwZGJkLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4ZDIsIDB4MDMsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDh9IH0sCit7IDB4MGRjZCwJOCwJezB4ZjAsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCit7IDB4MGRkNSwJMTYsCXsweDhlLCAweDM5LCAweDhmLCAweDNhLCAweGU1LCAweDNhLCAweDE1LCAweDNhLCAweGFlLCAweDM5LCAweDcwLCAweDAyLCAweDE1LCAweDM5LCAweDRlLCAweDYwfSB9LAoreyAweDBkZTUsCTcsCXsweDA1LCAweDEyLCAweDBlLCAweDQxLCAweDgwLCAweGVlLCAweDIyfSB9LAoreyAweDBkZWMsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwMiwgMHhmMCwgMHhkMH0gfSwKK3sgMHgwZGZjLAk2LAl7MHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKK3sgMHgwZTAyLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4ZDB9IH0sCit7IDB4MGUxMiwJNiwJezB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCit7IDB4MGUxOCwJMTYsCXsweGFlLCAweDA3LCAweDdmLCAweDIxLCAweDdkLCAweDAxLCAweDc0LCAweDAwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDBmLCAweGFiLCAweDgyfSB9LAoreyAweDBlMjgsCTUsCXsweGZhLCAweDEyLCAweDBkLCAweDUxLCAweDIyfSB9LAoreyAweDBlMmQsCTE2LAl7MHg1MCwgMHgwZiwgMHgwMCwgMHhjMCwgMHhmOSwgMHhhNCwgMHhiMCwgMHg5OSwgMHg5MiwgMHg4MiwgMHhmOCwgMHg4MCwgMHg5OCwgMHg4OCwgMHg4MywgMHhjNn0gfSwKK3sgMHgwZTNkLAkzLAl7MHhhMSwgMHg4NiwgMHg4ZX0gfSwKK3sgMHgwZTQwLAkxLAl7MHgwMH0gfSwKK3sgMHgwZTQxLAkxNiwJezB4NzQsIDB4MDAsIDB4ZjUsIDB4ODYsIDB4OTAsIDB4ZmQsIDB4YTUsIDB4N2MsIDB4MDUsIDB4YTMsIDB4ZTUsIDB4ODIsIDB4NDUsIDB4ODMsIDB4NzAsIDB4Zjl9IH0sCit7IDB4MGU1MSwJMSwJezB4MjJ9IH0sCit7IDB4MGU1MiwJMTQsCXsweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDBlLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweGQzLCAweDIyfSB9LAoreyAweDBlNjAsCTgsCXsweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDBlLCAweGQzLCAweDIyfSB9LAoreyAweDBlNjgsCTgsCXsweGU0LCAweGY1LCAweDBkLCAweGQyLCAweGU5LCAweGQyLCAweGFmLCAweDIyfSB9LAoreyAweDBlNzAsCTQsCXsweDUzLCAweGQ4LCAweGVmLCAweDMyfSB9LAoreyAweDBlNzQsCTMsCXsweGQyLCAweDAwLCAweDIyfSB9LAoreyAweDBlNzcsCTIsCXsweGQzLCAweDIyfSB9LAoreyAweDBlNzksCTIsCXsweGQzLCAweDIyfSB9LAoreyAweDBlN2IsCTIsCXsweGQzLCAweDIyfSB9LAoreyAweDBlN2QsCTIsCXsweGQzLCAweDIyfSB9LAoreyAweDBlN2YsCTIsCXsweGQzLCAweDIyfSB9LAoreyAweDBlODEsCTIsCXsweGQzLCAweDIyfSB9LAoreyAweDBlODMsCTEsCXsweDMyfSB9LAoreyAweDBlODQsCTEsCXsweDMyfSB9LAoreyAweDBlODUsCTEsCXsweDMyfSB9LAoreyAweDBlODYsCTEsCXsweDMyfSB9LAoreyAweDBlODcsCTEsCXsweDMyfSB9LAoreyAweDBlODgsCTEsCXsweDMyfSB9LAoreyAweDBlODksCTEsCXsweDMyfSB9LAoreyAweDBlOGEsCTEsCXsweDMyfSB9LAoreyAweDBlOGIsCTEsCXsweDMyfSB9LAoreyAweDBlOGMsCTEsCXsweDMyfSB9LAoreyAweDBlOGQsCTEsCXsweDMyfSB9LAoreyAweDBlOGUsCTEsCXsweDMyfSB9LAoreyAweDBlOGYsCTEsCXsweDMyfSB9LAoreyAweDBlOTAsCTEsCXsweDMyfSB9LAoreyAweDBlOTEsCTEsCXsweDMyfSB9LAoreyAweDBlOTIsCTEsCXsweDMyfSB9LAoreyAweDExMDAsCTE2LAl7MHgxMiwgMHgwMSwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NywgMHgwNSwgMHgxMCwgMHgyNywgMHgwMSwgMHgwMCwgMHgwMSwgMHgwMn0gfSwKK3sgMHgxMTEwLAkxNiwJezB4MDAsIDB4MDEsIDB4MDksIDB4MDIsIDB4MjAsIDB4MDAsIDB4MDEsIDB4MDEsIDB4MDMsIDB4YTAsIDB4MDAsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MDJ9IH0sCit7IDB4MTEyMCwJMTYsCXsweGZmLCAweDAwLCAweDAwLCAweDA0LCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAyLCAweDAyLCAweDQwfSB9LAoreyAweDExMzAsCTE2LAl7MHgwMCwgMHgwMCwgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHgyNiwgMHgwMywgMHg0MSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2MywgMHgwMCwgMHg2OCwgMHgwMH0gfSwKK3sgMHgxMTQwLAkxNiwJezB4NmYsIDB4MDAsIDB4NzIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDMsIDB4MDAsIDB4NjgsIDB4MDAsIDB4NjksIDB4MDAsIDB4NzAsIDB4MDAsIDB4NzMsIDB4MDB9IH0sCit7IDB4MTE1MCwJMTYsCXsweDJjLCAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDYzLCAweDAwLCAweDJlLCAweDAwLCAweDI4LCAweDAzLCAweDQ2LCAweDAwfSB9LAoreyAweDExNjAsCTE2LAl7MHg2OSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2ZCwgMHgwMCwgMHg3NywgMHgwMCwgMHg2MSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2NSwgMHgwMCwgMHgyMCwgMHgwMH0gfSwKK3sgMHgxMTcwLAkxNiwJezB4NDYsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmQsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NTcsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NzIsIDB4MDB9IH0sCit7IDB4MTE4MCwJMTYsCXsweDZiLCAweDAwLCAweDczLCAweDAwLCAweDJhLCAweDAzLCAweDQzLCAweDAwLCAweDZmLCAweDAwLCAweDZlLCAweDAwLCAweDY2LCAweDAwLCAweDY5LCAweDAwfSB9LAoreyAweDExOTAsCTE2LAl7MHg2NywgMHgwMCwgMHg3NSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2MSwgMHgwMCwgMHg3NCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMH0gfSwKK3sgMHgxMWEwLAkxNiwJezB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjcsIDB4MDAsIDB4MjIsIDB4MDN9IH0sCit7IDB4MTFiMCwJMTYsCXsweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDc0LCAweDAwLCAweDY1LCAweDAwLCAweDcyLCAweDAwLCAweDY2LCAweDAwLCAweDYxLCAweDAwLCAweDYzLCAweDAwfSB9LAoreyAweDExYzAsCTE2LAl7MHg2NSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1MywgMHgwMCwgMHg3NCwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2NywgMHgwMH0gfSwKK3sgMHgxMWQwLAkyLAl7MHgwMCwgMHgwMH0gfSwKK3sgMHhmZmZmLAkwLAl7MHgwMH0gfQorfTsKKworI2Vsc2UKKworc3RhdGljIGNvbnN0IHN0cnVjdCB3aGl0ZWhlYXRfaGV4X3JlY29yZCB3aGl0ZWhlYXRfbG9hZGVyW10gPSB7Cit7IDB4MDAwMCwJMywJezB4MDIsIDB4MDksIDB4OGR9IH0sCit7IDB4MDAzMywJMywJezB4MDIsIDB4MDgsIDB4ZmJ9IH0sCit7IDB4MDA0MywJMywJezB4MDIsIDB4MGIsIDB4MDB9IH0sCit7IDB4MDA0YiwJMywJezB4MDIsIDB4MDUsIDB4YWF9IH0sCit7IDB4MDEwMCwJMTYsCXsweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDU0LCAweDEwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDUwLCAweGY1LCAweDBmLCAweDEzLCAweGU0fSB9LAoreyAweDAxMTAsCTE2LAl7MHgzMywgMHhmNSwgMHgxMSwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHgyNCwgMHg1ZSwgMHhiNCwgMHgwNywgMHgwMCwgMHg0MCwgMHgwMywgMHgwMiwgMHgwM30gfSwKK3sgMHgwMTIwLAkxNiwJezB4NzgsIDB4OTAsIDB4MDEsIDB4MjgsIDB4ZjgsIDB4MjgsIDB4MjgsIDB4NzMsIDB4MDIsIDB4MDEsIDB4YmMsIDB4MDIsIDB4MDEsIDB4YmMsIDB4MDIsIDB4MDF9IH0sCit7IDB4MDEzMCwJMTYsCXsweDkxLCAweDAyLCAweDAxLCAweDNkLCAweDAyLCAweDAxLCAweDUzLCAweDAyLCAweDAxLCAweDZmLCAweDAyLCAweDAxLCAweDlhLCAweDkwLCAweDdmLCAweDAwfSB9LAoreyAweDAxNDAsCTE2LAl7MHhlNSwgMHgxMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMH0gfSwKK3sgMHgwMTUwLAkxNiwJezB4MDIsIDB4MDMsIDB4NzgsIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4OTB9IH0sCit7IDB4MDE2MCwJMTYsCXsweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDAyLCAweDAzLCAweDc4LCAweDEyfSB9LAoreyAweDAxNzAsCTE2LAl7MHgwYSwgMHg4OSwgMHg1MCwgMHgwNywgMHhlNCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHg4MCwgMHgwNiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHg3NCwgMHgwZn0gfSwKK3sgMHgwMTgwLAkxNiwJezB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDN9IH0sCit7IDB4MDE5MCwJMTYsCXsweDc4LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDBmLCAweDAyLCAweDAzLCAweDc4LCAweDkwLCAweDdmLCAweDAwLCAweDc0LCAweDA3LCAweGYwfSB9LAoreyAweDAxYTAsCTE2LAl7MHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg3ZiwgMHhlOCwgMHg3ZX0gfSwKK3sgMHgwMWIwLAkxNiwJezB4MDMsIDB4MTIsIDB4MGQsIDB4OTQsIDB4ZDIsIDB4MDYsIDB4MTIsIDB4MGMsIDB4Y2MsIDB4MDIsIDB4MDMsIDB4NzgsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTB9IH0sCit7IDB4MDFjMCwJMTYsCXsweDc1LCAweDI4LCAweDAwLCAweGY1LCAweDI5LCAweGEzLCAweGUwLCAweGZlLCAweGU0LCAweGVlLCAweDQyLCAweDI4LCAweDkwLCAweDdmLCAweGVlLCAweGUwfSB9LAoreyAweDAxZDAsCTE2LAl7MHg3NSwgMHgyYSwgMHgwMCwgMHhmNSwgMHgyYiwgMHhhMywgMHhlMCwgMHhmZSwgMHhlNCwgMHhlZSwgMHg0MiwgMHgyYSwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMH0gfSwKK3sgMHgwMWUwLAkxNiwJezB4NjQsIDB4YzAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDIsIDB4YzksIDB4ZTUsIDB4MmIsIDB4NDUsIDB4MmEsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDMsIDB4Nzh9IH0sCit7IDB4MDFmMCwJMTYsCXsweGMzLCAweGU1LCAweDJiLCAweDk0LCAweDQwLCAweGU1LCAweDJhLCAweDk0LCAweDAwLCAweDUwLCAweDA4LCAweDg1LCAweDJhLCAweDJjLCAweDg1LCAweDJifSB9LAoreyAweDAyMDAsCTE2LAl7MHgyZCwgMHg4MCwgMHgwNiwgMHg3NSwgMHgyYywgMHgwMCwgMHg3NSwgMHgyZCwgMHg0MCwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHg2NCwgMHhhMywgMHg3MH0gfSwKK3sgMHgwMjEwLAkxNiwJezB4MzQsIDB4ZjUsIDB4MzAsIDB4ZjUsIDB4MzEsIDB4YzMsIDB4ZTUsIDB4MzEsIDB4OTUsIDB4MmQsIDB4ZTUsIDB4MzAsIDB4OTUsIDB4MmMsIDB4NTAsIDB4NWN9IH0sCit7IDB4MDIyMCwJMTYsCXsweGU1LCAweDI5LCAweDI1LCAweDMxLCAweGY1LCAweDgyLCAweGU1LCAweDMwLCAweDM1LCAweDI4LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDc0LCAweDAwfSB9LAoreyAweDAyMzAsCTE2LAl7MHgyNSwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgzMSwgMHhlNSwgMHgzMSwgMHg3MH0gfSwKK3sgMHgwMjQwLAkxNiwJezB4MDIsIDB4MDUsIDB4MzAsIDB4ODAsIDB4ZDAsIDB4ZTQsIDB4ZjUsIDB4MzAsIDB4ZjUsIDB4MzEsIDB4YzMsIDB4ZTUsIDB4MzEsIDB4OTUsIDB4MmQsIDB4ZTV9IH0sCit7IDB4MDI1MCwJMTYsCXsweDMwLCAweDk1LCAweDJjLCAweDUwLCAweDE4LCAweDc0LCAweDAwLCAweDI1LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzfSB9LAoreyAweDAyNjAsCTE2LAl7MHg3NCwgMHhjZCwgMHhmMCwgMHgwNSwgMHgzMSwgMHhlNSwgMHgzMSwgMHg3MCwgMHgwMiwgMHgwNSwgMHgzMCwgMHg4MCwgMHhkZCwgMHhhZiwgMHgyOSwgMHhhZX0gfSwKK3sgMHgwMjcwLAkxNiwJezB4MjgsIDB4YWQsIDB4MmQsIDB4N2EsIDB4N2YsIDB4NzksIDB4MDAsIDB4N2IsIDB4MDAsIDB4MTIsIDB4MGIsIDB4ZjQsIDB4OTAsIDB4N2YsIDB4YjUsIDB4ZTV9IH0sCit7IDB4MDI4MCwJMTYsCXsweDJkLCAweGYwLCAweGU1LCAweDJkLCAweDI1LCAweDI5LCAweGY1LCAweDI5LCAweGU1LCAweDJjLCAweDM1LCAweDI4LCAweGY1LCAweDI4LCAweGMzLCAweGU1fSB9LAoreyAweDAyOTAsCTE2LAl7MHgyYiwgMHg5NSwgMHgyZCwgMHhmNSwgMHgyYiwgMHhlNSwgMHgyYSwgMHg5NSwgMHgyYywgMHhmNSwgMHgyYSwgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHhmZn0gfSwKK3sgMHgwMmEwLAkxNiwJezB4YzQsIDB4NTQsIDB4MGYsIDB4NzUsIDB4MmUsIDB4MDAsIDB4ZjUsIDB4MmYsIDB4ZDMsIDB4OTQsIDB4MDAsIDB4ZTUsIDB4MmUsIDB4OTQsIDB4MDAsIDB4NTB9IH0sCit7IDB4MDJiMCwJMTYsCXsweDBjLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDIwLCAweGUxLCAweDAzLCAweDAyLCAweDAxLCAweGU3LCAweDgwLCAweGY0LCAweDkwLCAweDdmLCAweGI0fSB9LAoreyAweDAyYzAsCTE2LAl7MHhlMCwgMHgyMCwgMHhlMiwgMHgwMywgMHgwMiwgMHgwMSwgMHhlNywgMHg4MCwgMHhmNCwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHg2NCwgMHg0MCwgMHg2MH0gfSwKK3sgMHgwMmQwLAkxNiwJezB4MDMsIDB4MDIsIDB4MDMsIDB4NzgsIDB4ZTUsIDB4MmIsIDB4NDUsIDB4MmEsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDMsIDB4NzgsIDB4ZTQsIDB4OTAsIDB4N2Z9IH0sCit7IDB4MDJlMCwJMTYsCXsweGM1LCAweGYwLCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweDc1LCAweDJlLCAweDAwLCAweGY1LCAweDJmLCAweGQzfSB9LAoreyAweDAyZjAsCTE2LAl7MHg5NCwgMHgwMCwgMHhlNSwgMHgyZSwgMHg5NCwgMHgwMCwgMHg1MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhjNCwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwOSwgMHg4MH0gfSwKK3sgMHgwMzAwLAkxNiwJezB4ZjcsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4MjAsIDB4ZTMsIDB4ZjksIDB4OTAsIDB4N2YsIDB4YzUsIDB4ZTAsIDB4NzUsIDB4MmMsIDB4MDAsIDB4ZjV9IH0sCit7IDB4MDMxMCwJMTYsCXsweDJkLCAweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDY0LCAweGEzLCAweDcwLCAweDM0LCAweGY1LCAweDMwLCAweGY1LCAweDMxLCAweGMzLCAweGU1LCAweDMxfSB9LAoreyAweDAzMjAsCTE2LAl7MHg5NSwgMHgyZCwgMHhlNSwgMHgzMCwgMHg5NSwgMHgyYywgMHg1MCwgMHgzNCwgMHg3NCwgMHhjMCwgMHgyNSwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNH0gfSwKK3sgMHgwMzMwLAkxLAl7MHg3ZX0gfSwKK3sgMHgwMzMxLAkxNiwJezB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MjksIDB4MjUsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MzAsIDB4MzUsIDB4MjgsIDB4ZjUsIDB4ODN9IH0sCit7IDB4MDM0MSwJMTYsCXsweGVmLCAweGYwLCAweDA1LCAweDMxLCAweGU1LCAweDMxLCAweDcwLCAweDAyLCAweDA1LCAweDMwLCAweDgwLCAweGQwLCAweGFmLCAweDI5LCAweGFlLCAweDI4fSB9LAoreyAweDAzNTEsCTE2LAl7MHhhZCwgMHgyZCwgMHg3YSwgMHg3ZSwgMHg3OSwgMHhjMCwgMHg3YiwgMHhjMCwgMHgxMiwgMHgwYywgMHgzZiwgMHhlNSwgMHgyZCwgMHgyNSwgMHgyOSwgMHhmNX0gfSwKK3sgMHgwMzYxLAkxNiwJezB4MjksIDB4ZTUsIDB4MmMsIDB4MzUsIDB4MjgsIDB4ZjUsIDB4MjgsIDB4YzMsIDB4ZTUsIDB4MmIsIDB4OTUsIDB4MmQsIDB4ZjUsIDB4MmIsIDB4ZTUsIDB4MmF9IH0sCit7IDB4MDM3MSwJOSwJezB4OTUsIDB4MmMsIDB4ZjUsIDB4MmEsIDB4MDIsIDB4MDIsIDB4ZDQsIDB4YzMsIDB4MjJ9IH0sCit7IDB4MDM3YSwJMTYsCXsweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDcwLCAweDAzLCAweDAyLCAweDA0LCAweDUyLCAweDE0LCAweDcwLCAweDAzLCAweDAyLCAweDA0LCAweGNlLCAweDI0fSB9LAoreyAweDAzOGEsCTE2LAl7MHhmZSwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNSwgMHg0MiwgMHgyNCwgMHhmYiwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNCwgMHg0YywgMHgxNCwgMHg3MCwgMHgwM30gfSwKK3sgMHgwMzlhLAkxNiwJezB4MDIsIDB4MDQsIDB4NDYsIDB4MTQsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4M2EsIDB4MTQsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4NDAsIDB4MjR9IH0sCit7IDB4MDNhYSwJMTYsCXsweDA1LCAweDYwLCAweDAzLCAweDAyLCAweDA1LCAweDk2LCAweDEyLCAweDBlLCAweDQ0LCAweDQwLCAweDAzLCAweDAyLCAweDA1LCAweGEyLCAweDkwLCAweDdmfSB9LAoreyAweDAzYmEsCTE2LAl7MHhlYiwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxNiwgMHgxNCwgMHg2MCwgMHg0MCwgMHgyNCwgMHgwMiwgMHg3MCwgMHg2OSwgMHg3NCwgMHgxMSwgMHg5MH0gfSwKK3sgMHgwM2NhLAkxNiwJezB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4MDAsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTB9IH0sCit7IDB4MDNkYSwJMTYsCXsweGZmLCAweDEyLCAweDBiLCAweDU4LCAweDhiLCAweDI1LCAweDhhLCAweDI2LCAweDg5LCAweDI3LCAweGVhLCAweDQ5LCAweDYwLCAweDExLCAweGFlLCAweDAyfSB9LAoreyAweDAzZWEsCTE2LAl7MHhlZSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHhhZiwgMHgwMSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhMiwgMHg5MH0gfSwKK3sgMHgwM2ZhLAkxNiwJezB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MDh9IH0sCit7IDB4MDQwYSwJMTYsCXsweGJhLCAweDhiLCAweDI1LCAweDhhLCAweDI2LCAweDg5LCAweDI3LCAweGVhLCAweDQ5LCAweDYwLCAweDExLCAweGFlLCAweDAyLCAweGVlLCAweDkwLCAweDdmfSB9LAoreyAweDA0MWEsCTE2LAl7MHhkNCwgMHhmMCwgMHhhZiwgMHgwMSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhMiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMH0gfSwKK3sgMHgwNDJhLAkxNiwJezB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTIsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTJ9IH0sCit7IDB4MDQzYSwJMTYsCXsweDEyLCAweDBlLCAweDFmLCAweDAyLCAweDA1LCAweGEyLCAweDEyLCAweDBlLCAweDJkLCAweDAyLCAweDA1LCAweGEyLCAweDEyLCAweDBhLCAweGY3LCAweDAyfSB9LAoreyAweDA0NGEsCTE2LAl7MHgwNSwgMHhhMiwgMHgxMiwgMHgwZSwgMHgxMSwgMHgwMiwgMHgwNSwgMHhhMiwgMHgxMiwgMHgwZSwgMHg0NiwgMHg0MCwgMHgwMywgMHgwMiwgMHgwNSwgMHhhMn0gfSwKK3sgMHgwNDVhLAkxNiwJezB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4N2YsIDB4NjAsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MzEsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NWIsIDB4YTJ9IH0sCit7IDB4MDQ2YSwJMTYsCXsweDAwLCAweGU0LCAweDMzLCAweGZmLCAweDI1LCAweGUwLCAweGZmLCAweGEyLCAweDAyLCAweGU0LCAweDMzLCAweDRmLCAweDkwLCAweDdmLCAweDAwLCAweGYwfSB9LAoreyAweDA0N2EsCTE2LAl7MHhlNCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhMiwgMHhlNCwgMHg5MCwgMHg3ZiwgMHgwMH0gfSwKK3sgMHgwNDhhLAkxNiwJezB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTIsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTB9IH0sCit7IDB4MDQ5YSwJMTYsCXsweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0fSB9LAoreyAweDA0YWEsCTE2LAl7MHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwgMHhhM30gfSwKK3sgMHgwNGJhLAkxNiwJezB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTIsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDF9IH0sCit7IDB4MDRjYSwJMTYsCXsweGYwLCAweDAyLCAweDA1LCAweGEyLCAweDEyLCAweDBlLCAweDQ4LCAweDQwLCAweDAzLCAweDAyLCAweDA1LCAweGEyLCAweDkwLCAweDdmLCAweGU4LCAweGUwfSB9LAoreyAweDA0ZGEsCTE2LAl7MHgyNCwgMHhmZSwgMHg2MCwgMHgxZCwgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwNSwgMHhhMiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNH0gfSwKK3sgMHgwNGVhLAkxNiwJezB4MDEsIDB4MDUsIDB4YzIsIDB4MDAsIDB4MDIsIDB4MDUsIDB4YTIsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDV9IH0sCit7IDB4MDRmYSwJMTYsCXsweGEyLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDM4LCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0fSB9LAoreyAweDA1MGEsCTE2LAl7MHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3Zn0gfSwKK3sgMHgwNTFhLAkxNiwJezB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4MTMsIDB4MTMsIDB4MTMsIDB4NTQsIDB4MWZ9IH0sCit7IDB4MDUyYSwJMTYsCXsweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDkwLCAweDdmLCAweGQ3LCAweGYwLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDgwLCAweDY5LCAweDkwfSB9LAoreyAweDA1M2EsCTE2LAl7MHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHg2MCwgMHgxMiwgMHgwZSwgMHg0YSwgMHg1MCwgMHg1YiwgMHg5MCwgMHg3ZiwgMHhlOH0gfSwKK3sgMHgwNTRhLAkxNiwJezB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTgsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NGYsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDR9IH0sCit7IDB4MDU1YSwJMTYsCXsweGQyLCAweDAwLCAweDgwLCAweDQ0LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDNiLCAweDkwLCAweDdmLCAweGVhfSB9LAoreyAweDA1NmEsCTE2LAl7MHhlMCwgMHg3MCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMH0gfSwKK3sgMHgwNTdhLAkxNiwJezB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDF9IH0sCit7IDB4MDU4YSwJMTYsCXsweGYwLCAweDgwLCAweDE1LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDBjLCAweDEyLCAweDAxLCAweDAwLCAweDUwfSB9LAoreyAweDA1OWEsCTE2LAl7MHgwNywgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgyMn0gfSwKK3sgMHgwNWFhLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4YzB9IH0sCit7IDB4MDViYSwJMTYsCXsweGQwLCAweGMwLCAweDAwLCAweGMwLCAweDAxLCAweGMwLCAweDAyLCAweGMwLCAweDAzLCAweGMwLCAweDA2LCAweGMwLCAweDA3LCAweDkwLCAweDdmLCAweGE1fSB9LAoreyAweDA1Y2EsCTE2LAl7MHhlMCwgMHgzMCwgMHhlMiwgMHgwNiwgMHg3NSwgMHgwZCwgMHgwNiwgMHgwMiwgMHgwNiwgMHg3NiwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHgyMCwgMHhlMX0gfSwKK3sgMHgwNWRhLAkxNiwJezB4MGMsIDB4ZTUsIDB4MGQsIDB4NjQsIDB4MDIsIDB4NjAsIDB4MDYsIDB4NzUsIDB4MGQsIDB4MDcsIDB4MDIsIDB4MDYsIDB4NzYsIDB4YWYsIDB4MGQsIDB4ZWZ9IH0sCit7IDB4MDVlYSwJMTYsCXsweDI0LCAweGZlLCAweDYwLCAweDQ4LCAweDE0LCAweDYwLCAweDJjLCAweDI0LCAweGZlLCAweDYwLCAweDc3LCAweDI0LCAweDA0LCAweDYwLCAweDAzLCAweDAyfSB9LAoreyAweDA1ZmEsCTE2LAl7MHgwNiwgMHg3NiwgMHhhYiwgMHgwOSwgMHhhYSwgMHgwYSwgMHhhOSwgMHgwYiwgMHhhZiwgMHgwYywgMHgwNSwgMHgwYywgMHg4ZiwgMHg4MiwgMHg3NSwgMHg4M30gfSwKK3sgMHgwNjBhLAkxNiwJezB4MDAsIDB4MTIsIDB4MDgsIDB4MjIsIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZjAsIDB4ZTUsIDB4MGMsIDB4NjUsIDB4MDgsIDB4NzAsIDB4NWUsIDB4NzUsIDB4MGR9IH0sCit7IDB4MDYxYSwJMTYsCXsweDA1LCAweDgwLCAweDU5LCAweDkwLCAweDdmLCAweGE2LCAweGUwLCAweGFiLCAweDA5LCAweGFhLCAweDBhLCAweGE5LCAweDBiLCAweGFlLCAweDBjLCAweDhlfSB9LAoreyAweDA2MmEsCTE2LAl7MHg4MiwgMHg3NSwgMHg4MywgMHgwMCwgMHgxMiwgMHgwOCwgMHg0ZiwgMHg3NSwgMHgwZCwgMHgwMiwgMHg4MCwgMHg0MCwgMHhlNSwgMHgwOCwgMHgyNCwgMHhmZX0gfSwKK3sgMHgwNjNhLAkxNiwJezB4YjUsIDB4MGMsIDB4MDcsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4ZTUsIDB4MDgsIDB4MTQsIDB4YjUsIDB4MGMsIDB4MGF9IH0sCit7IDB4MDY0YSwJMTYsCXsweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweGU0LCAweGY1LCAweDBkLCAweDkwLCAweDdmLCAweGE2LCAweGUwLCAweGFiLCAweDA5fSB9LAoreyAweDA2NWEsCTE2LAl7MHhhYSwgMHgwYSwgMHhhOSwgMHgwYiwgMHhhZSwgMHgwYywgMHg4ZSwgMHg4MiwgMHg3NSwgMHg4MywgMHgwMCwgMHgxMiwgMHgwOCwgMHg0ZiwgMHgwNSwgMHgwY30gfSwKK3sgMHgwNjZhLAkxNiwJezB4ODAsIDB4MGEsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MGQsIDB4NTMsIDB4OTEsIDB4ZGYsIDB4ZDB9IH0sCit7IDB4MDY3YSwJMTYsCXsweDA3LCAweGQwLCAweDA2LCAweGQwLCAweDAzLCAweGQwLCAweDAyLCAweGQwLCAweDAxLCAweGQwLCAweDAwLCAweGQwLCAweGQwLCAweGQwLCAweDg2LCAweGQwfSB9LAoreyAweDA2OGEsCTEwLAl7MHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKK3sgMHgwNjk0LAkxNiwJezB4OGMsIDB4MzMsIDB4OGQsIDB4MzQsIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZTAsIDB4NDQsIDB4YzAsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MzUsIDB4ZjUsIDB4MzZ9IH0sCit7IDB4MDZhNCwJMTYsCXsweGMzLCAweGU1LCAweDM2LCAweDk1LCAweDM0LCAweGU1LCAweDM1LCAweDk1LCAweDMzLCAweDUwLCAweDY5LCAweGVmLCAweDI1LCAweDM2LCAweGY1LCAweDgyfSB9LAoreyAweDA2YjQsCTE2LAl7MHhlNSwgMHgzNSwgMHgzZSwgMHhmNSwgMHg4MywgMHg3NCwgMHhmZiwgMHhmMCwgMHhmNCwgMHg2MCwgMHgwMiwgMHhjMywgMHgyMiwgMHhlZiwgMHgyNSwgMHgzNn0gfSwKK3sgMHgwNmM0LAkxNiwJezB4ZjUsIDB4ODIsIDB4ZTUsIDB4MzUsIDB4M2UsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4NjAsIDB4MDIsIDB4YzMsIDB4MjIsIDB4ZWYsIDB4MjUsIDB4MzZ9IH0sCit7IDB4MDZkNCwJMTYsCXsweGY1LCAweDgyLCAweGU1LCAweDM1LCAweDNlLCAweGY1LCAweDgzLCAweDc0LCAweGFhLCAweGYwLCAweDY0LCAweGFhLCAweDYwLCAweDAyLCAweGMzLCAweDIyfSB9LAoreyAweDA2ZTQsCTE2LAl7MHhlZiwgMHgyNSwgMHgzNiwgMHhmNSwgMHg4MiwgMHhlNSwgMHgzNSwgMHgzZSwgMHhmNSwgMHg4MywgMHg3NCwgMHg1NSwgMHhmMCwgMHg2NCwgMHg1NSwgMHg2MH0gfSwKK3sgMHgwNmY0LAkxNiwJezB4MDIsIDB4YzMsIDB4MjIsIDB4YWQsIDB4MzYsIDB4ZTUsIDB4MzYsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MzUsIDB4M2UsIDB4ZjUsIDB4ODMsIDB4ZWR9IH0sCit7IDB4MDcwNCwJMTYsCXsweGYwLCAweGZjLCAweGFjLCAweDA1LCAweGVkLCAweDZjLCAweDYwLCAweDAyLCAweGMzLCAweDIyLCAweDA1LCAweDM2LCAweGU1LCAweDM2LCAweDcwLCAweDAyfSB9LAoreyAweDA3MTQsCTE2LAl7MHgwNSwgMHgzNSwgMHg4MCwgMHg4YywgMHhlNCwgMHhmNSwgMHgzNSwgMHhmNSwgMHgzNiwgMHhjMywgMHhlNSwgMHgzNiwgMHg5NSwgMHgzNCwgMHhlNSwgMHgzNX0gfSwKK3sgMHgwNzI0LAkxNiwJezB4OTUsIDB4MzMsIDB4NTAsIDB4MjcsIDB4ZWYsIDB4MjUsIDB4MzYsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MzUsIDB4M2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjV9IH0sCit7IDB4MDczNCwJMTYsCXsweDM2LCAweDYwLCAweDAyLCAweGMzLCAweDIyLCAweGVmLCAweDI1LCAweDM2LCAweGY1LCAweDgyLCAweGU1LCAweDM1LCAweDNlLCAweGY1LCAweDgzLCAweGU0fSB9LAoreyAweDA3NDQsCTEzLAl7MHhmMCwgMHgwNSwgMHgzNiwgMHhlNSwgMHgzNiwgMHg3MCwgMHgwMiwgMHgwNSwgMHgzNSwgMHg4MCwgMHhjZSwgMHhkMywgMHgyMn0gfSwKK3sgMHgwNzUxLAkxNiwJezB4YzIsIDB4MDQsIDB4ZDIsIDB4MDUsIDB4YzIsIDB4MDMsIDB4YzIsIDB4MDAsIDB4YzIsIDB4MDIsIDB4YzIsIDB4MDEsIDB4MTIsIDB4MGUsIDB4M2QsIDB4ZDJ9IH0sCit7IDB4MDc2MSwJMTYsCXsweGU4LCAweDQzLCAweGQ4LCAweDIwLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweGZmLCAweGYwLCAweDkwLCAweDdmLCAweGE5LCAweGYwLCAweDkwLCAweDdmfSB9LAoreyAweDA3NzEsCTE2LAl7MHhhYSwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhlMCwgMHg0NCwgMHhjMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5MywgMHg3NH0gfSwKK3sgMHgwNzgxLAkxNiwJezB4MzAsIDB4ZjAsIDB4MTIsIDB4MGEsIDB4MTksIDB4OTAsIDB4N2YsIDB4YWYsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZTB9IH0sCit7IDB4MDc5MSwJMTYsCXsweDQ0LCAweDBkLCAweGYwLCAweGQyLCAweGFmLCAweDEyLCAweDBlLCAweDM1LCAweDIwLCAweDAxLCAweDQyLCAweDc1LCAweDI0LCAweDAwLCAweDc1LCAweDIzfSB9LAoreyAweDA3YTEsCTE2LAl7MHgwMCwgMHg3NSwgMHgyMiwgMHgwMCwgMHg3NSwgMHgyMSwgMHgwMCwgMHg3ZiwgMHg0OCwgMHg3ZSwgMHg5MiwgMHg3ZCwgMHgwMCwgMHg3YywgMHgwMCwgMHhhYn0gfSwKK3sgMHgwN2IxLAkxNiwJezB4MjQsIDB4YWEsIDB4MjMsIDB4YTksIDB4MjIsIDB4YTgsIDB4MjEsIDB4YzMsIDB4MTIsIDB4MDgsIDB4YTksIDB4NTAsIDB4ZGIsIDB4MjAsIDB4MDEsIDB4ZDh9IH0sCit7IDB4MDdjMSwJMTYsCXsweDdhLCAweDAwLCAweDc5LCAweDAwLCAweDc4LCAweDAwLCAweGU1LCAweDI0LCAweDI0LCAweDAxLCAweGY1LCAweDI0LCAweGVhLCAweDM1LCAweDIzLCAweGY1fSB9LAoreyAweDA3ZDEsCTE2LAl7MHgyMywgMHhlOSwgMHgzNSwgMHgyMiwgMHhmNSwgMHgyMiwgMHhlOCwgMHgzNSwgMHgyMSwgMHhmNSwgMHgyMSwgMHg4MCwgMHhjYSwgMHgzMCwgMHgwMSwgMHgwNX0gfSwKK3sgMHgwN2UxLAkxNiwJezB4MTIsIDB4MDMsIDB4N2EsIDB4YzIsIDB4MDEsIDB4MzAsIDB4MDQsIDB4MWEsIDB4MTIsIDB4MGUsIDB4NDAsIDB4NTAsIDB4MTMsIDB4MTIsIDB4MDksIDB4MDB9IH0sCit7IDB4MDdmMSwJMTYsCXsweDMwLCAweDAwLCAweDA3LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDMwLCAweGU3LCAweGYzLCAweDEyLCAweDBkLCAweDRhLCAweDEyLCAweDBlLCAweDQyfSB9LAoreyAweDA4MDEsCTgsCXsweGMyLCAweDAzLCAweDEyLCAweDA4LCAweGZmLCAweDgwLCAweGQ2LCAweDIyfSB9LAoreyAweDA4MDksCTE2LAl7MHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhlNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMn0gfSwKK3sgMHgwODE5LAk5LAl7MHhlMywgMHgyMiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMn0gfSwKK3sgMHgwODIyLAkxNiwJezB4YmIsIDB4MDEsIDB4MGMsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTB9IH0sCit7IDB4MDgzMiwJMTYsCXsweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGU2LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyfSB9LAoreyAweDA4NDIsCTEzLAl7MHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMn0gfSwKK3sgMHgwODRmLAkxNiwJezB4ZjgsIDB4YmIsIDB4MDEsIDB4MGQsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTgsIDB4ZjB9IH0sCit7IDB4MDg1ZiwJMTYsCXsweDIyLCAweDUwLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGM4LCAweGY2LCAweDIyLCAweGJiLCAweGZlLCAweDA1LCAweGU5LCAweDI1LCAweDgyLCAweGM4fSB9LAoreyAweDA4NmYsCTIsCXsweGYyLCAweDIyfSB9LAoreyAweDA4NzEsCTE2LAl7MHhiYiwgMHgwMSwgMHgxMCwgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHhmMH0gfSwKK3sgMHgwODgxLAkxNiwJezB4YTMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDksIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ODYsIDB4ZjAsIDB4MDgsIDB4ZTYsIDB4MjIsIDB4YmIsIDB4ZmV9IH0sCit7IDB4MDg5MSwJMTYsCXsweDBhLCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweGY1LCAweGYwLCAweDA4LCAweGUyLCAweDIyLCAweGU1LCAweDgzLCAweDJhLCAweGY1LCAweDgzfSB9LAoreyAweDA4YTEsCTgsCXsweGU5LCAweDkzLCAweGY1LCAweGYwLCAweGEzLCAweGU5LCAweDkzLCAweDIyfSB9LAoreyAweDA4YTksCTE2LAl7MHhlYiwgMHg5ZiwgMHhmNSwgMHhmMCwgMHhlYSwgMHg5ZSwgMHg0MiwgMHhmMCwgMHhlOSwgMHg5ZCwgMHg0MiwgMHhmMCwgMHhlOCwgMHg5YywgMHg0NSwgMHhmMH0gfSwKK3sgMHgwOGI5LAkxLAl7MHgyMn0gfSwKK3sgMHgwOGJhLAkyLAl7MHg4ZiwgMHgyOH0gfSwKK3sgMHgwOGJjLAkxNiwJezB4ZTQsIDB4ZjUsIDB4MjksIDB4NzUsIDB4MmEsIDB4ZmYsIDB4NzUsIDB4MmIsIDB4MTEsIDB4NzUsIDB4MmMsIDB4MzIsIDB4YWIsIDB4MmEsIDB4YWEsIDB4MmJ9IH0sCit7IDB4MDhjYywJMTYsCXsweGE5LCAweDJjLCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweDA4LCAweDIyLCAweGI0LCAweDAzLCAweDFkLCAweGFmLCAweDI5LCAweDA1LCAweDI5LCAweGVmfSB9LAoreyAweDA4ZGMsCTE2LAl7MHhiNSwgMHgyOCwgMHgwMSwgMHgyMiwgMHgxMiwgMHgwOCwgMHgwOSwgMHg3ZSwgMHgwMCwgMHgyOSwgMHhmZiwgMHhlZSwgMHgzYSwgMHhhOSwgMHgwNywgMHg3NX0gfSwKK3sgMHgwOGVjLAkxNCwJezB4MmEsIDB4ZmYsIDB4ZjUsIDB4MmIsIDB4ODksIDB4MmMsIDB4ODAsIDB4ZDQsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4MDB9IH0sCit7IDB4MDhmYSwJMSwJezB4MjJ9IH0sCit7IDB4MDhmYiwJNCwJezB4NTMsIDB4ZDgsIDB4ZWYsIDB4MzJ9IH0sCit7IDB4MDhmZiwJMSwJezB4MjJ9IH0sCit7IDB4MDkwMCwJOSwJezB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ODAsIDB4NzR9IH0sCit7IDB4MDk3ZCwJMTYsCXsweDQzLCAweDg3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDIyfSB9LAoreyAweDA5OGQsCTEyLAl7MHg3OCwgMHg3ZiwgMHhlNCwgMHhmNiwgMHhkOCwgMHhmZCwgMHg3NSwgMHg4MSwgMHgzOSwgMHgwMiwgMHgwOSwgMHhkNH0gfSwKK3sgMHgwOTk5LAkxNiwJezB4MDIsIDB4MDcsIDB4NTEsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NDAsIDB4MDMsIDB4ZjYsIDB4ODAsIDB4MDEsIDB4ZjJ9IH0sCit7IDB4MDlhOSwJMTYsCXsweDA4LCAweGRmLCAweGY0LCAweDgwLCAweDI5LCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweDU0LCAweDA3LCAweDI0LCAweDBjLCAweGM4LCAweGMzLCAweDMzfSB9LAoreyAweDA5YjksCTE2LAl7MHhjNCwgMHg1NCwgMHgwZiwgMHg0NCwgMHgyMCwgMHhjOCwgMHg4MywgMHg0MCwgMHgwNCwgMHhmNCwgMHg1NiwgMHg4MCwgMHgwMSwgMHg0NiwgMHhmNiwgMHhkZn0gfSwKK3sgMHgwOWM5LAkxNiwJezB4ZTQsIDB4ODAsIDB4MGIsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4OTAsIDB4MGQsIDB4ZWMsIDB4ZTQsIDB4N2V9IH0sCit7IDB4MDlkOSwJMTYsCXsweDAxLCAweDkzLCAweDYwLCAweGJjLCAweGEzLCAweGZmLCAweDU0LCAweDNmLCAweDMwLCAweGU1LCAweDA5LCAweDU0LCAweDFmLCAweGZlLCAweGU0LCAweDkzfSB9LAoreyAweDA5ZTksCTE2LAl7MHhhMywgMHg2MCwgMHgwMSwgMHgwZSwgMHhjZiwgMHg1NCwgMHhjMCwgMHgyNSwgMHhlMCwgMHg2MCwgMHhhOCwgMHg0MCwgMHhiOCwgMHhlNCwgMHg5MywgMHhhM30gfSwKK3sgMHgwOWY5LAkxNiwJezB4ZmEsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2F9IH0sCit7IDB4MGEwOSwJMTYsCXsweGYwLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweGJlfSB9LAoreyAweDBhMTksCTE2LAl7MHhlNCwgMHg5MCwgMHg3ZiwgMHg5YywgMHhmMCwgMHg3ZiwgMHgwYSwgMHhmZSwgMHgxMiwgMHgwZCwgMHg5NCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHg4OX0gfSwKK3sgMHgwYTI5LAkxNiwJezB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4Y2YsIDB4ZjAsIDB4N2YsIDB4ZjQsIDB4N2UsIDB4MDEsIDB4MTIsIDB4MGQsIDB4OTQsIDB4OTAsIDB4N2Z9IH0sCit7IDB4MGEzOSwJMTYsCXsweDk2LCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweDdmLCAweDBhLCAweDdlLCAweDAwLCAweDEyLCAweDBkLCAweDk0LCAweDdmLCAweDA1LCAweDdlLCAweDAwfSB9LAoreyAweDBhNDksCTE2LAl7MHgxMiwgMHgwZCwgMHg5NCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlMCwgMHg1NCwgMHg3ZiwgMHhmMCwgMHg3ZiwgMHgwNX0gfSwKK3sgMHgwYTU5LAkxNiwJezB4N2UsIDB4MDAsIDB4MTIsIDB4MGQsIDB4OTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4N2YsIDB4MDUsIDB4N2UsIDB4MDB9IH0sCit7IDB4MGE2OSwJMTYsCXsweDEyLCAweDBkLCAweDk0LCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDdmLCAweDMyLCAweDdlLCAweDAwLCAweDEyLCAweDBkfSB9LAoreyAweDBhNzksCTE2LAl7MHg5NCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg3ZiwgMHgzMiwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwZCwgMHg5NCwgMHgyMn0gfSwKK3sgMHgwYTg5LAkxNiwJezB4NzUsIDB4MzIsIDB4MDEsIDB4ZTUsIDB4MzIsIDB4NjAsIDB4MWIsIDB4N2YsIDB4MDEsIDB4MTIsIDB4MGQsIDB4ZDcsIDB4N2YsIDB4MDAsIDB4N2UsIDB4MGV9IH0sCit7IDB4MGE5OSwJMTYsCXsweDdkLCAweDAwLCAweDdjLCAweDAxLCAweDEyLCAweDA2LCAweDk0LCAweGU0LCAweDMzLCAweGY1LCAweDMyLCAweDcwLCAweDA1LCAweDdmLCAweDBmLCAweDEyfSB9LAoreyAweDBhYTksCTE2LAl7MHgwZCwgMHhkNywgMHhlNSwgMHgzMiwgMHg2MCwgMHgxYiwgMHg3ZiwgMHgwMiwgMHgxMiwgMHgwZCwgMHhkNywgMHg3ZiwgMHgwMCwgMHg3ZSwgMHg4MCwgMHg3ZH0gfSwKK3sgMHgwYWI5LAkxNiwJezB4MDAsIDB4N2MsIDB4ODAsIDB4MTIsIDB4MDYsIDB4OTQsIDB4ZTQsIDB4MzMsIDB4ZjUsIDB4MzIsIDB4NzAsIDB4MDUsIDB4N2YsIDB4MGYsIDB4MTIsIDB4MGR9IH0sCit7IDB4MGFjOSwJMTYsCXsweGQ3LCAweGU1LCAweDMyLCAweDYwLCAweDFiLCAweDdmLCAweDAzLCAweDEyLCAweDBkLCAweGQ3LCAweDdmLCAweDAwLCAweDdlLCAweDIwLCAweDdkLCAweDQwfSB9LAoreyAweDBhZDksCTE2LAl7MHg3YywgMHg1YiwgMHgxMiwgMHgwNiwgMHg5NCwgMHhlNCwgMHgzMywgMHhmNSwgMHgzMiwgMHg3MCwgMHgwNSwgMHg3ZiwgMHgwZiwgMHgxMiwgMHgwZCwgMHhkN30gfSwKK3sgMHgwYWU5LAkxNCwJezB4ZTUsIDB4MzIsIDB4NjAsIDB4MDUsIDB4ZTQsIDB4ZmYsIDB4MTIsIDB4MGQsIDB4ZDcsIDB4ZTUsIDB4MzIsIDB4MjQsIDB4ZmYsIDB4MjJ9IH0sCit7IDB4MGFmNywJOCwJezB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MTAsIDB4ZDMsIDB4MjJ9IH0sCit7IDB4MGFmZiwJMSwJezB4MzJ9IH0sCit7IDB4MGIwMCwJMTYsCXsweDAyLCAweDBkLCAweDY0LCAweDAwLCAweDAyLCAweDBkLCAweGFiLCAweDAwLCAweDAyLCAweDBkLCAweDJmLCAweDAwLCAweDAyLCAweDBkLCAweDdjLCAweDAwfSB9LAoreyAweDBiMTAsCTE2LAl7MHgwMiwgMHgwZCwgMHhjMSwgMHgwMCwgMHgwMiwgMHgwYSwgMHhmZiwgMHgwMCwgMHgwMiwgMHgwZSwgMHg0YywgMHgwMCwgMHgwMiwgMHgwZSwgMHg0ZCwgMHgwMH0gfSwKK3sgMHgwYjIwLAkxNiwJezB4MDIsIDB4MGUsIDB4NGUsIDB4MDAsIDB4MDIsIDB4MGUsIDB4NGYsIDB4MDAsIDB4MDIsIDB4MGUsIDB4NTAsIDB4MDAsIDB4MDIsIDB4MGUsIDB4NTEsIDB4MDB9IH0sCit7IDB4MGIzMCwJMTYsCXsweDAyLCAweDBlLCAweDUyLCAweDAwLCAweDAyLCAweDBlLCAweDUzLCAweDAwLCAweDAyLCAweDBlLCAweDU0LCAweDAwLCAweDAyLCAweDBlLCAweDU1LCAweDAwfSB9LAoreyAweDBiNDAsCTE2LAl7MHgwMiwgMHgwZSwgMHg1NiwgMHgwMCwgMHgwMiwgMHgwZSwgMHg1NywgMHgwMCwgMHgwMiwgMHgwZSwgMHg1OCwgMHgwMCwgMHgwMiwgMHgwZSwgMHg1OSwgMHgwMH0gfSwKK3sgMHgwYjUwLAk4LAl7MHgwMiwgMHgwZSwgMHg1YSwgMHgwMCwgMHgwMiwgMHgwZSwgMHg1YiwgMHgwMH0gfSwKK3sgMHgwYjU4LAkxNiwJezB4ZTQsIDB4ZmUsIDB4NzUsIDB4MmEsIDB4ZmYsIDB4NzUsIDB4MmIsIDB4MTEsIDB4NzUsIDB4MmMsIDB4MTIsIDB4YWIsIDB4MmEsIDB4YWEsIDB4MmIsIDB4YTl9IH0sCit7IDB4MGI2OCwJMTYsCXsweDJjLCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweDA4LCAweDIyLCAweDY0LCAweDAyLCAweDcwLCAweDJkLCAweGFkLCAweDA2LCAweDBlLCAweGVkLCAweGI1fSB9LAoreyAweDBiNzgsCTE2LAl7MHgwNywgMHgwMSwgMHgyMiwgMHg5MCwgMHgwMCwgMHgwMiwgMHgxMiwgMHgwOCwgMHg3MSwgMHg4NSwgMHhmMCwgMHgyOCwgMHhmNSwgMHgyOSwgMHg2MiwgMHgyOH0gfSwKK3sgMHgwYjg4LAkxNiwJezB4ZTUsIDB4MjgsIDB4NjIsIDB4MjksIDB4ZTUsIDB4MjksIDB4NjIsIDB4MjgsIDB4MjksIDB4ZmQsIDB4ZTUsIDB4MjgsIDB4M2EsIDB4YTksIDB4MDUsIDB4NzV9IH0sCit7IDB4MGI5OCwJMTQsCXsweDJhLCAweGZmLCAweGY1LCAweDJiLCAweDg5LCAweDJjLCAweDgwLCAweGMzLCAweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDAwfSB9LAoreyAweDBiYTYsCTEsCXsweDIyfSB9LAoreyAweDBiYTcsCTE2LAl7MHhhYiwgMHgwNywgMHhhYSwgMHgwNiwgMHhhYywgMHgwNSwgMHhlNCwgMHhmZCwgMHhlNSwgMHgxMSwgMHg2MCwgMHgxMSwgMHhlYSwgMHhmZiwgMHhhZSwgMHgwNX0gfSwKK3sgMHgwYmI3LAkxNiwJezB4MGQsIDB4ZWUsIDB4MjQsIDB4MTAsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MGYsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ZWIsIDB4YWUsIDB4MDV9IH0sCit7IDB4MGJjNywJMTYsCXsweDBkLCAweDc0LCAweDEwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDBmLCAweGY1LCAweDgzLCAweGViLCAweGYwLCAweGFmLCAweDA1LCAweDBkfSB9LAoreyAweDBiZDcsCTE2LAl7MHg3NCwgMHgxMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwZiwgMHhmNSwgMHg4MywgMHhlYywgMHhmMCwgMHhhZiwgMHgwZiwgMHg3YSwgMHgwZn0gfSwKK3sgMHgwYmU3LAkxMywJezB4N2IsIDB4MTAsIDB4MTIsIDB4MGQsIDB4MTAsIDB4N2YsIDB4MGEsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MGQsIDB4OTQsIDB4MjJ9IH0sCit7IDB4MGJmNCwJMTYsCXsweDhlLCAweDMyLCAweDhmLCAweDMzLCAweDhkLCAweDM0LCAweDhhLCAweDM1LCAweDhiLCAweDM2LCAweGU0LCAweGZkLCAweGY1LCAweDM3LCAweGU1LCAweDExfSB9LAoreyAweDBjMDQsCTE2LAl7MHg2MCwgMHgxMiwgMHhlNSwgMHgzMiwgMHhmZiwgMHhhZSwgMHgwNSwgMHgwZCwgMHhlZSwgMHgyNCwgMHgxMywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwZn0gfSwKK3sgMHgwYzE0LAkxNiwJezB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ZTUsIDB4MzMsIDB4YWUsIDB4MDUsIDB4MGQsIDB4NzQsIDB4MTMsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzR9IH0sCit7IDB4MGMyNCwJMTYsCXsweDBmLCAweGY1LCAweDgzLCAweGU1LCAweDMzLCAweGYwLCAweGFmLCAweDBmLCAweDdhLCAweDBmLCAweDdiLCAweDEzLCAweDEyLCAweDBkLCAweDEwLCAweGFmfSB9LAoreyAweDBjMzQsCTExLAl7MHgwZiwgMHhhZCwgMHgzNCwgMHhhYiwgMHgzNiwgMHhhYSwgMHgzNSwgMHgxMiwgMHgwYywgMHhmMSwgMHgyMn0gfSwKK3sgMHgwYzNmLAkxNiwJezB4OGUsIDB4MzIsIDB4OGYsIDB4MzMsIDB4OGQsIDB4MzQsIDB4OGEsIDB4MzUsIDB4OGIsIDB4MzYsIDB4ZTQsIDB4ZjUsIDB4MzcsIDB4ZTUsIDB4MzcsIDB4YzN9IH0sCit7IDB4MGM0ZiwJMTYsCXsweDk1LCAweDM0LCAweDUwLCAweDIwLCAweDA1LCAweDMzLCAweGU1LCAweDMzLCAweGFlLCAweDMyLCAweDcwLCAweDAyLCAweDA1LCAweDMyLCAweDE0LCAweGZmfSB9LAoreyAweDBjNWYsCTE2LAl7MHhlNSwgMHgzNiwgMHgyNSwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgzNSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZCwgMHgxMiwgMHgwYiwgMHhhN30gfSwKK3sgMHgwYzZmLAk1LAl7MHgwNSwgMHgzNywgMHg4MCwgMHhkOSwgMHgyMn0gfSwKK3sgMHgwYzc0LAkxNiwJezB4YTksIDB4MDcsIDB4ZTUsIDB4MGQsIDB4NzAsIDB4MjUsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ZTksIDB4MjUsIDB4ZTB9IH0sCit7IDB4MGM4NCwJMTYsCXsweDQ0LCAweDAxLCAweDkwLCAweDdmLCAweGE2LCAweGYwLCAweDhkLCAweDA4LCAweGFmLCAweDAzLCAweGE5LCAweDA3LCAweDc1LCAweDA5LCAweDAxLCAweDhhfSB9LAoreyAweDBjOTQsCTEzLAl7MHgwYSwgMHg4OSwgMHgwYiwgMHhlNCwgMHhmNSwgMHgwYywgMHg3NSwgMHgwZCwgMHgwMywgMHhkMywgMHgyMiwgMHhjMywgMHgyMn0gfSwKK3sgMHgwY2ExLAkxNiwJezB4YTksIDB4MDcsIDB4ZTUsIDB4MGQsIDB4NzAsIDB4MjMsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ZTksIDB4MjUsIDB4ZTB9IH0sCit7IDB4MGNiMSwJMTYsCXsweDkwLCAweDdmLCAweGE2LCAweGYwLCAweDhkLCAweDA4LCAweGFmLCAweDAzLCAweGE5LCAweDA3LCAweDc1LCAweDA5LCAweDAxLCAweDhhLCAweDBhLCAweDg5fSB9LAoreyAweDBjYzEsCTExLAl7MHgwYiwgMHhlNCwgMHhmNSwgMHgwYywgMHg3NSwgMHgwZCwgMHgwMSwgMHhkMywgMHgyMiwgMHhjMywgMHgyMn0gfSwKK3sgMHgwY2NjLAkxNiwJezB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MDYsIDB4MDQsIDB4ZTAsIDB4NDR9IH0sCit7IDB4MGNkYywJMTYsCXsweDAyLCAweGYwLCAweDdmLCAweGQwLCAweDdlLCAweDA3LCAweDEyLCAweDBkLCAweDk0LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGY3LCAweGYwfSB9LAoreyAweDBjZWMsCTUsCXsweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweDIyfSB9LAoreyAweDBjZjEsCTE2LAl7MHgxMiwgMHgwYywgMHg3NCwgMHhlNSwgMHgwZCwgMHgyNCwgMHhmYSwgMHg2MCwgMHgxMCwgMHgxNCwgMHg2MCwgMHgwNywgMHgyNCwgMHgwNywgMHg3MCwgMHhmM30gfSwKK3sgMHgwZDAxLAkxNSwJezB4N2YsIDB4MDgsIDB4MjIsIDB4ZTQsIDB4ZjUsIDB4MGQsIDB4N2YsIDB4MDcsIDB4MjIsIDB4ZTQsIDB4ZjUsIDB4MGQsIDB4N2YsIDB4MDYsIDB4MjJ9IH0sCit7IDB4MGQxMCwJMTYsCXsweDEyLCAweDBjLCAweGExLCAweGU1LCAweDBkLCAweDI0LCAweGZhLCAweDYwLCAweDEwLCAweDE0LCAweDYwLCAweDA3LCAweDI0LCAweDA3LCAweDcwLCAweGYzfSB9LAoreyAweDBkMjAsCTE1LAl7MHg3ZiwgMHgwOCwgMHgyMiwgMHhlNCwgMHhmNSwgMHgwZCwgMHg3ZiwgMHgwNywgMHgyMiwgMHhlNCwgMHhmNSwgMHgwZCwgMHg3ZiwgMHgwNiwgMHgyMn0gfSwKK3sgMHgwZDJmLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4OTAsIDB4N2YsIDB4YzQsIDB4ZTQsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2Z9IH0sCit7IDB4MGQzZiwJMTEsCXsweGFiLCAweDc0LCAweDA0LCAweGYwLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoreyAweDBkNGEsCTE2LAl7MHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHgzMCwgMHhlNywgMHgxMiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg3ZiwgMHgxNCwgMHg3ZSwgMHgwMCwgMHgxMn0gfSwKK3sgMHgwZDVhLAkxMCwJezB4MGQsIDB4OTQsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4MjJ9IH0sCit7IDB4MGQ2NCwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGQyLCAweDAxLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDAxfSB9LAoreyAweDBkNzQsCTgsCXsweGYwLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoreyAweDBkN2MsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhkMiwgMHgwMywgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwOH0gfSwKK3sgMHgwZDhjLAk4LAl7MHhmMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKK3sgMHgwZDk0LAkxNiwJezB4OGUsIDB4MzgsIDB4OGYsIDB4MzksIDB4ZTUsIDB4MzksIDB4MTUsIDB4MzksIDB4YWUsIDB4MzgsIDB4NzAsIDB4MDIsIDB4MTUsIDB4MzgsIDB4NGUsIDB4NjB9IH0sCit7IDB4MGRhNCwJNywJezB4MDUsIDB4MTIsIDB4MGUsIDB4MDAsIDB4ODAsIDB4ZWUsIDB4MjJ9IH0sCit7IDB4MGRhYiwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDAyLCAweGYwLCAweGQwfSB9LAoreyAweDBkYmIsCTYsCXsweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoreyAweDBkYzEsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgxMCwgMHhmMCwgMHhkMH0gfSwKK3sgMHgwZGQxLAk2LAl7MHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKK3sgMHgwZGQ3LAkxNiwJezB4YWUsIDB4MDcsIDB4N2YsIDB4MjEsIDB4N2QsIDB4MDEsIDB4NzQsIDB4MDAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MGYsIDB4YWIsIDB4ODJ9IH0sCit7IDB4MGRlNywJNSwJezB4ZmEsIDB4MTIsIDB4MGQsIDB4MTAsIDB4MjJ9IH0sCit7IDB4MGRlYywJMTYsCXsweDUwLCAweDBmLCAweDAwLCAweGMwLCAweGY5LCAweGE0LCAweGIwLCAweDk5LCAweDkyLCAweDgyLCAweGY4LCAweDgwLCAweDk4LCAweDg4LCAweDgzLCAweGM2fSB9LAoreyAweDBkZmMsCTMsCXsweGExLCAweDg2LCAweDhlfSB9LAoreyAweDBkZmYsCTEsCXsweDAwfSB9LAoreyAweDBlMDAsCTE2LAl7MHg3NCwgMHgwMCwgMHhmNSwgMHg4NiwgMHg5MCwgMHhmZCwgMHhhNSwgMHg3YywgMHgwNSwgMHhhMywgMHhlNSwgMHg4MiwgMHg0NSwgMHg4MywgMHg3MCwgMHhmOX0gfSwKK3sgMHgwZTEwLAkxLAl7MHgyMn0gfSwKK3sgMHgwZTExLAkxNCwJezB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MTAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDMsIDB4MjJ9IH0sCit7IDB4MGUxZiwJMTQsCXsweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDBlLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweGQzLCAweDIyfSB9LAoreyAweDBlMmQsCTgsCXsweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDBlLCAweGQzLCAweDIyfSB9LAoreyAweDBlMzUsCTgsCXsweGU0LCAweGY1LCAweDBkLCAweGQyLCAweGU5LCAweGQyLCAweGFmLCAweDIyfSB9LAoreyAweDBlM2QsCTMsCXsweGQyLCAweDAwLCAweDIyfSB9LAoreyAweDBlNDAsCTIsCXsweGQzLCAweDIyfSB9LAoreyAweDBlNDIsCTIsCXsweGQzLCAweDIyfSB9LAoreyAweDBlNDQsCTIsCXsweGQzLCAweDIyfSB9LAoreyAweDBlNDYsCTIsCXsweGQzLCAweDIyfSB9LAoreyAweDBlNDgsCTIsCXsweGQzLCAweDIyfSB9LAoreyAweDBlNGEsCTIsCXsweGQzLCAweDIyfSB9LAoreyAweDBlNGMsCTEsCXsweDMyfSB9LAoreyAweDBlNGQsCTEsCXsweDMyfSB9LAoreyAweDBlNGUsCTEsCXsweDMyfSB9LAoreyAweDBlNGYsCTEsCXsweDMyfSB9LAoreyAweDBlNTAsCTEsCXsweDMyfSB9LAoreyAweDBlNTEsCTEsCXsweDMyfSB9LAoreyAweDBlNTIsCTEsCXsweDMyfSB9LAoreyAweDBlNTMsCTEsCXsweDMyfSB9LAoreyAweDBlNTQsCTEsCXsweDMyfSB9LAoreyAweDBlNTUsCTEsCXsweDMyfSB9LAoreyAweDBlNTYsCTEsCXsweDMyfSB9LAoreyAweDBlNTcsCTEsCXsweDMyfSB9LAoreyAweDBlNTgsCTEsCXsweDMyfSB9LAoreyAweDBlNTksCTEsCXsweDMyfSB9LAoreyAweDBlNWEsCTEsCXsweDMyfSB9LAoreyAweDBlNWIsCTEsCXsweDMyfSB9LAoreyAweDExMDAsCTE2LAl7MHgxMiwgMHgwMSwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NywgMHgwNSwgMHgxMCwgMHgyNywgMHgwMSwgMHgwMCwgMHgwMSwgMHgwMn0gfSwKK3sgMHgxMTEwLAkxNiwJezB4MDAsIDB4MDEsIDB4MDksIDB4MDIsIDB4MjAsIDB4MDAsIDB4MDEsIDB4MDEsIDB4MDMsIDB4YTAsIDB4MDAsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MDJ9IH0sCit7IDB4MTEyMCwJMTYsCXsweGZmLCAweDAwLCAweDAwLCAweDA0LCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAyLCAweDAyLCAweDQwfSB9LAoreyAweDExMzAsCTE2LAl7MHgwMCwgMHgwMCwgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHgyNiwgMHgwMywgMHg0MSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2MywgMHgwMCwgMHg2OCwgMHgwMH0gfSwKK3sgMHgxMTQwLAkxNiwJezB4NmYsIDB4MDAsIDB4NzIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDMsIDB4MDAsIDB4NjgsIDB4MDAsIDB4NjksIDB4MDAsIDB4NzAsIDB4MDAsIDB4NzMsIDB4MDB9IH0sCit7IDB4MTE1MCwJMTYsCXsweDJjLCAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDYzLCAweDAwLCAweDJlLCAweDAwLCAweDI4LCAweDAzLCAweDQ2LCAweDAwfSB9LAoreyAweDExNjAsCTE2LAl7MHg2OSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2ZCwgMHgwMCwgMHg3NywgMHgwMCwgMHg2MSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2NSwgMHgwMCwgMHgyMCwgMHgwMH0gfSwKK3sgMHgxMTcwLAkxNiwJezB4NDYsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmQsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NTcsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NzIsIDB4MDB9IH0sCit7IDB4MTE4MCwJMTYsCXsweDZiLCAweDAwLCAweDczLCAweDAwLCAweDJhLCAweDAzLCAweDQzLCAweDAwLCAweDZmLCAweDAwLCAweDZlLCAweDAwLCAweDY2LCAweDAwLCAweDY5LCAweDAwfSB9LAoreyAweDExOTAsCTE2LAl7MHg2NywgMHgwMCwgMHg3NSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2MSwgMHgwMCwgMHg3NCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMH0gfSwKK3sgMHgxMWEwLAkxNiwJezB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjcsIDB4MDAsIDB4MjIsIDB4MDN9IH0sCit7IDB4MTFiMCwJMTYsCXsweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDc0LCAweDAwLCAweDY1LCAweDAwLCAweDcyLCAweDAwLCAweDY2LCAweDAwLCAweDYxLCAweDAwLCAweDYzLCAweDAwfSB9LAoreyAweDExYzAsCTE2LAl7MHg2NSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1MywgMHgwMCwgMHg3NCwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2NywgMHgwMH0gfSwKK3sgMHgxMWQwLAkyLAl7MHgwMCwgMHgwMH0gfSwKK3sgMHhmZmZmLAkwLAl7MHgwMH0gfQorfTsKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL3hpcmNvbV9wZ3MuUyBiL2RyaXZlcnMvdXNiL3NlcmlhbC94aXJjb21fcGdzLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDVkOTlkZAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC94aXJjb21fcGdzLlMKQEAgLTAsMCArMSwxMTkyIEBACisvKiAgJElkOiBsb29wLnMsdiAxLjIzIDIwMDAvMDMvMjAgMDk6NDk6MDYgd2FybmVyIEV4cCAkCisgKiAKKyAqICBGaXJtd2FyZSBmb3IgdGhlIEtleXNwYW4gUERBIFNlcmlhbCBBZGFwdGVyLCBhIFVTQiBzZXJpYWwgcG9ydCBiYXNlZCBvbgorICogIHRoZSBFelVTQiBtaWNyb2NvbnRyb2xsZXIuCisgKiAKKyAqICAoQykgQ29weXJpZ2h0IDIwMDAgQnJpYW4gV2FybmVyIDx3YXJuZXJAbG90aGFyLmNvbT4KKyAqIAorICogCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAJaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIAl0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogCShhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiAKKyAqICAiS2V5c3BhbiBQREEgU2VyaWFsIEFkYXB0ZXIiIGlzIHByb2JhYmx5IGEgY29weXJpZ2h0IG9mIEtleXNwYW4sIHRoZQorICogIGNvbXBhbnkuCisgKiAKKyAqICBUaGlzIHNlcmlhbCBhZGFwdGVyIGlzIGJhc2ljYWxseSBhbiBFelVTQiBjaGlwIGFuZCBhbiBSUy0yMzIgbGluZSBkcml2ZXIKKyAqICBpbiBhIGxpdHRsZSB3aWRnZXQgdGhhdCBoYXMgYSBEQi05IG9uIG9uZSBlbmQgYW5kIGEgVVNCIHBsdWcgb24gdGhlIG90aGVyLgorICogIEl0IHVzZXMgdGhlIEV6VVNCJ3MgaW50ZXJuYWwgVUFSVDAgKHVzaW5nIHRoZSBwaW5zIGZyb20gUG9ydCBDKSBhbmQgdGltZXIyCisgKiAgYXMgYSBiYXVkLXJhdGUgZ2VuZXJhdG9yLiBUaGUgd2lyaW5nIGlzOgorICogICBQQzAvUnhEMCA8LSByeGQgKERCOSBwaW4gMikgICAgICAgICBQQzQgPC0gZHNyIHBpbiA2CisgKiAgIFBDMS9UeEQwIC0+IHR4ZCBwaW4gMyAgICAgICAgICAgICAgIFBDNSA8LSByaSAgcGluIDkKKyAqICAgUEMyICAgICAgLT4gcnRzIHBpbiA3ICAgICAgICAgICAgICAgUEM2IDwtIGRjZCBwaW4gMQorICogICBQQzMgICAgICA8LSBjdHMgcGluIDggICAgICAgICAgICAgICBQQzcgLT4gZHRyIHBpbiA0CisgKiAgIFBCMSAtPiBsaW5lIGRyaXZlciBzdGFuZGJ5CisgKgorICogIFRoZSBFelVTQiByZWdpc3RlciBjb25zdGFudHMgYmVsb3cgY29tZSBmcm9tIHRoZWlyIGV4Y2VsbGVudCBkb2N1bWVudGF0aW9uCisgKiAgYW5kIHNhbXBsZSBjb2RlICh3aGljaCB1c2VkIHRvIGJlIGF2YWlsYWJsZSBhdCB3d3cuYW5jaG9yY2hpcHMuY29tLCBidXQKKyAqICB0aGF0IGhhcyBub3cgYmVlbiBhYnNvcmJlZCBpbnRvIEN5cHJlc3MnIHNpdGUgYW5kIHRoZSBDRC1ST00gY29udGVudHMKKyAqICBkb24ndCBhcHBlYXIgdG8gYmUgYXZhaWxhYmxlIG9ubGluZSBhbnltb3JlKS4gSWYgd2UgZ2V0IG11bHRpcGxlCisgKiAgRXpVU0ItYmFzZWQgZHJpdmVycyBpbnRvIHRoZSBrZXJuZWwsIGl0IG1pZ2h0IGJlIHVzZWZ1bCB0byBwdWxsIHRoZW0gb3V0CisgKiAgaW50byBhIHNlcGFyYXRlIC5oIGZpbGUuCisgKiAKKyAqIFRIRU9SWSBPRiBPUEVSQVRJT046CisgKgorICogICBUaGVyZSBhcmUgdHdvIDI1Ni1ieXRlIHJpbmcgYnVmZmVycywgb25lIGZvciB0eCwgb25lIGZvciByeC4KKyAqCisgKiAgIEVQMm91dCBpcyBwdXJlIHR4IGRhdGEuIFdoZW4gaXQgYXBwZWFycywgdGhlIGRhdGEgaXMgY29waWVkIGludG8gdGhlIHR4CisgKiAgIHJpbmcgYW5kIHNlcmlhbCB0cmFuc21pc3Npb24gaXMgc3RhcnRlZCBpZiBpdCB3YXNuJ3QgYWxyZWFkeSBydW5uaW5nLiBUaGUKKyAqICAgInR4IGJ1ZmZlciBlbXB0eSIgaW50ZXJydXB0IG1heSBraWNrIG9mZiBhbm90aGVyIGNoYXJhY3RlciBpZiB0aGUgcmluZworICogICBzdGlsbCBoYXMgZGF0YS4gSWYgdGhlIGhvc3QgaXMgdHgtYmxvY2tlZCBiZWNhdXNlIHRoZSByaW5nIGZpbGxlZCB1cCwKKyAqICAgaXQgd2lsbCByZXF1ZXN0IGEgInR4IHVudGhyb3R0bGUiIGludGVycnVwdC4gSWYgc2VuZGluZyBhIHNlcmlhbCBjaGFyYWN0ZXIKKyAqICAgZW1wdGllcyB0aGUgcmluZyBiZWxvdyB0aGUgZGVzaXJlZCB0aHJlc2hvbGQsIHdlIHNldCBhIGJpdCB0aGF0IHdpbGwgc2VuZAorICogICB1cCB0aGUgdHggdW50aHJvdHRsZSBtZXNzYWdlIGFzIHNvb24gYXMgdGhlIHJ4IGJ1ZmZlciBiZWNvbWVzIGZyZWUuCisgKgorICogICBFUDJpbiAoaW50ZXJydXB0KSBpcyB1c2VkIHRvIHNlbmQgYm90aCByeCBjaGFycyBhbmQgcnggc3RhdHVzIG1lc3NhZ2VzCisgKiAgIChvbmx5ICJ0eCB1bnRocm90dGxlIiBhdCB0aGlzIHRpbWUpIGJhY2sgdXAgdG8gdGhlIGhvc3QuIFRoZSBmaXJzdCBieXRlCisgKiAgIG9mIHRoZSByeCBtZXNzYWdlIGluZGljYXRlcyBkYXRhICgwKSBvciBzdGF0dXMgbXNnICgxKS4gU3RhdHVzIG1lc3NhZ2VzCisgKiAgIGFyZSBzZW50IGJlZm9yZSBhbnkgZGF0YS4KKyAqCisgKiAgIEluY29taW5nIHNlcmlhbCBjaGFyYWN0ZXJzIGFyZSBwdXQgaW50byB0aGUgcnggcmluZyBieSB0aGUgc2VyaWFsCisgKiAgIGludGVycnVwdCwgYW5kIHRoZSBFUDJpbiBidWZmZXIgc2VudCBpZiBpdCB3YXNuJ3QgYWxyZWFkeSBpbiB0cmFuc2l0LgorICogICBXaGVuIHRoZSBFUDJpbiBidWZmZXIgcmV0dXJucywgdGhlIGludGVycnVwdCBwcm9tcHRzIHVzIHRvIHNlbmQgbW9yZQorICogICByeCBjaGFycyAob3Igc3RhdHVzIG1lc3NhZ2VzKSBpZiB0aGV5IGFyZSBwZW5kaW5nLgorICoKKyAqICAgRGV2aWNlIGNvbnRyb2wgaGFwcGVucyB0aHJvdWdoICJ2ZW5kb3Igc3BlY2lmaWMiIGNvbnRyb2wgbWVzc2FnZXMgb24gRVAwLgorICogICBBbGwgbWVzc2FnZXMgYXJlIGRlc3RpbmVkIGZvciB0aGUgIkludGVyZmFjZSIgKHdpdGggdGhlIGluZGV4IGFsd2F5cyAwLAorICogICBzbyB0aGF0IGlmIHRoZWlyIHR3by1wb3J0IGRldmljZSBtaWdodCBzb21lZGF5IHVzZSBzaW1pbGFyIGZpcm13YXJlLCB3ZQorICogICBjYW4gdXNlIGluZGV4PTEgdG8gcmVmZXIgdG8gdGhlIHNlY29uZCBwb3J0KS4gVGhlIG1lc3NhZ2VzIGRlZmluZWQgYXJlOgorICoKKyAqICAgIGJSZXF1ZXN0ID0gMCA6IHNldCBiYXVkL2JpdHMvcGFyaXR5CisgKiAgICAgICAgICAgICAgIDEgOiB1bnVzZWQKKyAqICAgICAgICAgICAgICAgMiA6IHJlc2VydmVkIGZvciBzZXR0aW5nIEhXIGZsb3cgY29udHJvbCAoQ1RTUlRTKQorICogICAgICAgICAgICAgICAzIDogZ2V0L3NldCAibW9kZW0gaW5mbyIgKHBpbiBzdGF0ZXM6IERUUiwgUlRTLCBEQ0QsIFJJLCBldGMpCisgKiAgICAgICAgICAgICAgIDQgOiBzZXQgYnJlYWsgKG9uL29mZikKKyAqICAgICAgICAgICAgICAgNSA6IHJlc2VydmVkIGZvciByZXF1ZXN0aW5nIGludGVycnVwdHMgb24gcGluIHN0YXRlIGNoYW5nZQorICogICAgICAgICAgICAgICA2IDogcXVlcnkgYnVmZmVyIHJvb20gb3IgY2hhcnMgaW4gdHggYnVmZmVyCisgKiAgICAgICAgICAgICAgIDcgOiByZXF1ZXN0IHR4IHVudGhyb3R0bGUgaW50ZXJydXB0CisgKgorICogIFRoZSBob3N0LXNpZGUgZHJpdmVyIGlzIHNldCB0byByZWNvZ25pemUgdGhlIGRldmljZSBJRCB2YWx1ZXMgc3Rhc2hlZCBpbgorICogIHNlcmlhbCBFRVBST00gKDB4MDZjZCwgMHgwMTAzKSwgcHJvZ3JhbSB0aGlzIGZpcm13YXJlIGludG8gcGxhY2UsIHRoZW4KKyAqICBzdGFydCBpdCBydW5uaW5nLiBUaGlzIGZpcm13YXJlIHdpbGwgdXNlIEV6VVNCJ3MgInJlbnVtZXJhdGlvbiIgdHJpY2sgYnkKKyAqICBzaW11bGF0aW5nIGEgYnVzIGRpc2Nvbm5lY3QsIHRoZW4gcmVjb25uZWN0IHdpdGggYSBkaWZmZXJlbnQgZGV2aWNlIElECisgKiAgKGVuY29kZWQgaW4gdGhlIGRlc2NfZGV2aWNlIGRlc2NyaXB0b3IgYmVsb3cpLiBUaGUgaG9zdCBkcml2ZXIgdGhlbgorICogIHJlY29nbml6ZXMgdGhlIG5ldyBkZXZpY2UgSUQgYW5kIGdsdWVzIGl0IHRvIHRoZSByZWFsIHNlcmlhbCBkcml2ZXIgY29kZS4KKyAqCisgKiBVU0VGVUwgRE9DUzoKKyAqICBFelVTQiBUZWNobmljYWwgUmVmZXJlbmNlIE1hbnVhbDogPGh0dHA6Ly93d3cuYW5jaG9yY2hpcHMuY29tPgorICogIDgwNTEgbWFudWFsczogZXZlcnl3aGVyZSwgYnV0IHRyeSB3d3cuZGFsc2VtaS5jb20gYmVjYXVzZSB0aGUgRXpVU0IgaXMKKyAqICAgYmFzaWNhbGx5IHRoZSBEYWxsYXMgZW5oYW5jZWQgODA1MSBjb2RlLiBSZW1lbWJlciB0aGF0IHRoZSBFelVTQiBJTyBwb3J0cworICogICB1c2UgdG90YWxseSBkaWZmZXJlbnQgcmVnaXN0ZXJzIQorICogIFVTQiAxLjEgc3BlYzogd3d3LnVzYi5vcmcKKyAqCisgKiBIT1cgVE8gQlVJTEQ6CisgKiAgZ2NjIC14IGFzc2VtYmxlci13aXRoLWNwcCAtUCAtRSAtbyBrZXlzcGFuX3BkYS5hc20ga2V5c3Bhbl9wZGEucworICogIGFzMzEgLWwga2V5c3Bhbl9wZGEuYXNtCisgKiAgbXYga2V5c3Bhbl9wZGEub2JqIGtleXNwYW5fcGRhLmhleAorICogIHBlcmwgZXp1c2JfY29udmVydC5wbCBrZXlzcGFuX3BkYSA8IGtleXNwYW5fcGRhLmhleCA+IGtleXNwYW5fcGRhX2Z3LmgKKyAqIEdldCBhczMxIGZyb20gPGh0dHA6Ly93d3cucGpyYy5jb20vdGVjaC84MDUxL2luZGV4Lmh0bWw+LCBhbmQgaGFjayBvbiBpdAorICogYSBiaXQgdG8gbWFrZSBpdCBidWlsZC4KKyAqCisgKiBUSEFOS1M6CisgKiAgR3JlZyBLcm9haC1IYXJ0bWFuLCBmb3IgY29vcmRpbmF0aW5nIHRoZSB3aG9sZSB1c2Itc2VyaWFsIHRoaW5nLgorICogIEFuY2hvckNoaXBzLCBmb3IgbWFraW5nIHN1Y2ggYW4gaW5jcmVkaWJseSB1c2VmdWwgbGl0dGxlIG1pY3JvY29udHJvbGxlci4KKyAqICBLZXlTcGFuLCBmb3IgbWFraW5nIGEgaGFuZHksIGNoZWFwICgkNDApIHdpZGdldCB0aGF0IHdhcyBzbyBlYXN5IHRvIHRha2UKKyAqICAgICAgICAgICBhcGFydCBhbmQgdHJhY2Ugd2l0aCBhbiBvaG1tZXRlci4KKyAqCisgKiBUT0RPOgorICogIGxvdHMuIGdyZXAgZm9yIFRPRE8uIEludGVycnVwdCBzYWZldHkgbmVlZHMgc3RyZXNzLXRlc3RpbmcuIEJldHRlciBmbG93CisgKiAgY29udHJvbC4gSW50ZXJydXB0aW5nIGhvc3QgdXBvbiBjaGFuZ2UgaW4gRENELCBldGMsIGNvdW50aW5nIHRyYW5zaXRpb25zLgorICogIE5lZWQgdG8gZmluZCBhIHNhZmUgZGV2aWNlIGlkIHRvIHVzZSAodGhlIG9uZSB1c2VkIGJ5IHRoZSBLZXlzcGFuIGZpcm13YXJlCisgKiAgdW5kZXIgV2luZG93cyB3b3VsZCBiZSBpZGVhbC4uIGNhbiBhbnlvbmUgZmlndXJlIG91dCB3aGF0IGl0IGlzPykuIFBhcml0eS4KKyAqICBNb3JlIGJhdWQgcmF0ZXMuIE9oLCBhbmQgdGhlIHN0cmluZy1kZXNjcmlwdG9yLWxlbmd0aCBzaWxpY29uIGJ1ZworICogIHdvcmthcm91bmQgc2hvdWxkIGJlIGltcGxlbWVudGVkLCBidXQgSSdtIGxhenksIGFuZCB0aGUgY29uc2VxdWVuY2UgaXMKKyAqICB0aGF0IHRoZSBkZXZpY2UgbmFtZSBzdHJpbmdzIHRoYXQgc2hvdyB1cCBpbiB5b3VyIGtlcm5lbCBsb2cgd2lsbCBoYXZlCisgKiAgbG90cyBvZiB0cmFpbGluZyBiaW5hcnkgZ2FyYmFnZSBpbiB0aGVtIChhcHBlYXJzIGFzID8/Pz8pLiBEZXZpY2Ugc3RyaW5ncworICogIHNob3VsZCBiZSBtYWRlIG1vcmUgYWNjdXJhdGUuCisgKgorICogUXVlc3Rpb25zLCBidWdzLCBwYXRjaGVzIHRvIEJyaWFuLgorICoKKyAqICAtQnJpYW4gV2FybmVyIDx3YXJuZXJAbG90aGFyLmNvbT4KKyAqCisgKi8KKwkKKyNkZWZpbmUgSElHSCh4KSAoKCh4KSAmIDB4ZmYwMCkgLyAyNTYpCisjZGVmaW5lIExPVyh4KSAoKHgpICYgMHhmZikKKworI2RlZmluZSBkcGwxIDB4ODQKKyNkZWZpbmUgZHBoMSAweDg1CisjZGVmaW5lIGRwcyAweDg2CisKKzs7OyBvdXIgYml0IGFzc2lnbm1lbnRzCisjZGVmaW5lIFRYX1JVTk5JTkcgMAorI2RlZmluZSBET19UWF9VTlRIUk9UVExFIDEKKwkKKwk7OyBzdGFjayBmcm9tIDB4NjAgdG8gMHg3Zjogc2hvdWxkIHJlYWxseSBzZXQgU1AgdG8gMHg2MC0xLCBub3QgMHg2MAorI2RlZmluZSBTVEFDSyAjMHg2MC0xCisKKyNkZWZpbmUgRVhJRiAweDkxCisjZGVmaW5lIEVJRSAweGU4CisJLmZsYWcgRVVTQiwgRUlFLjAKKwkuZmxhZyBFUzAsIElFLjQKKworI2RlZmluZSBFUDBDUyAjMHg3ZmI0CisjZGVmaW5lIEVQMFNUQUxMYml0ICMweDAxCisjZGVmaW5lIElOMEJVRiAjMHg3ZjAwCisjZGVmaW5lIElOMEJDICMweDdmYjUKKyNkZWZpbmUgT1VUMEJVRiAjMHg3ZWMwCisjZGVmaW5lIE9VVDBCQyAjMHg3ZmM1CQkKKyNkZWZpbmUgSU4yQlVGICMweDdlMDAKKyNkZWZpbmUgSU4yQkMgIzB4N2ZiOQorI2RlZmluZSBJTjJDUyAjMHg3ZmI4CisjZGVmaW5lIE9VVDJCQyAjMHg3ZmM5CisjZGVmaW5lIE9VVDJDUyAjMHg3ZmM4CisjZGVmaW5lIE9VVDJCVUYgIzB4N2RjMAorI2RlZmluZSBJTjRCVUYgIzB4N2QwMAorI2RlZmluZSBJTjRCQyAjMHg3ZmJkCisjZGVmaW5lIElONENTICMweDdmYmMKKyNkZWZpbmUgT0VCICMweDdmOWQKKyNkZWZpbmUgT1VUQiAjMHg3Zjk3CisjZGVmaW5lIE9FQyAjMHg3ZjllCisjZGVmaW5lIE9VVEMgIzB4N2Y5OAorI2RlZmluZSBQSU5TQyAjMHg3ZjliCisjZGVmaW5lIFBPUlRCQ0ZHICMweDdmOTQKKyNkZWZpbmUgUE9SVENDRkcgIzB4N2Y5NQorI2RlZmluZSBPRUEJIzB4N2Y5YworI2RlZmluZSBJTjA3SVJRICMweDdmYTkKKyNkZWZpbmUgT1VUMDdJUlEgIzB4N2ZhYQorI2RlZmluZSBJTjA3SUVOICMweDdmYWMKKyNkZWZpbmUgT1VUMDdJRU4gIzB4N2ZhZAorI2RlZmluZSBVU0JJUlEgIzB4N2ZhYgorI2RlZmluZSBVU0JJRU4gIzB4N2ZhZQorI2RlZmluZSBVU0JCQVYgIzB4N2ZhZgorI2RlZmluZSBVU0JDUyAjMHg3ZmQ2CisjZGVmaW5lIFNVRFBUUkggIzB4N2ZkNAorI2RlZmluZSBTVURQVFJMICMweDdmZDUKKyNkZWZpbmUgU0VUVVBEQVQgIzB4N2ZlOAorCQkKKwk7OyB1c2IgaW50ZXJydXB0IDogZW5hYmxlIGlzIEVJRS4wICgweGU4KSwgZmxhZyBpcyBFWElGLjQgKDB4OTEpCisKKwkub3JnIDAKKwlsam1wIHN0YXJ0CisJOzsgaW50ZXJydXB0IHZlY3RvcnMKKwkub3JnIDIzSAorCWxqbXAgc2VyaWFsX2ludAorCS5ieXRlIDAKKwkKKwkub3JnIDQzSAorCWxqbXAgVVNCX0p1bXBfVGFibGUKKwkuYnl0ZSAwCQkJOyBmaWxsZWQgaW4gYnkgdGhlIFVTQiBjb3JlCisKKzs7OyBsb2NhbCB2YXJpYWJsZXMuIFRoZXNlIGFyZSBub3QgaW5pdGlhbGl6ZWQgcHJvcGVybHk6IGRvIGl0IGJ5IGhhbmQuCisJLm9yZyAzMEgKK3J4X3JpbmdfaW46CS5ieXRlIDAKK3J4X3Jpbmdfb3V0OgkuYnl0ZSAwCit0eF9yaW5nX2luOgkuYnl0ZSAwCit0eF9yaW5nX291dDoJLmJ5dGUgMAordHhfdW50aHJvdHRsZV90aHJlc2hvbGQ6CS5ieXRlIDAKKwkJCisJLm9yZyAweDEwMEgJCTsgd2FudHMgdG8gYmUgb24gYSBwYWdlIGJvdW5kYXJ5CitVU0JfSnVtcF9UYWJsZToKKwlsam1wCUlTUl9TdWRhdgk7IFNldHVwIERhdGEgQXZhaWxhYmxlCisJLmJ5dGUgMAorCWxqbXAJMAkJOyBTdGFydCBvZiBGcmFtZQorCS5ieXRlIDAKKwlsam1wCTAJCTsgU2V0dXAgRGF0YSBMb2FkaW5nCisJLmJ5dGUgMAorCWxqbXAJMAkJOyBHbG9iYWwgU3VzcGVuZAorCS5ieXRlIAkwCisJbGptcAkwCQk7IFVTQiBSZXNldCAgCQorCS5ieXRlCTAKKwlsam1wCTAJCTsgUmVzZXJ2ZWQKKwkuYnl0ZQkwCisJbGptcAkwCQk7IEVuZCBQb2ludCAwIEluCisJLmJ5dGUJMAorCWxqbXAJMAkJOyBFbmQgUG9pbnQgMCBPdXQKKwkuYnl0ZQkwCisJbGptcAkwCQk7IEVuZCBQb2ludCAxIEluCisJLmJ5dGUJMAorCWxqbXAJMAkJOyBFbmQgUG9pbnQgMSBPdXQKKwkuYnl0ZQkwCisJbGptcAlJU1JfRXAyaW4KKwkuYnl0ZQkwCisJbGptcAlJU1JfRXAyb3V0CisJLmJ5dGUJMAorCisKKwkub3JnIDB4MjAwCisJCQorc3RhcnQ6CW1vdiBTUCxTVEFDSy0xIDsgc2V0IHN0YWNrCisJOzsgY2xlYXIgbG9jYWwgdmFyaWFibGVzCisJY2xyIGEKKwltb3YgdHhfcmluZ19pbiwgYQorCW1vdiB0eF9yaW5nX291dCwgYQorCW1vdiByeF9yaW5nX2luLCBhCisJbW92IHJ4X3Jpbmdfb3V0LCBhCisJbW92IHR4X3VudGhyb3R0bGVfdGhyZXNob2xkLCBhCisJY2xyIFRYX1JVTk5JTkcKKwljbHIgRE9fVFhfVU5USFJPVFRMRQorCQorCTs7IGNsZWFyIGZpZm8gd2l0aCAiZmUiCisJbW92IHIxLCAwCisJbW92IGEsICMweGZlCisJbW92IGRwdHIsICN0eF9yaW5nCitjbGVhcl90eF9yaW5nX2xvb3A6CisJbW92eCBAZHB0ciwgYQorCWluYyBkcHRyCisJZGpueiByMSwgY2xlYXJfdHhfcmluZ19sb29wCisKKwltb3YgYSwgIzB4ZmQKKwltb3YgZHB0ciwgI3J4X3JpbmcKK2NsZWFyX3J4X3JpbmdfbG9vcDoKKwltb3Z4IEBkcHRyLCBhCisJaW5jIGRwdHIKKwlkam56IHIxLCBjbGVhcl9yeF9yaW5nX2xvb3AKKworOzs7IHR1cm4gb24gdGhlIFJTLTIzMiBkcml2ZXIgY2hpcCAoYnJpbmcgdGhlIFNUQU5EQlkgcGluIGxvdykKKzs7OyBvbiBYaXJjb20gdGhlIFNUQU5EQlkgaXMgd2lyZWQgdG8gUEI2IGFuZCBQQzQgCisJbW92IGRwdHIsIFBPUlRCQ0ZHCisgICAgICAgIG1vdiBhLCAjMHhCZgorICAgICAgICBtb3Z4IEBkcHRyLCBhCisJbW92IGRwdHIsIFBPUlRDQ0ZHCisgICAgICAgIG1vdiBhLCAjMHhlZgorICAgICAgICBtb3Z4IEBkcHRyLCBhCisJCisJOzsgc2V0IE9FQy40CisgICAgICAgIG1vdiBhLCAjMHgxMAorICAgICAgICBtb3YgZHB0cixPRUMKKyAgICAgICAgbW92eCBAZHB0cixhCisKKyAgICAgICAgOzsgY2xlYXIgUEM0CisgICAgICAgIG1vdiBhLCAjMHgwMAorICAgICAgICBtb3YgZHB0cixPVVRDCisgICAgICAgIG1vdnggQGRwdHIsYQorCisJOzsgc2V0IE9FQi42CisJbW92IGEsICMweDQwCisJbW92IGRwdHIsT0VCCisJbW92eCBAZHB0cixhCisKKwk7OyBjbGVhciBQQjYKKwltb3YgYSwgIzB4MDAKKwltb3YgZHB0cixPVVRCCisJbW92eCBAZHB0cixhCisKKwk7OyBzZXQgT0VDLlsxN10KKwltb3YgYSwgIzB4ODIKKwltb3YgZHB0cixPRUMKKwltb3Z4IEBkcHRyLGEKKworCisJOzsgc2V0IFBPUlRDQ0ZHLlswMV0gdG8gcm91dGUgVHhEMCxSeEQwIHRvIHNlcmlhbCBwb3J0CisJbW92IGRwdHIsIFBPUlRDQ0ZHCisJbW92IGEsICMweDAzCisJbW92eCBAZHB0ciwgYQorCQorCTs7IHNldCB1cCBpbnRlcnJ1cHRzLCBhdXRvdmVjdG9yaW5nCisJOzsgc2V0IEJLUFQKKwltb3YgZHB0ciwgVVNCQkFWCisJbW92eCBhLEBkcHRyCisJc2V0YiBhY2MuMAkJOyBBVkVOIGJpdCB0byAwCisJbW92eCBAZHB0ciwgYQorCisJbW92IGEsIzB4MDEJCTsgZW5hYmxlIFNVREFWOglzZXR1cCBkYXRhIGF2YWlsYWJsZSAoZm9yIGVwMCkKKwltb3YgZHB0ciwgVVNCSVJRCisJbW92eCBAZHB0ciwgYQkJOyBjbGVhciBTVURBVkkKKwltb3YgZHB0ciwgVVNCSUVOCisJbW92eCBAZHB0ciwgYQorCQorCW1vdiBkcHRyLCBJTjA3SUVOCisJbW92IGEsIzB4MDQJCTsgZW5hYmxlIElOMiBpbnQKKwltb3Z4IEBkcHRyLCBhCisJCisJbW92IGRwdHIsIE9VVDA3SUVOCisJbW92IGEsIzB4MDQJCTsgZW5hYmxlIE9VVDIgaW50CisJbW92eCBAZHB0ciwgYQorCW1vdiBkcHRyLCBPVVQyQkMKKwltb3Z4IEBkcHRyLCBhCQk7IGFybSBPVVQyCisKKzs7CW1vdiBhLCAjMHg4NAkJOyB0dXJuIG9uIFJUUywgRFRSCis7Owltb3YgZHB0cixPVVRDCis7Owltb3Z4IEBkcHRyLCBhCisKKwltb3YgYSwgIzB4NyAgICAgICAgICAgICA7IHR1cm4gb24gIERUUgorICAgICAgICBtb3YgZHB0cixVU0JCQVYKKyAgICAgICAgbW92eCBAZHB0ciwgYQorCisJbW92IGEsICMweDIwICAgICAgICAgICAgIDsgdHVybiBvbiB0aGUgUkVEIGxlZCAKKyAgICAgICAgbW92IGRwdHIsT0VBCisgICAgICAgIG1vdnggQGRwdHIsIGEKKworCW1vdiBhLCAjMHg4MCAgICAgICAgICAgIDsgdHVybiBvbiAgUlRTCisgICAgICAgIG1vdiBkcHRyLE9VVEMKKyAgICAgICAgbW92eCBAZHB0ciwgYQorCisJOzsgc2V0dXAgdGhlIHNlcmlhbCBwb3J0LiA5NjAwIDhOMS4KKwltb3YgYSwjMHg1MwkJOyBtb2RlIDEsIGVuYWJsZSByeCwgY2xlYXIgaW50CisJbW92IFNDT04sIGEKKwk7OyAgdXNpbmcgdGltZXIyLCBpbiAxNi1iaXQgYmF1ZC1yYXRlLWdlbmVyYXRvciBtb2RlCisJOzsgICAoeHRhbCAxMk1IeiwgaW50ZXJuYWwgZm9zYyAyNE1IeikKKwk7OyAgUkNBUDJILFJDQVAyTCA9IDY1NTM2IC0gZm9zYy8oMzIqYmF1ZCkKKwk7OyAgNTc2MDA6IDB4RkZGMi5GLCBzYXkgMHhGRkYzCisJOzsgICA5NjAwOiAweEZGQjEuRSwgc2F5IDB4RkZCMgorCTs7ICAgIDMwMDogMHhGNjNDCisjZGVmaW5lIEJBVUQgOTYwMAorI2RlZmluZSBCQVVEX1RJTUVPVVQocmF0ZSkgKDY1NTM2IC0gKDI0ICogMTAwMCAqIDEwMDApIC8gKDMyICogcmF0ZSkpCisjZGVmaW5lIEJBVURfSElHSChyYXRlKSBISUdIKEJBVURfVElNRU9VVChyYXRlKSkKKyNkZWZpbmUgQkFVRF9MT1cocmF0ZSkgTE9XKEJBVURfVElNRU9VVChyYXRlKSkKKwkJCisJbW92IFQyQ09OLCAjMDMwaAk7IHJjbGs9MSx0Y2xrPTEsY3A9MCx0cjI9MChlbmFibGUgbGF0ZXIpCisJbW92IHIzLCAjNQorCWFjYWxsIHNldF9iYXVkCisJc2V0YiBUUjIKKwltb3YgU0NPTiwgIzA1MGgKKwkKKyNpZiAwCisJbW92IHIxLCAjMHg0MAorCW1vdiBhLCAjMHg0MQorc2VuZDoJCisJbW92IFNCVUYsIGEKKwlpbmMgYQorCWFubCBhLCAjMHgzRgorCW9ybCBhLCAjMHg0MAorOwl4cmwgYSwgIzB4MDIKK3dhaXQxOgkKKwlqbmIgVEksIHdhaXQxCisJY2xyIFRJCisJZGpueiByMSwgc2VuZAorO2RvbmU6CXNqbXAgZG9uZQorCisjZW5kaWYKKwkKKwlzZXRiIEVVU0IKKwlzZXRiIEVBCisJc2V0YiBFUzAKKwk7YWNhbGwgZHVtcF9zdGF0CisKKwk7OyBoZXksIHdoYXQgc2F5IHdlIFJFTlVNRVJBVEUhIChUUk0gcC42MikKKwltb3YgYSwgIzAKKwltb3YgZHBzLCBhCisJbW92IGRwdHIsIFVTQkNTCisJbW92IGEsICMweDAyCQk7IERJU0NPTj0wLCBESVNDT0U9MCwgUkVOVU09MQorCW1vdnggQGRwdHIsIGEKKwk7OyBub3cgcHJlc2VuY2UgcGluIGlzIGZsb2F0aW5nLCBzaW11bGF0aW5nIGRpc2Nvbm5lY3QuIHdhaXQgMC41cworCW1vdiByMSwgIzQ2CityZW51bV93YWl0MToKKwltb3YgcjIsICMwCityZW51bV93YWl0MjoKKwltb3YgcjMsICMwCityZW51bV93YWl0MzoKKwlkam56IHIzLCByZW51bV93YWl0MworCWRqbnogcjIsIHJlbnVtX3dhaXQyCisJZGpueiByMSwgcmVudW1fd2FpdDEJOyB3YWl0IGFib3V0IG4qKDI1Nl4yKSA2TUh6IGNsb2NrcworCW1vdiBhLCAjMHgwNgkJOyBESVNDT049MCwgRElTQ09FPTEsIFJFTlVNPTEKKwltb3Z4IEBkcHRyLCBhCisJOzsgd2UgYXJlIGJhY2sgb25saW5lLiB0aGUgaG9zdCBkZXZpY2Ugd2lsbCBub3cgcmUtcXVlcnkgdXMKKwkKKwkKK21haW46CXNqbXAgbWFpbgorCisJCisKK0lTUl9TdWRhdjoKKwlwdXNoIGRwcworCXB1c2ggZHBsCisJcHVzaCBkcGgKKwlwdXNoIGRwbDEKKwlwdXNoIGRwaDEKKwlwdXNoIGFjYworCW1vdiBhLEVYSUYKKwljbHIgYWNjLjQKKwltb3YgRVhJRixhCQk7IGNsZWFyIElOVDIgZmlyc3QKKwltb3YgZHB0ciwgVVNCSVJRCTsgY2xlYXIgVVNCIGludAorCW1vdiBhLCMwMWgKKwltb3Z4IEBkcHRyLGEKKworCTs7IGdldCByZXF1ZXN0IHR5cGUKKwltb3YgZHB0ciwgU0VUVVBEQVQKKwltb3Z4IGEsIEBkcHRyCisJbW92IHIxLCBhCQk7IHIxID0gYm1SZXF1ZXN0VHlwZQorCWluYyBkcHRyCisJbW92eCBhLCBAZHB0cgorCW1vdiByMiwgYQkJOyByMiA9IGJSZXF1ZXN0CisJaW5jIGRwdHIKKwltb3Z4IGEsIEBkcHRyCisJbW92IHIzLCBhCQk7IHIzID0gd1ZhbHVlTAorCWluYyBkcHRyCisJbW92eCBhLCBAZHB0cgorCW1vdiByNCwgYQkJOyByNCA9IHdWYWx1ZUgKKworCTs7IG1haW4gc3dpdGNoIG9uIGJtUmVxdWVzdC50eXBlOiBzdGFuZGFyZCBvciB2ZW5kb3IKKwltb3YgYSwgcjEKKwlhbmwgYSwgIzB4NjAKKwljam5lIGEsICMweDAwLCBzZXR1cF9ibXJlcV90eXBlX25vdF9zdGFuZGFyZAorCTs7IHN0YW5kYXJkIHJlcXVlc3Q6IG5vdyBtYWluIHN3aXRjaCBpcyBvbiBiUmVxdWVzdAorCWxqbXAgc2V0dXBfYm1yZXFfaXNfc3RhbmRhcmQKKwkKK3NldHVwX2JtcmVxX3R5cGVfbm90X3N0YW5kYXJkOgkKKwk7OyBhIHN0aWxsIGhhcyBibXJlcSYweDYwCisJY2puZSBhLCAjMHg0MCwgc2V0dXBfYm1yZXFfdHlwZV9ub3RfdmVuZG9yCisJOzsgQW5jaG9yIHJlc2VydmVzIGJSZXF1ZXN0IDB4YTAtMHhhZiwgd2UgdXNlIHNtYWxsIG9uZXMKKwk7OyBzd2l0Y2ggb24gYlJlcXVlc3QuIGJtUmVxdWVzdCB3aWxsIGFsd2F5cyBiZSAweDQxIG9yIDB4YzEKKwljam5lIHIyLCAjMHgwMCwgc2V0dXBfY3RybF9ub3RfMDAKKwk7OyAwMCBpcyBzZXQgYmF1ZCwgd1ZhbHVlWzBdIGhhcyBiYXVkIHJhdGUgaW5kZXgKKwlsY2FsbCBzZXRfYmF1ZAkJOyBpbmRleCBpbiByMywgY2Fycnkgc2V0IGlmIGVycm9yCisJamMgc2V0dXBfYm1yZXFfdHlwZV9ub3Rfc3RhbmRhcmRfX2RvX3N0YWxsCisJbGptcCBzZXR1cF9kb25lX2Fjaworc2V0dXBfYm1yZXFfdHlwZV9ub3Rfc3RhbmRhcmRfX2RvX3N0YWxsOgorCWxqbXAgc2V0dXBfc3RhbGwKK3NldHVwX2N0cmxfbm90XzAwOgorCWNqbmUgcjIsICMweDAxLCBzZXR1cF9jdHJsX25vdF8wMQorCTs7IDAxIGlzIHJlc2VydmVkIGZvciBzZXQgYml0cyAocGFyaXR5KS4gVE9ETworCWxqbXAgc2V0dXBfc3RhbGwKK3NldHVwX2N0cmxfbm90XzAxOgorCWNqbmUgcjIsICMweDAyLCBzZXR1cF9jdHJsX25vdF8wMgorCTs7IDAyIGlzIHNldCBIVyBmbG93IGNvbnRyb2wuIFRPRE8KKwlsam1wIHNldHVwX3N0YWxsCitzZXR1cF9jdHJsX25vdF8wMjoKKwljam5lIHIyLCAjMHgwMywgc2V0dXBfY3RybF9ub3RfMDMKKwk7OyAwMyBpcyBjb250cm9sIHBpbnMgKFJUUywgRFRSKS4KKwlsam1wIGNvbnRyb2xfcGlucwk7IHdpbGwganVtcCB0byBzZXR1cF9kb25lX2FjaywKKwkJCQk7ICBvciBzZXR1cF9yZXR1cm5fb25lX2J5dGUKK3NldHVwX2N0cmxfbm90XzAzOgorCWNqbmUgcjIsICMweDA0LCBzZXR1cF9jdHJsX25vdF8wNAorCTs7IDA0IGlzIHNlbmQgYnJlYWsgKHJlYWxseSAidHVybiBicmVhayBvbi9vZmYiKS4gVE9ETworCWNqbmUgcjMsICMweDAwLCBzZXR1cF9jdHJsX2RvX2JyZWFrX29uCisJOzsgZG8gYnJlYWsgb2ZmOiByZXN0b3JlIFBPUlRDQ0ZHLjEgdG8gcmVjb25uZWN0IFR4RDAgdG8gc2VyaWFsIHBvcnQKKwltb3YgZHB0ciwgUE9SVENDRkcKKwltb3Z4IGEsIEBkcHRyCisJb3JsIGEsICMweDAyCisJbW92eCBAZHB0ciwgYQorCWxqbXAgc2V0dXBfZG9uZV9hY2sKK3NldHVwX2N0cmxfZG9fYnJlYWtfb246CisJOzsgZG8gYnJlYWsgb246IGNsZWFyIFBPUlRDQ0ZHLjAsIHNldCBUeEQgaGlnaCg/KSAoYjEgbG93KQorCW1vdiBkcHRyLCBPVVRDCisJbW92eCBhLCBAZHB0cgorCWFubCBhLCAjMHhmZAkJOyB+MHgwMgorCW1vdnggQGRwdHIsIGEKKwltb3YgZHB0ciwgUE9SVENDRkcKKwltb3Z4IGEsIEBkcHRyCisJYW5sIGEsICMweGZkCQk7IH4weDAyCisJbW92eCBAZHB0ciwgYQorCWxqbXAgc2V0dXBfZG9uZV9hY2sKK3NldHVwX2N0cmxfbm90XzA0OgorCWNqbmUgcjIsICMweDA1LCBzZXR1cF9jdHJsX25vdF8wNQorCTs7IDA1IGlzIHNldCBkZXNpcmVkIGludGVycnVwdCBiaXRtYXAuIFRPRE8KKwlsam1wIHNldHVwX3N0YWxsCitzZXR1cF9jdHJsX25vdF8wNToKKwljam5lIHIyLCAjMHgwNiwgc2V0dXBfY3RybF9ub3RfMDYKKwk7OyAwNiBpcyBxdWVyeSByb29tCisJY2puZSByMywgIzB4MDAsIHNldHVwX2N0cmxfMDZfbm90XzAwCisJOzsgMDYsIHdWYWx1ZVswXT0wIGlzIHF1ZXJ5IHdyaXRlX3Jvb20KKwltb3YgYSwgdHhfcmluZ19vdXQKKwlzZXRiIGMKKwlzdWJiIGEsIHR4X3JpbmdfaW4JOyBvdXQtMS1pbiA9IDI1NSAtIChpbi1vdXQpCisJbGptcCBzZXR1cF9yZXR1cm5fb25lX2J5dGUKK3NldHVwX2N0cmxfMDZfbm90XzAwOgorCWNqbmUgcjMsICMweDAxLCBzZXR1cF9jdHJsXzA2X25vdF8wMQorCTs7IDA2LCB3VmFsdWVbMF09MSBpcyBxdWVyeSBjaGFyc19pbl9idWZmZXIKKwltb3YgYSwgdHhfcmluZ19pbgorCWNsciBjCisJc3ViYiBhLCB0eF9yaW5nX291dAk7IGluLW91dAorCWxqbXAgc2V0dXBfcmV0dXJuX29uZV9ieXRlCitzZXR1cF9jdHJsXzA2X25vdF8wMToJCisJbGptcCBzZXR1cF9zdGFsbAorc2V0dXBfY3RybF9ub3RfMDY6CisJY2puZSByMiwgIzB4MDcsIHNldHVwX2N0cmxfbm90XzA3CisJOzsgMDcgaXMgcmVxdWVzdCB0eCB1bnRocm90dGxlIGludGVycnVwdAorCW1vdiB0eF91bnRocm90dGxlX3RocmVzaG9sZCwgcjM7IHdWYWx1ZVswXSBpcyB0aHJlc2hvbGQgdmFsdWUKKwlsam1wIHNldHVwX2RvbmVfYWNrCitzZXR1cF9jdHJsX25vdF8wNzoKKwlsam1wIHNldHVwX3N0YWxsCisJCitzZXR1cF9ibXJlcV90eXBlX25vdF92ZW5kb3I6CisJbGptcCBzZXR1cF9zdGFsbAorCisKK3NldHVwX2JtcmVxX2lzX3N0YW5kYXJkOgkKKwljam5lIHIyLCAjMHgwMCwgc2V0dXBfYnJlcV9ub3RfMDAKKwk7OyAwMDoJR2V0X1N0YXR1cyAoc3ViLXN3aXRjaCBvbiBibVJlcXVlc3RUeXBlOiBkZXZpY2UsIGVwLCBpbnQpCisJY2puZSByMSwgIzB4ODAsIHNldHVwX0dldF9TdGF0dXNfbm90X2RldmljZQorCTs7IEdldF9TdGF0dXMoZGV2aWNlKQorCTs7ICBhcmUgd2Ugc2VsZi1wb3dlcmVkPyBuby4gY2FuIHdlIGRvIHJlbW90ZSB3YWtldXA/IG5vCisJOzsgICBzbyByZXR1cm4gdHdvIHplcm8gYnl0ZXMuIFRoaXMgaXMgcmV1c2FibGUKK3NldHVwX3JldHVybl90d29femVyb19ieXRlczoKKwltb3YgZHB0ciwgSU4wQlVGCisJY2xyIGEKKwltb3Z4IEBkcHRyLCBhCisJaW5jIGRwdHIKKwltb3Z4IEBkcHRyLCBhCisJbW92IGRwdHIsIElOMEJDCisJbW92IGEsICMyCisJbW92eCBAZHB0ciwgYQorCWxqbXAgc2V0dXBfZG9uZV9hY2sKK3NldHVwX0dldF9TdGF0dXNfbm90X2RldmljZToKKwljam5lIHIxLCAjMHg4Miwgc2V0dXBfR2V0X1N0YXR1c19ub3RfZW5kcG9pbnQKKwk7OyBHZXRfU3RhdHVzKGVuZHBvaW50KQorCTs7ICBtdXN0IGdldCBzdGFsbCBiaXQgZm9yIGVwW3dJbmRleExdLCByZXR1cm4gdHdvIGJ5dGVzLCBiaXQgaW4gbHNiIDAKKwk7OyBmb3Igbm93OiBjaGVhdC4gVE9ETworCXNqbXAgc2V0dXBfcmV0dXJuX3R3b196ZXJvX2J5dGVzCitzZXR1cF9HZXRfU3RhdHVzX25vdF9lbmRwb2ludDoKKwljam5lIHIxLCAjMHg4MSwgc2V0dXBfR2V0X1N0YXR1c19ub3RfaW50ZXJmYWNlCisJOzsgR2V0X1N0YXR1cyhpbnRlcmZhY2UpOiByZXR1cm4gdHdvIHplcm9zCisJc2ptcCBzZXR1cF9yZXR1cm5fdHdvX3plcm9fYnl0ZXMKK3NldHVwX0dldF9TdGF0dXNfbm90X2ludGVyZmFjZToJCisJbGptcCBzZXR1cF9zdGFsbAorCQorc2V0dXBfYnJlcV9ub3RfMDA6CisJY2puZSByMiwgIzB4MDEsIHNldHVwX2JyZXFfbm90XzAxCisJOzsgMDE6CUNsZWFyX0ZlYXR1cmUgKHN1Yi1zd2l0Y2ggb24gd1ZhbHVlTDogc3RhbGwsIHJlbW90ZSB3YWtldXApCisJY2puZSByMywgIzB4MDAsIHNldHVwX0NsZWFyX0ZlYXR1cmVfbm90X3N0YWxsCisJOzsgQ2xlYXJfRmVhdHVyZShzdGFsbCkuIHNob3VsZCBjbGVhciBhIHN0YWxsIGJpdC4gVE9ETworCWxqbXAgc2V0dXBfc3RhbGwKK3NldHVwX0NsZWFyX0ZlYXR1cmVfbm90X3N0YWxsOgorCWNqbmUgcjMsICMweDAxLCBzZXR1cF9DbGVhcl9GZWF0dXJlX25vdF9yd2FrZQorCTs7IENsZWFyX0ZlYXR1cmUocmVtb3RlIHdha2V1cCkuIGlnbm9yZWQuCisJbGptcCBzZXR1cF9kb25lX2Fjaworc2V0dXBfQ2xlYXJfRmVhdHVyZV9ub3Rfcndha2U6CisJbGptcCBzZXR1cF9zdGFsbAorCQorc2V0dXBfYnJlcV9ub3RfMDE6CisJY2puZSByMiwgIzB4MDMsIHNldHVwX2JyZXFfbm90XzAzCisJOzsgMDM6CVNldF9GZWF0dXJlIChzdWItc3dpdGNoIG9uIHdWYWx1ZUw6IHN0YWxsLCByZW1vdGUgd2FrZXVwKQorCWNqbmUgcjMsICMweDAwLCBzZXR1cF9TZXRfRmVhdHVyZV9ub3Rfc3RhbGwKKwk7OyBTZXRfRmVhdHVyZShzdGFsbCkuIFNob3VsZCBzZXQgYSBzdGFsbCBiaXQuIFRPRE8KKwlsam1wIHNldHVwX3N0YWxsCitzZXR1cF9TZXRfRmVhdHVyZV9ub3Rfc3RhbGw6CisJY2puZSByMywgIzB4MDEsIHNldHVwX1NldF9GZWF0dXJlX25vdF9yd2FrZQorCTs7IFNldF9GZWF0dXJlKHJlbW90ZSB3YWtldXApLiBpZ25vcmVkLgorCWxqbXAgc2V0dXBfZG9uZV9hY2sKK3NldHVwX1NldF9GZWF0dXJlX25vdF9yd2FrZToKKwlsam1wIHNldHVwX3N0YWxsCisJCitzZXR1cF9icmVxX25vdF8wMzoJCisJY2puZSByMiwgIzB4MDYsIHNldHVwX2JyZXFfbm90XzA2CisJOzsgMDY6CUdldF9EZXNjcmlwdG9yIChzLXN3aXRjaCBvbiB3VmFsdWVIOiBkZXYsIGNvbmZpZ1tuXSwgc3RyaW5nW25dKQorCWNqbmUgcjQsICMweDAxLCBzZXR1cF9HZXRfRGVzY3JpcHRvcl9ub3RfZGV2aWNlCisJOzsgR2V0X0Rlc2NyaXB0b3IoZGV2aWNlKQorCW1vdiBkcHRyLCBTVURQVFJICisJbW92IGEsICNISUdIKGRlc2NfZGV2aWNlKQorCW1vdnggQGRwdHIsIGEKKwltb3YgZHB0ciwgU1VEUFRSTAorCW1vdiBhLCAjTE9XKGRlc2NfZGV2aWNlKQorCW1vdnggQGRwdHIsIGEKKwlsam1wIHNldHVwX2RvbmVfYWNrCitzZXR1cF9HZXRfRGVzY3JpcHRvcl9ub3RfZGV2aWNlOgorCWNqbmUgcjQsICMweDAyLCBzZXR1cF9HZXRfRGVzY3JpcHRvcl9ub3RfY29uZmlnCisJOzsgR2V0X0Rlc2NyaXB0b3IoY29uZmlnW25dKQorCWNqbmUgcjMsICMweDAwLCBzZXR1cF9zdGFsbDsgb25seSBoYW5kbGUgbj09MAorCTs7IEdldF9EZXNjcmlwdG9yKGNvbmZpZ1swXSkKKwltb3YgZHB0ciwgU1VEUFRSSAorCW1vdiBhLCAjSElHSChkZXNjX2NvbmZpZzEpCisJbW92eCBAZHB0ciwgYQorCW1vdiBkcHRyLCBTVURQVFJMCisJbW92IGEsICNMT1coZGVzY19jb25maWcxKQorCW1vdnggQGRwdHIsIGEKKwlsam1wIHNldHVwX2RvbmVfYWNrCitzZXR1cF9HZXRfRGVzY3JpcHRvcl9ub3RfY29uZmlnOgorCWNqbmUgcjQsICMweDAzLCBzZXR1cF9HZXRfRGVzY3JpcHRvcl9ub3Rfc3RyaW5nCisJOzsgR2V0X0Rlc2NyaXB0b3Ioc3RyaW5nW3dWYWx1ZUxdKQorCTs7ICBpZiAod1ZhbHVlTCA+PSBtYXhzdHJpbmdzKSBzdGFsbAorCW1vdiBhLCAjKChkZXNjX3N0cmluZ3NfZW5kLWRlc2Nfc3RyaW5ncykvMikKKwljbHIgYworCXN1YmIgYSxyMwkJOyBhPTQsIHIzID0gMC4uMyAuIGlmIGE8PTAgdGhlbiBzdGFsbAorCWpjICBzZXR1cF9zdGFsbAorCWp6ICBzZXR1cF9zdGFsbAorCW1vdiBhLCByMworCWFkZCBhLCByMwkJOyBhID0gMip3VmFsdWVMCisJbW92IGRwdHIsICNkZXNjX3N0cmluZ3MKKwlhZGQgYSwgZHBsCisJbW92IGRwbCwgYQorCW1vdiBhLCAjMAorCWFkZGMgYSwgZHBoCisJbW92IGRwaCwgYQkJOyBkcGggPSBkZXNjX3N0cmluZ3NbYV0uIGJpZyBlbmRpYW4hIChoYW5keSkKKwk7OyBpdCBsb29rcyBsaWtlIG15IGFkYXB0ZXIgdXNlcyBhIHJldmlzaW9uIG9mIHRoZSBFWlVTQiB0aGF0CisJOzsgY29udGFpbnMgInJldiBEIGVycmF0YSBudW1iZXIgOCIsIGFzIGhpbnRlZCBpbiB0aGUgRXpVU0IgZXhhbXBsZQorCTs7IGNvZGUuIEkgY2Fubm90IGZpbmQgYW4gYWN0dWFsIGVycmF0YSBkZXNjcmlwdGlvbiBvbiB0aGUgQ3lwcmVzcworCTs7IHdlYiBzaXRlLCBidXQgZnJvbSB0aGUgZXhhbXBsZSBjb2RlIGl0IGxvb2tzIGxpa2UgdGhpcyBidWcgY2F1c2VzCisJOzsgdGhlIGxlbmd0aCBvZiBzdHJpbmcgZGVzY3JpcHRvcnMgdG8gYmUgcmVhZCBpbmNvcnJlY3RseSwgcG9zc2libHkKKwk7OyBzZW5kaW5nIGJhY2sgbW9yZSBjaGFyYWN0ZXJzIHRoYW4gdGhlIGRlc2NyaXB0b3IgaGFzLiBUaGUgd29ya2Fyb3VuZAorCTs7IGlzIHRvIG1hbnVhbGx5IHNlbmQgb3V0IGFsbCBvZiB0aGUgZGF0YS4gVGhlIGNvbnNlcXVlbmNlIG9mIG5vdAorCTs7IHVzaW5nIHRoZSB3b3JrYXJvdW5kIGlzIHRoYXQgdGhlIHN0cmluZ3MgZ2F0aGVyZWQgYnkgdGhlIGtlcm5lbAorCTs7IGRyaXZlciBhcmUgdG9vIGxvbmcgYW5kIGFyZSBmaWxsZWQgd2l0aCB0cmFpbGluZyBnYXJiYWdlIChpbmNsdWRpbmcKKwk7OyBsZWZ0b3ZlciBzdHJpbmdzKS4gV3JpdGluZyB0aGlzIG91dCBieSBoYW5kIGlzIGEgbnVpc2FuY2UsIHNvIGZvcgorCTs7IG5vdyBJIHdpbGwganVzdCBsaXZlIHdpdGggdGhlIGJ1Zy4KKwltb3Z4IGEsIEBkcHRyCisJbW92IHIxLCBhCisJaW5jIGRwdHIKKwltb3Z4IGEsIEBkcHRyCisJbW92IHIyLCBhCisJbW92IGRwdHIsIFNVRFBUUkgKKwltb3YgYSwgcjEKKwltb3Z4IEBkcHRyLCBhCisJbW92IGRwdHIsIFNVRFBUUkwKKwltb3YgYSwgcjIKKwltb3Z4IEBkcHRyLCBhCisJOzsgZG9uZQorCWxqbXAgc2V0dXBfZG9uZV9hY2sKKwkKK3NldHVwX0dldF9EZXNjcmlwdG9yX25vdF9zdHJpbmc6CisJbGptcCBzZXR1cF9zdGFsbAorCQorc2V0dXBfYnJlcV9ub3RfMDY6CisJY2puZSByMiwgIzB4MDgsIHNldHVwX2JyZXFfbm90XzA4CisJOzsgR2V0X0NvbmZpZ3VyYXRpb24uIGFsd2F5cyAxLiByZXR1cm4gb25lIGJ5dGUuCisJOzsgdGhpcyBpcyByZXVzYWJsZQorCW1vdiBhLCAjMQorc2V0dXBfcmV0dXJuX29uZV9ieXRlOgkKKwltb3YgZHB0ciwgSU4wQlVGCisJbW92eCBAZHB0ciwgYQorCW1vdiBhLCAjMQorCW1vdiBkcHRyLCBJTjBCQworCW1vdnggQGRwdHIsIGEKKwlsam1wIHNldHVwX2RvbmVfYWNrCitzZXR1cF9icmVxX25vdF8wODoKKwljam5lIHIyLCAjMHgwOSwgc2V0dXBfYnJlcV9ub3RfMDkKKwk7OyAwOTogU2V0X0NvbmZpZ3VyYXRpb24uIGlnbm9yZWQuCisJbGptcCBzZXR1cF9kb25lX2Fjaworc2V0dXBfYnJlcV9ub3RfMDk6CisJY2puZSByMiwgIzB4MGEsIHNldHVwX2JyZXFfbm90XzBhCisJOzsgMGE6IEdldF9JbnRlcmZhY2UuIGdldCB0aGUgY3VycmVudCBhbHRzZXR0aW5nIGZvciBpbnRbd0luZGV4TF0KKwk7OyAgc2luY2Ugd2Ugb25seSBoYXZlIG9uZSBpbnRlcmZhY2UsIGlnbm9yZSB3SW5kZXhMLCByZXR1cm4gYSAwCisJbW92IGEsICMwCisJbGptcCBzZXR1cF9yZXR1cm5fb25lX2J5dGUKK3NldHVwX2JyZXFfbm90XzBhOgorCWNqbmUgcjIsICMweDBiLCBzZXR1cF9icmVxX25vdF8wYgorCTs7IDBiOiBTZXRfSW50ZXJmYWNlLiBzZXQgYWx0c2V0dGluZyBmb3IgaW50ZXJmYWNlW3dJbmRleExdLiBpZ25vcmVkCisJbGptcCBzZXR1cF9kb25lX2Fjaworc2V0dXBfYnJlcV9ub3RfMGI6CisJbGptcCBzZXR1cF9zdGFsbAorCisJCQorc2V0dXBfZG9uZV9hY2s6CQorCTs7IG5vdyBjbGVhciBIU05BSworCW1vdiBkcHRyLCBFUDBDUworCW1vdiBhLCAjMHgwMgorCW1vdnggQGRwdHIsIGEKKwlzam1wIHNldHVwX2RvbmUKK3NldHVwX3N0YWxsOgkKKwk7OyB1bmhhbmRsZWQuIFNUQUxMCisJO0VQMENTIHw9IGJtRVBTVEFMTAorCW1vdiBkcHRyLCBFUDBDUworCW1vdnggYSwgQGRwdHIKKwlvcmwgYSwgRVAwU1RBTExiaXQKKwltb3Z4IEBkcHRyLCBhCisJc2ptcCBzZXR1cF9kb25lCisJCitzZXR1cF9kb25lOgkKKwlwb3AgYWNjCisJcG9wIGRwaDEKKwlwb3AgZHBsMQorCXBvcCBkcGgKKwlwb3AgZHBsCisJcG9wIGRwcworCXJldGkKKworOzs7ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisJCitzZXRfYmF1ZDoJCQk7IGJhdWQgaW5kZXggaW4gcjMKKwk7OyB2ZXJpZnkgYSA8IDEwCisJbW92IGEsIHIzCisJamIgQUNDLjcsIHNldF9iYXVkX19iYWRiYXVkCisJY2xyIGMKKwlzdWJiIGEsICMxMAorCWpuYyBzZXRfYmF1ZF9fYmFkYmF1ZAorCW1vdiBhLCByMworCXJsIGEJCQk7IGEgPSBpbmRleCoyCisJYWRkIGEsICNMT1coYmF1ZF90YWJsZSkKKwltb3YgZHBsLCBhCisJbW92IGEsICNISUdIKGJhdWRfdGFibGUpCisJYWRkYyBhLCAjMAorCW1vdiBkcGgsIGEKKwk7OyBUT0RPOiBzaHV0IGRvd24geG1pdC9yZWNlaXZlCisJOzsgVE9ETzogd2FpdCBmb3IgY3VycmVudCB4bWl0IGNoYXIgdG8gbGVhdmUKKwk7OyBUT0RPOiBzaHV0IGRvd24gdGltZXIgdG8gYXZvaWQgcGFydGlhbC1jaGFyIGdsaXRjaAorCW1vdnggYSxAZHB0cgkJOyBCQVVEX0hJR0gKKwltb3YgUkNBUDJILCBhCisJbW92IFRIMiwgYQorCWluYyBkcHRyCisJbW92eCBhLEBkcHRyCQk7IEJBVURfTE9XCisJbW92IFJDQVAyTCwgYQorCW1vdiBUTDIsIGEKKwk7OyBUT0RPOiByZXN0YXJ0IHhtaXQvcmVjZWl2ZQorCTs7IFRPRE86IHJlZW5hYmxlIGludGVycnVwdHMsIHJlc3VtZSB0eCBpZiBwZW5kaW5nCisJY2xyIGMJCQk7IGM9MDogc3VjY2VzcworCXJldAorc2V0X2JhdWRfX2JhZGJhdWQ6CisJc2V0YiBjCQkJOyBjPTE6IGZhaWx1cmUKKwlyZXQKKwkKKzs7OyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorY29udHJvbF9waW5zOgorCWNqbmUgcjEsICMweDQxLCBjb250cm9sX3BpbnNfaW4KK2NvbnRyb2xfcGluc19vdXQ6CisJCTtUT0RPIEJLUFQgaXMgRFRSCisJbW92IGEsIHIzIDsgd1ZhbHVlWzBdIGhvbGRzIG5ldyBiaXRzOgliNyBpcyBuZXcgUlRTCisJeHJsIGEsICMweGZmCQk7IDEgbWVhbnMgYWN0aXZlLCAwViwgKzEyViA/CisJYW5sIGEsICMweDgwCisJbW92IHIzLCBhCisJbW92IGRwdHIsIE9VVEMKKwltb3Z4IGEsIEBkcHRyCQk7IG9ubHkgY2hhbmdlIGJpdCA3IAorCWFubCBhLCAjMHg3RgkJOyB+MHg4NAorCW9ybCBhLCByMworCW1vdnggQGRwdHIsIGEJCTsgb3RoZXIgcGlucyBhcmUgaW5wdXRzLCBiaXRzIGlnbm9yZWQKKwlsam1wIHNldHVwX2RvbmVfYWNrCitjb250cm9sX3BpbnNfaW46CisJbW92IGRwdHIsIFBJTlNDCisJbW92eCBhLCBAZHB0cgorCXhybCBhLCAjMHhmZgorCWxqbXAgc2V0dXBfcmV0dXJuX29uZV9ieXRlCisKKzs7OyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisJCitJU1JfRXAyaW46CisJcHVzaCBkcHMKKwlwdXNoIGRwbAorCXB1c2ggZHBoCisJcHVzaCBkcGwxCisJcHVzaCBkcGgxCisJcHVzaCBhY2MKKwltb3YgYSxFWElGCisJY2xyIGFjYy40CisJbW92IEVYSUYsYQkJOyBjbGVhciBJTlQyIGZpcnN0CisJbW92IGRwdHIsIElOMDdJUlEJOyBjbGVhciBVU0IgaW50CisJbW92IGEsIzA0aAorCW1vdnggQGRwdHIsYQorCisJbW92IGEsICMweDIwICAgICAgICAgICAgIDsgVHVybiBvZmYgdGhlIGdyZWVuIExFRAorICAgICAgICBtb3YgZHB0cixPRUEKKyAgICAgICAgbW92eCBAZHB0ciwgYQorCisKKwk7OyBkbyBzdHVmZgorCWxjYWxsIHN0YXJ0X2luCisKKwltb3YgYSwgIzB4MjAgICAgICAgICAgICAgOyBUdXJuIG9mZiB0aGUgZ3JlZW4gTEVECisgICAgICAgIG1vdiBkcHRyLE9FQQorICAgICAgICBtb3Z4IEBkcHRyLCBhCisKKworCQorCXBvcCBhY2MKKwlwb3AgZHBoMQorCXBvcCBkcGwxCisJcG9wIGRwaAorCXBvcCBkcGwKKwlwb3AgZHBzCisJcmV0aQorCitJU1JfRXAyb3V0OgorCXB1c2ggZHBzCisJcHVzaCBkcGwKKwlwdXNoIGRwaAorCXB1c2ggZHBsMQorCXB1c2ggZHBoMQorCXB1c2ggYWNjCisKKyAgICAgICAgbW92IGEsICMweDEwICAgICAgICAgICAgIDsgVHVybiB0aGUgZ3JlZW4gTEVECisgICAgICAgIG1vdiBkcHRyLE9FQQorICAgICAgICBtb3Z4IEBkcHRyLCBhCisKKworCisJbW92IGEsRVhJRgorCWNsciBhY2MuNAorCW1vdiBFWElGLGEJCTsgY2xlYXIgSU5UMiBmaXJzdAorCW1vdiBkcHRyLCBPVVQwN0lSUQk7IGNsZWFyIFVTQiBpbnQKKwltb3YgYSwjMDRoCisJbW92eCBAZHB0cixhCisKKwk7OyBkbyBzdHVmZgorCisJOzsgY29weSBkYXRhIGludG8gYnVmZmVyLiBmb3Igbm93LCBhc3N1bWUgd2Ugd2lsbCBoYXZlIGVub3VnaCBzcGFjZQorCW1vdiBkcHRyLCBPVVQyQkMJOyBnZXQgYnl0ZSBjb3VudAorCW1vdnggYSxAZHB0cgorCW1vdiByMSwgYQorCWNsciBhCisJbW92IGRwcywgYQorCW1vdiBkcHRyLCBPVVQyQlVGCTsgbG9hZCBEUFRSMCB3aXRoIHNvdXJjZQorCW1vdiBkcGgxLCAjSElHSCh0eF9yaW5nKQk7IGxvYWQgRFBUUjEgd2l0aCB0YXJnZXQKKwltb3YgZHBsMSwgdHhfcmluZ19pbgorT1VUX2xvb3A6CisJbW92eCBhLEBkcHRyCQk7IHJlYWQKKwlpbmMgZHBzCQkJOyBzd2l0Y2ggdG8gRFBUUjE6IHRhcmdldAorCWluYyBkcGwxCQk7IHRhcmdldCA9IHR4X3JpbmdfaW4rMQorCW1vdnggQGRwdHIsYQkJOyBzdG9yZQorCW1vdiBhLGRwbDEKKwljam5lIGEsIHR4X3Jpbmdfb3V0LCBPVVRfbm9fb3ZlcmZsb3cKKwlzam1wIE9VVF9vdmVyZmxvdworT1VUX25vX292ZXJmbG93OgkKKwlpbmMgdHhfcmluZ19pbgkJOyB0eF9yaW5nX2luKysKKwlpbmMgZHBzCQkJOyBzd2l0Y2ggdG8gRFBUUjA6IHNvdXJjZQorCWluYyBkcHRyCisJZGpueiByMSwgT1VUX2xvb3AKKwlzam1wIE9VVF9kb25lCitPVVRfb3ZlcmZsb3c6CisJOzsgc2lnbmFsIG92ZXJmbG93CisJOzsgZmFsbCB0aHJvdWdoCitPVVRfZG9uZToJCisJOzsgYWNrCisJbW92IGRwdHIsT1VUMkJDCisJbW92eCBAZHB0cixhCisKKwk7OyBzdGFydCB0eAorCWFjYWxsIG1heWJlX3N0YXJ0X3R4CisJO2FjYWxsIGR1bXBfc3RhdAorCisgICAgICAgIG1vdiBhLCAjMHgyMCAgICAgICAgICAgICA7IFR1cm4gb2ZmIHRoZSBncmVlbiBMRUQKKyAgICAgICAgbW92IGRwdHIsT0VBCisgICAgICAgIG1vdnggQGRwdHIsIGEKKwkKKwlwb3AgYWNjCisJcG9wIGRwaDEKKwlwb3AgZHBsMQorCXBvcCBkcGgKKwlwb3AgZHBsCisJcG9wIGRwcworCXJldGkKKworZHVtcF9zdGF0OgorCTs7IGZpbGwgaW4gRVA0aW4gd2l0aCBhIGRlYnVnZ2luZyBtZXNzYWdlOgorCTs7ICAgdHhfcmluZ19pbiwgdHhfcmluZ19vdXQsIHJ4X3JpbmdfaW4sIHJ4X3Jpbmdfb3V0CisJOzsgICB0eF9hY3RpdmUKKwk7OyAgIHR4X3JpbmdbMC4uMTVdCisJOzsgICAweGZjCisJOzsgICByeF9yaW5nWzAuLjE1XQorCWNsciBhCisJbW92IGRwcywgYQorCQorCW1vdiBkcHRyLCBJTjRDUworCW1vdnggYSwgQGRwdHIKKwlqYiBhY2MuMSwgZHVtcF9zdGF0X19kb25lOyBidXN5OiBjYW5ub3QgZHVtcCwgb2xkIG9uZSBzdGlsbCBwZW5kaW5nCisJbW92IGRwdHIsIElONEJVRgorCQorCW1vdiBhLCB0eF9yaW5nX2luCisJbW92eCBAZHB0ciwgYQorCWluYyBkcHRyCisJbW92IGEsIHR4X3Jpbmdfb3V0CisJbW92eCBAZHB0ciwgYQorCWluYyBkcHRyCisKKwltb3YgYSwgcnhfcmluZ19pbgorCW1vdnggQGRwdHIsIGEKKwlpbmMgZHB0cgorCW1vdiBhLCByeF9yaW5nX291dAorCW1vdnggQGRwdHIsIGEKKwlpbmMgZHB0cgorCQorCWNsciBhCisJam5iIFRYX1JVTk5JTkcsIGR1bXBfc3RhdF9fbm9fdHhfcnVubmluZworCWluYyBhCitkdW1wX3N0YXRfX25vX3R4X3J1bm5pbmc6CisJbW92eCBAZHB0ciwgYQorCWluYyBkcHRyCisJOzsgdHhfcmluZ1swLi4xNV0KKwlpbmMgZHBzCisJbW92IGRwdHIsICN0eF9yaW5nCTsgRFBUUjE6IHNvdXJjZQorCW1vdiByMSwgIzE2CitkdW1wX3N0YXRfX3R4X3JpbmdfbG9vcDoKKwltb3Z4IGEsIEBkcHRyCisJaW5jIGRwdHIKKwlpbmMgZHBzCisJbW92eCBAZHB0ciwgYQorCWluYyBkcHRyCisJaW5jIGRwcworCWRqbnogcjEsIGR1bXBfc3RhdF9fdHhfcmluZ19sb29wCisJaW5jIGRwcworCQorCW1vdiBhLCAjMHhmYworCW1vdnggQGRwdHIsIGEKKwlpbmMgZHB0cgorCQorCTs7IHJ4X3JpbmdbMC4uMTVdCisJaW5jIGRwcworCW1vdiBkcHRyLCAjcnhfcmluZwk7IERQVFIxOiBzb3VyY2UKKwltb3YgcjEsICMxNgorZHVtcF9zdGF0X19yeF9yaW5nX2xvb3A6CisJbW92eCBhLCBAZHB0cgorCWluYyBkcHRyCisJaW5jIGRwcworCW1vdnggQGRwdHIsIGEKKwlpbmMgZHB0cgorCWluYyBkcHMKKwlkam56IHIxLCBkdW1wX3N0YXRfX3J4X3JpbmdfbG9vcAorCQorCTs7IG5vdyBzZW5kIGl0CisJY2xyIGEKKwltb3YgZHBzLCBhCisJbW92IGRwdHIsIElONEJDCisJbW92IGEsICMzOAorCW1vdnggQGRwdHIsIGEKK2R1bXBfc3RhdF9fZG9uZToJCisJcmV0CisJCQorOzs7ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCQorbWF5YmVfc3RhcnRfdHg6CisJOzsgbWFrZSBzdXJlIHRoZSB0eCBwcm9jZXNzIGlzIHJ1bm5pbmcuCisJamIgVFhfUlVOTklORywgc3RhcnRfdHhfZG9uZQorc3RhcnRfdHg6CisJOzsgaXMgdGhlcmUgd29yayB0byBiZSBkb25lPworCW1vdiBhLCB0eF9yaW5nX2luCisJY2puZSBhLHR4X3Jpbmdfb3V0LCBzdGFydF90eF9fd29yaworCXJldAkJCTsgbm8gd29yaworc3RhcnRfdHhfX3dvcms6CQorCTs7IHR4IHdhcyBub3QgcnVubmluZy4gc2VuZCB0aGUgZmlyc3QgY2hhcmFjdGVyLCBzZXR1cCB0aGUgVEkgaW50CisJaW5jIHR4X3Jpbmdfb3V0CQk7IFsrK3R4X3Jpbmdfb3V0XQorCW1vdiBkcGgsICNISUdIKHR4X3JpbmcpCisJbW92IGRwbCwgdHhfcmluZ19vdXQKKwltb3Z4IGEsIEBkcHRyCisJbW92IHNidWYsIGEKKwlzZXRiIFRYX1JVTk5JTkcKK3N0YXJ0X3R4X2RvbmU6CisJOzsgY2FuIHdlIHVudGhyb3R0bGUgdGhlIGhvc3QgdHggcHJvY2Vzcz8KKwk7OyAgc3RlcCAxOiBkbyB3ZSBjYXJlPworCW1vdiBhLCAjMAorCWNqbmUgYSwgdHhfdW50aHJvdHRsZV90aHJlc2hvbGQsIHN0YXJ0X3R4X19tYXliZV91bnRocm90dGxlX3R4CisJOzsgbm9wZQorc3RhcnRfdHhfcmVhbGx5X2RvbmU6CisJcmV0CitzdGFydF90eF9fbWF5YmVfdW50aHJvdHRsZV90eDoKKwk7OyAgc3RlcCAyOiBpcyB0aGVyZSBub3cgcm9vbT8KKwltb3YgYSwgdHhfcmluZ19vdXQKKwlzZXRiIGMKKwlzdWJiIGEsIHR4X3JpbmdfaW4KKwk7OyBhIGlzIG5vdyB3cml0ZV9yb29tLiBJZiB0aHJlc2ggPj0gYSwgd2UgY2FuIHVudGhyb3R0bGUKKwljbHIgYworCXN1YmIgYSwgdHhfdW50aHJvdHRsZV90aHJlc2hvbGQKKwlqYyBzdGFydF90eF9yZWFsbHlfZG9uZQk7IG5vcGUKKwk7OyB5ZXMsIHdlIGNhbiB1bnRocm90dGxlLiByZW1vdmUgdGhlIHRocmVzaG9sZCBhbmQgbWFyayBhIHJlcXVlc3QKKwltb3YgdHhfdW50aHJvdHRsZV90aHJlc2hvbGQsICMwCisJc2V0YiBET19UWF9VTlRIUk9UVExFCisJOzsgcHJvZCByeCwgd2hpY2ggd2lsbCBhY3R1YWxseSBzZW5kIHRoZSBtZXNzYWdlIHdoZW4gaW4yIGJlY29tZXMgZnJlZQorCWxqbXAgc3RhcnRfaW4KKwkKKworc2VyaWFsX2ludDoKKwlwdXNoIGRwcworCXB1c2ggZHBsCisJcHVzaCBkcGgKKwlwdXNoIGRwbDEKKwlwdXNoIGRwaDEKKwlwdXNoIGFjYworCWpuYiBUSSwgc2VyaWFsX2ludF9fbm90X3R4CisJOzsgdHggZmluaXNoZWQuIHNlbmQgYW5vdGhlciBjaGFyYWN0ZXIgaWYgd2UgaGF2ZSBvbmUKKwljbHIgVEkJCQk7IGNsZWFyIGludAorCWNsciBUWF9SVU5OSU5HCisJbGNhbGwgc3RhcnRfdHgKK3NlcmlhbF9pbnRfX25vdF90eDoKKwlqbmIgUkksIHNlcmlhbF9pbnRfX25vdF9yeAorCWxjYWxsIGdldF9yeF9jaGFyCisJY2xyIFJJCQkJOyBjbGVhciBpbnQKK3NlcmlhbF9pbnRfX25vdF9yeDoJCisJOzsgcmV0dXJuCisJcG9wIGFjYworCXBvcCBkcGgxCisJcG9wIGRwbDEKKwlwb3AgZHBoCisJcG9wIGRwbAorCXBvcCBkcHMKKwlyZXRpCisKK2dldF9yeF9jaGFyOgorCW1vdiBkcGgsICNISUdIKHJ4X3JpbmcpCisJbW92IGRwbCwgcnhfcmluZ19pbgorCWluYyBkcGwJCQk7IHRhcmdldCA9IHJ4X3JpbmdfaW4rMQorCW1vdiBhLCBzYnVmCisJbW92eCBAZHB0ciwgYQorCTs7IGNoZWNrIGZvciBvdmVyZmxvdyBiZWZvcmUgaW5jcmVtZW50aW5nIHJ4X3JpbmdfaW4KKwltb3YgYSwgZHBsCisJY2puZSBhLCByeF9yaW5nX291dCwgZ2V0X3J4X2NoYXJfX25vX292ZXJmbG93CisJOzsgc2lnbmFsIG92ZXJmbG93CisJcmV0CitnZXRfcnhfY2hhcl9fbm9fb3ZlcmZsb3c6CQorCWluYyByeF9yaW5nX2luCisJOzsga2ljayBvZmYgVVNCIElOcGlwZQorCWFjYWxsIHN0YXJ0X2luCisJcmV0CisKK3N0YXJ0X2luOgorCTs7IGNoZWNrIGlmIHRoZSBpbnBpcGUgaXMgYWxyZWFkeSBydW5uaW5nLgorCW1vdiAgYSwjMHgxMAorCW1vdiBkcHRyLCBPRUEKKwltb3Z4IEBkcHRyLGEKKworCW1vdiBkcHRyLCBJTjJDUworCW1vdnggYSwgQGRwdHIKKwlqYiBhY2MuMSwgc3RhcnRfaW5fX2RvbmU7IGludCB3aWxsIGhhbmRsZSBpdAorCWpiIERPX1RYX1VOVEhST1RUTEUsIHN0YXJ0X2luX19kb190eF91bnRocm90dGxlCisJOzsgc2VlIGlmIHRoZXJlIGlzIGFueSB3b3JrIHRvIGRvLiBhIHNlcmlhbCBpbnRlcnJ1cHQgbWlnaHQgb2NjdXIKKwk7OyBkdXJpbmcgdGhpcyBzZXF1ZW5jZT8KKwltb3YgYSwgcnhfcmluZ19pbgorCWNqbmUgYSwgcnhfcmluZ19vdXQsIHN0YXJ0X2luX19oYXZlX3dvcmsKKwlyZXQJCQk7IG5vcGUKK3N0YXJ0X2luX19oYXZlX3dvcms6CQorCTs7IG5vdyBjb3B5IGFzIG11Y2ggZGF0YSBhcyBwb3NzaWJsZSBpbnRvIHRoZSBwaXBlLiA2MyBieXRlcyBtYXguCisJY2xyIGEKKwltb3YgZHBzLCBhCisJbW92IGRwaCwgI0hJR0gocnhfcmluZykJOyBsb2FkIERQVFIwIHdpdGggc291cmNlCisJaW5jIGRwcworCW1vdiBkcHRyLCBJTjJCVUYJOyBsb2FkIERQVFIxIHdpdGggdGFyZ2V0CisJbW92eCBAZHB0ciwgYQkJOyBpblswXSBzaWduYWxzIHRoYXQgcmVzdCBvZiBJTiBpcyByeCBkYXRhCisJaW5jIGRwdHIKKwlpbmMgZHBzCisJOzsgbG9vcCB1bnRpbCB3ZSBydW4gb3V0IG9mIGRhdGEsIG9yIHdlIGhhdmUgY29waWVkIDY0IGJ5dGVzCisJbW92IHIxLCAjMQkJOyBJTmJ1ZiBzaXplIGNvdW50ZXIKK3N0YXJ0X2luX19sb29wOgorCW1vdiBhLCByeF9yaW5nX2luCisJY2puZSBhLCByeF9yaW5nX291dCwgc3RhcnRfaW5sb2NhbF9pcnFfZW5hYmxlbGxfY29weWluZworCXNqbXAgc3RhcnRfaW5fX2tpY2sKK3N0YXJ0X2lubG9jYWxfaXJxX2VuYWJsZWxsX2NvcHlpbmc6CisJaW5jIHJ4X3Jpbmdfb3V0CisJbW92IGRwbCwgcnhfcmluZ19vdXQKKwltb3Z4IGEsIEBkcHRyCisJaW5jIGRwcworCW1vdnggQGRwdHIsIGEJCTsgd3JpdGUgaW50byBJTiBidWZmZXIKKwlpbmMgZHB0cgorCWluYyBkcHMKKwlpbmMgcjEKKwljam5lIHIxLCAjNjQsIHN0YXJ0X2luX19sb29wOyBsb29wCitzdGFydF9pbl9fa2ljazoKKwk7OyBlaXRoZXIgd2UgcmFuIG91dCBvZiBkYXRhLCBvciB3ZSBjb3BpZWQgNjQgYnl0ZXMuIHIxIGhhcyBieXRlIGNvdW50CisJOzsga2ljayBvZmYgSU4KKwltb3YgYSwgIzB4MTAgICAgICAgICAgICAgOyBUdXJuIHRoZSBncmVlbiBMRUQKKyAgICAgICAgbW92IGRwdHIsT0VBCisgICAgICAgIG1vdnggQGRwdHIsIGEKKwltb3YgZHB0ciwgSU4yQkMKKwltb3YgYSwgcjEKKwlqeiBzdGFydF9pbl9fZG9uZQorCW1vdnggQGRwdHIsIGEKKwk7OyBkb25lCitzdGFydF9pbl9fZG9uZToKKwk7YWNhbGwgZHVtcF9zdGF0CisJcmV0CitzdGFydF9pbl9fZG9fdHhfdW50aHJvdHRsZToKKwk7OyBzcGVjaWFsIHNlcXVlbmNlOiBzZW5kIGEgdHggdW50aHJvdHRsZSBtZXNzYWdlCisJY2xyIERPX1RYX1VOVEhST1RUTEUKKwljbHIgYQorCW1vdiBkcHMsIGEKKwltb3YgZHB0ciwgSU4yQlVGCisJbW92IGEsICMxCisJbW92eCBAZHB0ciwgYQorCWluYyBkcHRyCisJbW92IGEsICMyCisJbW92eCBAZHB0ciwgYQorCW1vdiBkcHRyLCBJTjJCQworCW1vdnggQGRwdHIsIGEKKwlyZXQKKwkKK3B1dGNoYXI6CisJY2xyIFRJCisJbW92IFNCVUYsIGEKK3B1dGNoYXJfd2FpdDoKKwlqbmIgVEksIHB1dGNoYXJfd2FpdAorCWNsciBUSQorCXJldAorCisJCitiYXVkX3RhYmxlOgkJCTsgYmF1ZF9oaWdoLCB0aGVuIGJhdWRfbG93CisJOzsgYmF1ZFswXTogMTEwCisJLmJ5dGUgQkFVRF9ISUdIKDExMCkKKwkuYnl0ZSBCQVVEX0xPVygxMTApCisJOzsgYmF1ZFsxXTogMzAwCisJLmJ5dGUgQkFVRF9ISUdIKDMwMCkKKwkuYnl0ZSBCQVVEX0xPVygzMDApCisJOzsgYmF1ZFsyXTogMTIwMAorCS5ieXRlIEJBVURfSElHSCgxMjAwKQorCS5ieXRlIEJBVURfTE9XKDEyMDApCisJOzsgYmF1ZFszXTogMjQwMAorCS5ieXRlIEJBVURfSElHSCgyNDAwKQorCS5ieXRlIEJBVURfTE9XKDI0MDApCisJOzsgYmF1ZFs0XTogNDgwMAorCS5ieXRlIEJBVURfSElHSCg0ODAwKQorCS5ieXRlIEJBVURfTE9XKDQ4MDApCisJOzsgYmF1ZFs1XTogOTYwMAorCS5ieXRlIEJBVURfSElHSCg5NjAwKQorCS5ieXRlIEJBVURfTE9XKDk2MDApCisJOzsgYmF1ZFs2XTogMTkyMDAKKwkuYnl0ZSBCQVVEX0hJR0goMTkyMDApCisJLmJ5dGUgQkFVRF9MT1coMTkyMDApCisJOzsgYmF1ZFs3XTogMzg0MDAKKwkuYnl0ZSBCQVVEX0hJR0goMzg0MDApCisJLmJ5dGUgQkFVRF9MT1coMzg0MDApCisJOzsgYmF1ZFs4XTogNTc2MDAKKwkuYnl0ZSBCQVVEX0hJR0goNTc2MDApCisJLmJ5dGUgQkFVRF9MT1coNTc2MDApCisJOzsgYmF1ZFs5XTogMTE1MjAwCisJLmJ5dGUgQkFVRF9ISUdIKDExNTIwMCkKKwkuYnl0ZSBCQVVEX0xPVygxMTUyMDApCisKK2Rlc2NfZGV2aWNlOgorCS5ieXRlIDB4MTIsIDB4MDEsIDB4MDAsIDB4MDEsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4NDAKKwkuYnl0ZSAweGNkLCAweDA2LCAweDA0LCAweDAxLCAweDg5LCAweGFiLCAxLCAyLCAzLCAweDAxCis7OzsgVGhlICJyZWFsIiBkZXZpY2UgaWQsIHdoaWNoIG11c3QgbWF0Y2ggdGhlIGhvc3QgZHJpdmVyLCBpcyB0aGF0Cis7OzsgIjB4Y2QgMHgwNiAweDA0IDB4MDEiIHNlcXVlbmNlLCB3aGljaCBpcyAweDA2Y2QsIDB4MDEwNAorCQorZGVzY19jb25maWcxOgorCS5ieXRlIDB4MDksIDB4MDIsIDB4MjAsIDB4MDAsIDB4MDEsIDB4MDEsIDB4MDAsIDB4ODAsIDB4MzIKKwkuYnl0ZSAweDA5LCAweDA0LCAweDAwLCAweDAwLCAweDAyLCAweGZmLCAweGZmLCAweGZmLCAweDAwCisJLmJ5dGUgMHgwNywgMHgwNSwgMHg4MiwgMHgwMywgMHg0MCwgMHgwMCwgMHgwMQorCS5ieXRlIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAKKworZGVzY19zdHJpbmdzOgorCS53b3JkIHN0cmluZ19sYW5naWRzLCBzdHJpbmdfbWZnLCBzdHJpbmdfcHJvZHVjdCwgc3RyaW5nX3NlcmlhbAorZGVzY19zdHJpbmdzX2VuZDoKKworc3RyaW5nX2xhbmdpZHM6CS5ieXRlIHN0cmluZ19sYW5naWRzX2VuZC1zdHJpbmdfbGFuZ2lkcworCS5ieXRlIDMKKwkud29yZCAwCitzdHJpbmdfbGFuZ2lkc19lbmQ6CisKKwk7OyBzaWdoLiBUaGVzZSBzdHJpbmdzIGFyZSBVbmljb2RlLCBtZWFuaW5nIFVURjE2PyAyIGJ5dGVzIGVhY2guIE5vdworCTs7ICp0aGF0KiBpcyBhIHBhaW4gaW4gdGhlIGFzcyB0byBlbmNvZGUuIEFuZCB0aGV5IGFyZSBsaXR0bGUtZW5kaWFuCisJOzsgdG9vLiBVc2UgdGhpcyBwZXJsIHNuaXBwZXQgdG8gZ2V0IHRoZSBieXRlY29kZXM6CisJLyogd2hpbGUgKDw+KSB7CisJICAgIEBjID0gc3BsaXQoLy8pOworCSAgICBmb3JlYWNoICRjIChAYykgeworCSAgICAgcHJpbnRmKCIweCUwMngsIDB4MDAsICIsIG9yZCgkYykpOworCSAgICB9CisJICAgfQorCSovCisKK3N0cmluZ19tZmc6CS5ieXRlIHN0cmluZ19tZmdfZW5kLXN0cmluZ19tZmcKKwkuYnl0ZSAzCis7CS5ieXRlICJBQ01FIHVzYiB3aWRnZXRzIgorCS5ieXRlIDB4NDEsIDB4MDAsIDB4NDMsIDB4MDAsIDB4NGQsIDB4MDAsIDB4NDUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NzUsIDB4MDAsIDB4NzMsIDB4MDAsIDB4NjIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NzcsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjcsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NzMsIDB4MDAKK3N0cmluZ19tZmdfZW5kOgorCQorc3RyaW5nX3Byb2R1Y3Q6CS5ieXRlIHN0cmluZ19wcm9kdWN0X2VuZC1zdHJpbmdfcHJvZHVjdAorCS5ieXRlIDMKKzsJLmJ5dGUgIkFDTUUgVVNCIHNlcmlhbCB3aWRnZXQiCisJLmJ5dGUgMHg0MSwgMHgwMCwgMHg0MywgMHgwMCwgMHg0ZCwgMHgwMCwgMHg0NSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1NSwgMHgwMCwgMHg1MywgMHgwMCwgMHg0MiwgMHgwMCwgMHgyMCwgMHgwMCwgMHg3MywgMHgwMCwgMHg2NSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2YywgMHgwMCwgMHgyMCwgMHgwMCwgMHg3NywgMHgwMCwgMHg2OSwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2NywgMHgwMCwgMHg2NSwgMHgwMCwgMHg3NCwgMHgwMAorc3RyaW5nX3Byb2R1Y3RfZW5kOgorCQorc3RyaW5nX3NlcmlhbDoJLmJ5dGUgc3RyaW5nX3NlcmlhbF9lbmQtc3RyaW5nX3NlcmlhbAorCS5ieXRlIDMKKzsJLmJ5dGUgIjQ3IgorCS5ieXRlIDB4MzQsIDB4MDAsIDB4MzcsIDB4MDAKK3N0cmluZ19zZXJpYWxfZW5kOgorCQkKKzs7OyByaW5nIGJ1ZmZlciBtZW1vcnkKKwk7OyB0eF9yaW5nX2luKzEgaXMgd2hlcmUgdGhlIG5leHQgaW5wdXQgYnl0ZSB3aWxsIGdvCisJOzsgW3R4X3Jpbmdfb3V0XSBoYXMgYmVlbiBzZW50CisJOzsgaWYgdHhfcmluZ19pbiA9PSB0eF9yaW5nX291dCwgdGhlcmVzIG5vIHdvcmsgdG8gZG8KKwk7OyB0aGVyZSBhcmUgKHR4X3JpbmdfaW4gLSB0eF9yaW5nX291dCkgY2hhcnMgdG8gYmUgd3JpdHRlbgorCTs7IGRvbnQgbGV0IF9pbiBsYXAgX291dAorCTs7ICAgY2Fubm90IGluYyBpZiB0eF9yaW5nX2luKzEgPT0gdHhfcmluZ19vdXQKKwk7OyAgd3JpdGUgW3R4X3JpbmdfaW4rMV0gdGhlbiB0eF9yaW5nX2luKysKKwk7OyAgIGlmICh0eF9yaW5nX2luKzEgPT0gdHhfcmluZ19vdXQpLCBvdmVyZmxvdworCTs7ICAgZWxzZSB0eF9yaW5nX2luKysKKwk7OyAgcmVhZC9zZW5kIFt0eF9yaW5nX291dCsxXSwgdGhlbiB0eF9yaW5nX291dCsrCisKKwk7OyByeF9yaW5nX2luIHdvcmtzIHRoZSBzYW1lIHdheQorCQorCS5vcmcgMHgxMDAwCit0eF9yaW5nOgorCS5za2lwIDB4MTAwCQk7IDI1NiBieXRlcworcnhfcmluZzoKKwkuc2tpcCAweDEwMAkJOyAyNTYgYnl0ZXMKKwkKKwkKKwkuRU5ECisJCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwveGlyY29tX3Bnc19mdy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL3hpcmNvbV9wZ3NfZncuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZmY3NGE2Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL3hpcmNvbV9wZ3NfZncuaApAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIFVTQiBYaXJjb20gUEdTIEZpcm13YXJlCisgKgorICogQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwIEJyaWFuIFdhcm5lciAgICAgICAgPHdhcm5lckBsb3RoYXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDAxIENyaXN0aWFuIE0uIENyYWNpdW5lc2N1CTxjcmlzdGlAZG50LnJvPgorICoKKyAqICAgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICAgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICAgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAgICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBHZW5lcmF0ZWQgZnJvbSB4aXJjb21fcGdzLlMgYnkgZXp1c2JfY29udmVydF94LnBsCisgKi8KKworc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkIHhpcmNvbV9wZ3NfZmlybXdhcmVbXSA9IHsKK3sgMHgwMDAwLAkzLAl7MHgwMiwgMHgwMiwgMHgwMH0gfSwKK3sgMHgwMDIzLAk0LAl7MHgwMiwgMHgwNSwgMHg5YiwgMHgwMH0gfSwKK3sgMHgwMDMwLAk1LAl7MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0gfSwKK3sgMHgwMDQzLAk0LAl7MHgwMiwgMHgwMSwgMHgwMCwgMHgwMH0gfSwKK3sgMHgwMTAwLAkxNiwJezB4MDIsIDB4MDIsIDB4YmEsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDB9IH0sCit7IDB4MDExMCwJMTYsCXsweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAwLCAweDAwLCAweDAwfSB9LAoreyAweDAxMjAsCTE2LAl7MHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwNCwgMHg4NSwgMHgwMCwgMHgwMiwgMHgwNCwgMHhiOSwgMHgwMH0gfSwKK3sgMHgwMjAwLAkxNiwJezB4NzUsIDB4ODEsIDB4NWUsIDB4ZTQsIDB4ZjUsIDB4MzIsIDB4ZjUsIDB4MzMsIDB4ZjUsIDB4MzAsIDB4ZjUsIDB4MzEsIDB4ZjUsIDB4MzQsIDB4YzIsIDB4MDB9IH0sCit7IDB4MDIxMCwJMTYsCXsweGMyLCAweDAxLCAweGE5LCAweDAwLCAweDc0LCAweGZlLCAweDkwLCAweDEwLCAweDAwLCAweGYwLCAweGEzLCAweGQ5LCAweGZjLCAweDc0LCAweGZkLCAweDkwfSB9LAoreyAweDAyMjAsCTE2LAl7MHgxMSwgMHgwMCwgMHhmMCwgMHhhMywgMHhkOSwgMHhmYywgMHg5MCwgMHg3ZiwgMHg5NCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NSwgMHg3NH0gfSwKK3sgMHgwMjMwLAkxNiwJezB4ZWYsIDB4ZjAsIDB4NzQsIDB4MTAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4ZjAsIDB4NzQsIDB4MDAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZjAsIDB4NzQsIDB4NDB9IH0sCit7IDB4MDI0MCwJMTYsCXsweDkwLCAweDdmLCAweDlkLCAweGYwLCAweDc0LCAweDAwLCAweDkwLCAweDdmLCAweDk3LCAweGYwLCAweDc0LCAweDgyLCAweDkwLCAweDdmLCAweDllLCAweGYwfSB9LAoreyAweDAyNTAsCTE2LAl7MHg5MCwgMHg3ZiwgMHg5NSwgMHg3NCwgMHgwMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZiwgMHhlMCwgMHhkMiwgMHhlMCwgMHhmMCwgMHg3NCwgMHgwMSwgMHg5MH0gfSwKK3sgMHgwMjYwLAkxNiwJezB4N2YsIDB4YWIsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWMsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWR9IH0sCit7IDB4MDI3MCwJMTYsCXsweDc0LCAweDA0LCAweGYwLCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweDc0LCAweDA3LCAweDkwLCAweDdmLCAweGFmLCAweGYwLCAweDc0LCAweDIwLCAweDkwfSB9LAoreyAweDAyODAsCTE2LAl7MHg3ZiwgMHg5YywgMHhmMCwgMHg3NCwgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhmMCwgMHg3NCwgMHg1MywgMHhmNSwgMHg5OCwgMHg3NSwgMHhjOCwgMHgzMH0gfSwKK3sgMHgwMjkwLAkxNiwJezB4N2IsIDB4MDUsIDB4OTEsIDB4NDQsIDB4ZDIsIDB4Y2EsIDB4NzUsIDB4OTgsIDB4NTAsIDB4ZDIsIDB4ZTgsIDB4ZDIsIDB4YWYsIDB4ZDIsIDB4YWMsIDB4NzR9IH0sCit7IDB4MDJhMCwJMTYsCXsweDAwLCAweGY1LCAweDg2LCAweDkwLCAweDdmLCAweGQ2LCAweDc0LCAweDAyLCAweGYwLCAweDc5LCAweDJlLCAweDdhLCAweDAwLCAweDdiLCAweDAwLCAweGRifSB9LAoreyAweDAyYjAsCTE2LAl7MHhmZSwgMHhkYSwgMHhmYSwgMHhkOSwgMHhmNiwgMHg3NCwgMHgwNiwgMHhmMCwgMHg4MCwgMHhmZSwgMHhjMCwgMHg4NiwgMHhjMCwgMHg4MiwgMHhjMCwgMHg4M30gfSwKK3sgMHgwMmMwLAkxNiwJezB4YzAsIDB4ODQsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ZTAsIDB4ZTUsIDB4OTEsIDB4YzIsIDB4ZTQsIDB4ZjUsIDB4OTEsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzR9IH0sCit7IDB4MDJkMCwJMTYsCXsweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweGY5LCAweGEzLCAweGUwLCAweGZhLCAweGEzLCAweGUwLCAweGZiLCAweGEzLCAweGUwLCAweGZjfSB9LAoreyAweDAyZTAsCTE2LAl7MHhlOSwgMHg1NCwgMHg2MCwgMHhiNCwgMHgwMCwgMHgwMywgMHgwMiwgMHgwMywgMHg1ZCwgMHhiNCwgMHg0MCwgMHg2ZSwgMHhiYSwgMHgwMCwgMHgwYiwgMHgxMn0gfSwKK3sgMHgwMmYwLAkxNiwJezB4MDQsIDB4NDQsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MjYsIDB4MDIsIDB4MDQsIDB4MmUsIDB4YmEsIDB4MDEsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MmV9IH0sCit7IDB4MDMwMCwJMTYsCXsweGJhLCAweDAyLCAweDAzLCAweDAyLCAweDA0LCAweDJlLCAweGJhLCAweDAzLCAweDAzLCAweDAyLCAweDA0LCAweDY4LCAweGJhLCAweDA0LCAweDFlLCAweGJifSB9LAoreyAweDAzMTAsCTE2LAl7MHgwMCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNCwgMHgyNiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMH0gfSwKK3sgMHgwMzIwLAkxNiwJezB4NTQsIDB4ZmQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MjYsIDB4YmEsIDB4MDUsIDB4MDN9IH0sCit7IDB4MDMzMCwJMTYsCXsweDAyLCAweDA0LCAweDJlLCAweGJhLCAweDA2LCAweDE5LCAweGJiLCAweDAwLCAweDA4LCAweGU1LCAweDMzLCAweGQzLCAweDk1LCAweDMyLCAweDAyLCAweDA0fSB9LAoreyAweDAzNDAsCTE2LAl7MHgwMiwgMHhiYiwgMHgwMSwgMHgwOCwgMHhlNSwgMHgzMiwgMHhjMywgMHg5NSwgMHgzMywgMHgwMiwgMHgwNCwgMHgwMiwgMHgwMiwgMHgwNCwgMHgyZSwgMHhiYX0gfSwKK3sgMHgwMzUwLAkxNiwJezB4MDcsIDB4MDUsIDB4OGIsIDB4MzQsIDB4MDIsIDB4MDQsIDB4MjYsIDB4MDIsIDB4MDQsIDB4MmUsIDB4MDIsIDB4MDQsIDB4MmUsIDB4YmEsIDB4MDAsIDB4MjB9IH0sCit7IDB4MDM2MCwJMTYsCXsweGI5LCAweDgwLCAweDEwLCAweDkwLCAweDdmLCAweDAwLCAweGU0LCAweGYwLCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwfSB9LAoreyAweDAzNzAsCTE2LAl7MHgwMiwgMHgwNCwgMHgyNiwgMHhiOSwgMHg4MiwgMHgwMiwgMHg4MCwgMHhlYiwgMHhiOSwgMHg4MSwgMHgwMiwgMHg4MCwgMHhlNiwgMHgwMiwgMHgwNCwgMHgyZX0gfSwKK3sgMHgwMzgwLAkxNiwJezB4YmEsIDB4MDEsIDB4MGYsIDB4YmIsIDB4MDAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MmUsIDB4YmIsIDB4MDEsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MjYsIDB4MDJ9IH0sCit7IDB4MDM5MCwJMTYsCXsweDA0LCAweDJlLCAweGJhLCAweDAzLCAweDBmLCAweGJiLCAweDAwLCAweDAzLCAweDAyLCAweDA0LCAweDJlLCAweGJiLCAweDAxLCAweDAzLCAweDAyLCAweDA0fSB9LAoreyAweDAzYTAsCTE2LAl7MHgyNiwgMHgwMiwgMHgwNCwgMHgyZSwgMHhiYSwgMHgwNiwgMHg1NiwgMHhiYywgMHgwMSwgMHgwZiwgMHg5MCwgMHg3ZiwgMHhkNCwgMHg3NCwgMHgwNiwgMHhmMH0gfSwKK3sgMHgwM2IwLAkxNiwJezB4OTAsIDB4N2YsIDB4ZDUsIDB4NzQsIDB4NWEsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MjYsIDB4YmMsIDB4MDIsIDB4MTIsIDB4YmIsIDB4MDAsIDB4NmYsIDB4OTB9IH0sCit7IDB4MDNjMCwJMTYsCXsweDdmLCAweGQ0LCAweDc0LCAweDA2LCAweGYwLCAweDkwLCAweDdmLCAweGQ1LCAweDc0LCAweDZjLCAweGYwLCAweDAyLCAweDA0LCAweDI2LCAweGJjLCAweDAzfSB9LAoreyAweDAzZDAsCTE2LAl7MHgyOSwgMHg3NCwgMHgwNCwgMHhjMywgMHg5YiwgMHg0MCwgMHg1NywgMHg2MCwgMHg1NSwgMHhlYiwgMHgyYiwgMHg5MCwgMHgwNiwgMHg4YywgMHgyNSwgMHg4Mn0gfSwKK3sgMHgwM2UwLAkxNiwJezB4ZjUsIDB4ODIsIDB4NzQsIDB4MDAsIDB4MzUsIDB4ODMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjksIDB4YTMsIDB4ZTAsIDB4ZmEsIDB4OTAsIDB4N2YsIDB4ZDR9IH0sCit7IDB4MDNmMCwJMTYsCXsweGU5LCAweGYwLCAweDkwLCAweDdmLCAweGQ1LCAweGVhLCAweGYwLCAweDAyLCAweDA0LCAweDI2LCAweDAyLCAweDA0LCAweDJlLCAweGJhLCAweDA4LCAweDBmfSB9LAoreyAweDA0MDAsCTE2LAl7MHg3NCwgMHgwMSwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHg3NCwgMHgwMSwgMHg5MCwgMHg3ZiwgMHhiNSwgMHhmMCwgMHgwMiwgMHgwNCwgMHgyNiwgMHhiYX0gfSwKK3sgMHgwNDEwLAkxNiwJezB4MDksIDB4MDMsIDB4MDIsIDB4MDQsIDB4MjYsIDB4YmEsIDB4MGEsIDB4MDUsIDB4NzQsIDB4MDAsIDB4MDIsIDB4MDQsIDB4MDIsIDB4YmEsIDB4MGIsIDB4MDN9IH0sCit7IDB4MDQyMCwJMTYsCXsweDAyLCAweDA0LCAweDI2LCAweDAyLCAweDA0LCAweDJlLCAweDkwLCAweDdmLCAweGI0LCAweDc0LCAweDAyLCAweGYwLCAweDgwLCAweDA5LCAweDkwLCAweDdmfSB9LAoreyAweDA0MzAsCTE2LAl7MHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgwMCwgMHhkMCwgMHhlMCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4MywgMHhkMH0gfSwKK3sgMHgwNDQwLAkxNiwJezB4ODIsIDB4ZDAsIDB4ODYsIDB4MzIsIDB4ZWIsIDB4MjAsIDB4ZTcsIDB4MWUsIDB4YzMsIDB4OTQsIDB4MGEsIDB4NTAsIDB4MTksIDB4ZWIsIDB4MjMsIDB4MjR9IH0sCit7IDB4MDQ1MCwJMTYsCXsweDQ2LCAweGY1LCAweDgyLCAweDc0LCAweDA2LCAweDM0LCAweDAwLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweGNiLCAweGY1LCAweGNkLCAweGEzLCAweGUwfSB9LAoreyAweDA0NjAsCTE2LAl7MHhmNSwgMHhjYSwgMHhmNSwgMHhjYywgMHhjMywgMHgyMiwgMHhkMywgMHgyMiwgMHhiOSwgMHg0MSwgMHgxMSwgMHhlYiwgMHg2NCwgMHhmZiwgMHg1NCwgMHg4MH0gfSwKK3sgMHgwNDcwLAkxNiwJezB4ZmIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4NGIsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MjYsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTB9IH0sCit7IDB4MDQ4MCwJMTYsCXsweDY0LCAweGZmLCAweDAyLCAweDA0LCAweDAyLCAweGMwLCAweDg2LCAweGMwLCAweDgyLCAweGMwLCAweDgzLCAweGMwLCAweDg0LCAweGMwLCAweDg1LCAweGMwfSB9LAoreyAweDA0OTAsCTE2LAl7MHhlMCwgMHhlNSwgMHg5MSwgMHhjMiwgMHhlNCwgMHhmNSwgMHg5MSwgMHg5MCwgMHg3ZiwgMHhhOSwgMHg3NCwgMHgwNCwgMHhmMCwgMHg3NCwgMHgyMCwgMHg5MH0gfSwKK3sgMHgwNGEwLAkxNiwJezB4N2YsIDB4OWMsIDB4ZjAsIDB4MTIsIDB4MDUsIDB4ZGMsIDB4NzQsIDB4MjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4ZjAsIDB4ZDAsIDB4ZTAsIDB4ZDAsIDB4ODV9IH0sCit7IDB4MDRiMCwJMTYsCXsweGQwLCAweDg0LCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweGQwLCAweDg2LCAweDMyLCAweGMwLCAweDg2LCAweGMwLCAweDgyLCAweGMwLCAweDgzLCAweGMwfSB9LAoreyAweDA0YzAsCTE2LAl7MHg4NCwgMHhjMCwgMHg4NSwgMHhjMCwgMHhlMCwgMHg3NCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHhmMCwgMHhlNSwgMHg5MSwgMHhjMiwgMHhlNCwgMHhmNX0gfSwKK3sgMHgwNGQwLAkxNiwJezB4OTEsIDB4OTAsIDB4N2YsIDB4YWEsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTAsIDB4ZjksIDB4ZTQsIDB4ZjUsIDB4ODYsIDB4OTB9IH0sCit7IDB4MDRlMCwJMTYsCXsweDdkLCAweGMwLCAweDc1LCAweDg1LCAweDEwLCAweDg1LCAweDMyLCAweDg0LCAweGUwLCAweDA1LCAweDg2LCAweDA1LCAweDg0LCAweGYwLCAweGU1LCAweDg0fSB9LAoreyAweDA0ZjAsCTE2LAl7MHhiNSwgMHgzMywgMHgwMiwgMHg4MCwgMHgwOSwgMHgwNSwgMHgzMiwgMHgwNSwgMHg4NiwgMHhhMywgMHhkOSwgMHhlYywgMHg4MCwgMHgwMCwgMHg5MCwgMHg3Zn0gfSwKK3sgMHgwNTAwLAkxNiwJezB4YzksIDB4ZjAsIDB4YjEsIDB4NmQsIDB4NzQsIDB4MjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4ZjAsIDB4ZDAsIDB4ZTAsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODR9IH0sCit7IDB4MDUxMCwJMTYsCXsweGQwLCAweDgzLCAweGQwLCAweDgyLCAweGQwLCAweDg2LCAweDMyLCAweGU0LCAweGY1LCAweDg2LCAweDkwLCAweDdmLCAweGJjLCAweGUwLCAweDIwLCAweGUxfSB9LAoreyAweDA1MjAsCTE2LAl7MHg0YiwgMHg5MCwgMHg3ZCwgMHgwMCwgMHhlNSwgMHgzMiwgMHhmMCwgMHhhMywgMHhlNSwgMHgzMywgMHhmMCwgMHhhMywgMHhlNSwgMHgzMCwgMHhmMCwgMHhhM30gfSwKK3sgMHgwNTMwLAkxNiwJezB4ZTUsIDB4MzEsIDB4ZjAsIDB4YTMsIDB4ZTQsIDB4MzAsIDB4MDAsIDB4MDEsIDB4MDQsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4OTAsIDB4MTAsIDB4MDB9IH0sCit7IDB4MDU0MCwJMTYsCXsweDc5LCAweDEwLCAweGUwLCAweGEzLCAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweGQ5LCAweGY2LCAweDA1LCAweDg2LCAweDc0LCAweGZjfSB9LAoreyAweDA1NTAsCTE2LAl7MHhmMCwgMHhhMywgMHgwNSwgMHg4NiwgMHg5MCwgMHgxMSwgMHgwMCwgMHg3OSwgMHgxMCwgMHhlMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhmMCwgMHhhMywgMHgwNX0gfSwKK3sgMHgwNTYwLAkxNiwJezB4ODYsIDB4ZDksIDB4ZjYsIDB4ZTQsIDB4ZjUsIDB4ODYsIDB4OTAsIDB4N2YsIDB4YmQsIDB4NzQsIDB4MjYsIDB4ZjAsIDB4MjIsIDB4MjAsIDB4MDAsIDB4MTN9IH0sCit7IDB4MDU3MCwJMTYsCXsweGU1LCAweDMyLCAweGI1LCAweDMzLCAweDAxLCAweDIyLCAweDA1LCAweDMzLCAweDc1LCAweDgzLCAweDEwLCAweDg1LCAweDMzLCAweDgyLCAweGUwLCAweGY1fSB9LAoreyAweDA1ODAsCTE2LAl7MHg5OSwgMHhkMiwgMHgwMCwgMHg3NCwgMHgwMCwgMHhiNSwgMHgzNCwgMHgwMSwgMHgyMiwgMHhlNSwgMHgzMywgMHhkMywgMHg5NSwgMHgzMiwgMHhjMywgMHg5NX0gfSwKK3sgMHgwNTkwLAkxNiwJezB4MzQsIDB4NDAsIDB4ZjUsIDB4NzUsIDB4MzQsIDB4MDAsIDB4ZDIsIDB4MDEsIDB4MDIsIDB4MDUsIDB4ZGMsIDB4YzAsIDB4ODYsIDB4YzAsIDB4ODIsIDB4YzB9IH0sCit7IDB4MDVhMCwJMTYsCXsweDgzLCAweGMwLCAweDg0LCAweGMwLCAweDg1LCAweGMwLCAweGUwLCAweDMwLCAweDk5LCAweDA3LCAweGMyLCAweDk5LCAweGMyLCAweDAwLCAweDEyLCAweDA1fSB9LAoreyAweDA1YjAsCTE2LAl7MHg3MCwgMHgzMCwgMHg5OCwgMHgwNSwgMHgxMiwgMHgwNSwgMHhjNiwgMHhjMiwgMHg5OCwgMHhkMCwgMHhlMCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4NCwgMHhkMH0gfSwKK3sgMHgwNWMwLAkxNiwJezB4ODMsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODYsIDB4MzIsIDB4NzUsIDB4ODMsIDB4MTEsIDB4ODUsIDB4MzAsIDB4ODIsIDB4MDUsIDB4ODIsIDB4ZTUsIDB4OTl9IH0sCit7IDB4MDVkMCwJMTYsCXsweGYwLCAweGU1LCAweDgyLCAweGI1LCAweDMxLCAweDAxLCAweDIyLCAweDA1LCAweDMwLCAweGIxLCAweGRjLCAweDIyLCAweDc0LCAweDEwLCAweDkwLCAweDdmfSB9LAoreyAweDA1ZTAsCTE2LAl7MHg5YywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgzZSwgMHgyMCwgMHgwMSwgMHgzYywgMHhlNSwgMHgzMCwgMHhiNSwgMHgzMX0gfSwKK3sgMHgwNWYwLAkxNiwJezB4MDEsIDB4MjIsIDB4ZTQsIDB4ZjUsIDB4ODYsIDB4NzUsIDB4ODMsIDB4MTEsIDB4MDUsIDB4ODYsIDB4OTAsIDB4N2UsIDB4MDAsIDB4ZjAsIDB4YTMsIDB4MDV9IH0sCit7IDB4MDYwMCwJMTYsCXsweDg2LCAweDc5LCAweDAxLCAweGU1LCAweDMwLCAweGI1LCAweDMxLCAweDAyLCAweDgwLCAweDEwLCAweDA1LCAweDMxLCAweDg1LCAweDMxLCAweDgyLCAweGUwfSB9LAoreyAweDA2MTAsCTE2LAl7MHgwNSwgMHg4NiwgMHhmMCwgMHhhMywgMHgwNSwgMHg4NiwgMHgwOSwgMHhiOSwgMHg0MCwgMHhlOSwgMHg3NCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHhmMH0gfSwKK3sgMHgwNjIwLAkxNiwJezB4OTAsIDB4N2YsIDB4YjksIDB4ZTksIDB4NjAsIDB4MDEsIDB4ZjAsIDB4MjIsIDB4YzIsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4ODYsIDB4OTAsIDB4N2UsIDB4MDB9IH0sCit7IDB4MDYzMCwJMTYsCXsweDc0LCAweDAxLCAweGYwLCAweGEzLCAweDc0LCAweDAyLCAweGYwLCAweDkwLCAweDdmLCAweGI5LCAweGYwLCAweDIyLCAweGMyLCAweDk5LCAweGY1LCAweDk5fSB9LAoreyAweDA2NDAsCTE2LAl7MHgzMCwgMHg5OSwgMHhmZCwgMHhjMiwgMHg5OSwgMHgyMiwgMHhlNSwgMHg1ZSwgMHhmNiwgMHgzYywgMHhmZCwgMHg4ZiwgMHhmZSwgMHhjOCwgMHhmZiwgMHg2NH0gfSwKK3sgMHgwNjUwLAkxNiwJezB4ZmYsIDB4YjIsIDB4ZmYsIDB4ZDksIDB4ZmYsIDB4ZWQsIDB4ZmYsIDB4ZjMsIDB4ZmYsIDB4ZmEsIDB4MTIsIDB4MDEsIDB4MDAsIDB4MDEsIDB4ZmYsIDB4ZmZ9IH0sCit7IDB4MDY2MCwJMTYsCXsweGZmLCAweDQwLCAweGNkLCAweDA2LCAweDA0LCAweDAxLCAweDg5LCAweGFiLCAweDAxLCAweDAyLCAweDAzLCAweDAxLCAweDA5LCAweDAyLCAweDIwLCAweDAwfSB9LAoreyAweDA2NzAsCTE2LAl7MHgwMSwgMHgwMSwgMHgwMCwgMHg4MCwgMHgzMiwgMHgwOSwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwMiwgMHhmZiwgMHhmZiwgMHhmZiwgMHgwMCwgMHgwNywgMHgwNX0gfSwKK3sgMHgwNjgwLAkxNiwJezB4ODIsIDB4MDMsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDYsIDB4OTQsIDB4MDYsIDB4OTh9IH0sCit7IDB4MDY5MCwJMTYsCXsweDA2LCAweGJhLCAweDA2LCAweGU4LCAweDA0LCAweDAzLCAweDAwLCAweDAwLCAweDIyLCAweDAzLCAweDQxLCAweDAwLCAweDQzLCAweDAwLCAweDRkLCAweDAwfSB9LAoreyAweDA2YTAsCTE2LAl7MHg0NSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg3NSwgMHgwMCwgMHg3MywgMHgwMCwgMHg2MiwgMHgwMCwgMHgyMCwgMHgwMCwgMHg3NywgMHgwMCwgMHg2OSwgMHgwMH0gfSwKK3sgMHgwNmIwLAkxNiwJezB4NjQsIDB4MDAsIDB4NjcsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NzMsIDB4MDAsIDB4MmUsIDB4MDMsIDB4NDEsIDB4MDAsIDB4NDMsIDB4MDB9IH0sCit7IDB4MDZjMCwJMTYsCXsweDRkLCAweDAwLCAweDQ1LCAweDAwLCAweDIwLCAweDAwLCAweDU1LCAweDAwLCAweDUzLCAweDAwLCAweDQyLCAweDAwLCAweDIwLCAweDAwLCAweDczLCAweDAwfSB9LAoreyAweDA2ZDAsCTE2LAl7MHg2NSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2YywgMHgwMCwgMHgyMCwgMHgwMCwgMHg3NywgMHgwMCwgMHg2OSwgMHgwMH0gfSwKK3sgMHgwNmUwLAkxNCwJezB4NjQsIDB4MDAsIDB4NjcsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzQsIDB4MDAsIDB4MDYsIDB4MDMsIDB4MzQsIDB4MDAsIDB4MzcsIDB4MDB9IH0sCit7IDB4ZmZmZiwJMCwJezB4MDB9IH0KK307Cg==